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

📄 三角分解法求线性方程.c

📁 计算方法的几个经典算法
💻 C
字号:
#include<stdio.h>
#include<math.h>
 main()
{
   int n,i,j,k,p;
   double x[20],a[20][20],c;
   printf("输入方程组的阶n:");
   scanf("%d",&n);
   printf("输入系数矩阵:\n");


   for(i=1;i<=n;i++)
	   for(j=1;j<=n+1;j++)
		   scanf("%f",&a[i][j]); 


   if(a[1][1]==0)  
   {
	   printf("输出方法失败");
		   return 0;
   } 

   for(i=2;i<=n;i++)
	   a[i][1]=a[i][1]/a[1][1];

   for(k=2;k<=n-1;k++)
   {
	   for(j=k;j<=n+1;j++)
	   {
		   c=0;
		   for(p=1;p<=k-1;p++)
			   c=c+a[k][p]*a[p][j];
		   a[k][j]=a[k][j]-c;
	   }
		if(a[k][k]==0)
		{
		     printf("输出方法失败");
		        return 0;

		}
		c=0;
	   for(i=k+1;i<=n;i++)
	   {
		   c=0;
		   for(p=1;p<=k-1;p++)
			   c=c+a[i][p]*a[p][k];
		   a[i][k]=(a[i][k]-c)/a[k][k];
	   }
   }
   for(j=n;j<=n+1;j++)
   {
	   c=0;
	   for(p=1;p<=n-1;p++)
		   c=c+a[n][p]*a[p][j];
	   a[n][j]=a[n][j]-c;
   }
   if(a[n][n]==0)
   {
	  printf("输出方法失败");
		        return 0;
   }
   x[n]=a[n][n+1]/a[n][n];
   for(i=n-1;i>=1;i--)
   {
	   c=0;
	   for(j=i+1;j<=n;j++)
		   c=c+a[i][j]*x[j];
	   x[i]=(a[i][n+1]-c)/a[i][i];
   }
   for(i=1;i<=n;i++)
   {
	   printf("x[%d]=%lf",i,x[i]);
	   if((i%5)==0) printf("\n");
   }
   return 1;
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -