Найти коэффициент полинома C#

351
01 июля 2017, 08:33

Я пишу программу, способную решать уравнения / системы с помощью этой библиотеки.

Мне нужен способ, с помощью которого можно легко вычислить коэффициент полинома, что-то вроде:

string input = "(x - 5)(x + 2) = 0"
int degree = DeterminePolynomialDegree(input) //тут degree == 2    
Answer 1

У меня получилось вот так:

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)");
}
READ ALSO
EF множественные CRUD

EF множественные CRUD

Есть несколько моделей и для них BusinessContext в котором описаны CRUD операцииПо сути они одни, только меняются таблицы

251
Рисование карты игроком по типу Free Rider HD

Рисование карты игроком по типу Free Rider HD

Надо предоставить игроку возможность создавать игровое поле посредством рисования(пример)Ввод осуществляется исходя из координат курсора(в...

200
Аналог scanner&#39;а из java в c#

Аналог scanner'а из java в c#

Добрый день

186
Не подключается локальная служба по net.tcp

Не подключается локальная служба по net.tcp

Пробую работать с WCFСоздал службу, и хочу в клиенте ее добавить (Добавить ссылку на службу -> вставляю адрес)

282