matlab矩阵 AX=B 求解问题是这样的一个问题已知这样的一组数据:x=[8...
matlab矩阵AX=B求解问题是这样的一个问题已知这样的一组数据:x=[807.885822.301843.889873.601882.456866.085839.72...
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个回答
展开全部
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),至于最佳逼近和正交分解可参考有关线性代数或泛函分析的书籍.希望对你有所帮助……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |