matlab 矩阵相乘方程

来源:百度知道 编辑:UC知道 时间:2024/06/23 05:37:33
比如有一个矩阵A,里面都是已知参量,还有一个列矩阵B,里面都是未知参数,还有一个C矩阵,里面也都是已知参量,已知A*B=C,用MATLAB怎么解B里的未知数啊???
可矩阵B里是要求的未知数啊,是应该用[w2 w3 w4 l1]=solve('B=A\C')这样的形式么?

用反除'\'。
B=A\C
或者B=pinv(A)*C
pinv(A)是求A的广义逆矩阵。

例如
>> A=rand(3)

A =

0.4103 0.3529 0.1389
0.8936 0.8132 0.2028
0.0579 0.0099 0.1987

>> C=rand(3,1)

C =

0.6038
0.2722
0.1988

>> B=A\C

B =

42.3404
-43.9135
-9.1549

>> A*B % 验证结果,等于C

ans =

0.6038
0.2722
0.1988

方案就是利用普通的除法,然后再将B的值分别得赋予wi。这个方法适用于wi的数目不是特别多

如B=A\C;%或者B=inv(A)*C;
w2=B(1);w3=B(2);w4=B(3);w1=B(4);

因为第一个是标准的矩阵乘法运算,而第二个是矩阵的每一个元素都是x*y得到的,x,y分别就是你给出的那俩数组,算完以后放在了矩阵之中而已,所以严格来说,第二个进行的运算是矩阵元素对应相乘