当前位置: 首页 > news >正文

20241230 基础数学-线性代数-(1)求解特征值(numpy, scipy)

所有代码实现,基于教程中的理论通过python实现出来的。效率不高,但有代码可以看。

由于scipy/sckitlearn/sparkx 底层的实现都被封装了(小白兔水平有限,fortran代码实在没看懂)这里的实现至少可以和理论公式对应的上。

1. 求特征值和特征向量

这是后面解线性方程的基础。解方程及拆分过程依赖eigVal,eigVec,很重要。

基本的解析法很好理解,所有的教程都有介绍。但是工程实现numpy等都是用的其他数值求解方法,这里实验了QR方法(水平有限,是最基础的QR),证明QR方法不难实现,并且有更多方法优化可以提高QR的数值稳定性和收敛效率(水平有限,placeholder,given旋转等,未研究)。

解析解析数值
eigpolynomial*symmetric matrix
lanrange multiples 
*symmetric matrix
QR Iteration
算法det(A-lambda*E)=0

解lambda的n次方程, 对应每个eigval[*]解齐次方程。
基于对称矩阵转标准二次型原理,A= (PN...P1) D (P1.T ... PN.T)

eigVec=(PN...P1)
eigVal=D
1. 将A=QR,Q为规范正交矩阵,R为A在这个矩阵上的投影系数。
2. AK=RQ, 迭代k次,
Q.T A= R,
A1= Q.T A Q; 
...
Q1.T A1= R1;
A2= Q1.T A1 Q1 = Q1.T Q.T A Q Q1
...
AK = (QK.T ... Q.T) A (Q ... QK )
//AK 就是特征值对角矩阵, Q...QK 就是特征向量
//AK为什么会收敛为对角矩阵,待研究//TODO

eigVec=(PN...P1)
eigVal=D
PYTHONE00_eigVal_by_polynomial.pyP00_lagrange_mul_resolver00.pyE01_eigVal_by_qr_mm.py

//*没有完全解决数值稳定性问题,devide0 等等;[URL]有大神写了QR算法文章,有更优的算法。

参考代码

​​​​​​参考代码: AITutorial02: AI初学,AI幼儿园练习



 

写在最后

* 线性代数理论及证明过程请参考教材。公式推理可以参考AI。感谢数学大师们。感谢《学兔兔》网。

http://www.lryc.cn/news/509017.html

相关文章:

  • 基于图注意力网络的两阶段图匹配点云配准方法
  • 【半导体光电子器件】课后习题答案和知识点汇总
  • Unity命令行传递自定义参数 命令行打包
  • web-worker应用在大文件切片上传
  • Django 模板分割及多语言支持案例【需求文档】-->【实现方案】
  • C中设计不允许继承的类的实现方法是什么?
  • 面对小白的C语言学习方法
  • 使用libgif库解码全过程(C语言)-包括扩展块的处理
  • blazor实现ASP.NET网站用户批量注册方法
  • SpringCloud 入门(4)—— 网关
  • 什么是WebAssembly?怎么使用?
  • v3s点RGB屏 40pin 800x480,不一样的点屏,不通过chosen。
  • 某科技局国产服务器PVE虚拟化技术文档
  • 中科岩创边坡自动化监测解决方案
  • GPT-O3:简单介绍
  • cudnn版本gpu架构
  • 数据库安全-redisCouchdb
  • ubuntu22.04安装PaddleX3
  • Flutter 实现全局悬浮按钮学习
  • 14-C语言多文件编程
  • 基于Springboot的在线问卷调查系统【附源码】
  • Redis热点数据管理全解析:从MySQL同步到高效缓存的完整解决方案
  • 【图书介绍】】几本Linux C\C++编程图书
  • MFC/C++学习系列之简单记录7
  • 使用GPT进行SCI论文润色常用语句
  • Redis密码设置与访问限制(网络安全)
  • php的线程安全与非线程安全版本的区别
  • 标贝科技受邀出席2024ADD数据应用场景大会 共议数据要素发展新契机
  • electron-vite打包后图标不生效问题
  • systemverilog中的unique if