Mathematica fornisce anche una serie di funzioni di alto livello per la manipolazione algebrica. Tra questi ci sono Expand
, Apart
e Together
e Cancel
, anche se ce ne sono molti altri.
Inoltre, per lo specifico esempio di applicazione della stessa trasformazione di entrambi i lati di un'equazione (cioè, e l'espressione con la testa Equal
), è possibile utilizzare la funzione Thread
, che funziona come la funzione MultBothSides
, ma con molto più generalità.
In[1]:= expression = 2 a == a b
Out[1]:= 2 a == a b
In[2]:= Thread[expression /a, Equal]
Out[2]:= 2 == b
In[3]:= Thread[expression - c, Equal]
Out[3]:= 2 a - c == a b - c
In entrambe le soluzioni presentate, dovrebbe essere relativamente facile vedere qual è il passo comportava. Se volete qualcosa di un po 'più esplicito, è possibile scrivere la propria funzione in questo modo:
In[4]:= ApplyToBothSides[f_, eq_Equal] := Map[f, eq]
In[5]:= ApplyToBothSides[4 * #&, expression]
Out[5]:= 8 a == 4 a b
Si tratta di una generalizzazione della funzione MultBothSides
che sfrutta il fatto che Map
opere su espressioni con qualsiasi testa, non solo la testa List
. Se stai cercando di comunicare con un pubblico che non ha familiarità con Mathematica, l'utilizzo di questi tipi di nomi può aiutarti a comunicare in modo più chiaro. In una vena correlata, se si desidera utilizzare le regole di sostituzione come suggerito da Ira Baxter, potrebbe essere utile scrivere Replace o ReplaceAll invece di utilizzare lo zucchero sintattico /.
.
In[6]:= ReplaceAll[expression, a -> (x + y)]
Out[6]:= 2 (x + y) == b (x + y)
Se si pensa che sarebbe più chiaro di avere l'equazione reale, al posto del nome della variabile expression
, nel vostro ingresso, e si sta utilizzando l'interfaccia notebook, evidenziare la parola expression
con il mouse, richiamare il menu contestuale e selezionare "Valuta in posizione".
L'interfaccia notebook è anche un ambiente molto piacevole per fare "programmazione alfabetica", quindi è anche possibile spiegare eventuali passaggi che non sono immediatamente evidenti a parole. Credo che questa sia una buona pratica quando si scrivono prove matematiche indipendentemente dal mezzo.
Scusate un paio di anni in ritardo ... ma il piccolo pacchetto che menziono qui http://stackoverflow.com/q/5701159/667867 dovrebbe fare quello che vuoi. Leggi la domanda e la discussione per i caveat! – telefunkenvf14