登录论坛

查看完整版本 : [MATLAB数学相关] 非线性多元拟合如何处理?


ZhangJing
2009-09-20, 10:48
大家好,有人会用matlab拟合形如z^n=a*x^n+b*y^n的函数吗?其中x,y自变量,z为因变量,需要求出a,b,n.非常感谢
x =

1.0e+004 *

0.67273600000000 0.86934800000000 1.10699500000000 1.38642100000000


y =

1.0e+002 *

3.88190000000000 4.35810000000000 4.63660000000000 4.63690000000000

z=
1.0e+003 *

3.85808000000000 5.72277000000000 7.20761000000000 9.20183000000000

slgu
2009-09-20, 11:21
[a,b,n]=[2.02396049435*10^(-21), -9.44385318022, 17.5236846095]
不知能否有用?

ZhangJing
2009-09-20, 11:27
因为是一系列同样的问题,所以能告诉我怎么得到这些参数吗?谢谢

slgu
2009-09-20, 15:02
这可以认为是做成z=(a*x.^n+b*y.^n).^(1/n)拟合的问题。获得其中的参数[a b n],用lsqcurevefit 或 nlinfit 进行拟合。他们需要提供合适的初值。如果类似数据,可以用我的结果作为初值试试。