Как рассчитать sqrt в MathNet.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)"))

тоже не работает. Insted это упрощается до f = "sqrt(9)"

Как заставить его вычислить sqrt числа / переменной?

Есть ли другие проблемы, с которыми я мог бы столкнуться при использовании "автоупрощения" MathNet.Symbolics?

1 ответ

Вы должны запустить выражение через Evaluate метод:

string f = Infix.Print(Infix.ParseOrThrow("sqrt(9)"));
double result = Evaluate.Evaluate(null, f);
Другие вопросы по тегам