13

次のような 3 つの方程式があります。

  • x + y + z = 100;
  • x + y - z = 50;
  • x - y - z = 10;

Javaでx、y、およびzの値を見つけるにはどうすればよいですか?

String equation1="x+y+z=100;";
String equation2="x+y-z=50;";
String equation3="x-y-z=10;";

int[] SolveEquations(equation1,equation2,equation3) {
   // to do
   // how to do?    
} 

考えられる解決策やその他の一般的なフレームワークはありますか?

4

8 に答える 8

12

行列式を使用して、xy と z の値を計算できます。ロジックはここで見つけることができますhttp://www.intmath.com/Matrices-determinants/1_Determinants.php

そして、3 次元配列を使用して Java で実装する必要があります。

于 2009-09-16T09:26:51.837 に答える
11

Java を書いているので、JAMAパッケージを使用してこれを解決できます。良い LU 分解方法をお勧めします。

単純な線形代数の問題です。手で、または Excel のようなものを使用して、かなり簡単に解決できるはずです。それができたら、ソリューションを使用してプログラムをテストできます。

もちろん、解決策があるという保証はありません。行列が特異である場合、それは 3D 空間にこれらの 3 つの線の交点がないことを意味します。

于 2009-09-16T10:11:41.987 に答える
9

Java マトリックス パッケージJAMAを使用できます。以下のこの例の全ページを参照してください

/*
 *Solving three variable linear equation system
 * 3x + 2y -  z =  1 ---> Eqn(1)
 * 2x - 2y + 4z = -2 ---> Eqn(2)
 * -x + y/2-  z =  0 ---> Eqn(3)
 */
import Jama.Matrix;
import java.lang.Math.*;
public class Main {
    public Main() {
        //Creating  Arrays Representing Equations
        double[][] lhsArray = {{3, 2, -1}, {2, -2, 4}, {-1, 0.5, -1}};
        double[] rhsArray = {1, -2, 0};
        //Creating Matrix Objects with arrays
        Matrix lhs = new Matrix(lhsArray);
        Matrix rhs = new Matrix(rhsArray, 3);
        //Calculate Solved Matrix
        Matrix ans = lhs.solve(rhs);
        //Printing Answers
        System.out.println("x = " + Math.round(ans.get(0, 0)));
        System.out.println("y = " + Math.round(ans.get(1, 0)));
        System.out.println("z = " + Math.round(ans.get(2, 0)));
    }

    public static void main(String[] args) {
        new Main();
    }
}

于 2016-02-12T12:58:52.703 に答える
5

Commons Mathも使用できます。ユーザーガイドにこのセクションがあります(3.4を参照)

于 2009-09-16T10:14:25.667 に答える
4

ANTLRを使用してパーサーを作成します。次に、ガウス消去法を使用してASTを評価します。

于 2009-09-16T09:38:27.063 に答える
2

Gaussian_eliminationを使用すると信じられないほど簡単ですが、計算が困難な値がいくつかあります。

コード例

于 2009-09-16T09:41:20.207 に答える