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里是要求的未知数啊,是应该用[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分别就是你给出的那俩数组,算完以后放在了矩阵之中而已,所以严格来说,第二个进行的运算是矩阵元素对应相乘