用c语言编程实现消去法求解任意方程组
时间: 2024-03-03 22:53:44 浏览: 16
消去法是一种常用的线性方程组求解方法。以下是用C语言编写的消去法求解任意方程组的示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
void GaussElimination(int n, double a[MAX_SIZE][MAX_SIZE+1])
{
int i, j, k;
double factor, pivot;
for (k = 0; k < n-1; k++) {
pivot = a[k][k];
for (i = k+1; i < n; i++) {
factor = a[i][k] / pivot;
for (j = k+1; j <= n; j++) {
a[i][j] -= factor * a[k][j];
}
}
}
for (k = n-1; k >= 0; k--) {
for (j = k+1; j < n; j++) {
a[k][n] -= a[k][j] * a[j][n];
}
a[k][n] /= a[k][k];
}
}
int main()
{
int n, i, j;
double a[MAX_SIZE][MAX_SIZE+1];
printf("Enter the number of variables: ");
scanf("%d", &n);
printf("Enter the coefficients:\n");
for (i = 0; i < n; i++) {
for (j = 0; j <= n; j++) {
scanf("%lf", &a[i][j]);
}
}
GaussElimination(n, a);
printf("The solution is:\n");
for (i = 0; i < n; i++) {
printf("x%d = %lf\n", i+1, a[i][n]);
}
return 0;
}
```
该程序首先读入方程组的系数矩阵,然后调用 GaussElimination 函数进行消去法求解。函数中的第一个循环用于进行高斯消元,第二个循环用于回代求解。在主函数中输出解即可。