C语言高斯消元解线性方程组的具体代码
时间: 2023-08-18 13:41:45 浏览: 192
以下是一个用C语言实现高斯消元法求解线性方程组的示例代码:
```c
#include <stdio.h>
#define N 3 // 线性方程组未知数个数
int main() {
int i, j, k;
double a[N][N+1], x[N]; // x为未知数的解
printf("请输入线性方程组的系数矩阵:\n");
for (i = 0; i < N; ++i) {
for (j = 0; j <= N; ++j) {
scanf("%lf", &a[i][j]);
}
}
// 高斯消元法
for (k = 0; k < N-1; ++k) {
for (i = k+1; i < N; ++i) {
double t = a[i][k] / a[k][k];
for (j = k+1; j <= N; ++j) {
a[i][j] -= t * a[k][j];
}
}
}
// 回代求解未知数
x[N-1] = a[N-1][N] / a[N-1][N-1];
for (i = N-2; i >= 0; --i) {
double sum = 0.0;
for (j = i+1; j < N; ++j) {
sum += a[i][j] * x[j];
}
x[i] = (a[i][N] - sum) / a[i][i];
}
// 输出结果
printf("线性方程组的解为:\n");
for (i = 0; i < N; ++i) {
printf("x%d = %lf\n", i+1, x[i]);
}
return 0;
}
```
输入的系数矩阵应为一个(N x N+1)的矩阵,其中最右侧的一列为方程右边的常数项,使用scanf函数逐个读入。输出的结果为每个未知数的解。
阅读全文