matlab除与左除,Matlab左除和右除
轉(zhuǎn)自:http://blog.csdn.net/clam_clam/article/details/7184991
最近編寫(xiě)matlab 程序老是被 \ ?/ ?搞混淆。
運(yùn)算符 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 名稱 ? ? ? ? ? ? ? ?說(shuō)明
/(向右倒稱為右除) ? ? ? ? ? ? ? ? ? ?右除 ? ? ? ? ? ? ? ?AB=C ? ?A=C/B
\(向左倒稱為左除) ? ? ? ? ? ? ? ? ? ?左除 ? ? ? ? ? ? ? ?AB=C ? ?B=A\C
B\A 就是對(duì)應(yīng)線性方程B*X=A 的解。
\?? 左除
/?? 右除
1.? A\B=inv(A)*B (A左除B=A的逆乘以B)
>> 3\5
ans =
1.6667
3的逆=三分之一,再乘以5.
2. A/B=A*(inv(B))?? (A右除B等於A乘以B的逆)
>> 3/5
ans =
0.6000
在傳統(tǒng)的matlab 算法中 右除是先計(jì)算矩陣的逆再相乘(matlab 6以前),而左除則不需要計(jì)算逆矩陣直接進(jìn)行相除。通常右除要快 一點(diǎn),但左 除可避免被矩陣的奇異性帶來(lái)的麻煩。
比如下面的例子:
>>?G
G?=
1?????2
>>?P
P?=
1???1
>>?Y=G*P
Y?=
3
>>?G\Y?%左除,結(jié)果不是P,但也滿足方程。所以?G\Y?結(jié)果不一。
ans?=
0
1.5000
>>?G*M
ans?=
2???%結(jié)果也為3
%%%%%%%%%%%%%%%%%%%%%%%%matlab?6.0?以后右除也可以了,不在先inv(P)。
>>?Y/P
ans?=
3?????0
>>?E=Y/P
E?=
3?????0
>>?E*P
ans?=
3
>>?P
P?=
1
1
但如果inv(p)?就會(huì)出現(xiàn)
????Error?using?==>?inv
Matrix?must?be?square.
在看矩陣可逆情況:
>>?A
A?=
1?????2
2?????1
>>?B
B?=
1?????2
2?????3
>>?C=A*B
C?=
5?????8
4?????7
>>?C/B????%%%=?A
ans?=
1?????2
2?????1
>>?A\C????%%%=B
ans?=
1?????2
2?????3
>>?C*inv(B)??%%??C/B=C*(inv(B))???(C右除B等於C乘以B的逆)
ans?=
1?????2
2?????1
>>?inv(A)*C??%%驗(yàn)證了A\C=inv(A)*C?(A左除C=A的逆乘以C)
ans?=
1.0000????2.0000
2.0000????3.0000
總結(jié):
為了方便記憶對(duì)哪個(gè)矩陣進(jìn)行逆運(yùn)算,規(guī)律如下:
在可逆形式下轉(zhuǎn)換成逆矩陣,右除對(duì)右邊矩陣逆,左除對(duì)左邊矩陣逆。
1.??? ?C/B=C*(inv(B))??(C右除B等於C乘以B的逆)
2. ? ??A\C=inv(A)*C (A左除C=A的逆乘以C)
總結(jié)
以上是生活随笔為你收集整理的matlab除与左除,Matlab左除和右除的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 生成相关矩阵
- 下一篇: matlab 圆和直线的交点,用matl