Java Jama软件包,4x4线性方程求解器
我试图用Jama解一个4x4线性方程组(4个变量,4个方程)。我试过下面的代码,但不起作用。如果有人能使用Jama或其他方法帮助我,我将不胜感激Java Jama软件包,4x4线性方程求解器,java,matrix,jama,Java,Matrix,Jama,我试图用Jama解一个4x4线性方程组(4个变量,4个方程)。我试过下面的代码,但不起作用。如果有人能使用Jama或其他方法帮助我,我将不胜感激 import Jama.Matrix; public class OvaWork { public OvaWork() { //Creating Arrays Representing Equations double[][] lhsArray = {{-3, 1, -1}, {5, -2, 1
import Jama.Matrix;
public class OvaWork {
public OvaWork()
{
//Creating Arrays Representing Equations
double[][] lhsArray = {{-3, 1, -1}, {5, -2, 1}, {-1, 1, 3}, {2, 5, 7}};
double[] rhsArray = {-4, 6, 0, 8};
//Creating Matrix Objects with arrays
Matrix lhs = new Matrix(lhsArray);
Matrix rhs = new Matrix(rhsArray, 4);
//Calculate Solved Matrix
Matrix ans = lhs.solve(rhs);
//Printing Answers
System.out.println("w = " + Math.round(ans.get(0, 0)));
System.out.println("x = " + Math.round(ans.get(1, 0)));
System.out.println("y = " + Math.round(ans.get(2, 0)));
System.out.println("z = " + Math.round(ans.get(3, 0)));
}
public static void main(String[] args)
{
OvaWork o = new OvaWork();
}
}
你必须尝试一些简单的例子,比如这个2x2方程
double[][] lhsArray = {{1,1},{2, 0}};
double[] rhsArray = {10,2};
Matrix lhs = new Matrix(lhsArray);
Matrix rhs = new Matrix(rhsArray, 2);
Matrix ans = lhs.solve(rhs);
它工作并且输出是一个矩阵{1,9}
代码的问题在于矩阵不是正方形,而是3x4
double[][] lhsArray = {{-3, 1, -1}, {5, -2, 1}, {-1, 1, 3}, {2, 5, 7}};
将矩阵更改为正方形
测试这个简单的等式:
double[][] lhsArray = {{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}};
double[] rhsArray = {1, 2, 3, 4};
Matrix lhs = new Matrix(lhsArray);
Matrix rhs = new Matrix(rhsArray, 4);
Matrix ans = lhs.solve(rhs);
ans是{1,2,3,4}正如预期的那样。您必须尝试使用像这个2x2方程这样的简单示例
double[][] lhsArray = {{1,1},{2, 0}};
double[] rhsArray = {10,2};
Matrix lhs = new Matrix(lhsArray);
Matrix rhs = new Matrix(rhsArray, 2);
Matrix ans = lhs.solve(rhs);
它工作并且输出是一个矩阵{1,9}
代码的问题在于矩阵不是正方形,而是3x4
double[][] lhsArray = {{-3, 1, -1}, {5, -2, 1}, {-1, 1, 3}, {2, 5, 7}};
将矩阵更改为正方形
测试这个简单的等式:
double[][] lhsArray = {{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}};
double[] rhsArray = {1, 2, 3, 4};
Matrix lhs = new Matrix(lhsArray);
Matrix rhs = new Matrix(rhsArray, 4);
Matrix ans = lhs.solve(rhs);
ans是{1,2,3,4}正如预期的那样。当你说
但仍然没有工作
,这是否意味着你得到了一个错误,或者这意味着什么?lhsArray
不是4x4array@FREDK如何将1hs数组转换为4x4数组?例如,在{-3,1,-1}
中只有三个值,您需要第四个值(对于每个集合).固定语法和一些单词选择。当你说但仍然没有工作时,这是否意味着你遇到了错误,或者这是什么意思?lhsArray
不是4x4array@FREDK如何将1hs数组转换为4x4数组?例如,在{-3,1,-1}
中只有三个值,您需要第四个值(对于每个集合).固定语法和一些单词选择。