四维方程y=ax1+x2(πbx3^2-2/3πcx3^3),a,b,c为未知参数待拟合,x1,x2,x3为变量,求拟合方程怎么编程。
有人给出执行代码:
x1=[1.3311, 3.8836, 6.1042, 7.9581, 12.1415, 17.6534, 22.1343, 26.0562, 27.9412];
x2=[15.46, 42.1, 66.05, 79.01, 119.99, 149.22, 320.23, 390.85, 416.5];
x3=[0.12, 0.05, 0.038, 0.03, 0.026, 0.014, 0.01, 0.007, 0.004];
y=[9.45, 11.1, 13.3, 14.7, 19.85, 27, 31, 37, 38.3];
x=[x1 x2 x3];
func=inline('a(1).*x(:,1)+x(:,2).*(pi*a(2)*x(:,3).^2-2/3*pi*a(3)*x(:,3)^3)');
x0=[rand() rand() rand()];
[a,r,J]=nlinfit(x,y,func,x0);
错误使用 nlinfit (line 199)
Error evaluating inline model function.
原因:
错误使用 inline/subsref (line 14)
内联函数的输入数目太多。
vpa(a,10);y1=func(a,x);
str1 = ['a=',num2str(a(1))];
str2 = ['b=',num2str(a(2))];
str3 = ['c=',num2str(a(2))];
fprintf('%s\n',str1.str2,str3);
为什么会出错