2017-10-16 120 views
3

如果我有最大值中的多項式x^2+y^2,那麼最大值將顯示它,如y^2+x^2。有沒有辦法指定在變量y之前顯示變量xmaxima x^2 + y^2中變量的順序變爲y^2 + x^2

+0

'ordergreat'和'mainvar'做的工作。看到這個問題https://stackoverflow.com/q/36456544/349708,我相信是相同的。 – Eelvex

+0

@Eelvex謝謝,嘗試,但現在如果我嘗試'x^2 + x * y + y^2',我會得到'x^2 + y * x + y^2' – Kasper

回答

5

Maxima有一個關於對變量進行排序的內置想法,這些變量非常強大,並強加在所有表達式上,以便將它們規範化以進行簡化。在某些方面,這種排序與通常用於手動計算的傳統排序不同,但人們可以習慣。我的建議是接受它 - 因爲它是很難讓Maxima改變它的想法。

也就是說,全局變量powerdisp管理「+」表達式的顯示。 powerdisp默認爲false。當powerdisptrue時,「+」表達式的順序相反。

(%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是一把鈍刀 - 它重新排序所有的 「+」 表達式。你可以決定是否可以接受。

我不推薦使用mainvarordergreat。這隻解決了特定變量的問題。

+0

有沒有可能更好的解決方案,如果你只是有興趣的變量排序不同(按字母順序)在tex輸出?我不太關心使用maxima時的順序,但是當我把它展示給我的學生時,他們覺得很困惑。我使用maxima自動生成練習的乳膠解決方案。 – Kasper

+0

是的,可以只更改TeX輸出。要做到這一點最明確的方法需要一點Lisp編程。 'powerdisp:true'是否具有預期的效果?或者還有其他的訂購需求? –

+0

Powerdisp看起來相當不錯,目前我遇到的唯一問題是指數。如果我設置了'powerdisp:true',那麼'x^3 + x^2 + 2 * x * y + y^2'變成'x^2 + x^3 + 2 * x * y + y^2' – Kasper

2

我已經想出了一種方法來顛倒「+」表達式中符號的排序,以便az之前。但是對於任何給定的符號,指數的排列順序與現在相同,即按降序排列。我爲此發佈了代碼作爲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^22*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 
+0

謝謝!這似乎確實已經對powerdisp有了很大的改進。我會在代碼中嘗試一下,看看學生們的想法。如果2 * x * y可以放在兩者之間,那確實是理想的。 – Kasper

相關問題