作业帮 > 数学 > 作业

matlab矩阵 AX=B 求解问题

来源:学生作业帮 编辑:拍题作业网作业帮 分类:数学作业 时间:2024/04/30 11:33:05
matlab矩阵 AX=B 求解问题
是这样的一个问题
已知这样的一组数据:
x=[807.885 822.301 843.889 873.601 882.456 866.085 839.726 816.664];
y=[1294.459 1265.64 1258.251 1270.253 1302.33 1326.2 1331.356 1321.231];
z=[-4.878 -4.244 -4.073 -4.267 -4.495 -5.15 -5.514 -5.378];
应用这样一个方程ax+by+cz=1
来求解a b c
于是
[x y z] * [a b c]' = 1
A=[x,y,z], X = [a b c]', and B=1;
于是方程变为AX=B
那么X怎么表示呢.如何解啊.
有人告诉我是等于X = (A'*A)^(-1)*A'*B
对不对啊.为什么是这个呢.
用matlab来求解哦.
谢谢各位了啊.
1.首先,这里有8个方程,3个未知量,当然你可以用其中任意三个线性无关的方程求出a,b,c的一组值,但是这样我们就浪费了很多数据.
2.如果同时求解8个方程肯定无解,但是我们想要找到一个向量Y使得AY与B(B应该是一列向量)最为接近,而AY是A的列向量的一个线性组合,所以此问题转化为在A的列向量所生成的空间SA中寻找一向量Y使AY与B最为接近,至于如何度量接近程度一般使用欧氏范数||AY-B||.
3.根据最佳逼近定理显然B与其在SA中的正交分解(或垂直投影)pb的距离是B与SA中所有向量距离的最小者.此时Y便是AY=pb的解,由于pb是A的列向量的线性组合,所以此方程肯定有解.但每次求解时都计算b是一件很繁琐的事,所以我们要寻找一个更简便的方法.
4.由于pb是B在SA中的正交分解,所以(B-pb)⊥SA,所以(B-pb)垂直于A的每一个列向量a1,a2…an,其转置记为ta1,ta2,…tan,可知此时有ta1.(B-pb)=0,ta2.(B-pb)=0…(向量内积定义),即(A的转置A')A'(B-pb)=0,即A'pb=A'B,而pb=AY
所以A'AY=A'B,此方程成为AX=B的正规方程,由此亦可求出最佳逼近Y.此时系数矩阵已是方阵且可逆,Y=A'A\A'B=inv(A'A)*(A'B).
5.此问题有另外分析解法,即求使Q=∑(1-ax-by-cz)^2达最小的a,b,c的值,分别对a,b,c求偏导数并令其为零亦可得到正规方程(组).
6.此问题是最小二乘问题或称数据拟合(方法属于Gauss),至于最佳逼近和正交分解可参考有关线性代数或泛函分析的书籍.
希望对你有所帮助……