java 高斯消元法
时间: 2023-10-11 14:23:24 浏览: 36
高斯消元法是一种线性方程组求解的方法,可以用于解决多个未知数的线性方程组。以下是 Java 实现高斯消元法的代码示例:
```java
public class GaussElimination {
public static void main(String[] args) {
double[][] A = {{1, 2, -3}, {2, -1, 1}, {3, 1, -1}}; // 系数矩阵
double[] b = {-2, 9, 1}; // 常数向量
int n = A.length;
double[] x = new double[n];
// 前向消元
for (int k = 0; k < n - 1; k++) {
for (int i = k + 1; i < n; i++) {
double factor = A[i][k] / A[k][k];
b[i] -= factor * b[k];
for (int j = k + 1; j < n; j++) {
A[i][j] -= factor * A[k][j];
}
}
}
// 回代求解
for (int i = n - 1; i >= 0; i--) {
double sum = 0;
for (int j = i + 1; j < n; j++) {
sum += A[i][j] * x[j];
}
x[i] = (b[i] - sum) / A[i][i];
}
// 输出解
for (int i = 0; i < n; i++) {
System.out.printf("x[%d] = %.2f\n", i, x[i]);
}
}
}
```
以上代码中,系数矩阵 `A` 和常数向量 `b` 分别表示线性方程组的系数矩阵和常数向量,`n` 表示未知数的个数,`x` 表示解向量。在前向消元中,通过高斯消元的方法将系数矩阵转化为上三角矩阵,同时更新常数向量。在回代求解中,从最后一个未知数开始,通过已知的解求出当前未知数的值,最终得到解向量 `x`。
相关推荐
![](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)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)