高斯消元法解方程c语言
时间: 2023-12-21 09:31:06 浏览: 28
高斯消元法是一种线性代数中求解线性方程组的方法,它通过消元和回代的过程,将一个线性方程组转化为一个上三角矩阵,从而求解出方程组的解。下面是一个用C语言实现高斯消元法求解线性方程组的例子:
```c
#include <stdio.h>
#include <stdlib.h>
#define N 3
void Gauss(double a[N][N+1], double x[N])
{
int i, j, k;
double m;
for (i = 0; i < N-1; i++) {
for (j = i+1; j < N; j++) {
m = a[j][i] / a[i][i];
for (k = i+1; k <= N; k++) {
a[j][k] -= m * a[i][k];
}
}
}
for (i = N-1; i >= 0; i--) {
x[i] = a[i][N];
for (j = i+1; j < N; j++) {
x[i] -= a[i][j] * x[j];
}
x[i] /= a[i][i];
}
}
int main()
{
double a[N][N+1] = {{1, 2, 3, 6}, {2, 3, 4, 9}, {3, 4, 5, 12}};
double x[N];
int i, j;
Gauss(a, x);
printf("The solution is:\n");
for (i = 0; i < N; i++) {
printf("x[%d] = %f\n", i, x[i]);
}
return 0;
}
```
上面的代码实现了一个3元线性方程组的求解,其中a是系数矩阵,x是未知数向量。在Gauss函数中,首先进行消元的过程,将系数矩阵转化为上三角矩阵,然后进行回代的过程,求解出未知数向量x。最后在主函数中输出解向量x。