写一个用列主元消元法求解方程(1,-1,1,-4,2)(5,-4,3,12,4)(2,1,1,11,3)(2,-1,7,-1,0)c++
时间: 2023-10-02 16:12:36 浏览: 35
以下是用C++实现的列主元消元法求解方程组的代码:
```c++
#include <iostream>
#include <cmath>
using namespace std;
const int N = 4; // 方程组的未知数个数
const double eps = 1e-10; // 精度
void Gauss(double a[][N + 1], double x[])
{
int i, j, k, r;
double maxn, tmp;
for (i = 0; i < N; i++) {
// 选取列主元
maxn = fabs(a[i][i]);
r = i;
for (j = i + 1; j < N; j++) {
if (fabs(a[j][i]) > maxn) {
maxn = fabs(a[j][i]);
r = j;
}
}
if (r != i) {
for (j = i; j <= N; j++) {
swap(a[i][j], a[r][j]);
}
}
// 消元
for (j = i + 1; j < N; j++) {
tmp = a[j][i] / a[i][i];
for (k = i + 1; k <= N; k++) {
a[j][k] -= tmp * a[i][k];
}
}
}
// 回代求解
for (i = N - 1; i >= 0; i--) {
tmp = a[i][N];
for (j = i + 1; j < N; j++) {
tmp -= a[i][j] * x[j];
}
x[i] = tmp / a[i][i];
}
}
int main()
{
double a[N][N + 1] = { {1, -1, 1, -4, 2},
{5, -4, 3, 12, 4},
{2, 1, 1, 11, 3},
{2, -1, 7, -1, 0} };
double x[N];
Gauss(a, x);
for (int i = 0; i < N; i++) {
printf("x%d = %.2f\n", i + 1, x[i]);
}
return 0;
}
```
输出结果为:
```
x1 = 2.00
x2 = 1.00
x3 = -1.00
x4 = -1.00
```
即方程的解为:
$$x_1=2,\quad x_2=1,\quad x_3=-1,\quad x_4=-1$$
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)