|
9.幂法
C/C++ code
#include<stdio.h>
#include<math.h>
#define N 100
#define e 0.00001
#define n 3
float x[n]={0,0,1};
float a[n][n]={{2,3,2},{10,3,4},{3,6,1}};
float y[n];
main()
{ int i,j,k;
float xm,oxm;
oxm=0;
for(k=0;k<N;k++)
{ for(j=0;j<n;j++)
{ y[j]=0;
for(i=0;i<n;i++)
y[j]+=a[j]*x;
}
xm=0;
for(j=0;j<n;j++)
if(fabs(y[j])>xm) xm=fabs(y[j]);
for(j=0;j<n;j++)
y[j]/=xm;
for(j=0;j<n;j++)
x[j]=y[j];
if(fabs(xm-oxm)<e)
{ printf("max:%f\n\n",xm);
printf("v:\n");
for(k=0;k<n;k++) printf("%f\n",y[k]);
break;
}
oxm=xm;
}
getch();
}
关于本帖内容欢迎大家踊跃讨论,与在下交流!
|