Как рассчитать 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);