MATLAB 中的左除( )和 右除( )

2021-06-19 11:21:38 字數 1071 閱讀 4635

matlab中有個很有意思的運算子,那就是左除和右除

這裡有個簡單的記憶方法:

先想,有根棍子,|

然後左除是\,右除是/

你就想左除了棍子向左邊倒了(\),右除就是向右邊倒了(/),這樣應該比較好記,

下面說說使用吧。

先是左除。

用乙個簡單的線性方程組說明:

ax=b

則x=a\b,如:

>> a=[0 -7 5;0 4 7;-4 3 -7];

>> b=[50 -30 40]';

>> x=a\b

x =-15.1812

-7.2464

-0.1449

相當於在方程的左右兩邊同時乘以了inv(a),左乘逆矩陣,就是左除了。

那麼和x=inv(a)*b有什麼區別呢?

我不知道,不過根據moler(對,就是matlab的主要發明者)先生的建議,盡量使用左除,而不是inv函式,理由嘛,可能是具有更好的數值穩定性吧,不過具體是什麼,你自己去問他吧。

根據相關資料,matlab會根據矩陣a的形式判斷,如果a具有(1)稀疏和帶狀 (2)三角(或者簡單變換能轉化為三角形式)(3)對稱,則使用對應的高效演算法,例如帶狀求解器、向後和向前回代,楚列斯基分解等。如果不滿足上述條件,再使用完整的高斯消元過程。

類似的,右除就很容易理解了,其實相當於右乘逆矩陣,例如:

a =

0    -7     5

0     4     7

-4     3    -7

b =1     3     2

5     1    -2

4     4     1

>> c=a*b

c =-15    13    19

48    32    -1

-17   -37   -21

那麼求a,可以使用c*inv(b),使用右除就是:

>> c/b

ans =

0       -7.0000    5.0000

0        4.0000    7.0000

-4.0000    3.0000   -7.0000

MATLAB中矩陣左除 右除和求逆的關係

matlab提供了兩種除法運算 左除 和右除 一般情況下,x a b是方程a x b的解,而x b a是方程x a b的解。例 a 1 2 3 4 2 6 7 4 9 b 4 1 2 x a b 則顯示 x 1.5000 2.0000 0.5000 如果a為非奇異矩陣,則a b和b a可通過a的逆矩...

MATLAB 之 (左除) (右除)

最近編寫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的逆 三分之...

MATLAB 之 (左除) (右除)

最近編寫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的逆 三分之...