雅克比求矩阵的特征值特征向量函数改进
来源:互联网 发布:java行业看法 编辑:程序博客网 时间:2024/06/02 17:37
<span style="font-size:18px;">double eejcb(vector<vector<float> > a/*(n)*/,int n/*,vector<vector<double> > v,int jt,int o){ int i,j,p=0,q=0,u,w,t,s,l; double fm,cn,sn,omega,x,y,d; l=1;vector <double> b;float sum =0.0;vector<vector<double> > v(n);for(int i=0;i <n;i++) v[i].resize(n);//vector<vector<float> > a(n);for(int i=0;i <n;i++) a[i].resize(n); for (i=0; i<=n-1; i++){ v[/*i*n+*/i].push_back(1.0);for (j=0; j<=n-1; j++){if (i!=j) {v[i/**n+j*/][j]=0.0;}}} while (1==1){ fm=0.0; for (i=0; i<=n-1; i++){for (j=0; j<=n-1; j++){ d = fabs(a[i][j]/*[i*n+j]*/);//求绝对值if ((i!=j)&&(d>fm)){ fm=d; p=i; q=j;}}}/*if (fm<eps) {return l;}*/ if (l>jt) //?{for (i=0; i<=n-1; i++){// float sum =0.0;sum += fabs(a[i][i]);}for (i=0; i<=n-1; i++){double x = fabs(a[i][i])/sum;b.push_back(x);}return b[o];} l=l+1; /* u=p*n+q; w=p*n+p; t=q*n+p; s=q*n+q;*/ x=-a[p][q];y=(a[q][q]-a[p][p])/2.0; omega=x/sqrt(x*x+y*y); if (y<0.0){omega=-omega;} sn=1.0+sqrt(1.0-omega*omega); sn=omega/sqrt(2.0*sn); cn=sqrt(1.0-sn*sn); fm=a[p][p]; a[p][p]=fm*cn*cn+a[q][q]*sn*sn+a[p][q]*omega; a[q][q]=fm*sn*sn+a[q][q]*cn*cn-a[p][q]*omega; a[p][q]=0.0;a[q][p]=0.0; for (j=0; j<=n-1; j++){if ((j!=p)&&(j!=q)){ /*u=p*n+j;w=q*n+j;*/fm=a[p][j];a[p][j]=fm*cn+a[q][j]*sn;a[q][j]=-fm*sn+a[q][j]*cn;}} for (i=0; i<=n-1; i++){if ((i!=p)&&(i!=q)) { /*u=i*n+p; w=i*n+q;*/fm=a[i][p];a[i][p]=fm*cn+a[i][q]*sn;a[i][q]=-fm*sn+a[i][q]*cn; }} for (i=0; i<=n-1; i++){ /* u=i*n+p; w=i*n+q;*/ fm=v[i][p]; v[i][p]=fm*cn+v[i][q]*sn; v[i][q]=-fm*sn+v[i][q]*cn;}}/*return a[o][o];*///vector <double> b;//float sum =0.0;for (i=0; i<=n-1; i++){// float sum =0.0;sum += fabs(a[i][i]);}for (i=0; i<=n-1; i++){double x = fabs(a[i][i])/sum;b.push_back(x);}return b[o];}</span>注:网上下载的代码是以一维数组为接口,我将其全部改为二维vector形式
0 0
- 雅克比求矩阵的特征值特征向量函数改进
- 矩阵的特征值和特征向量的雅克比算法C/C++实现
- 矩阵的特征值和特征向量的雅克比算法C/C++实现
- 矩阵的特征值和特征向量的雅克比算法C/C++实现
- 矩阵的特征值和特征向量的雅克比算法C/C++实现
- OpenCV求矩阵的特征值和特征向量
- 求hession矩阵的特征值和特征向量
- opencv 求矩阵的特征向量矩阵和特征值
- opencv 求矩阵的特征向量矩阵和特征值
- 矩阵特征分解介绍及雅克比(Jacobi)方法实现特征值和特征向量的求解(C++/OpenCV/Eigen)
- 利用OpenCV求矩阵的特征值和特征向量
- 乘幂法求矩阵的特征值及特征向量
- 矩阵的特征值与特征向量
- 矩阵的特征值和特征向量
- 矩阵的特征值与特征向量
- 矩阵的特征值和特征向量
- 矩阵的特征值和特征向量
- 矩阵的特征值和特征向量
- Visual Prolog 的 Web 专家系统 (1)
- Android TCP协议之Client模块
- 关于错误 “strlen”: 不能将参数 1 从“TCHAR [256]”转换为“const char *”
- Nginx+tomcat负载均衡session问题解决
- 你好,CSDN!
- 雅克比求矩阵的特征值特征向量函数改进
- 意外的php之学习笔记
- ACM1060
- hdu 3068 最长回文(manacher&最长回文子串)
- Android应用开发入门教程(典藏版)
- Eclipse快捷键
- 美国研发1.5毫米相机:可自由进出血管拍摄
- HDU 2255 奔小康赚大钱 KM模板
- PIC16单片机设置不同IO口状态对功耗的影响