作业帮 > 数学 > 作业

y=a0*(x1^a1)*(x2^a2)*(x3^a3),对于给定的这个函数,如果知道y,x1,x2,x3对应的多组数据

来源:学生作业帮 编辑:拍题作业网作业帮 分类:数学作业 时间:2024/04/30 03:59:30
y=a0*(x1^a1)*(x2^a2)*(x3^a3),对于给定的这个函数,如果知道y,x1,x2,x3对应的多组数据,通过MATLAB..
y=a0*(x1^a1)*(x2^a2)*(x3^a3),对于给定的这个函数,如果知道y,x1,x2,x3对应的多组数据,通过MATLAB怎样拟合出a0,a1,a2,a3这四个值的接近值,
我给的式子中没有X4,
一样的罗
这个函数先两边取log变为:
log(y)=log(a0)+a1*log(x1)+a2*log(x2)+a3*log(x3)+a4*log(x4)
再用regress线性拟合,程序如下:
x1=[152.64 104.5 131.73\x05146.83 118.24 99.22]';
x2=[286.08 485.68 1164.48 506.17 1195.93 1545.75]';
x3=[103.9 101.82 101.47\x05104.77 105.9 99.32]';
y=[1500\x052000 2400 3200 3500\x054700]';
X=[x1,x2,x3];
B=regress(log(y),log(X));
a1=B(1)
a2=B(2)
a3=B(3)
得到:
a1 =
-0.2538
a2 =
0.4743
a3 =
1.2936