求救,关于数学建模,MATLAB多元非线性拟合

x1=[22.9908325 22.99456666 23.00022308 23.0024026 23.00421017];
x2 = [113.0723102 113.1409256 113.1080614 113.0651869113.0704232];
y=[68 72 67 67 66.5];
关系式为 y=a(1)*(x1-22)^2 + a(2)*(x2-113)^2 + a(3)
求a(1),a(2),a(3);
谢谢各位大神了

根据数据,其多元非线性拟合函数为

y=a(1)*(x1-22)^2 + a(2)*(x2-113)^2 + a(3)

该拟合问题可以用nlinfit()命令函数来实现。实现代码:

x1=[22.9908325 22.99456666 23.00022308 23.0024026 23.00421017]';

x2=[113.0723102 113.1409256 113.1080614 113.0651869 113.0704232]';

y=[68 72 67 67 66.5]';

x=[x1 x2];

F=@(a,x)a(1)*(x(:,1)-22).^2 + a(2)*(x(:,2)-113).^2 + a(3);

a0=[0.988 0.583 0.423];

a=nlinfit(x,y,F,a0); 

c=a(3);b=a(2);a=a(1);

运行结果, a(1)=-69.00654019;a(2)=249.7518892;a(3)=134.5976391

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-09-15
编写一个m文件,设定好函数形式,然后调用函数估计即可。追问

可不可以有详细一点的答案,找了网上好多资料都没有拟合出来