2018-06-26-matlab-inversion

发布时间 2023-05-09 20:27:13作者: qiuhlee
layout: post
title: "matlab求逆运算:左除,右除,inv,pinv的用法及区别"
author: "heleiqiu"
header-style: text
tags: [matlab, 求逆, 左除, 右除, inv, pinv]
excerpt: 介绍矩阵求逆运算:左除和右除,inv,pinv的Matlab用法及区别。

矩阵求逆可以使用左除(\)和右除(/),inv,pinv
首先明白需要求逆的矩阵A是否为奇异方阵

inv

若A为非奇异方阵,则存在逆矩阵,可利用inv求逆:

inv( A )

pinv

若需要求逆的矩阵A为奇异矩阵或者非方阵,则并不存在逆矩阵,此时可以使用pinv(A)求其伪逆(广义逆):

X = pinv( A ), X = pinv( A, tol )

其中tol为误差
若A为非奇异矩阵,请不要使用pinv求逆,虽然计算结果相同,即

inv( A ) = pinv( A )

但pinv的计算复杂度较高。

左除(\)和右除(/)

对于非奇异方阵A,若需如下运算:

inv( A ) * B

则可以用矩阵左除(\)代替,即:

A \ B = inv( A ) * B

但需注意左除(\)运算时,行数必须相同

同样,若需如下运算:

B * inv( A )

则可以矩阵右除(/)代替,即:

B / A = B * inv( A )

但需注意右除(/)运算时,列数必须相同