单位矩阵与逆矩阵
1350字,阅读需时5分钟
来自专栏
课程/专栏

已知某家庭近3周对猪肉、牛肉、鸡蛋消费支出分别为154元、153元、153元,试计算该家庭每周对猪肉、牛肉、鸡蛋的需求量。

猪肉、牛肉、鸡蛋价格见下表:

11.png

可以列方程组求解,设该家庭每周对猪肉、牛肉、鸡蛋的需求分别为x千克、y千克、z千克,可列出三元一次方程组:

12.png

我们使用矩阵来解上面的方程组,方程组的系数用矩阵A表示,方程组的未知项用矩阵x表示,已知项用矩阵b表示。

13.png

方程组可表示为:

 14.png

若A、x和b不是矩阵,x很容易求解:

15.png

矩阵没有定义除法运算,1/A对矩阵运算来说没有意义,但我们可以引入单位矩阵和逆矩阵这两个概念,来完成矩阵的除法运算。

在我们学过的数字中,1是一个比较特别的数字,用数字1乘以任何数还是这个数。在矩阵运算中有没有类似于数字1的矩阵呢?这就是单位矩阵。

单位矩阵是一个n阶矩阵,该矩阵的主对角线(从矩阵的左上角到右下角这一斜线上的n 个元素的位置,叫做n 阶矩阵的主对角线)元素都为1,其余元素都为0。单位矩阵用大写字母I表示。下图是3阶单位矩阵。

16.png

用n阶单位矩阵乘以n阶矩阵A,结果还是n阶矩阵A,并且满足乘法交换律。

17.png

若一个n阶矩阵A与n阶矩阵B相乘的结果是n阶单位矩阵,则这个n阶B矩阵称为A矩阵的逆矩阵。即:

18.png

A的逆矩阵被记为:

19.png

设A为n阶矩阵,A与A的逆矩阵满足如下条件:

20.png

因此对于方程组Ax=b,我们可以得到x的解:

21.png

在上面的推导公式中,只要求出A的逆矩阵,再通过矩阵的乘法运算,就可以得到x的解。

要计算A的逆矩阵,可以使用伴随矩阵法、待定系数法和初等变换法。计算逆矩阵是一个非常复杂的过程,特别是计算3阶以上的逆矩阵。矩阵的运算可以交给Python程序来完成。

# 导入numpy库
import numpy as np
 
# 定义矩阵A
A = np.array([[15,28,5],
             [12,31,6],
             [13,29,7]
            ])
# 定义矩阵b
b = np.array([[154,153,153]])
 
# 计算矩阵A的逆矩阵inverseA
inverseA = np.linalg.inv(A)
# 输出A与其逆矩阵的乘积
print(np.matmul(inverseA,A))
 
# 求解x
x = np.matmul(inverseA,np.transpose(b))
# 输出解x
print(x)

输出结果如下图所示:

22.png

从输出结果可以看出,x=4,y=3,z=2。还注意看到矩阵A与其逆矩阵的乘积不完全是单位矩阵,这是因为逆矩阵在数字计算机上只能表现出有限的精度,因此逆矩阵主要是作为理论工具来使用。

n阶矩阵的逆矩阵也称为非奇异矩阵,否则称为奇异矩阵。判断一个n阶矩阵A是否可逆,要看矩阵A的行列式|A|是否等于零,若等于零,则矩阵A为奇异矩阵,否则为非奇异矩阵。若A为奇异矩阵,则AX=0有无穷解,AX=b有无穷解或者无解。若A为非奇异矩阵,则AX=0有且只有唯一零解,AX=b有唯一解

我要评论
全部评论