matlab除与左除,Matlab左除和右除
轉自:http://blog.csdn.net/clam_clam/article/details/7184991
最近編寫matlab 程序老是被 \ ?/ ?搞混淆。
運算符 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 名稱 ? ? ? ? ? ? ? ?說明
/(向右倒稱為右除) ? ? ? ? ? ? ? ? ? ?右除 ? ? ? ? ? ? ? ?AB=C ? ?A=C/B
\(向左倒稱為左除) ? ? ? ? ? ? ? ? ? ?左除 ? ? ? ? ? ? ? ?AB=C ? ?B=A\C
B\A 就是對應線性方程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
在傳統的matlab 算法中 右除是先計算矩陣的逆再相乘(matlab 6以前),而左除則不需要計算逆矩陣直接進行相除。通常右除要快 一點,但左 除可避免被矩陣的奇異性帶來的麻煩。
比如下面的例子:
>>?G
G?=
1?????2
>>?P
P?=
1???1
>>?Y=G*P
Y?=
3
>>?G\Y?%左除,結果不是P,但也滿足方程。所以?G\Y?結果不一。
ans?=
0
1.5000
>>?G*M
ans?=
2???%結果也為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)?就會出現
????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??%%驗證了A\C=inv(A)*C?(A左除C=A的逆乘以C)
ans?=
1.0000????2.0000
2.0000????3.0000
總結:
為了方便記憶對哪個矩陣進行逆運算,規律如下:
在可逆形式下轉換成逆矩陣,右除對右邊矩陣逆,左除對左邊矩陣逆。
1.??? ?C/B=C*(inv(B))??(C右除B等於C乘以B的逆)
2. ? ??A\C=inv(A)*C (A左除C=A的逆乘以C)
總結
以上是生活随笔為你收集整理的matlab除与左除,Matlab左除和右除的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 生成相关矩阵
- 下一篇: matlab 圆和直线的交点,用matl