Matlab求方程

来源:百度知道 编辑:UC知道 时间:2024/06/06 23:28:54
有5个样本,每个样本5个特征,其值为
x1=[461.6569 493.8284 449.8995 507.4853 478.0711]
x2=[488.2500 531.1250 475.8750 542.1250 506.1250]
x3=[0.0288 0.0274 0.0295 0.0265 0.0278]
x4=[156.5592 153.0133 151.4528 155.2275 151.6727]
x5=[51.0938 51.0650 50.4853 49.1891 50.5903]
y=c0+c1*x1+c2*x2+c3*x3+c4*x4+c5*5
求常数c0,c1,c2,c3,c4,c5
y并不已知,因为本来是有3组样本,也就是求3个方程y1(x),y2(x),y3(x),最终是把被测图像的5个特征值带入方程求出y1、y2、y3的值比较大小,哪个y最大就表示也那个样本是匹配的。这里我干脆把另外两组数组列出来算了
[396.5858 478.1716 426.4853 418 409;423 510.7500 451.7500 445.3750 436.5000;0.0338 0.0281 0.0312 0.0320 0.0328;122.0231 143.8180 131.0329 127.9670 129.6025;63.1030 63.3964 64.0884 66.9045 67.1023]
[435.6569 447.1421 530.1421 432.5858 442;462.8750 473 561.6250 461.5000 470.5000;0.0338 0.0281 0.0312 0.0320 0.0328;126.0641 122.1139 130.0581 121.2331 125.1310;64.8653 64.3938 66.7228 64.9549 65.0238]

y的值在哪里呢?

如果是求线性方程组,用矩阵操作就行了
即求解AC=B
A=[x1',x2',x3',x4',x5']
C=[c0,c1,c2,c3,c4,c5]' (列向量)
y=[y0,y1,y2,y3,y4,y5]' (列向量)

C=A^(-1)*B

参考例子可得

这个属于多元线性问题,可令:
A=[ones(5,1),x1',x2',x3',x4',x5'];
[b,bint,r,rint,stats]=regress(y,A);
b

用偏最小二乘回归分析法回归

clc;clear
x1=[461.6569 493.8284 449.8995 507.4853 478.0711] ;
x2=[488.2500 531.1250 475.8750 542.1250 506.1250] ;
x3=[0.0288 0.0274 0.0295 0.0265 0.0278] ;
x4=[156.5592 153.0133 151.4528 155.2275 151.6727] ;
x5=[51.0938 51.0650 50.4853 49.1891 50.5903];
X=[x1; x2; x3; x4; x5]
y1=[396.5858 478.1716 426.4853 418 409;423 510.7500 451.7500 445.3750 436.5000;0.0338 0.0281 0.0312 0.0320 0.0328;122.0231 143.8180 131.0329 127.9670 129.6025;63.1030 63.3964 64.0884 66.9045 67.1023]
y2=[435.6569 447.1421 530.1421 432.5858 442;462.8750 473 561.6250 461.5000 470.5000;0.0338 0.0281 0.031