python计算矩阵SVD

要计算一个矩阵的奇异值分解(SVD)并得到对角矩阵 ,以及正交矩阵,可以使用如 NumPy 这样的科学计算库。NumPy 提供了一个 np.linalg.svd 函数,它能够对任意形状的矩阵进行奇异值分解。

下面是计算 SVD 的基本步骤:

导入 NumPy 库:

import numpy as np

创建或提供一个矩阵:
假设你有一个矩阵 X。如果你还没有这个矩阵,你可以创建一个示例矩阵,比如:

X = np.array([[1, 2], [3, 4], [5, 6]])

使用 np.linalg.svd 计算 SVD:

U, S, VT = np.linalg.svd(X, full_matrices=False)

这里,U 是一个正交矩阵,S 是奇异值的数组,VT 是另一个正交矩阵的转置(V 的转置)。full_matrices=False 参数表示你想要进行经济型 SVD,这在处理非方阵时特别有用。

将奇异值数组转换为对角矩阵:
奇异值数组 S 需要被转换为对角矩阵形式。在 NumPy 中,你可以这样做:

Sigma = np.diag(S)
image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容