我試圖取代L
與Lα
:替代變量?
f(x) := c * (x + L);
c: L;
f(x), L: Lα;
我所期望的輸出:
Lα * (x + Lα)
,而不是我
L * (x + Lα)
也許我應該define
f(x)
呢?
kill(all);
define(
f(x),
c * (x + L)
);
c: L;
f(x), L: Lα;
不是 - 同樣的結果。
我是否用錯誤的方式將L
替換爲Lα
?
編輯:
原來這是預期的行爲,如最大值ev
avluates表達一次。一個can impose "infinite evaluation"通過標誌infeval:
另一種解決方案是使用subst代替:
subst(
Lα, L, f(x)
);
(source)
很好,它的工作原理。你能評論爲什麼maxima以這種方式工作嗎?它與評估表達式的順序有關嗎? – Adobe
@Adobe:AFAIK默認情況下只進行一次評估([儘管有例外](http://maxima.sourceforge.net/docs/manual/maxima_8.html#evflag)),這意味着'c = L',爲了去'c = L = La'最大值需要第二次評估。 – Thor