1

.jar ファイルをインポートしましたが、

DoubleEvaluator engine = new DoubleEvaluator();
engine.defineVariable("x", -1);
engine.evaluate("Abs[x]");

エラーがスローされます: org.matheclipse.parser.client.math.ArithmeticMathException: EvalDouble#evaluateFunction(FunctionNode) は不可能: Abs(x) および

engine.evaluate("Sin[x]");

ではない。この理由は何でしょうか?

Exception in thread "main" org.matheclipse.parser.client.math.ArithmeticMathException: EvalDouble#evaluateFunction(FunctionNode) not possible for: Abs(x)
at org.matheclipse.parser.client.eval.DoubleEvaluator.evaluateFunction(DoubleEvaluator.java:563)
at org.matheclipse.parser.client.eval.DoubleEvaluator.evaluateNode(DoubleEvaluator.java:493)
at org.matheclipse.parser.client.eval.DoubleEvaluator.evaluate(DoubleEvaluator.java:460)
at javaapplication14.JavaApplication14.main(JavaApplication14.java:24)
Java Result: 1

そして実行例

import org.matheclipse.parser.client.eval.DoubleEvaluator;

public class application {

public static void main(String[] args) {

    DoubleEvaluator engine = new DoubleEvaluator();

    engine.defineVariable("x",-1);
    engine.evaluate("Abs[x]");

}

}

4

1 に答える 1

1

(スタックトレースとダウンロードアドレスをありがとう)

この問題は数時間前に修正されており、最新バージョンでは問題が解決されているはずです:

https://bitbucket.org/axelclk/symja_android_library/downloads/symjaMMA2016-01-09.zip

欠落していた関数 Abs が追加されました。

FUNCTION_DOUBLE_MAP.put("Abs", new IDouble1Function() {
   public double evaluate(double arg1) {
      return Math.abs(arg1);
   }
 });

違いを参照してください: https://bitbucket.org/axelclk/symja_android_library/diff/symja_android_library/matheclipse-parser/src/main/java/org/matheclipse/parser/client/eval/DoubleEvaluator.java?diff2=c84fa1c92f83&at=master

于 2016-01-09T20:10:14.167 に答える