Python语言之Python与矩阵论——特征值与特征向量
小标 2018-08-09 来源 : 阅读 2008 评论 0

摘要:本文主要向大家介绍了Python语言之Python与矩阵论——特征值与特征向量,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

本文主要向大家介绍了Python语言之Python与矩阵论——特征值与特征向量,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

Python计算特征值与特征向量案例
例子1

import numpy as np
A = np.array([[3,-1],[-1,3]])
print('打印A:\n{}'.format(A))
a, b = np.linalg.eig(A)
print('打印特征值a:\n{}'.format(a))
print('打印特征向量b:\n{}'.format(b))

打印A:
[[ 3 -1]
 [-1  3]]
打印特征值a:
[4. 2.]
打印特征向量b:
[[ 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{}'.format(A))
a, b = np.linalg.eig(A)
print('打印特征值a:\n{}'.format(a))
print('打印特征向量b:\n{}'.format(b))

打印A:
[[-1  1  0]
 [-4  3  0]
 [ 1  0  2]]
打印特征值a:
[2. 1. 1.]
打印特征向量b:
[[ 0.          0.40824829  0.40824829]
 [ 0.          0.81649658  0.81649658]
 [ 1.         -0.40824829 -0.40824829]]
例子3

import numpy as np
A = np.array([[-2,1,1],[0,2,0],[-4,1,3]])
print('打印A:\n{}'.format(A))
a, b = np.linalg.eig(A)
print('打印特征值a:\n{}'.format(a))
print('打印特征向量b:\n{}'.format(b))

打印A:
[[-2  1  1]
 [ 0  2  0]
 [-4  1  3]]
打印特征值a:
[-1.  2.  2.]
打印特征向量b:
[[-0.70710678 -0.24253563  0.30151134]
 [ 0.          0.          0.90453403]
 [-0.70710678 -0.9701425   0.30151134]]
特征值

知识点:【奇异矩阵】


判断矩阵是不是方阵(即行数和列数相等的矩阵。若行数和列数不相等,那就谈不上奇异矩阵和非奇异矩阵)。 
看矩阵的行列式|A|是否等于0,若等于0,称矩阵A为奇异矩阵;若不等于0,称矩阵A为非奇异矩阵。


若|A|≠0可知矩阵A可逆,可逆矩阵就是非奇异矩阵,非奇异矩阵也是可逆矩阵。 
若A为奇异矩阵,则AX=0有无穷解,AX=b有无穷解或者无解。
若A为非奇异矩阵,则AX=0有且只有唯一零解,AX=b有唯一解。

特征向量





总结:

特征值和特征向量的计算方法:

特征值与特征向量

特征值的性质:

特征向量的性质

 
例题1

 


import numpy as np
A = np.array([[1,2,2],[2,1,2],[2,2,1]])
print('打印A:\n{}'.format(A))
a, b = np.linalg.eig(A)
print('打印特征值a:\n{}'.format(a))
print('打印特征向量b:\n{}'.format(b))

打印A:
[[1 2 2]
 [2 1 2]
 [2 2 1]]
打印特征值a:
[-1.  5. -1.]
打印特征向量b:
[[-0.81649658  0.57735027  0.        ]
 [ 0.40824829  0.57735027 -0.70710678]
 [ 0.40824829  0.57735027  0.70710678]]

例题2



import numpy as np
A = np.array([[2,-3,1],[1,-2,1],[1,-3,2]])
print('打印A:\n{}'.format(A))
a, b = np.linalg.eig(A)
print('打印特征值a:\n{}'.format(a))
print('打印特征向量b:\n{}'.format(b))

打印A:
[[ 2 -3  1]
 [ 1 -2  1]
 [ 1 -3  2]]
打印特征值a:
[2.09037533e-15+0.00000000e+00j 1.00000000e+00+5.87474805e-16j
 1.00000000e+00-5.87474805e-16j]
打印特征向量b:
[[0.57735027+0.j         0.84946664+0.j         0.84946664-0.j        ]
 [0.57735027+0.j         0.34188085-0.11423045j 0.34188085+0.11423045j]
 [0.57735027+0.j         0.17617591-0.34269135j 0.17617591+0.34269135j]]
例题3




import numpy as np
A = np.array([[2,-1,2],[5,-3,3],[-1,0,-2]])
print('打印A:\n{}'.format(A))
a, b = np.linalg.eig(A)
print('打印特征值a:\n{}'.format(a))
print('打印特征向量b:\n{}'.format(b))

打印A:
[[ 2 -1  2]
 [ 5 -3  3]
 [-1  0 -2]]
打印特征值a:
[-0.99998465+0.00000000e+00j -1.00000768+1.32949166e-05j
 -1.00000768-1.32949166e-05j]
打印特征向量b:
[[ 0.57735027+0.00000000e+00j  0.57735027+7.67588259e-06j
   0.57735027-7.67588259e-06j]
 [ 0.57735913+0.00000000e+00j  0.57734584+1.53518830e-05j
   0.57734584-1.53518830e-05j]
 [-0.57734141+0.00000000e+00j -0.5773547 +0.00000000e+00j
  -0.5773547 -0.00000000e+00j]]
本文由职坐标整理并发布,希望对同学们学习Python有所帮助,更多内容请关注职坐标编程语言Python频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程