[英]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.