ho generare molto lunghe e complesse espressioni analitiche della forma generale:mirata Semplificare in Mathematica
(...something not so complex...)(...ditto...)(...ditto...)...lots...
Quando provo ad usare Simplify
, Mathematica si blocca, io parto dal presupposto a causa del fatto che si cerca per espandere le parentesi e/o semplificare tra parentesi diverse. Le parentesi, pur contenendo lunghe espressioni, sono facilmente semplificate da Mathematica per conto proprio. C'è un modo per limitare l'ambito di Simplify
a una singola staffa alla volta?
Modifica: Alcune informazioni aggiuntive e progressi.
Quindi, utilizzando il consiglio da voi ragazzi ora ho iniziato a utilizzare qualcosa in vena di
In[1]:= trouble = Log[(x + I y) (x - I y) + Sqrt[(a + I b) (a - I b)]];
In[2]:= Replace[trouble, form_ /; (Head[form] == Times) :> Simplify[form],{3}]
Out[2]= Log[Sqrt[a^2 + b^2] + (x - I y) (x + I y)]
Modifica Times
ad una testa adeguata come Plus
o Power
permette di indirizzare la semplificazione molto accuratamente. Il problema/domanda che rimane, tuttavia, è la seguente: Simplify
continuerà a scendere più in profondità del livello specificato su Replace
, ad es.
In[3]:= Replace[trouble, form_ /; (Head[form] == Plus) :> Simplify[form], {1}]
Out[3]= Log[Sqrt[a^2 + b^2] + x^2 + y^2]
semplifica anche la radice quadrata.
Il mio piano era quella di utilizzare in modo iterativo Replace
dal basso verso l'alto di un livello alla volta, ma questo chiaramente si tradurrà in grande quantità di lavoro ripetuto da Simplify
e concludersi con la stessa identica impantanarsi di Mathematica ho sperimentato in via preliminare . C'è un modo per limitare lo Simplify
a determinati livelli?
Mi rendo conto che questo tipo di restrizione potrebbe non produrre risultati ottimali, ma l'idea qui è di ottenere qualcosa che sia "abbastanza buono".
Grazie a questo (e anche alle altre risposte) ho aiutato molto. – Timo