2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > C语言编程——高斯消元法

C语言编程——高斯消元法

时间:2023-11-23 22:39:20

相关推荐

C语言编程——高斯消元法

高斯消元法

#include <stdio.h>#include <stdlib.h>#define MAX 10​double A[MAX][MAX];double b[MAX];double X[MAX];int NUM;​void Input_Matrix()//输入矩阵{int i,j;printf("系数矩阵A的阶数:\n");scanf("%d",&NUM);for(i=1; i<=NUM; i++){printf("系数矩阵A的第%d行元素:\n",i);for(j=1; j<=NUM; j++)scanf("%lf",&A[i-1][j-1]);}printf("右端项b:\n");for(i=1; i<=NUM; i++){scanf("%lf",&b[i-1]);}printf("输入的系数矩阵A:\n");for(i=0; i<NUM; i++){for(j=0; j<NUM; j++)printf("%.4lf\t",A[i][j]);printf("\n");}printf("输入的右端项b:\n");for(i=0; i<NUM; i++)printf("%.4lf\n",b[i]);}​​int main(){int i,j,k;float mik;//消元过程所用变量float S;//回代过程所用变量Input_Matrix();//消元for(k=0; k<NUM-1; k++){if(!A[k][k])return -1;for(i=k+1; i<NUM; i++){mik=A[i][k]/A[k][k];for(j=k; j<NUM; j++){A[i][j]=A[i][j]-mik*A[k][j];}b[i]=b[i]-mik*b[k];}}printf("消元后的矩阵A:\n\n");for(i=0; i<NUM; i++){for(j=0; j<NUM; j++)printf("%.4lf\t",A[i][j]);printf("\n");}printf("消元后的右端项b:\n\n");for(i=0; i<NUM; i++)printf("%.4lf\n",b[i]);//回代X[NUM-1]=b[NUM-1]/A[NUM-1][NUM-1];for(k=NUM-2; k>=0; k--){S=b[k];for(j=k+1; j<NUM; j++){S=S-A[k][j]*X[j];}X[k]=S/A[k][k];}printf("结果X=\n\n");for(i=0;i<NUM;i++)printf("%.4lf\n",X[i]);return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。