求教matlab曲线拟合问题!~!~

来源:百度知道 编辑:UC知道 时间:2024/06/23 22:01:43
X={2800 2 2 0.4
2800 4 4 0.7
2800 6 6 1
3300 2 4 1
3300 4 6 0.4
3300 6 2 0.7
3800 2 6 0.7
3800 4 2 1
3800 6 4 0.4}
Y={1.28 0.9 1.57 1.89 0.68 0.72 1.58 2.15 1.61}
B={K,a1,a2,a3,a4}
Y=X*B
想用logY=logK*((logX1)^a1)*(log(X2)^a2)*(log(X3)^a3)*(log(X4)^a4)这样一个方程来拟合,不知道那位大侠能帮小弟的!!!!
Y=X*B 这个条件错了,不考虑这个条件。 只要logY=logK*((logX1)^a1)*(log(X2)^a2)*(log(X3)^a3)*(log(X4)^a4)拟合就行。

提供的公式拟合不出来,用线性拟合,把x(i)*x(j)当成线性变量。

X=[2800 2 2 0.4
2800 4 4 0.7
2800 6 6 1
3300 2 4 1
3300 4 6 0.4
3300 6 2 0.7
3800 2 6 0.7
3800 4 2 1
3800 6 4 0.4]
Y=[1.28 0.9 1.57 1.89 0.68 0.72 1.58 2.15 1.61]'
[m,n]=size(X)
X1=[ones(m,1),X]
B=regress(Y,X1)
test1=[Y X1*B]
X2=[];
for i=1:n
for j=1:n
if i<=j
X2=[X2,X(:,i).*X(:,j)];
else
continue
end
end
end
X3=[X1,X2];
B=regress(Y,X3)
test2=[Y X3*B]
syms x1 x2 x3 x4
x=[1 x1 x2 x3 x4 x1*x1 x1*x2 x1*x3 x1*x4 x2*x2 x2*x3 x2*x4 x3*x3 x3*x4 x4*x4]
y=vpa(x*B,6)

结果:
B =

0
-0.0002
0
0
0
0.0000
-0.0003
-0.0000
0.0001
0.0555
0.1560
0.0061
-0.0812
0
0