Je suis en train de remplacer L
avec Lα
:Substitut variable?
f(x) := c * (x + L);
c: L;
f(x), L: Lα;
Je me attendais à la sortie:
Lα * (x + Lα)
au lieu j'ai eu
L * (x + Lα)
Peut-être que je devrais define
f(x)
à la place?
kill(all);
define(
f(x),
c * (x + L)
);
c: L;
f(x), L: Lα;
Nope - même résultat.
Est-ce que je remplace L
par Lα
dans le mauvais sens?
Modifier:
il est hors Transforme le comportement attendu, comme des maxima ev
avluates expression qu'une seule fois. Un can impose "infinite evaluation" via le drapeau infeval:
f(x), L: La, infeval;
=> La*(x + La)
Une autre solution consiste à utiliser subst à la place:
subst(
Lα, L, f(x)
);
(source)
Génial, cela fonctionne. Pouvez-vous commenter pourquoi Maxima fonctionne de cette façon? Est-ce lié à l'ordre dans lequel l'expression est évaluée? – Adobe
@Adobe: AFAIK une seule évaluation est faite par défaut ([bien qu'il y ait des exceptions] (http://maxima.sourceforge.net/docs/manual/maxima_8.html#evflag)), ce qui signifie 'c = L', pour aller à 'c = L = La', les maxima nécessitent une seconde évaluation. – Thor