问题描述
- 如何解决这个矩阵问题?
- 附带了测试用的matlab代码。
A = [0.8 0.25 0.18 0.1; 0.1 0.7 0.12 0.4; 0.1 0.05 0.7 0.2];beta = [0.68 0.40 0.80 0.5; 0.15 0.34 0.35 0.4; 0.45 0.70 0.30 0.5; 1 1 1 1];y = A*beta;% For convenience I use the same y as input.%---------------------Method One-------------------AThreeInverse = inv(A(:1:3));tmp = -A(:4);AInverse1 = [AThreeInversetmp];yTmp = [y; 1 1 1 1];final1 = AInverse1*yTmp;errors = final1 - beta(1:3:);disp(errors);%-------------------Method Two---------------------% This method seems bullshit.AInverse2 = pinv(A);final2 = AInverse2*y;errors = final2(1:3:) - beta(1:3:);disp(errors);
这个问题的简化版本就是,已知A和y2,求beta2. 其中beta2也是4x4的方阵,且最后一行为1.
如果A的主对角线的比重较小,那么第一种方法的误差会很大。如何得到精确或者误差较小的值?有没有通用的较好的方法?
解决方案
已经解决了,当我提出该问题时,就觉得没戏
时间: 2024-08-19 18:02:00