资源描述:
《《古典雅可比》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、古典Jacobi算法班级:计算062姓名:王保翔学号:3060811028目的意义:寻找相似变换,是对称矩阵A经过变换之后所得矩阵的非对角线元素的平方和减少,对角线元素的平方和增大,且保持对称性不变,不断的施行这种正交变换,最终是非对角元素的平方和任意的接近与零,对角线元素平方的取极大值。算法:步骤1:步骤2:步骤3:a[i][c][k+1]=b[i][c][k]*g+b[i][d][k]*f;a[c][i][k+1]=b[i][c][k]*g+b[i][d][k]*f;a[i][d][k+1]=-b[i][c][k]*f+b[i][d][k]
2、*g;a[d][i][k+1]=-b[i][c][k]*f+b[i][d][k]*g;p=(b[c][c][k]-b[d][d][k])*f*g;q=b[c][d][k]*(g*g-f*f);a[c][d][k+1]=a[d][c][k+1]=p+q;a[c][c][k+1]=b[c][c][k]*g*g+2*b[c][d][k]*g*f+b[d][d][k]*f*f;a[d][d][k+1]=b[c][c][k]*g*g-2*b[c][d][k]*g*f+b[d][d][k]*f*f;源程序#include"stdio.h"#include"
3、math.h"#defineP0.1voidmain(){doublea[20][20][20],b[20][20][20],r[20][20][20],max,u,y,x,t,g,f,h,v,w,l[20][20][20];inti,j,k,n,c,d;printf("Inputthenvalue:");scanf("%d",&n);printf("Inputthea[i][j][1]value:");for(i=1;i<=n;i++)for(j=1;j<=n;j++)scanf("%lf",&a[i][j][1]);for(i=1;i<=n
4、;i++)for(j=1;j<=n;j++){if(a[i][j][1]<0)b[i][j][1]=-a[i][j][1];elseb[i][j][1]=a[i][j][1];}for(k=1;k<=n;k++){for(max=0,i=1;i<=n;i++)for(j=1;j<=n;j++){if(imax+0.000001){max=b[i][j][k];c=i;d=j;}}printf("max=%lf",max);printf("c=%d,d=%d",c,d);u=b[c][c][k]-b[d][d][k]
5、;printf("u=%lf",u);if(u>=0)y=u;elsey=-u;printf("y=%lf",y);if(u>=0)x=2*b[c][d][k];elsex=-2*b[c][d][k];printf("x=%lf",x);t=sqrt(x*x+y*y);g=sqrt(0.5*1+0.5*y/t);f=0.5*x/t*(1/g);printf("f=%lf,g=%lf",f,g);for(i=1;i<=n;i++)for(j=1;j<=n;j++){if(i!=j&&i!=c,j!=d&&i!=d,j!=c)r[i
6、][j][k]=0;if(i==c&&j==c)r[c][c][k]=g;if(i==d&&j==d)r[d][d][k]=g;if(i==c&&j==d)r[c][d][k]=f;if(i==d&&j==c)r[d][c][k]=-f;if(i==j&&i!=c&&j!=d)r[i][j][k]=1;printf("r[%d][%d][%d]=%lf",i,j,k,r[i][j][k]);}printf("");for(i=1;i<=n;i++)for(j=1;j<=n;j++){a[i][c][k+1]=b[i][c][k]*g+b[i
7、][d][k]*f;a[c][i][k+1]=b[i][c][k]*g+b[i][d][k]*f;a[i][d][k+1]=-b[i][c][k]*f+b[i][d][k]*g;a[d][i][k+1]=-b[i][c][k]*f+b[i][d][k]*g;if(i!=c&&j!=d&&i!=d&&j!=c)a[i][j][k+1]=b[i][j][k];}h=(b[c][c][k]-b[d][d][k])*f*g;v=b[c][d][k]*(g*g-f*f);a[c][d][k+1]=h+v;a[d][c][k+1]=h+v;a[c][c][
8、k+1]=b[c][c][k]*g*g+2*b[c][d][k]*f*g+b[d][d][k]*f*f;a[d][d][k+1]=b[c][c][k]