⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exer1.c

📁 利用LU分解来求方程的解
💻 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 + -