Python计算特征值与特征向量案例+传统方法+雅可比Jacobi迭代法

目录

{1}几个例子🌰

{2}特征值

{3}奇异矩阵

{4}特征向量

{5}特征值和特征向量的计算方法

特征值性质 

特征向量性质

{6}巩固练习

{7}迭代法 

什么时候收敛?收敛速度如何?

{8}雅可比迭代法


{1}几个例子🌰

例1:

import numpy as np
A = np.array([[3,-1],[-1,3]])
print('输出矩阵A:\n',A)
eigenvalue, eigenvector = np.linalg.eig(A)
print('输出矩阵A特征值eigenvalue:\n',eigenvalue)
print('输出矩阵A特征向量eigenvector:\n',eigenvector)

输出:

输出矩阵A:
 [[ 3 -1]
 [-1  3]]
输出矩阵A特征值eigenvalue:
 [4. 2.]
输出矩阵A特征向量eigenvector:
 [[ 0.70710678  0.70710678]
 [-0.70710678  0.70710678]]

例2:

import numpy as np
A = np.array([[-1,1,0],[-4,3,0],[1,0,2]])
print('打印矩阵A:\n',A)
eigenvalue, eigenvector = np.linalg.eig(A)
print('打印矩阵A特征值:\n',eigenvalue)
print('打印矩阵A特征向量:\n',eigenvector)

输出:

打印矩阵A:
 [[-1  1  0]
 [-4  3  0]
 [ 1  0  2]]
打印矩阵A特征值:
 [2.+0.00000000e+00j 1.+1.57775604e-09j 1.-1.57775604e-09j]
打印矩阵A特征向量:
 [[ 0.        +0.00000000e+00j -0.40824829+3.22058103e-10j
  -0.40824829-3.22058103e-10j]
 [ 0.        +0.00000000e+00j -0.81649658+0.00000000e+00j
  -0.81649658-0.00000000e+00j]
 [ 1.        +0.00000000e+00j  0.40824829+3.22058103e-10j
   0.40824829-3.22058103e-10j]]

例子3:

import numpy as np
A = np.array([[-2,1,1],[0,2,0],[-4,1,3]])
print('输出矩阵A:\n',A)
eigenvalue, eigenvector = np.linalg.eig(A)
print('输出矩阵特征值:\n',eigenvalue)
print('输出矩阵特征向量:\n',eigenvector)

输出:

输出矩阵A:
 [[-2  1  1]
 [ 0  2  0]
 [-4  1  3]]
输出矩阵特征值:
 [-1.  2.  2.]
输出矩阵特征向量:
 [[-0.70710678 -0.24253563  0.30151134]
 [ 0.          0.          0.90453403]
 [-0.70710678 -0.9701425   0.30151134]]

{2}特征值

{3}奇异矩阵

判断矩阵是不是方阵(即行数和列数相等的矩阵。若行数和列数不相等,那就谈不上奇异矩阵和非奇异矩阵)。 

看矩阵的行列式|A|是否等于0,若等于0,称矩阵A为奇异矩阵;若不等于0,称矩阵A为非奇异矩阵。

若|A|≠0可知矩阵A可逆,可逆矩阵就是非奇异矩阵,非奇异矩阵也是可逆矩阵。 

若A为奇异矩阵,则AX=0有无穷解,AX=b有无穷解或者无解。

若A为非奇异矩阵,则AX=0有且只有唯一零解,AX=b有唯一解。

{4}特征向量

一旦己知矩阵的特征值,则通过解上图中式(3.73)给出的齐次线性方程组,可获得对应的特征向量。由于M-\lambda _{i}I是一个奇异矩阵,其对应的简约矩阵至少有1行元素全部为 0,因此,该方程组有无穷多个解。式(3.72) 一个明显的性质是,如果V_{i}是与特征值\lambda _{i}对应特征向量,则其与标量的乘积aV_{i}也为特征向量,a可以为任意非0常数,如果需要,特征向量可以写成单位长度为1的形式。

对于nxm矩阵M来说,当且仅当,对任意的i和j,有M_{ij}=M_{ji},则该矩阵M为对称矩阵。也就是说,一个矩阵的元素相对主对角线对称,则称该矩阵为对称矩阵。

由实数元素组成的对称矩阵M的特征值为实数。

对称矩阵M的两个不同特征值分别对应的特征向量正交。

{5}特征值和特征向量的计算方法

 

特征值性质 

特征向量性质

n 阶矩阵A 的互不相等的特征值\lambda _{1},\lambda _{2},...,\lambda _{m}对应的特征向量\xi _{1},\xi _{2},...,\xi _{m}线性无关。

\lambda _{i}为矩阵A的k重特征值,则属于特征值\lambda _{i}的线性无关的特征向量的个数不超过其特

征值的重数k

\xi _{1},\xi _{2}为特征值\lambda _{i}对应的特征向量,则其非零线性组合k_{1}\xi _{1}+k_{2}\xi _{2}k_{1},k_{2}为不全为零

的常数)也是属于特征值入\lambda _{i}的特征向量。

{6}巩固练习

例1

解答

import numpy as np
A = np.array([[1,2,2],[2,1,2],[2,2,1]])
print('输出矩阵A:\n',A)
eigenvalue, eigenvector = np.linalg.eig(A)
print('输出矩阵特征值:\n',eigenvalue)
print('输出矩阵特征向量:\n',eigenvector)
输出矩阵A:
 [[1 2 2]
 [2 1 2]
 [2 2 1]]
输出矩阵特征值:
 [-1.  5. -1.]
输出矩阵特征向量:
 [[-0.81649658  0.57735027  0.03478434]
 [ 0.40824829  0.57735027 -0.72385699]
 [ 0.40824829  0.57735027  0.68907264]]

例2

解答

import numpy as np
A = np.array([[2,-3,1],[1,-2,1],[1,-3,2]])
print('输出矩阵A:\n',A)
eigenvalue, eigenvector = np.linalg.eig(A)
print('输出矩阵特征值:\n',eigenvalue)
print('输出矩阵特征向量:\n',eigenvector)
输出矩阵A:
 [[ 2 -3  1]
 [ 1 -2  1]
 [ 1 -3  2]]
输出矩阵特征值:
 [1.45253876e-15 1.00000000e+00 1.00000000e+00]
输出矩阵特征向量:
 [[ 0.57735027  0.86169762 -0.01087995]
 [ 0.57735027  0.39386989  0.31294319]
 [ 0.57735027  0.31991206  0.94970953]]

例3

解答

import numpy as np
A = np.array([[2,-1,2],[5,-3,3],[-1,0,-2]])
print('输出矩阵A:\n',A)
eigenvalue, eigenvector = np.linalg.eig(A)
print('输出矩阵特征值:\n',eigenvalue)
print('输出矩阵特征向量:\n',eigenvector)
输出矩阵A:
 [[ 2 -1  2]
 [ 5 -3  3]
 [-1  0 -2]]
输出矩阵特征值:
 [-0.99999912+1.51927785e-06j -0.99999912-1.51927785e-06j
 -1.00000175+0.00000000e+00j]
输出矩阵特征向量:
 [[-0.57735027+8.77151627e-07j -0.57735027-8.77151627e-07j
   0.57735027+0.00000000e+00j]
 [-0.57735078+0.00000000e+00j -0.57735078-0.00000000e+00j
   0.57734926+0.00000000e+00j]
 [ 0.57734976-1.75430479e-06j  0.57734976+1.75430479e-06j
  -0.57735128+0.00000000e+00j]]

{7}迭代法 

什么时候收敛?收敛速度如何?

​​​​​​​

{8}雅可比迭代法

 

常数向量: 

 

 


参考:

https://www.cnblogs.com/brightyuxl/p/9296623.html

雅可比(Jacobi)迭代法 - 百度文库

利用Python计算各个矩阵的特征向量和最大特征值 python 求特征值_恋上一只猪的技术博客_51CTO博客

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值