实对称矩阵特征值求解算法:Jacobi行循环法

本文介绍了一种使用Jacobi行循环法求解实对称矩阵特征值和特征向量的算法,适用于处理包含少量变量的数据主成分计算。通过迭代,当非对角线元素绝对值小于预设阈值时,算法达到收敛。该算法在n=100时,运行时间约0.2秒。
摘要由CSDN通过智能技术生成

做过程故障诊断,需要计算含小于100个变量的数据的主成分,下面这个代码还是合适的,特此备份。经测试,当矩阵A阶数n=100时,耗费时间在0.2s左右。

 

int jacobi_loop(double** A, double** V, double* eigsv, double epsl, int maxt, int n){
 /************************************************************************
 * 作者:     taoshaohui from Qingdao University of Science & Technology, 2010/08/17
 * 函数名称: jacobi_loop                                                        
 * 函数功能: Jacobi行循环法求取n阶实对称矩阵A的所有特征值和特征向量V(:,i) 
 * 输入参数: 

      A:    n阶实对称矩阵, 算法结束后其第j个对角线元素为A的第j个特征值

      n:    A的阶数
      V:    n阶单位矩阵, 算法结束后其第j列存储对应第j个特征值的特征向量
     eigsv:按从大到小顺序排列的特征值向量
     epsl: 迭代收敛标准, 当A所有非对角线元素绝对值皆小于epsl时算法成功
     maxt: 算法最大迭代次数

 * 输出参数: V, eigsv
 * 返回值  : 整数success, 0迭代未收敛/1迭代成功
 * 注意    : 本程序中,2×2Givens旋转矩阵为: [cn, sn; -sn, cn]
 * 文献    : 《矩阵计算》, G. H. Golub & C. F. Van Loan, 2002, 袁亚湘 译, P 494.

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值