当方程组得个数多于未知数的个数时,如何得到方程组得最近似解

来源:百度知道 编辑:UC知道 时间:2024/05/03 04:05:28
当X1=2 ,X2=3 时y=4;当X1=3 ,X2=4 时y=6;当X1=4 ,X2=2 时y=4;当X1=1 ,X2=3 时y=2,希望能够求得X1,X2与y的近似关系,上面的数据只是例子,最好能用MATLAB给出一个简单的公式或者算法,不胜感激

方程组AX=B当A为矩阵(非方阵)或者A不可逆是,不能用X=A^(-1)B解方程。那么利用矩阵的广义逆求解,M-P逆是矩阵的极小范数最小二乘解,在matlab里面函数为pinv(A)求解A的M-P逆,这个题的解为:
>> A=[2 3;3 4;4 2;1 3];
>> B=[4;6;4;2];
>> X=pinv(A)*B

X =

222/299
224/299
即y=(222/299)*X1+(224/229)*X2

要看你怎么拟合了。比如你是选择放弃误差太大的点,还是不放弃?是过点拟合还是不过点拟合?

matlab回归

x=[2 3;3 4;4 2;1 3]
x1=x(:,1);x2=x(:,2);
y=[4;6;4;2]
X=[ones(length(x),1),x1,x2,x1.^2,x2.^2,x1.*x2]
B = regress(y,X)
Y=X*B

结果:
x =

2 3
3 4
4 2
1 3

y =

4
6
4
2

X =

1 2 3 4 9 6
1 3 4 9 16 12
1 4 2 16 4 8
1 1 3 1 9 3

B =

0
0
1.3939
-0.2545
-0.5212
0.9212