c语言实现雅可比迭代法
时间: 2023-10-11 08:07:03 浏览: 333
雅可比迭代法是一种求解线性方程组的方法,它通过不断迭代来逼近方程组的解。下面是一个用C语言实现雅可比迭代法的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define MAX_ITER 1000 // 最大迭代次数
#define EPSILON 1e-6 // 迭代精度
// 定义线性方程组的系数矩阵和常数向量
double A[3][3] = {{4, -1, 0}, {-1, 4, -1}, {0, -1, 4}};
double b[3] = {2, 4, 2};
int main()
{
int i, j, k;
int n = 3; // 系数矩阵的阶数
double x[n]; // 存储方程组的解
// 初始化x向量
for (i = 0; i < n; i++) {
x[i] = 0;
}
// 迭代求解
for (k = 0; k < MAX_ITER; k++) {
double max_err = 0; // 记录本次迭代中最大的误差
for (i = 0; i < n; i++) {
double sum = 0;
for (j = 0; j < n; j++) {
if (j != i) {
sum += A[i][j] * x[j];
}
}
double new_x = (b[i] - sum) / A[i][i];
double err = fabs(new_x - x[i]);
if (err > max_err) {
max_err = err;
}
x[i] = new_x;
}
if (max_err < EPSILON) {
printf("迭代次数:%d\n", k+1);
break;
}
}
// 输出结果
printf("方程组的解:\n");
for (i = 0; i < n; i++) {
printf("x[%d] = %f\n", i+1, x[i]);
}
return 0;
}
```
在上面的代码中,我们使用了一个`MAX_ITER`常量来限制最大的迭代次数,以防止迭代过程无限进行下去。同时,我们也定义了一个`EPSILON`常量来表示迭代的精度,当本次迭代的最大误差小于该值时,我们认为已经达到了迭代的精度要求,可以停止迭代并输出结果。
这里我们以一个3阶线性方程组为例进行演示,用户可以根据自己的实际需求修改系数矩阵`A`和常数向量`b`,然后运行程序即可得到方程组的解。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.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)
![doc](https://img-home.csdnimg.cn/images/20241231044833.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://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)