使用scipy.linalg实现线性代数运算: 给定方阵arr,计算其行列式; 给定方阵arr,计算方阵的逆; 给定方阵arr,计算奇异阵的逆;(若行列式为0,则该计算会引发报错) 给定方阵arr,计算其奇异值分解结果,并将结果进行组合运算还原为原始阵,使用np.allclose()函数进行鉴定。
时间: 2023-05-31 14:06:17 浏览: 228
learn-linalg:学习一些数值线性代数
import numpy as np
from scipy.linalg import det, inv, pinv, svd
# 给定方阵arr,计算其行列式
arr = np.array([[1, 2], [3, 4]])
d = det(arr)
print("行列式:", d)
# 给定方阵arr,计算方阵的逆
arr = np.array([[1, 2], [3, 4]])
arr_inv = inv(arr)
print("逆矩阵:", arr_inv)
# 给定方阵arr,计算奇异阵的逆
arr = np.array([[1, 2], [2, 4]])
arr_pinv = pinv(arr)
print("奇异阵逆矩阵:", arr_pinv)
# 给定方阵arr,计算其奇异值分解结果,并将结果进行组合运算还原为原始阵
arr = np.array([[1, 2], [3, 4]])
U, S, Vt = svd(arr)
S = np.diag(S)
arr_reconstruct = U.dot(S).dot(Vt)
print("还原矩阵:", arr_reconstruct)
print("是否相等:", np.allclose(arr, arr_reconstruct))
阅读全文