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

📄 gaosi.txt

📁 应用高斯列主元消去法解线性方程组的程序代码
💻 TXT
字号:
#include <math.h> 
#include <stdio.h> 
#define NUMBER 20 
float A[NUMBER][NUMBER+1] ,ark; 
int flag,n; 
exchange(int r,int k); 
float max(int k); 
main() 
{ 
float x[NUMBER]; /*此数组用于存放方程解*/ 
int r,k,i,j; 
char celect; 
printf("Input the rank of matrix:"); /*输入矩阵的阶数*/ 
scanf("%d",&n); 
printf("Input Extended Matrix:"); 
for(i=1;i<=n;i++) 
for(j=1;j<=n+1;j++) /*将刚才输入的数存入数组*/ 
scanf("%f",&A[i][j]); 
for(k=1;k<=n-1;k++) 
{ 
ark=max(k); 
if(ark==0) /*判断方程是否为线性方程,即是否合法*/ 
{ 
printf("\n\nWrong!"); 
} 
else if(flag!=k) 
exchange(flag,k); 
for(i=k+1;i<=n;i++) 
for(j=k+1;j<=n+1;j++) 
A[i][j]=A[i][j]-A[k][j]*A[i][k]/A[k][k]; 
} 
x[n]=A[n][n+1]/A[n][n]; 
for( k=n-1;k>=1;k--) 
{ 
float me=0; 
for(j=k+1;j<=n;j++) 
{ 
me=me+A[k][j]*x[j]; 
} 
x[k]=(A[k][n+1]-me)/A[k][k]; 
} 
for(i=1;i<=n;i++) 
{ 
printf(" \n\nx%d=%f",i,x[i]); 
} 
} 
exchange(int r,int k) /*交换行的矩函数*/ 
{ 
int i; 
for(i=1;i<=n+1;i++) 
A[0][i]=A[r][i]; 
for(i=1;i<=n+1;i++) 
A[r][i]=A[k][i]; 
for(i=1;i<=n+1;i++) 
A[k][i]=A[0][i]; 
} 
float max(int k) /*比校系数大小的函数*/ 
{ 
int i; 
float temp=0; 
for(i=k;i<=n;i++) 
if(fabs(A[i][k])>temp) 
{ 
temp=fabs(A[i][k]); 
flag=i; 
} 
return temp ;
} 

⌨️ 快捷键说明

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