numpy线性代数

2020-05-24  本文已影响0人  AndyDennisRob

这两周学习numpy,确实感觉在一些数学问题上很方便.

案例一,求解方阵的特征值和特征向量.

\begin{bmatrix} 1 & 5 & 9 \\ 3 & 2 & 8 \\ 5 & 7 & 4 \end{bmatrix} \tag{1}

求解代码如下:

import numpy as np
array = np.array([[1, 5, 9], [3, 2, 8], [5, 7, 4]])
r1, r2 = np.linalg.eig(array)
# 特征值
print(r1)
# 特征向量
print(r2)

运行结果:


运行结果


求解矩阵行列式

"""
numpy 计算行列式子
"""
import numpy as np

# a = [[1, 5, 9],
#      [3, 2, 8],
#      [5, 7, 4]]
a = [[1, 5],
     [2, 4]]
a = np.array(a)
# 行列式
det = np.linalg.det(a)
print(det)

程序输出结果:


结果

补充一下二维和三维的行列式值。


二维矩阵行列式
三维矩阵行列式


求解线性方程组

\left\{ \begin{array}{l} x+y=10 \\ 2000x+1500y=18000 \end{array} \right.

求解代码入下:

import numpy as np
A = np.array([[1, 1], [2000, 1500]])
B = np.array([10, 18000])
result = np.linalg.solve(A, B)
print(result)

运行结果:

运行结果
就是方程组的解为


求向量的长度

比如求向量 [3,4]的长度

import numpy as np
np.linalg.norm([3, 4])

输出结果就是 5.0.


奇异值分解

对下列矩阵进行奇异值分解
\begin{bmatrix} 5 & 6 & 9 \\ 3 & 8 & 4 \\ \end{bmatrix} \tag{2}
代码如下:

import numpy as np
A = np.array([[5, 6, 9], [3, 8, 4]])
p, sigma, q = np.linalg.svd(A)
print(p)
print(sigma)
print(q)

运行结果:

奇异值分解
这里呢, A等于三个矩阵的内积

加入A是一个 m × n 的矩阵,那么p, sigma, q的维度分别是
m × m, m × n, n × n 。



角度和弧度转换

import numpy as np
# 结果90
np.rad2deg(np.pi/2)
# 结果1.5707963267948966
np.deg2rad(90)
上一篇下一篇

猜你喜欢

热点阅读