使用numpy求解线性代数相关问题

在numpy中有numpy.array类型和numpy.mat类型,前者是数组类型,后者是矩阵类型。数组类型相乘是逐元素相乘,而矩阵类型相乘则是矩阵乘法。

以下使用numpy.array类型来进行线性代数问题求解。

矩阵的转置

A.T

python 复制代码
import numpy as np

A = np.array([[1, 2], [3, 4]])

A_T = A.T
print(A_T)

矩阵乘法

np.dot(A, B)或者是A @ B

python 复制代码
import numpy as np

A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
C = np.dot(A, B)
print(C)
D = A @ B
print(D)

逆矩阵

np.linalg.inv(A)

python 复制代码
import numpy as np

A = np.array([[1, 2], [3, 4]])

inv_A = np.linalg.inv(A)
print(inv_A)

求解行列式

np.linalg.det(A)

python 复制代码
import numpy as np

A = np.array([[1, 2], [3, 4]])

det_A = np.linalg.det(A)
print(det_A)

矩阵的秩和迹

矩阵的秩 是矩阵线性无关的行(或列)的最大数目,它反映了矩阵的"非零度"。矩阵的迹则是其主对角线上元素之和。

求解矩阵的秩:np.linalg.matrix_rank(A)

求解矩阵的迹:np.trace(A)

求解矩阵的迹,用于计算矩阵主对角线上元素的总和,较为通用。所以没有在linalg模块。

python 复制代码
import numpy as np

A = np.array([[1, 2], [3, 4]])

rank_A = np.linalg.matrix_rank(A)
print(rank_A)

tr_A = np.trace(A)
print(tr_A)

解线性方程组

np.linalg.solve(A, b)

python 复制代码
import numpy as np

A = np.array([[1, 2], [3, 4]])

b = np.array([1, 2])
# A x = b
x = np.linalg.solve(A, b)
print(x)

计算特征值和特征向量

特征值,特征向量 = np.linalg.eig(A)

python 复制代码
import numpy as np

A = np.array([[1, 2], [3, 4]])

eigenvalues, eigenvectors = np.linalg.eig(A)
print(eigenvalues)
print(eigenvectors)

奇异值分解

奇异值分解(Singular Value Decomposition,简称 SVD)是线性代数中一种重要的矩阵分解方法。它将一个矩阵分解为三个特定的矩阵乘积,这些矩阵具有明确的几何和代数意义。对于任意一个 m ∗ n m * n m∗n 的实数矩阵 A ,其奇异值分解可以表示为:
A = U S V T A = U S V^T A=USVT
U, S, Vt = np.linalg.svd(A)

python 复制代码
import numpy as np

A = np.array([[1, 2], [3, 4]])

U, S, Vt = np.linalg.svd(A)
print(U,S,Vt)
相关推荐
张祥6422889043 小时前
线性代数本质十笔记
笔记·线性代数·机器学习
技术民工之路5 小时前
MATLAB线性方程组,运算符、inv()、pinv()全解析
线性代数·算法·matlab
a3535413825 小时前
牛顿迭代法中的雅克比矩阵几何意义
线性代数·算法
FL171713145 小时前
黎曼几何/黎曼流形/黎曼度规/黎曼度量
线性代数
七夜zippoe5 小时前
NumPy向量化计算实战:从入门到精通的性能优化指南
python·性能优化·架构·numpy·广播机制·ufunc
小尧嵌入式6 小时前
【Linux开发二】数字反转|除数累加|差分数组|vector插入和访问|小数四舍五入及向上取整|矩阵逆置|基础文件IO|深入文件IO
linux·服务器·开发语言·c++·线性代数·算法·矩阵
好奇龙猫6 小时前
【大学院-筆記試験練習:线性代数和数据结构(13)】
数据结构·线性代数
砚边数影1 天前
AI数学基础(一):线性代数核心,向量/矩阵运算的Java实现
java·数据库·人工智能·线性代数·矩阵·ai编程·金仓数据库
Smilecoc1 天前
求极限中等价无穷小量的替换的理解
线性代数·概率论
minglie11 天前
倒立摆模型
线性代数