MATLAB中:左右除法、逆inv、广义逆pinv的区别

以下是通过实验得出的一些结论:


  1. 左除行相等,右除列相等。只要满足此条件便可运算,且左、右除意义不相同!
  2. inv()仅针对“非奇异方阵|A|≠0”,使得A^(-1) A=AA^(-1)=I 成立。
  3. 广义逆(准确叫伪逆)pinv()可针对一切矩阵,如:非奇异方阵(|A|≠0)、奇异方阵(|A|=0)、长方阵(m≠n),使得ABA=A,BAB=B(请参考评论更为准确)。当A为非奇异方阵时,inv(A)=pinv(A)
  4. 综合来看。①当A为非奇异方阵,A\b=inv(A)*b=pinv(A)*b;②当A为奇异方阵,除法A\b异常→“工作精度奇异”,伪逆pinv(A)*b正常工作;③当A为长方阵且满足除法条件时,除法、广义逆都正常工作但结果不同(都正确)。

  所以,单纯从能力大小看:广义逆->>>除法->>>逆,即使用pinv(A)更普适(不考虑程序性能)。

你可能感兴趣的:(MATLAB备忘录)