高斯约旦消元法c语言
时间: 2023-12-21 10:30:17 浏览: 139
高斯消元法程序(c语言版)
4星 · 用户满意度95%
以下是高斯约旦消元法的C语言实现,可以解决线性方程组:
```c
#include <stdio.h>
#define N 3 // 方程组的未知数个数
int main()
{
double a[N][N+1] = {{2, 5, 3, 38}, {1, 3, 2, 23}, {3, 8, 1, 49}}; // 增广矩阵
int i, j, k;
// 输出增广矩阵
printf("增广矩阵为:\n");
for (i = 0; i < N; i++) {
for (j = 0; j <= N; j++) {
printf("%f ", a[i][j]);
}
printf("\n");
}
// 高斯约旦消元
for (i = 0; i < N; i++) {
if (a[i][i] == 0) {
printf("主元为0,无法求解!\n");
return 0;
}
for (j = 0; j < N; j++) {
if (i != j) {
double rate = a[j][i] / a[i][i];
for (k = 0; k <= N; k++) {
a[j][k] = a[j][k] - rate * a[i][k];
}
}
}
}
// 输出解
printf("方程组的解为:\n");
for (i = 0; i < N; i++) {
printf("x%d = %f\n", i+1, a[i][N]/a[i][i]);
}
return 0;
}
```
阅读全文