Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jama软件包,4x4线性方程求解器_Java_Matrix_Jama - Fatal编程技术网

Java Jama软件包,4x4线性方程求解器

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

我试图用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}, {-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}
中只有三个值,您需要第四个值(对于每个集合).固定语法和一些单词选择。