24小时热门版块排行榜    

查看: 329  |  回复: 1

sleefd

新虫 (初入文坛)

[求助] 求讲解一下,下面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                         if(i!=j) v[j]=0;
        }
        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;
                               
                }
        }
}
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sleefd

新虫 (初入文坛)

我感觉好像是松弛迭代的写法。
但是我不知道那个omega是什么意思,是怎么估计的
还有正弦,余弦的作用。
求前辈们指点一下。
2楼2012-05-22 17:56:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sleefd 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 ELBZ6WwEaRj6 2026-11-04 10/500 2026-11-06 02:24 by qL1cU46YIdK0
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 ELBZ6WwEaRj6 2026-11-04 7/350 2026-11-06 02:24 by qL1cU46YIdK0
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 ELBZ6WwEaRj6 2026-11-04 9/450 2026-11-06 02:15 by qL1cU46YIdK0
[硕博家园] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 ELBZ6WwEaRj6 2026-11-04 11/550 2026-11-06 02:13 by qL1cU46YIdK0
[考研] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 ttH3f1oA6ace 2026-11-04 10/500 2026-11-06 02:04 by qL1cU46YIdK0
[考研] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +4 ttH3f1oA6ace 2026-11-04 13/650 2026-11-06 02:02 by qL1cU46YIdK0
[公派出国] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +4 ttH3f1oA6ace 2026-11-04 9/450 2026-11-06 02:02 by qL1cU46YIdK0
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 ttH3f1oA6ace 2026-11-04 8/400 2026-11-06 02:02 by qL1cU46YIdK0
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 ttH3f1oA6ace 2026-11-04 9/450 2026-11-06 02:02 by qL1cU46YIdK0
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 hNpp4Y2CGvSC 2026-11-04 12/600 2026-11-06 01:53 by qL1cU46YIdK0
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +6 kvewwGtKktqB 2026-11-04 15/750 2026-11-06 01:51 by qL1cU46YIdK0
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +6 ncTVBM6AOJHF 2026-11-04 10/500 2026-11-06 01:51 by qL1cU46YIdK0
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +5 ncTVBM6AOJHF 2026-11-04 12/600 2026-11-06 01:42 by qL1cU46YIdK0
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 ncTVBM6AOJHF 2026-11-04 11/550 2026-11-06 01:29 by qL1cU46YIdK0
[公派出国] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +7 ncTVBM6AOJHF 2026-11-04 21/1050 2026-11-06 01:29 by qL1cU46YIdK0
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 ncTVBM6AOJHF 2026-11-04 14/700 2026-11-06 01:29 by qL1cU46YIdK0
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 ELBZ6WwEaRj6 2026-11-05 6/300 2026-11-05 23:30 by qL1cU46YIdK0
[考研] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 ELBZ6WwEaRj6 2026-11-04 9/450 2026-11-05 23:17 by qL1cU46YIdK0
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +5 ncTVBM6AOJHF 2026-11-04 13/650 2026-11-05 22:44 by qL1cU46YIdK0
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +4 ELBZ6WwEaRj6 2026-11-04 8/400 2026-11-05 20:54 by qL1cU46YIdK0
信息提示
请填处理意见