numpy矩阵的特征值和特征向量,奇异值分解

1. 特征值和特征向量

对于n阶方阵A,如果存在数a和非零n维列向量x,使得Ax=ax,则称a是矩阵A的一个特征值,x是矩阵A属于特征值a的特征向量
eg1:

import numpy as np
A = np.mat('1 6 3 7;3 8 4 6;1 4 9 5;6 8 3 5')
print('原矩阵:A=\n',A)

#提取特征值,特征向量
eigvals,eigvecs = np.linalg.eig(A)
print('特征值数组:\n',eigvals)
print('特征向量:\n',eigvecs)

#逆向推导原矩阵
A2 = eigvecs* np.diag(eigvals)*eigvecs.I
print('通过特征值特征向量反推原矩阵:A2=\n',A2)
2. 奇异值分解(svd)

有一个矩阵M,可以分解为3个矩阵U、S、V,使得U x S x V等于M。U与V都是正交矩阵(乘以自身的转置矩阵结果为单位矩阵)。那么S矩阵主对角线上的元素称为矩阵M的奇异值,其它元素均为0。

import numpy as np
M = np.mat('4 11 14; 8 7 -2')
# 奇异值分解
U, sv, V = np.linalg.svd(M, full_matrices=False)
print(U * U.T)
print(V * V.T)
print(sv)

#利用奇异值,和正交矩阵重构原矩阵。
S = np.diag(sv)
print(S)
print(U * S * V)
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值