雅可比迭代 java
时间: 2023-11-20 18:54:51 浏览: 32
可比迭代是一种解决线性方程组的方法,它通过迭代逼近线性方程组的解。在Java中,可以使用以下代码实现雅可比迭代:
```java
public class JacobiIteration {
public static void main(String[] args) {
double[][] A = {{4, 1, 2}, {3, 5, 1}, {1, 1, 3}}; //系数矩阵
double[] b = {4, 7, 3}; //常数矩阵
double[] x = {0, 0, 0}; //初始解向量
double[] y = new double[3]; //存放迭代后的解向量
int n = A.length; //方程组的阶数
double eps = 1e-6; //精度要求
int k = 0; //迭代次数
while (true) {
k++;
for (int i = 0; i < n; i++) {
double s = 0;
for (int j = 0; j < n; j++) {
if (j != i) {
s += A[i][j] * x[j];
}
}
y[i] = (b[i] - s) / A[i][i];
}
double max = 0;
for (int i = 0; i < n; i++) {
if (Math.abs(y[i] - x[i]) > max) {
max = Math.abs(y[i] - x[i]);
}
}
if (max < eps) {
break;
}
for (int i = 0; i < n; i++) {
x[i] = y[i];
}
}
System.out.println("迭代次数:" + k);
System.out.println("解向量:");
for (int i = 0; i < n; i++) {
System.out.println("x" + (i + 1) + " = " + y[i]);
}
}
}
```
该代码实现了对以下线性方程组的求解:
4x1 + x2 + 2x3 = 4
3x1 + 5x2 + x3 = 7
x1 + x2 + 3x3 = 3