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

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

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

当然可以,定义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]

补充回答:数据不好 建立函数文件: 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...

方法: 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...

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

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

syms x1, x2; jacobian([5-x1*x2/8-x2^2/4/x1^2, -x1^2/16+x2/2/x1], [x1,x2]);

比较简单的形式可以不用nlinfit求解。 你将所有的数据代入那个表达式,会得到N个6元一次方程组(N是数据点数),求解这个方程组,就有一个最小二乘的解(N>6) x=[0.00144 0.45 0.00144 0.475 0.00144 0.525 0.00144 0.55 0.00152 0.45 0.00152 0...

PAUSE Wait for user response. PAUSE等待用户的相应。 PAUSE(n) pauses for n seconds before continuing, where n can also be a fraction. The resolution(分辨率) of the clock is platform specific. Fractional pauses of 0.01 seconds ...

1. 双纵坐标函数plotyy 在Matlab中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy函数,它能把具有不同量纲,不同数量级的两个函数绘制在同一个坐标中,有利于图形数据的对比分析。使用格式为:plotyy(x1,y1,x2,y2) x1,y1对应一...

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