1.python上实现SVD分解
import numpy as np
# 创建一个矩阵 A
A = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# 执行奇异值分解
U, S, VT = np.linalg.svd(A)
# 构建对角矩阵 Sigma
Sigma = np.diag(S)
# 重构原始矩阵
A_reconstructed = np.dot(U, np.dot(Sigma, V))
# 打印结果
print("Original Matrix A:")
print(A)
print("\nReconstructed Matrix (U * Sigma * VT):")
print(A_reconstructed)
# 检查两个矩阵是否相同
if np.allclose(A, A_reconstructed):
print("\nThe matrices are identical.")
else:
print("\nThe matrices are not identical.")
% 创建一个矩阵 A
A = [1, 2, 3; 4, 5, 6; 7, 8, 9];
% 执行奇异值分解,直接进行SVD分解,得到的是V,而非VT
[U, S, V] = svd(A);
% 构建对角矩阵 Sigma
Sigma = diag(S);
% 将 U、Sigma 和 V 相乘
result = U * S * V';
% 打印结果
disp('Original Matrix A:')
disp(A)
disp('Reconstructed Matrix (U * Sigma * V''):')
disp(result)
% 检查两个矩阵是否相同
if isequal(A, result)
disp('The matrices are identical.')
else
disp('The matrices are not identical.')
end
disp(V')