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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值