fkjj.net
当前位置:首页 >> mAtlAB非线性拟合中用JACoBiAn拟合的效果不是很好... >>

mAtlAB非线性拟合中用JACoBiAn拟合的效果不是很好...

你的拟合似乎有问题,如果使用nlinfit拟合,在[b,r,j]=nlinfit(xe,ye,fun,b0) 中参数xe为矩阵,ye为向量,而且xe的每一行对应ye的每个值。你所给的xe和ye都为行向量。 为何用这么复杂的来拟合呢?直接用多项式拟合(polyfit)岂不更好?

可能是因为P(v)对参数b太敏感,成为病态函数。可以改写函数成ln(-ln(1-P)) = b ln((v-v0)/(va-v0))。代码如示: v = [3252 3476 3814 6615 8075 9438 10448 26112 28594 31651]; p = [0.7/10.4 1.7/10.4 2.7/10.4 3.7/10.4 4.7/10.4 5.7/10.4 6....

补充回答:数据不好 建立函数文件: function y = myfun(beta,x) y = 2.350176*beta(1)*(1-1/beta(2))*(1-(1-x(:,1).^(1/beta(2))).^beta(2)).^2.*(x(:,1).^(-1/beta(2))-1).^(-beta(2)).*x(:,1).^(-1/beta(2)-0.5).*x(:,2); 运行代码: x=[0.42...

当然可以,定义abcd为符号变量,然后直接求就可以了: >> syms a b c d>> syms x y>> jacobian([a*x+b*y;c*x*y+d*y^2],[x y]) ans = [ a, b][ c*y, c*x+2*d*y]

非线性曲线拟合是已知输入向量xdata和输出向量ydata,并且知道输入与输出的函数关系为ydata=F(x, xdata),但不知道系数向量x。今进行曲线拟合,求x使得输出的如下最小二乘表达式成立。 非线性曲线拟合是已知输入向量xdata和输出向量ydata,并且...

方法: syms x y z; J=jacobian([3*x;2*y+3*z;x*z],[x y z]) subs(J,{x,z},{1,2}) MATLAB中jacobian是用来计算Jacobi矩阵的函数。 syms r l f x=r*cos(l)*cos(f); y=r*cos(l)*sin(f); z=r*sin(l); J=jacobian([x;y;z],[r l f]) 结果: J = [ cos...

lsqcurvefit(....),具体函数说明见matlab help lsqcurvefit = least square curve fit(最小二乘曲线拟合),当然你要先确定曲线的形式,函数可以帮你求出待定参数

这个警告信息是说,模型(拟合函数)对某些参数不敏感。 可能的原因包括: (1)拟合函数中的某些参数对函数值没影响,这种情况应该考虑修改拟合函数的形式。 (2)数值计算出现下溢(underflow),这种情况有可能通过修改参数初值或者对数据进...

三维曲线(非线性)拟合步骤 1 设定目标函数. (M 函数书写)% 可以是任意的 例如: function f=mydata(a,data) %y 的值目标函数值 或者是第三维的,a=[a(1) ,a(2)] 列向量 x=data(1,:); %data 是一 2 维数组,x=x1 y=data(2,:); %data 是一 2 ...

a=[1,3,4,6,7,8,9]; b=[2,3,4,1,2,3,15] ; A=[cos(pi/4) -sin(pi/4);sin(pi/4) cos(pi/4)] ; B = [1,0]; for i=1:7 x0=[a(i),b(i)]; z(i,:)=x0*A+B; end z

网站首页 | 网站地图
All rights reserved Powered by www.fkjj.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com