Я пишу программу, способную решать уравнения / системы с помощью этой библиотеки.
Мне нужен способ, с помощью которого можно легко вычислить коэффициент полинома, что-то вроде:
string input = "(x - 5)(x + 2) = 0"
int degree = DeterminePolynomialDegree(input) //тут degree == 2
У меня получилось вот так:
using MathNet.Symbolics;
using Expr = MathNet.Symbolics.Expression;
var expr = Infix.ParseOrThrow("(x - 5)*(x + 2)"); // без звёздочки не парсит :(
var expanded = Algebraic.Expand(expr);
var xsym = Expr.Symbol("x");
if (SingleVariablePolynomial.IsPolynomial(xsym, expanded))
{
var degreeExpr = SingleVariablePolynomial.Degree(xsym, expanded);
var degree = Evaluate.Evaluate(null, degreeExpr).RealValue;
Console.WriteLine($"Degree: {degree}");
}
else
{
Console.WriteLine("Not a polynomial in x");
}
С двумя переменными не сложнее:
var expr = Infix.ParseOrThrow("(x - 5)*(x + 2) + x * y");
var expanded = Algebraic.Expand(expr);
var xsym = Expr.Symbol("x");
var ysym = Expr.Symbol("y");
var syms = new HashSet<Expr>() {xsym, ysym};
if (Polynomial.IsMultivariatePolynomial(syms, expanded))
{
var degreeXExpr = Polynomial.Degree(xsym, expanded);
var degreeX = Evaluate.Evaluate(null, degreeXExpr).RealValue;
var degreeYExpr = Polynomial.Degree(ysym, expanded);
var degreeY = Evaluate.Evaluate(null, degreeYExpr).RealValue;
Console.WriteLine($"Degree X: {degreeX}, Y: {degreeY}");
}
else
{
Console.WriteLine("Not a polynomial in (x, y)");
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть несколько моделей и для них BusinessContext в котором описаны CRUD операцииПо сути они одни, только меняются таблицы
Надо предоставить игроку возможность создавать игровое поле посредством рисования(пример)Ввод осуществляется исходя из координат курсора(в...
Пробую работать с WCFСоздал службу, и хочу в клиенте ее добавить (Добавить ссылку на службу -> вставляю адрес)