¿Por qué Reemplazar y Reemplazar todos dan resultados diferentes incluso cuando solo se usa una regla y una expresión?
al vez alguien pueda explicarme por quéReplace
da una respuesta diferente queReplaceAll
, aunque estoy usando una regla, y creo que tengo una expresión.
De acuerdo con la documentación:
ReplaceAll looks at each part of expr, tries all the rules on it, and then goes on to
the next part of expr. The first rule that applies to a particular part is used; no
further rules are tried on that part, or on any of its subparts
y para Reemplazar
A list of rules can be given. The rules are tried in order. The result of the first
one that applies is returned. If none of the rules apply, the original expr is
returned.
Tengo esta expresión:
z/(0.5 -1.4 z+z^2)
y esta regla
z -> Exp[I*w]
La siguiente entrada
Clear[z]
hz = z/(0.5 - 1.4 z + z^2);
Replace[hz, z -> Exp[I*w]]
ReplaceAll[hz, z -> Exp[I*w]]
produce este resultado:
z/(0.5 -1.4 z+z^2) (*from Replace*)
E^(I w)/(0.5 -1.4 E^(I w)+E^(2 I w)) (*from ReplaceAll*)
Entonces,ReplaceAll
hizo el trabajo que esperaba, pero noReplace
. Lo único que creo que me falta aquí es lo que hace que las partes de una expresión. Entonces, ¿tal vez hz no es 'una' expresión? Ok, bien, pero debería haber podido aplicar la regla al menos a una parte de ella. Pero no hizo ningún reemplazo en ninguna parte
FullForm[hz]
Times[z,Power[Plus[0.5`,Times[-1.4`,z],Power[z,2]],-1]]
¿No es hz una expresión? Si no, ¿cuántas partes tiene? ¿Es el número de hojas al final del gráfico generado porTreeForm[hz]
? Si es así, entonces veo 3 'z' allí, yReplace[]
debería haber reemplazado a uno de ellos
Siempre usé/.
sin pensarlo, que es lo mismo queReplaceAll
, pero ahora usabaReplace[]
pensar es lo mismo que/.
, Encontré esto y noté las diferentes funciones. (tantas funciones para aprender, tan poco tiempo