如果我有最大值中的多项式x^2+y^2
,那么最大值将显示它,如y^2+x^2
。有没有办法指定在变量y
之前显示变量x
?maxima x^2 + y^2中变量的顺序变为y^2 + x^2
回答
Maxima有一个关于对变量进行排序的内置想法,这些变量非常强大,并强加在所有表达式上,以便将它们规范化以进行简化。在某些方面,这种排序与通常用于手动计算的传统排序不同,但人们可以习惯。我的建议是接受它 - 因为它是很难让Maxima改变它的想法。
也就是说,全局变量powerdisp
管理“+”表达式的显示。 powerdisp
默认为false
。当powerdisp
为true
时,“+”表达式的顺序相反。
(%i1) x^2 + y^2;
2 2
(%o1) y + x
(%i2) x^2 + y^2 + 2*x*y;
2 2
(%o2) y + 2 x y + x
(%i3) powerdisp;
(%o3) false
(%i4) powerdisp:true;
(%o4) true
(%i5) %o2;
2 2
(%o5) x + 2 x y + y
(%i6) %o1;
2 2
(%o6) x + y
注意powerdisp
是一把钝刀 - 它重新排序所有的 “+” 表达式。你可以决定是否可以接受。
我不推荐使用mainvar
或ordergreat
。这只解决了特定变量的问题。
有没有可能更好的解决方案,如果你只是有兴趣的变量排序不同(按字母顺序)在tex输出?我不太关心使用maxima时的顺序,但是当我把它展示给我的学生时,他们觉得很困惑。我使用maxima自动生成练习的乳胶解决方案。 – Kasper
是的,可以只更改TeX输出。要做到这一点最明确的方法需要一点Lisp编程。 'powerdisp:true'是否具有预期的效果?或者还有其他的订购需求? –
Powerdisp看起来相当不错,目前我遇到的唯一问题是指数。如果我设置了'powerdisp:true',那么'x^3 + x^2 + 2 * x * y + y^2'变成'x^2 + x^3 + 2 * x * y + y^2' – Kasper
我已经想出了一种方法来颠倒“+”表达式中符号的排序,以便a
在z
之前。但是对于任何给定的符号,指数的排列顺序与现在相同,即按降序排列。我为此发布了代码作为Github项目:https://github.com/robert-dodier/maxima-mplus-symbols-reversed
有一个Lisp代码文件。你可以克隆Git仓库,或者从上面提到的项目页面下载一个文件。请尝试一下,让我知道你的想法。此代码更改2-d和1-d控制台显示以及TeX输出。我只会显示下面的二维输出;其他输出具有相同的条款顺序。
例子:
(%i1) load("form-mplus-symbols-reversed.lisp") $
(%i2) reverse_symbols_order:true $
(%i3) x^2+y^2;
2 2
(%o3) x + y
(%i4) x^3+x^2+2*x*y+y^2;
3 2 2
(%o4) x + x + y + 2 x y
这是一个有点令人失望 - 这是习惯把混合项中x
术语和y
术语之间。但是,如果没有更复杂的排序启发式,似乎不可能实现这一点,因为相对于y^2
,2*x*y
的位置似乎取决于x^2
的存在与否 - 我们不能通过比较它们两个时间(如在本实施方式中)。
为了比较这里是前面的表达式的默认排序:
(%i5) reset (reverse_symbols_order) $
(%i2) x^3+x^2+2*x*y+y^2;
2 3 2
(%o2) y + 2 x y + x + x
谢谢!这似乎确实已经对powerdisp有了很大的改进。我会在代码中尝试一下,看看学生们的想法。如果2 * x * y可以放在两者之间,那确实是理想的。 – Kasper
- 1. 从x1,y1循环到x2,y2,不管它们的顺序为
- 2. 使用matplotlib.pyplot绘制点[[x1,y1],[x2,y2]]
- 3. 按钮无法绘制其坐标(x1,x2,y1,y2)的线图
- 4. TypeError:overlapps()缺少3个必需的位置参数:'y1','x2'和'y2'
- 5. 如何摆脱gnuplot的x2&y2坐标轴?
- 6. 如何从地图坐标获取x1,y1,x2,y2 javascript?
- 7. 设置可拖动围堵坐标[X1,Y1,X2,Y2]
- 8. Python的换行符 “以X1为Y1,X2为Y2,X3为Y3” 声明
- 9. C#Windows 10应用程序 - 画线缓慢从X1,Y1到X2,Y2
- 10. 用特殊的x2和y2坐标轴在matplotlib中绘制散点图
- 11. 有没有办法在ASP.NET页面中绘制直线(x,y) - (x2,y2)?
- 12. fengyuanchen Cropper:如何获得裁剪图像的x1,y1,x2,y2坐标
- 13. 使用CGContextAddArcToPoint()绘制圆弧时,(x1,y1)和(x2,y2)是什么意思?
- 14. 如何将图像从(x1,y1)线性移动到(x2,y2)(使用动画)[Android]
- 15. 在Matlab中查找min(x1,x1 * x2,x1 * x2 * x3,...,x1 * x2 * ... * xN)
- 16. dygraphs y2轴重叠y2刻度
- 17. SIN波线,Y2
- 18. 我将如何转换的sqrt(X2 - X1)^ 2(Y2 - Y1)^ 2,以正确的Java代码
- 19. dyGraphs使用变量'y2'时未显示第二个Y轴
- 20. MATLAB:如何使用plot()w/Matrix输入指定线的属性?即plot([x1 x2 x3],[y1 y2 y3])
- 21. 如果我们知道角度,计算SVG线性梯度属性x1 y1 x2 y2?
- 22. PowerPoint 2010/VBA:将图形添加到组/ ShapeNodes.Insert-Methode - 如何获取X2/Y2和X3/Y3?
- 23. 行为使用python X2
- 24. 在语句String.Format(“{0,2:X2}”,b)中是什么意思“{0,2:X2}”;
- 25. [R排序/顺序堆积变量
- 26. C3:动态添加y2轴
- 27. Mysql。限制$ x1,$ x2。是否可以限制$ x2,$ x1?
- 28. 如何在JavaScript中使用循环函数声明变量x1,x2,...,x10?
- 29. C:int x = k *(x1,x2,x3)?
- 30. UIWebView不缩放超过x2
'ordergreat'和'mainvar'做的工作。看到这个问题https://stackoverflow.com/q/36456544/349708,我相信是相同的。 – Eelvex
@Eelvex谢谢,尝试,但现在如果我尝试'x^2 + x * y + y^2',我会得到'x^2 + y * x + y^2' – Kasper