我是靠谱客的博主 标致帆布鞋,最近开发中收集的这篇文章主要介绍MATLAB 之 \(左除) /(右除),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近编写matlab 程序老是被  /  搞混淆。
运算符                                             名称                说明
/(向右倒称为右除)                    右除                AB=C    A=C/B
(向左倒称为左除)                    左除                AB=C    B=AC
BA 就是对应线性方程B*X=A 的解。

   左除

/   右除

1.  AB=inv(A)*B (A左除B=A的逆乘以B)

>> 35

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
>> GY %左除,结果不是P,但也满足方程。所以 GY 结果不一。
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
>> AC
%%%=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
%%验证了AC=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.     AC=inv(A)*C (A左除C=A的逆乘以C)

最后

以上就是标致帆布鞋为你收集整理的MATLAB 之 \(左除) /(右除)的全部内容,希望文章能够帮你解决MATLAB 之 \(左除) /(右除)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(73)

评论列表共有 0 条评论

立即
投稿
返回
顶部