当前位置 : 主页 > 网页制作 > css >

latex – 在SageMath中以相反顺序显示多项式

来源:互联网 收集:自由互联 发布时间:2021-06-13
所以我想用一个参数(a)在一个变量中打印多项式,比如说 a·s ^ 3 – s ^ 2 – a ^ 2·s – a 1. Sage总是以降低的程度显示它,我想得到类似的东西 1 – a – a ^ 2·s – s ^ 2 a·s ^ 3 将其导出到LaTe
所以我想用一个参数(a)在一个变量中打印多项式,比如说

a·s ^ 3 – s ^ 2 – a ^ 2·s – a 1.

Sage总是以降低的程度显示它,我想得到类似的东西

1 – a – a ^ 2·s – s ^ 2 a·s ^ 3

将其导出到LaTeX.我无法弄清楚如何做到这一点…提前谢谢.

这并不容易,因为排序顺序是在Pynac(Ginac的一个分支)中定义的,Sage使用它来进行基本的符号操作.但是,根据您的需要,可以通过编程方式实现:

sage: F = 1 + x + x^2
sage: "+".join(map(str,sorted([f for f in F.operands()],key=lambda exp:exp.degree(x))))
'1+x+x^2'

不过,我不知道这种事情是否足以满足你的需求.您可能必须遍历“表达式树”,但至少您的示例似乎有效.

sage: F = a + a^2*x + x^2 - a*x^2
sage: "+".join(map(str,sorted([f for f in F.operands()],key=lambda exp:exp.degree(x))))
'a+a^2*x+-a*x^2+x^2'

在一个简短的声明中这样做需要一些像这样的Python技巧,如果你要使用Sage(或Numpy,或者pandas,或者……)相当多的话,这非常值得学习.

网友评论