numpy.linalg包提供了函数
eigh(A)\text{eigh(A)}eigh(A)
计算并返回参数A表示的对称矩阵的特征值v和由特征向量经过标准正交化后构成正交矩阵P。其中返还的特征值数组v中元素按升序排列,P中的各列对应属于v中特征值的特征向量。
例1 用Python计算使得矩阵A=(22−225−4−2−45)\boldsymbol{A}=\begin{pmatrix}2&2&-2\\2&5&-4\\-2&-4&5\end{pmatrix}A=⎝⎛​22−2​25−4​−2−45​⎠⎞​与对角阵合同的正交矩阵P\boldsymbol{P}P。

import numpy as np                              #导入numpy
np.set_printoptions(precision=4, suppress=True) #设置输出精度
A=np.array([[2,2,-2],                           #设置矩阵A[2,5,-4],[-2,-4,5]])
v,P=np.linalg.eigh(A)                           #计算A的特征值和正交特征向量
print(v)
print(P)
print(np.matmul(np.matmul(P.T,A),P))            #验证A与对角阵合同

程序的第3~5行设置矩阵数据A。第6行调用numpy.linalg包的函数eigh,计算矩阵参数A的特征值v和正交特征向量组成的正交矩阵P。第7、8行分别输出v和P,第9行调用numpy的matmul函数计算矩阵的积PTAP\boldsymbol{P}^{\text{T}}\boldsymbol{AP}PTAP并输出。运行程序,输出

[ 1.  1. 10.]
[[-0.9314 -0.1464 -0.3333][ 0.1231  0.7351 -0.6667][-0.3426  0.6619  0.6667]]
[[ 1. -0. -0.][ 0.  1.  0.][-0.  0. 10.]]

第1行输出的是A\boldsymbol{A}A的3个特征值1,1,10。接下来输出的是正交特征向量构成的正交阵P\boldsymbol{P}P。最后输出验证了PTAP\boldsymbol{P}^{\text{T}}\boldsymbol{AP}PTAP确实为由特征值构成的对角阵(1000100010)\begin{pmatrix}1&0&0\\0&1&0\\0&0&10\end{pmatrix}⎝⎛​100​010​0010​⎠⎞​。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

线性代数Python计算:对称矩阵的对角化相关推荐

  1. 线性代数Python计算导引

    线性代数是深度学习的数学基础之一,理论完备,方法经典.Python是当下AI系统首选开发工具,易学好用.教学中攒下两者结合的多个课题,覆盖大学理工科<线性代数>课程内容,写成博文以飨读者. ...

  2. python判断矩阵是否对称_矩阵的特征分解(推导+手算+python计算+对称矩阵的特征分解性质)...

     1. 前言 最近几天一直在学习矩阵的知识,恶补了特征分解和SVD算法,发现网上很多资料都是不全的,所以想记录一下这里面的特征分解推导过程. 2.矩阵的进阶知识 2.1 特征分解(谱分解)=> ...

  3. 矩阵的特征分解(推导+手算+python计算+对称矩阵的特征分解性质)

    文章目录 1. 前言 2.矩阵的进阶知识 2.1 特征分解(谱分解)=>只可以用在方阵上 2.1.1 特征分解的原理 2.1.2 特征分解的合理性 2.1.3 特征分解的计算 2.1.4 对称矩 ...

  4. 线性代数Python计算:向量的模及向量间的夹角

    numpy的dot函数计算两个向量α\boldsymbol{\alpha}α和β\boldsymbol{\beta}β的内积: dot(a,b)\text{dot(a,b)}dot(a,b) 两个参数 ...

  5. 线性代数Python计算:向量空间坐标变换

    向量空间中两组基AAA和BBB之间相互线性表示构成的矩阵为过渡阵.若两组基中之一为自然基,譬如AAA为自然基,则基BBB的各向量在自然基下的坐标即构成基AAA到基BBB的过渡阵P\boldsymbol ...

  6. 线性代数Python计算:向量组的最大无关组计算

    对给定的mmm-维向量组 α1=(a11a21⋮am1),α2=(a12a22⋮am2),⋯,αn=(a1na2n⋮amn)\boldsymbol{\alpha}_1=\begin{pmatrix}a ...

  7. 线性代数Python计算:线性变换的值域与核

    设数域PPP上的向量空间PnP^nPn的线性变换TTT,在某个基下其变换矩阵A=(α1,α2,⋯,αn)\boldsymbol{A}=(\boldsymbol{\alpha}_1,\boldsymbo ...

  8. 线性代数Python计算:Python的布尔代数

    设B={0,1}B=\{0,1\}B={0,1},定义BBB上的或.与.非运算如下 构成布尔代数(B,∨,∧,¬)(B,\vee,\wedge,\neg)(B,∨,∧,¬). Python中所有的关系 ...

  9. 线性代数Python计算:消元法与矩阵初等变换

    对线性方程组 {a11x1+a12x2+⋯+a1nxn=b1a21x1+a22x2+⋯+a2nxn=b2⋯⋯⋯am1x1+am2x2+⋯+amnxn=bn\begin{cases}a_{11}x_1+ ...

  10. 线性代数Python计算:Python数系

    Python作为计算机程序设计语言,受计算机物理结构的限制,无法表示出完整的整数集合ℤ.有理数集合ℚ.实数集合ℝ及复数集合ℂ.然而,Python所模拟的ℤ.ℚ.ℝ和ℂ在大多数实际应用中可以满足需求. ...

最新文章

  1. solve Ax+By+C=0
  2. 在java中构建高效的结果缓存
  3. 监督学习 | ID3 C4.5 决策树原理
  4. 小c下载样式插件Xiaocstyle适用于emlog系统
  5. linux lockf文件锁存在,进程停止,Linux文件锁学习-flock, lockf, fcntl
  6. linux命令 选项,Linux常用命令及选项
  7. lua反射的一个例子
  8. 机器人开发--编码器
  9. AXI总线的一些知识
  10. HDU - 1234 开门人和关门人
  11. 计算机房宣传标语,机房安全标语
  12. day03_20170514_字符编码/文件存储/函数(一)
  13. Vue在线编译器:vue-running
  14. 华为服务器centos安装系统版本,华为服务器安装centos7.4
  15. 服务器宝塔安装Jenkins
  16. SpringBoot整合Elasticsearch详细步骤以及代码示例(附源码)
  17. 在Windows10上安装CentOS7子系统
  18. 骨传导耳机是什么意思,骨传导耳机的好处具体有哪些
  19. 抵抗敌人的攻击_英雄联盟:很抗打的中单英雄,冲在前排可以抵挡敌人的强势攻击!...
  20. python-图像分类数据集,给三级目录里的文件打标签,并且标签根据第二级级目录自动生成

热门文章

  1. python xlsxwriter生成图片保存_Python xlsxwriter库 图表Demo
  2. 史上最简单的教程——“21天”自学C语言
  3. 计算机编辑作业之目录制作,大学计算机ppt作业
  4. Vue 单页面开发----实战一 搭建及安装样式库
  5. JVM 垃圾回收机制主要原理
  6. 深度残差网络_深度残差收缩网络:借助注意力机制实现特征的软阈值化
  7. 终于找到淘口令的坑了
  8. QT实现点击按钮打开和关闭窗口
  9. 公路建设项目管理软件
  10. 以太坊-区块链开发入门