Matlab左除和右除

来源:互联网 发布:矿山塌陷预测 软件 编辑:程序博客网 时间:2024/06/11 19:53

转自: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以前),而左除则不需要计算逆矩阵直接进行相除。通常右除要快 一点,但左 除可避免被矩阵的奇异性带来的麻烦。
比如下面的例子:
[plain] view plain copy
  1. >> G  
  2.   
  3. G =  
  4.   
  5.      1     2  
  6.   
  7. >> P  
  8.   
  9. P =  
  10.   
  11. 1   1  
  12.   
  13. >> Y=G*P  
  14.   
  15. Y =  
  16.   
  17.      3  
  18.   
  19. >> G\Y %左除,结果不是P,但也满足方程。所以 G\Y 结果不一。  
  20.   
  21. ans =  
  22.   
  23.          0  
  24. 1.5000  
  25. >> G*M  
  26.   
  27. ans =  
  28.   
  29. 2   %结果也为3  
  30.   
  31. %%%%%%%%%%%%%%%%%%%%%%%%matlab 6.0 以后右除也可以了,不在先inv(P)。  
  32. >> Y/P  
  33.   
  34. ans =  
  35.   
  36.      3     0  
  37.   
  38. >> E=Y/P  
  39.   
  40. E =  
  41.   
  42.      3     0  
  43.   
  44. >> E*P  
  45.   
  46. ans =  
  47.   
  48.      3  
  49.   
  50. >> P  
  51.   
  52. P =  
  53.   
  54.      1  
  55.      1  
  56.   
  57. 但如果inv(p) 就会出现  
  58. ??? Error using ==> inv  
  59. Matrix must be square.  

在看矩阵可逆情况:
[plain] view plain copy
  1. >> A  
  2.   
  3. A =  
  4.   
  5.      1     2  
  6.      2     1  
  7.   
  8. >> B  
  9.   
  10. B =  
  11.   
  12.      1     2  
  13.      2     3  
  14.   
  15. >> C=A*B  
  16.   
  17. C =  
  18.   
  19.      5     8  
  20.      4     7  
  21.   
  22. >> C/B    %%%= A  
  23.   
  24. ans =  
  25.   
  26.      1     2  
  27.      2     1  
  28. >> A\C    %%%=B  
  29.   
  30. ans =  
  31.   
  32.      1     2  
  33.      2     3  
  34.   
  35. >> C*inv(B)  %%  C/B=C*(inv(B))   (C右除B等于C乘以B的逆)  
  36.   
  37. ans =  
  38.   
  39.      1     2  
  40.      2     1  
  41.   
  42. >> inv(A)*C  %%验证了A\C=inv(A)*C (A左除C=A的逆乘以C)  
  43.   
  44. ans =  
  45.   
  46.     1.0000    2.0000  
  47. 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 0
原创粉丝点击