| 查看: 261 | 回复: 1 | |||
[求助]
求讲解一下,下面jacobi算法代码的具体实现思路
|
|
int jcb(double a[][200],double tzz[200],double v[][200],double eps,int jt,int rows) //jacobi求实对称矩阵的特征值和特征向量 //a 为原矩阵,v为特征向量,tzz为特征值,eps为精度,jt为最大迭代次数 { int i,j,p,q,l; double fm,cn,sn,omega,x,y,d; // double temp; l=1; for(i=0;i v=1.0; for(j=0;j } while(true) { fm=0.0; for(i=0;i<=rows-1;i++) for(j=0;j<=i-1;j++) { d=fabs(a[j]); if((i!=j)&&(d>fm)) //取最大的a[p][q] { fm=d;p=i;q=j;} } if(fm for(i=0;i tzz=a; //printf("%lf \n",a); } return(1); break; } if(l>jt) //如果不能求解 { for(i=0;i tzz=a; //printf("%lf \n",a); } return(-1); break; } l=l+1; //记录迭代次数 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]=y*omega+a[p][q]*(2*cn*cn-1); a[q][p]=a[p][q]; for(j=0;j<=rows-1;j++) if((j!=p)&&(j!=q)) { 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<=rows-1;i++) if((i!=p)&&(i!=q)) { fm=a[p]; a[p]=fm*cn+a[q]*sn; a[q]=-fm*sn+a[q]*cn; } for(i=0;i<=rows-1;i++) { fm=v[p]; v[p]=fm*cn+v[q]*sn; v[q]=-fm*sn+v[q]*cn; } } } |
» 猜你喜欢
拟解决的关键科学问题还要不要写
已经有9人回复
最失望的一年
已经有17人回复
为什么nbs上溴 没有产物点出现呢
已经有6人回复
求推荐博导
已经有4人回复
存款400万可以在学校里躺平吗
已经有34人回复
求助一下有机合成大神
已经有4人回复
求推荐英文EI期刊
已经有5人回复
26申博
已经有3人回复
基金委咋了?2026年的指南还没有出来?
已经有10人回复
疑惑?
已经有5人回复
» 本主题相关价值贴推荐,对您同样有帮助:
国基申请涉及不同学部,评审者都是第一申请代码的学部吗?
已经有8人回复
急求!!!!!帮忙做下这道题,只求思路。最好是有英文的回答
已经有4人回复
有关遗传算法的问题求助
已经有3人回复
【重金求助】同伦延拓算法是如何具体实现的
已经有6人回复
论文大修,但是审稿人要我对算法的缺点进行讨论,心里没有底
已经有8人回复
如何MATLAB程序实现遗传算法
已经有11人回复
关于一个积分算法的问题(有代码)
已经有3人回复
求回归方程参数估计的最优化算法matlab代码
已经有9人回复
28个不得不看的经典编程算法!!
已经有34人回复
版上同学们 谁搞算法研究比较多?能帮我普及一下么?
已经有10人回复
【求助】求助特性粘数的具体算法,谢谢
已经有18人回复
【求助】CASTEP中可以实现GGA+U算法吗
已经有6人回复
2楼2012-05-22 17:56:10













回复此楼