如何在MathNet.Symbolics中计算sqrt

时间:2017-09-12 16:00:10

标签: mathnet mathdotnet mathdotnet-symbolics

我使用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)"))

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

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

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

1 个答案:

答案 0 :(得分:2)

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

string f = Infix.Print(Infix.ParseOrThrow("sqrt(9)"));
double result = Evaluate.Evaluate(null, f);