📄 exer1.c
字号:
#include "math.h"
#include "head.c"
#include "create1.c"
#include "powerMtd.c"
#include "rePowMtd.c"
main()
{
double A[C_M][C_N];
double u1[Matrix_N],u2[Matrix_N];
double y[Matrix_N];
double R_max,R_min;
int i,j;
double temp,temp1,R_i;
FILE *fp;
fp=fopen("exec1.txt","w");
createMatrix_1(&A);
R_max=powerMethod(&A,u1);
fprintf(fp,"按模最大特征值为:%-20.12e\n",R_max);
fprintf(fp,"相应的特征向量的前20个分量为:\n");
for (i=0;i<20 ;i++ )
{
fprintf(fp,"%d:%-20.12e",i+1,u1[i]);
if ((i%4)==3) fprintf(fp,"\n");
}
fprintf(fp,"\n");
fprintf(fp,"相应的特征向量的最后20个分量为:\n");
for (i=(Matrix_N-20);i<Matrix_N ;i++ )
{
fprintf(fp,"%d:%-20.12e",i+1,u1[i]);
if ((i%4)==0) fprintf(fp,"\n");
}
fprintf(fp,"\n");
R_min=rePowMethod(&A,u2,y,0);
fprintf(fp,"按模最小特征值为:%-20.12e\n",R_min);
fprintf(fp,"相应的特征向量的前20个分量为:\n");
for (i=0;i<20 ;i++ )
{
fprintf(fp,"%d:%-20.12e",i+1,u2[i]);
if ((i%4)==3) fprintf(fp,"\n");
}
fprintf(fp,"\n");
fprintf(fp,"相应的特征向量的最后20个分量为:\n");
for (i=(Matrix_N-20);i<Matrix_N ;i++ )
{
fprintf(fp,"%d:%-20.12e",i+1,u2[i]);
if ((i%4)==0) fprintf(fp,"\n");
}
/* 第二小题 */
fprintf(fp,"\n/* 第二小题 */\n");
temp=(R_max-R_min)/40;
for (i=1;i<40 ;i++ )
{printf("%d\n",i);
temp1=R_min+i*temp;
R_i=rePowMethod(&A,u2,y,temp1);
fprintf(fp,"与数u[%d](%-18.12e)最接近的特征值为:%-20.12e\n",i,temp1,R_i+temp1);
}
/* 第三小题 */
fprintf(fp,"\n/* 第三小题 */\n");
fprintf(fp,"A的条件数cond(A)_2是:%-20.12e-\n",fabs(R_max/R_min));
fclose(fp);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -