java解多元一次方程组
时间: 2023-10-06 19:06:42 浏览: 34
可以使用高斯-约旦消元法(Gauss-Jordan Elimination)解决多元一次方程组,以下是Java代码示例:
```java
public class EquationSolver {
public static void main(String[] args) {
double[][] a = {{2, 3, -1}, {4, 4, -3}, {2, -3, 1}}; // 系数矩阵
double[] b = {5, 3, -1}; // 常数向量
double[] result = solve(a, b); // 求解方程组
for (int i = 0; i < result.length; i++) {
System.out.println("x" + (i + 1) + " = " + result[i]); // 输出解
}
}
public static double[] solve(double[][] a, double[] b) {
int n = a.length;
double[][] aug = new double[n][n + 1]; // 增广矩阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
aug[i][j] = a[i][j];
}
aug[i][n] = b[i];
}
for (int i = 0; i < n; i++) { // 高斯-约旦消元
double pivot = aug[i][i];
for (int j = i; j <= n; j++) {
aug[i][j] /= pivot;
}
for (int j = 0; j < n; j++) {
if (i != j) {
double factor = aug[j][i];
for (int k = i; k <= n; k++) {
aug[j][k] -= factor * aug[i][k];
}
}
}
}
double[] result = new double[n];
for (int i = 0; i < n; i++) {
result[i] = aug[i][n];
}
return result;
}
}
```
其中,`a`是系数矩阵,`b`是常数向量,`solve`方法返回解向量。在`main`方法中,我们可以将方程组的系数矩阵和常数向量传入`solve`方法求解,最后输出解向量。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.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)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)