2

我正在使用该MathNet.Symbolics库来简化这样的表达式:

string f = Infix.Print(Infix.ParseOrThrow("A+5*2"))

这按预期工作(f = A+10),但试图得到一个数字的根比我预期的要困难得多。例如 :

string f = Infix.Print(Infix.ParseOrThrow("sqrt(9)"))

f = "sqrt(9)“而不是f = "3"像你所期望的那样。

string f = Infix.Print(Infix.ParseOrThrow("sqrt(x^2)"))

f = "sqrt(x^2)"安装的f = "x"

string f = Infix.Print(Infix.ParseOrThrow("9^(1/2)"))

也不起作用。Insted 它被简化为f = "sqrt(9)"

如何强制它计算数字/变量的 sqrt?

在使用 的“自动简化”时,我可能会遇到任何其他问题MathNet.Symbolics吗?

4

1 回答 1

2

您需要通过以下Evaluate方法运行表达式:

string f = Infix.Print(Infix.ParseOrThrow("sqrt(9)"));
double result = Evaluate.Evaluate(null, f);
于 2017-11-26T15:34:10.040 回答