簡體   English   中英

MathNet.Symbolics Algebraic.Expand 按降序排列?

[英]MathNet.Symbolics Algebraic.Expand in descending order?

使用MathNet.Symbolics庫,我嘗試以降序打印多項式:

using mse = MathNet.Symbolics.Expression;
using MathNet.Symbolics;

public void Symbolics()
{
    var x1 = 2;
    var y2 = 3;
    var x2 = 4;

    // (2a+3)(a-4)

    var x = mse.Symbol("x");
    var a = mse.Symbol("x");
    var y = mse.Symbol("y");

    var expression = (x1 * a + y2) * (a - x2);
    var expanded = Algebraic.Expand(expression);
    var firstResult = Infix.Format(expanded);


    Debug.Log("Expression: " + expression);
    Debug.Log("Expanded: " + firstResult);
}

當前輸出按升序排列: -12 - 5*x + 2*x^2 ,但我想要其他方式。 我在多項式中嘗試了.ToStringDescending()函數,但無法在這里工作。

此外,如果可能,輸出到 Latex 會很有用,但不是必需的。

我如何得到Algebraic.Expand的降序而不是升序的結果?

您可以使用相應的格式提供程序獲得 Latex 輸出:

Console.WriteLine("LaTeX.Format: " + LaTeX.Format(expanded));

我能得到的最好的方法是使用Summands來獲取它們並反轉列表。 遺憾的是, +號在此過程中丟失了:

Console.WriteLine("Summands: " + string.Join("+", Algebraic.Summands(expanded).Reverse().Select(Infix.Format)));

Numerics.Polynomial 有 ToString() 以升序形式返回字符串和

ToStringDescending(string format, IFormatProvider formatProvider) 按降序格式化多項式,例如“x^3 + 2.0x^2 - 4.3”

以降序形式返回字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM