【Python小程序】求解2 * 2矩阵的逆矩阵

一、内容简介

使用Python求解2 * 2矩阵的逆矩阵。

二、求解方法

我们使用邻接矩阵法来求解2 * 2矩阵的逆矩阵。
【Python小程序】求解2 * 2矩阵的逆矩阵_第1张图片
det(A): 矩阵A的行列式
adj(A): 矩阵A的邻接矩阵
对于2*2矩阵A
【Python小程序】求解2 * 2矩阵的逆矩阵_第2张图片
我们有
【Python小程序】求解2 * 2矩阵的逆矩阵_第3张图片

三、Python代码

基于上述求解方法,我们可以写出Python代码如下:

# 导入相关包
import numpy as np
from numpy import shape


A = np.zeros((2, 2), dtype=float)  # 定义矩阵A
print(A)
print(shape(A))

# 用户输入矩阵A
print("Enter Matrix A: ")
for i in range(0, 2):
    for j in range(0, 2):
        A[i][j] = float(input())  # 默认输入值为浮点类型

# 计算A的行列式值
det_A = A[0][0]*A[1][1] - A[1][0]*A[0][1]
print("Determinant of A: ")
print(det_A)

# 如果A的行列式不为0
if det_A != 0:
    A_inv = np.zeros((2, 2), dtype=float)
    print(A_inv)
    print(shape(A_inv))
    # 计算A的逆矩阵
    A_inv[0][0] = A[1][1] / det_A
    A_inv[0][1] = -A[0][1] / det_A
    A_inv[1][0] = -A[1][0] / det_A
    A_inv[1][1] = A[0][0] / det_A
    print("Inverse matrix of A: ")
    print(A_inv)

# det(A) = 0,说明A没有逆矩阵
else:
    print("A has no inverse matrix")

四、运行实例

例1:
A为2阶单位矩阵I2:
【Python小程序】求解2 * 2矩阵的逆矩阵_第4张图片【Python小程序】求解2 * 2矩阵的逆矩阵_第5张图片
程序求解结果:
【Python小程序】求解2 * 2矩阵的逆矩阵_第6张图片
例2:
A为一般2 * 2浮点矩阵:
【Python小程序】求解2 * 2矩阵的逆矩阵_第7张图片

【Python小程序】求解2 * 2矩阵的逆矩阵_第8张图片
程序求解结果(保留5位小数):
【Python小程序】求解2 * 2矩阵的逆矩阵_第9张图片
例3:
A为一般浮点矩阵,但det(A)=0:

【Python小程序】求解2 * 2矩阵的逆矩阵_第10张图片

程序输出:
【Python小程序】求解2 * 2矩阵的逆矩阵_第11张图片

你可能感兴趣的:(python,数学,线性代数,python,矩阵,开发语言)