2016-11-18 34 views
0

解決方法を使用しようとしていますが、エラーが発生しました。誰でも解決方法を記述する方法を教えてください。このコードを実行しようとしましたが、解決方法の前にコードが正常に動作しますが、それ以降はエラーが発生しました。 http://introcs.cs.princeton.edu/java/95linear/Matrix.java.htmlはあなたarn't:あなたが使用しているJAMAを使用していないMatrix SolveメソッドJava

import java.lang.Math; 
public class MatrixDriver { 

    public static void main(String[] args) { 
    double[][] d = { { 1, 2, 3 }, { 4, 5, 6 }, { 9, 1, 3} }; 

    System.out.println("Matrix D - Testing Constructor that take double integer array as a parameter"); 
    Matrix D = new Matrix(d); 
    System.out.println(D); 
    System.out.println(); 

    System.out.println("Matrix A - Testing Named Constructor -- random\nTakes two parameters (row, col) and returns a \"new\" Matrix"); 
    Matrix A = Matrix.random(5, 5); 
    System.out.println(A); 
    System.out.println(); 

    System.out.println("Matrix A - Testing the swap rows method"); 
    A.swapRows(1,2); 
    System.out.println(A); 
    System.out.println(); 

    System.out.println("Matrix B - Testing the transpose method on Matrix A"); 
    Matrix B = A.transpose(); 
    System.out.println(B); 
    System.out.println(); 

    System.out.println("Matrix C - Testing named constructor - identity - which takes a single parameter (i) and returns a 'new' (i x i) Identity Matrx"); 
    Matrix C = Matrix.identity(5); 
    System.out.println(C); 
    System.out.println(); 

    System.out.println("Matrix E - Testing matrix addition (A + B)"); 
    Matrix E = A.plus(B); 
    System.out.println(E); 
    System.out.println(); 

    System.out.println("Matrix F - Testing matrix subtraction (A - B)"); 
    Matrix F = A.minus(B); 
    System.out.println(F); 
    System.out.println(); 

    System.out.println("Matrix G - Testing matrix scalar multiplication (c * A), c = 1.2"); 
    double c = 1.2; 
    Matrix G = A.times(c); 
    System.out.println(G); 
    System.out.println(); 

    System.out.println("Matrix AB - Testing matrix multiplication (A X B)"); 
    Matrix AB = A.times(B); 
    System.out.println(AB); 
    System.out.println(); 

    System.out.println("Matrix BA - Testing matrix multiplication (B X A)"); 
    Matrix BA = B.times(A); 
    System.out.println(BA); 
    System.out.println(); 

    System.out.println("Matrices AB and BA - Testing Matrix Equality (AB equals BA)"); 
    try 
    { 
     System.out.println(" " + AB.equals(BA)); 
     System.out.println(); 
    } 
    catch(RuntimeException e) 
    { 
     System.out.println(e.getMessage()); 
     System.out.println(); 

    } 
    System.out.println("Matrix b - Creating a random (5 X 1)"); 
    Matrix b = Matrix.random(5,1); 
    System.out.println(b); 
    System.out.println(); 

    System.out.println("Matrix X - Testing the solve method (X = A^-1 * b)"); 
    Matrix L= Matrix.solve(X); 
    double X = Math.pow(A,-1) * b; 
    //b.solve(b); 
    System.out.println(b); 
    System.out.println(); 

    System.out.println("Matrix d - Testing the sove again (A x X) = b ... is it?"); 
    Matrix b = Matrix.solve(); 
    System.out.println(b); 
    System.out.println(); 
    } 
} 
+0

エラーとは何ですか解決方法は何ですか? Matrix = new Matrix()はどこで取得していますか?独自のMatrixクラスを作成しましたか?またはJAMAを使用していますか? –

+0

Java行列クラスで使用されるJAMAパッケージです。Java行列用のライブラリを追加してください。 –

+0

非静的メソッドsolve(Matrix)は静的コンテキストから参照できません –

答えて

0

どうもありがとう!それは次回に役立つでしょう。

「x」とは何ですか、あなたの質問に答えるには、Matrix.solveメソッドは「X」が何であるかを知りません。

Matrix L= Matrix.solve(X); 
double X = Math.pow(A,-1) * b; 

は次のようになります。

double X = Math.pow(A,-1) * b; 
Matrix L= Matrix.solve(X); 

しかしMath.powはマトリックスでは動作しません、あなたがしたい場合は、別の方法を使用する必要がありますので、その後も、あなたはまだエラーを持っています^ 2行列全体。ここにあるもの:https://stackoverflow.com/a/22901024/4329778

+0

それは気に入っていますが、回答に記載されている "互換性のないタイプ:マトリックスをダブルに変換できません"というエラーが表示されます。私は割り当ての一環としてドライバクラスのメソッドが必要です –