矩阵运算
363 2024-06-29 15:20
二阶矩阵求逆阵:
import numpy as np
def inverse_matrix(matrix):
B = np.array([['d', '-b'], ['-c', 'a']])
return B
# 测试
A = np.array([['a', 'b'], ['c', 'd']])
inv_A = inverse_matrix(A)
# 用python写一个求逆矩阵的函数
if inv_A is not None:
print("原矩阵 A:")
print(A)
for i in range(A.shape[0]):
for j in range(A.shape[1]):
print("A[{}]][{}]={}".format(i+1, j+1, A[i][j]))
print("逆矩阵 (A 的逆):")
print(inv_A)
矩阵相乘
import numpy as np
def matrix_multiply(A, B):
result = np.zeros((A.shape[0], B.shape[1]))
# 使用三重嵌套的 for 循环来模拟矩阵相乘的操作
for i in range(A.shape[0]):
for j in range(B.shape[1]):
for k in range(A.shape[1]):
result[i][j] += A[i][k] * B[k][j]
return result
# 定义两个矩阵 A 和 B
A = np.array([[1, 2, 3],
[4, 5, 6]])
B = np.array([[7, 8],
[9, 10],
[11, 12]])
# 通过 for 循环实现矩阵相乘
C = matrix_multiply(A, B)
# 打印结果
# 用for循环模拟矩阵相乘
print("矩阵 A:")
print(A)
print("矩阵 B:")
print(B)
print("矩阵相乘结果 C:")
print(C)
代数余子式求逆矩阵
import numpy as np
def determinant(matrix):
# 计算矩阵的行列式
return np.linalg.det(matrix)
def cofactor_matrix(matrix):
# 计算代数余子式矩阵
cofactors = np.zeros(matrix.shape)
for i in range(matrix.shape[0]):
for j in range(matrix.shape[1]):
minor = np.delete(np.delete(matrix, i, axis=0), j, axis=1)
cofactors[i, j] = ((-1) ** (i + j)) * np.linalg.det(minor)
return cofactors
def inverse_matrix(matrix):
# 求逆矩阵
det = determinant(matrix)
if det == 0:
print("Error: The matrix is singular and cannot be inverted.")
return None
else:
cofactors = cofactor_matrix(matrix)
adjoint = cofactors.T
inv_matrix = adjoint / det
return inv_matrix
# 测试
A = np.array([[1, 2], [3, 4]])
inv_A = inverse_matrix(A)
# 用代数余子式求逆矩阵
if inv_A is not None:
print("原矩阵 A:")
print(A)
print("逆矩阵 A 的逆:")
print(inv_A)
全部评论