线性代数计算代码(python)

行向量 \([-1,0,1]\)

np.array([[-1,0,1]])

列向量 \([-1,0,1]^T\)

np.array([[-1],[0],[1]])

注意:无论是行向量还是列向量都需要双重方括号

求向量的点乘和叉乘

v1 = np.array([1, 0, 0])
v2 = np.array([0, 1, 0])
inner_product = np.dot(v1, v2)
cross_product = np.cross(v1, v2)

求逆矩阵

import numpy as np
from scipy import linalg

A = np.array([[ 1, 2],
              [ 3, 4]])
A_I = linalg.inv(A)
print(A_I)
print(np.dot(A,A_I))

求特征值与特征向量

import numpy as np
from scipy import linalg

A = np.array([[3, 1],
              [0, 2]])
eigen_value, eigen_evector = linalg.eig(A)
print(eigen_value)
print(eigen_evector)

奇异值分解

import numpy as np
A = np.array([[1,0,0],
              [0,1,0],
              [1,1,1]])
U,D,V = np.linalg.svd(A)  # 对矩阵A进行奇异值分解
D = np.array([[D[0],0,0], [0,D[1],0], [0,0,D[2]]])  # 将向量D转化为对角矩阵 
print(np.dot(np.dot(U,D),V) - A)  # 验证UDV==A

解方程 \(Ax=b\),其中 \(A\) 为可逆矩阵

import numpy as np

A = np.array([[1 , 2],
              [3 , 5]])
b = np.array([[1],
              [2]])
x = np.linalg.solve(A, b)
print(x)
posted @ 2020-09-22 00:15  Bill_H  阅读(548)  评论(0编辑  收藏  举报