我使用的是 wxMaxima 15.08.1 (win 10),当我输入这个方程时
/* [wxMaxima: input start ] */a*x+b*y+c*z=0;
我明白了:
/* [wxMaxima: input end ] */cz+by+ax=0
为什么它会改变表达式中术语的位置?似乎是按降序排列的。
然后,如果我输入另一个方程,所有系数都具有相同的未知数,maxima 会正确输出。
/* [wxMaxima: input start ] */a*x^2+b*x+c=0;
/* [wxMaxima: input end ] */ax^2+bx+x=0
最佳答案
Maxima 对“+”和“*”表达式中术语的规范排序有自己的想法。规范排序由函数 ordergreatp
(相当于 orderlessp
)表示,它告诉一个术语是否在另一术语之后(分别是之前)。如果您对术语列表应用sort
,则默认情况下,它们会根据规范顺序进行排序。
默认情况下,“+”术语以相反的顺序显示(与规范顺序相反)。当全局变量powerdisp
为true
时,“+”项按规范顺序显示。您可以决定一种订单或另一种订单更适合您。
(%i2) powerdisp;
(%o2) false
(%i3) a*x + b*y + c*z;
(%o3) c z + b y + a x
(%i4) a*x^2 + b*x + c;
2
(%o4) a x + b x + c
(%i7) powerdisp : true $
(%i8) a*x + b*y + c*z;
(%o8) a x + b y + c z
(%i9) a*x^2 + b*x + c;
2
(%o9) c + b x + a x
关于equation - 不同顺序的方程项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35277627/