You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置Mathematica优先显示多项式的高次项?

如何让Mathematica优先显示多项式的高次项?

当然可以实现!Mathematica默认会按升幂(低次项在前)排列多项式,但我们有好几种方法能改成你想要的降幂(高次项在前)显示,不管是单变量还是多变量多项式都能搞定。

方法1:用PolynomialForm快速设置排序规则

这是最直接的方式,利用Mathematica内置的多项式显示选项,指定降幂排序规则:

对于单变量的例子,比如你提到的A + B:

A = x^2 + x;
B = 2 x + 3;
PolynomialForm[A + B, MonomialOrder -> DegreeReverseLexicographic]

输出就是你期望的:x² + 3x + 3

对于多变量多项式,比如你给出的x^2 + y^4 + 3 x + 3 + x y^2 + y + y^3:

poly = x^2 + y^4 + 3 x + 3 + x y^2 + y + y^3;
PolynomialForm[poly, MonomialOrder -> DegreeReverseLexicographic]

输出会按总次数从高到低排列:y⁴ + y³ + x y² + x² + 3x + y + 3

DegreeReverseLexicographic是内置的排序规则,核心逻辑是:先比较项的总次数(各变量次数之和),总次数高的排前面;总次数相同的话,按字典序逆序排列,完全符合高次项优先的需求。

方法2:用Sort自定义排序逻辑

如果你需要更灵活的排序控制(比如总次数相同时,指定优先按某个变量的次数排序),可以把多项式拆成列表,自定义排序条件后再合并:

比如单变量场景,按x的次数降序排序:

Sort[List @@ (A + B), (Exponent[#1, x] > Exponent[#2, x]) &] // Plus

同样会得到x² + 3x + 3

多变量场景,如果希望总次数相同的项里,优先按x的次数降序排列(比如让x y²排在y³前面):

Sort[List @@ poly, 
  If[Total[Exponent[#1, {x, y}]] == Total[Exponent[#2, {x, y}]], 
   Exponent[#1, x] > Exponent[#2, x], 
   Total[Exponent[#1, {x, y}]] > Total[Exponent[#2, {x, y}]]] &] // Plus

输出结果为:y⁴ + x y² + y³ + x² + 3x + y + 3

小提示

如果希望以后默认都用降幂显示,可以设置全局选项:

SetOptions[PolynomialForm, MonomialOrder -> DegreeReverseLexicographic]

这样之后所有多项式的输出都会自动按高次项优先排列啦!

内容的提问来源于stack exchange,提问作者Gene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 11:34:05