我有五组数据x=[313.5604 239.4021 288.7583 309.7781 264.0802];
y=[0.331115272 0.334143601 0.403861609 0.4425972 0.461041355];
如何通过这五组数据求得,(x/a )^b+y^c=1,中 a,b,c的值。求源代码,多谢
该拟合问题可以用 nlinfit()函数来解决。求解方法:
1、将方程(x/a )^b+y^c=1看成z(x,y)=(x/a )^b+y^c=1;
2、处理多个变量,可以将它们看成是一个x向量组;
3、求解代码
x=[313.5604 239.4021 288.7583 309.7781 264.0802]';
y=[0.331115272 0.334143601 0.403861609 0.4425972 0.461041355]';
X=[x y];
Y=ones(5,1);
func=@(a,X)(X(:,1)./a(1)).^a(2)+X(:,2).^a(3);
beta0=[0.69483 0.3171 0.95022];
[beta,R,J]= nlinfit(X,Y,func,beta0);
a=beta(1),b=beta(2),c=beta(3)
Y1=func(beta,X);
[Y Y1]
4、运行结果