¿Cómo le digo a mathematica que haga este reemplazo inteligentemente? (O ¿cómo puedo obtener más inteligente en contar Mathematica para hacer lo que quiera)Pregunta sobre el reemplazo "inteligente" en mathematica
expr = b + c d + ec + 2 a;
expr /. a + b :> 1
Out = 2 a + b + c d + ec
espero que la respuesta sea a + cd + ec + 1
. Y antes de que alguien sugiera, no quiero hacer a :> 1 - b
, porque con fines estéticos, me gustaría tener ambos a
y b
en mi ecuación, siempre y cuando no se pueda hacer la simplificación a+b = 1
.
Además, ¿cómo lo reciba para reemplazar todas las instancias de 1-b
, -b+1
o -1+b
, b-1
con a
o -a
respectivamente, y viceversa?
He aquí un ejemplo para esta parte:
expr = b + c (1 - a) + (-1 + b)(a - 1) + (1 -a -b) d + 2 a
'Replace' reemplaza subexpresiones basado en la equivalencia estructural (ver 'FullForm'), no lo hace realizar cualquier manipulación algebraica. Puede intentar usar 'Reducir', que está diseñado para estos casos. No puedo probarlo ahora sin embargo. –
Podría querer mirar en PolynomialReduce si la expresión generalmente será un polinomio. –