Anteprima
Vedrai una selezione di 7 pagine su 26
Manuale di Mathematica 02 Pag. 1 Manuale di Mathematica 02 Pag. 2
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Manuale di Mathematica 02 Pag. 6
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Manuale di Mathematica 02 Pag. 11
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Manuale di Mathematica 02 Pag. 16
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Manuale di Mathematica 02 Pag. 21
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Manuale di Mathematica 02 Pag. 26
1 su 26
Disdici quando vuoi 162x117
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Sintesi
Il presente documento è un manuale, sufficientemente completo, che può essere utilizzato come riferimento per i comandi che il software Mathematica utilizza per il calcolo simbolico. Nella prima parte vengono introdotti i comandi più comuni relativi al calcolo polinomiale: dopo un’introduzione alla simbologia di base, vengono introdotti i comandi Expand e Factor, e loro varianti, fondamentali per eseguire calcoli diretti, semplificazioni, fattorizzazioni e altre operazioni algebriche “classiche” su polinomi, frazioni algebriche e, in generale, qualsiasi altro tipo di espressione letterale; in particolare vengono forniti numerosi esempi che mettono in luce le peculiarità di una variante di tali comandi rispetto ad altre, al fine di trovare quella più adatta al tipo di risoluzione che si vuole ottenere. Nella seconda parte vengono introdotti comandi più avanzati, quali quelli per il calcolo di MCD e mcm di polinomi, della determinazione della basi di Groebner o della risultante tra polinomi. Nella terza parte vengono introdotti i comandi che generalizzano quelli già presentati a funzioni speciali, trigonometriche, esponenziali e logaritmiche, sempre accompagnati da esempi esplicativi. In appendice, si osserva come sia possibile, in Mathematica, effettuare calcoli fisici utilizzando le unità di misura in quanto il software riconosce le lettere come simboli aritmetici.


<div>

Scarica il

</div>

Estratto del documento

Daniele Lupo Appunti di Mathematica

Calcolo Simbolico 1

ü Introduzione

Ahhh!!! Ci voleva proprio questo bel bagnetto!!! Magari riuscirò pure a far sparire l'effetto

mozzarella della mia pelle, prima che finiscano le lezioni!!!

...Ehm....

...Dicevamo... Come vi avevo già accennato, uno degli aspetti più importanti di Mathematica è il

fatto che permette di eseguire con la stessa straordinaria facilità e velocità sia calcoli numerici che,

sopratutto, calcoli simbolici. Possiamo scrivere qualcosa del tipo

H3

+ ∗ +

3 5 7L

In[1]:= 53

Out[1]=

ma possiamo anche, se vogliamo, eseguire calcoli che includano elementi simbolici

+ +

x 5 x 2

In[2]:= +

2 6x

Out[2]=

Mathematica riordina automaticamente gli elementi:

+ +

x^2 2 4 x

In[3]:= + + 2

2 4 x x

Out[3]=

E applica, automaticamente, alcune semplici semplificazioni:

+

Sqrt@1 xD ^ 4

In[4]:= H1 2

+ xL

Out[4]=

Come potete vedere, la radice quadrata è magicamente scomparsa

A volte, facciamo delle elaborazioni algebriche, ottenendo una particolare espressione, e poi ci

piacerebbe sapere il valore che assumerebbe quell'espressione se andiamo a sostituire dei valori

determinati alle varie incognite. Possiamo fare questo tramite l'operatore di sostituzione:

51

Printed by Mathematica for Students

Daniele Lupo Appunti di Mathematica

ê.

+ + + →

3 x 24 x ^ 4 Sqrt@xD x 4

In[5]:= 6153

Out[5]=

L'operatore di sostituzione è dato dalla combinazione /. dopo l'espressione, e dalle regole di

sostituzione: la regola di sostituzione è data scrivendo l'incognita da sostituire, dopo -> ed infine il

valore che vogliamo al posto dell'incognita. Ovviamente, dato che conoscete le liste, a questo punto

(vero?), potete intuire che possiamo andare a sostituire più incognite in una sola volta usando una

lista per le regole di sostituzione, come in quest'esempio:

ê. 8x

+ − → →

x ^ 2 y ^ 2 3 x y 1, y 5<

In[6]:= 11

Out[6]=

Se vogliamo che la sostituzione sia invece permanente, conviene andare a definire una variabile che

abbia il nome dell'incognita:

= =

x 1; y 5;

In[7]:=

Notate, fra l'altro, un altra caratteristica di Mathematica: possiamo eseguire più comandi in una volta

sola, concatenandoli tramite il punto e virgola, e premendo solo alla fine Shift+Invio. Una volta

eseguita questa operazione, ogni volta che il programma incontrerà la variabile, andrà sempre a

sostituire il valore corrispondente:

+ −

x^2 y^2 3 x y

In[8]:= 11

Out[8]=

Per cancellare il valore di una variabile, e renderla ancora incognita, possiamo usare l'assegnamento

del punto oppure il comando Clear:

=.

x

In[9]:= Clear@yD

In[10]:=

Andando a ricalcolarci l'espressione, vediamo come alle due incognite non è associato più nessun

valore: + −

x^2 y^2 3 x y

In[11]:= − +

2 2

x 3 x y y

Out[11]= 52

Printed by Mathematica for Students

Daniele Lupo Appunti di Mathematica

Inoltre, dato che possiamo associare alle variabili sia espressioni numeriche che simboliche, lo stesso

possiamo fare per le sostituzioni, che quindi non sono limitate solo a valori numerici:

ê.

+ + →

x ^ 2 3 y z z 4 y

In[12]:= +

2

x 7 y

Out[12]=

ü Manipolazioni Algebriche

Una volta ottenute e scritte le nostre espressioni, può risultare molto utile effettuare delle determinate

manipolazioni per scriverle nella forma che più ci aggrada. Andiamo, per esempio, a definire la

seguente equazione algebrica:

H1

= +

eq xL ^ 4

In[13]:= H1 4

+ xL

Out[13]=

Ci sono due funzioni basilari, che ci permettono di espandere e contrarre i termini di un'espressione

algebrica: moltiplica tuti i prodotti e potenze, dando il risultato

Expand[expr] come somma di prodotti

scrive expr come prodotto di fattori minimali

Factor[expr]

Se volessimo utilizzare le funzioni per l'espressione che abbiamo appena scritto, possiamo avere:

Expand@eqD

In[14]:= + + + +

2 3 4

1 4 x 6 x 4 x x

Out[14]=

Mentre, Factor lo riporta nella forma originale

Factor@%D

In[15]:= H1 4

+ xL

Out[15]=

Anche se in genere non abbiamo problemi, bisogna prestare comunque, un attimino di attenzione

H1

nell'usare queste due funzioni. Se, per esempio, volessimo usare Expand per l'espressione

+ 100000

xL , possiamo subito notare che avremo sullo schermo (sempre che la memoria del

computer non ci tradisca prima), qualcosa che non avremmo mai voluto avere. Ma questo capita nel

99,9999% dei casi se effettuiamo qualche malaugurato errore di battitura. In questi tre anni che

conosco Mathematica non mi è mai capitato di dover scrivere apposta formule così lunghe...

Se, invece, ci preme poter scrivere la forma più semplice di un espressione, non sempre usare i due

53

Printed by Mathematica for Students

Daniele Lupo Appunti di Mathematica

comandi appena citati è utile. Infatti non è sempre verificabile subito se la forma più semplice è data

dall'una oppure dall'altra formula, e possiamo solo provare, come in questo caso:

= −

eq x ^ 10 1

In[16]:= −1 + 10

x

Out[16]= Expand@eqD

In[17]:= −1 + 10

x

Out[17]= Factor@eqD

In[18]:= H−1 H1 H1 L H1 L

+ + − + − + + + + +

2 3 4 2 3 4

xL xL x x x x x x x x

Out[18]=

In questo caso la forma più semplice, al contrario del caso precedente, si ottiene con il comando

Factor. Expand lavora in maniera diversa quando abbiamo a che fare con delle funzioni razionali

fratte: HHx Hx Hx ê HHx Hx Hx Hx

= − + − − − − +

expr 2L 5L 4LL 1L 1L 8L 1LL

In[19]:= H−4 H−2 H5

H1

H−8 H−1

+ + +

xL xL xL

Out[19]= 2 +

+ + xL

xL xL

Expand@exprD

In[20]:= H1 H1

H−8 H−1

H−8 H−1

40 22 x

− −

Out[20]= 2 2

+ +

+ +

+ + xL xL

xL xL

xL xL H1 H1

H−8 H−1 H−8 H−1

2 3

x

x +

2 2

+ +

+ + + +

xL xL

xL xL xL xL

Possiamo vedere che il denominatore non viene intaccato dal comando, ed anche che abbiamo in

questo caso separato l'espressione in più espressioni razionali fratte. Questo a volte non è

conveniente. Per espandere questo tipo di espressioni ci sono altri comandi più specifici:

espande solamente il numeratore

ExpandNumerator[expr] espande solamente il denominatore

ExpandDenominator[expr] espande il numeratore, distribuendo il denominatore

Expand[expr] su ogni termine

espande sia il numeratore che il denominatore

ExpandAll[expr]

Come possiamo vedere, quindi, se vogliamo espandere per esempio il numeratore, ma non vogliamo

che sia espanso compretamente come prima, dobbiamo usare il comando appropriato:

54

Printed by Mathematica for Students

Daniele Lupo Appunti di Mathematica

ExpandNumerator@exprD

In[21]:= H1

H−8 H−1

− − +

2 3

40 22 x x x

Out[21]= 2 +

+ + xL

xL xL

In questa maniera, espandiamo il numeratore, ma la scrittura è più compatta. Possiamo anche

espandere il denominatore, oppure entrambe le cose, tramite gli altri comandi:

ExpandDenominator@exprD

In[22]:= H−4 H−2 H5

+ + +

xL xL xL

Out[22]= − +

−8 + + 2 3 4

7 x 9 x x

9 x

ExpandAll@exprD

In[23]:= 40 22 x

− −

Out[23]= − + − +

−8 + +

−8 + + 2 3 4 2 3 4

9 x x 9 x x

9 x 7 x

9 x 7 x 2 3

x x

+

−8 + + −8

− + + + − +

2 3 4 2 3 4

9 x 7 x 9 x x 9 x 7 x 9 x x

Se vogliamo una riscrittura più compatta, possiamo combinare per esempio due dei comandi

precedenti:

ExpandNumerator@ExpandDenominator@exprDD

In[24]:= − − +

2 3

40 22 x x x

Out[24]= −8 + + − +

2 3 4

9 x 7 x 9 x x

In questa maniera abbiamo espanso tutto, ma avitando di scrivere un'espressione fratta per ogni

termine del numeratore...

ExpandAll, pur espandendo tutto quanto, ha un'opzione molto interessante:

patt], etc. espande quelle parti dell'espressione che contengono patt

ExpandAll[expr,

Supponiamo di avere un'espressione con più incognite:

Hx Hx

= − + −

expr yL ^ 4 3L ^ 2

In[25]:= H−3 Hx

2 4

+ + −

xL yL

Out[25]=

Proviamo, adesso, ad espanderlo completamente:

ExpandAll@exprD

In[26]:= − + + − + − +

2 4 3 2 2 3 4

9 6 x x x 4 x y 6 x y 4 x y y

Out[26]= 55

Printed by Mathematica for Students

Daniele Lupo Appunti di Mathematica

Quello che ci aspettavamo, in fondo; supponiamo, adesso, di voler espandere la parte

dell'espressione che contiene la y: in questo caso basta specificarla nel comando ExpandAll:

ExpandAll@expr, yD

In[27]:= H−3 2

+ + − + − +

4 3 2 2 3 4

xL x 4 x y 6 x y 4 x y y

Out[27]=

In questa maniera abbiamo lasciato inalterata la parte che non contiene la y; questo è un metodo

abbastanza potente per poter espandere solo le porzioni che ci interessano.

Tuttavia Mathematica ci viene incontro con due comandi molto potenti per la semplificazione delle

espressioni: cerca la forma più semplice utilizzando un set

Simplify[expr] di semplificazioni algebriche standard

cerca la forma più semplice applicando un

FullSimplify[expr] set di regole di semplificazione molto più ampio

Questi due comandi permettono di trovare la forma più compatta di scrivere un'equazione:

+ +

Simplify@x ^ 2 4 x 4D

In[28]:= H2 2

+ xL

Out[28]= −

Simplify@x ^ 10 1D

In[29]:= −1 + 10

x

Out[29]=

Si può notare che nel primo caso la forma più compatta è quella ottenuta con Factor, mentre nel

secondo caso quella ottenuta con Expand, e che in entrambi i casi Simplify restituisce il risultato

corretto. Tuttavia questo comando va ben oltre le semplici equazioni algebriche; permette infatti di

semplificare una vasta gamma di espressioni. E

1 1

1

H−1 H1 L

H1

− −

SimplifyA

In[30]:= + + + 2

4 xL xL 2 x

4

1

Out[30]= −1 + 4

x

Quando, tuttavia, le espressioni sono complicate e usano funzioni avanzate, Simplify potrebbe non

farcela da solo, e qua entra in gioco il comando FullSimplify, che utilizza un numero di regole molto

più vasto, includendo anche equazioni trascendentali e semplificazioni di funzioni avanzate, come la

funzione Gamma: 56

Printed by Mathematica for Students

Daniele Lupo Appunti di Mathematica

= −

eq Gamma@xD Gamma@1 xD

In[31]:= −

Gamma@1 xD Gamma@xD

Out[31]= Simplify@eqD

In[32]:= −

Gamma@1 xD Gamma@xD

Out[32]= FullSimplify@eqD

In[33]:= π Csc@π xD

Out[33]=

A questo punto, si sarebbe tentati di utilizzare sempre il secondo comando, ma io lo sconsiglio: è

vero che è più potente, ma è anche vero che lo è a prezzo di un costo computazionale

esponenzialmente più elevato; questo potrebbe fare la differenza per espressioni grandi, per cui

potrebbe impiegare un tempo esagerato per portare a termine l'operazione. Usatelo, quindi, solo se

ne vale la pena, e se Simplify da solo non vi soddisfa. Anche se, per i calcoli che siamo soliti fare,

non si perde in fondo tutto questo tempo...

Inoltre, ci sono anche altre funzioni che permettono di manipolare ulteriormente le espressioni, in

modo da poter, magari, visualizzarle nel modo che preferiamo:

moltiplica tutti i prodotti e potenze

Expand[expr] applica ovunque

ExpandAll[expr] Expand

scrive sottoforma di prodotto di fattori

Factor[expr] scrive tutti i termini con un comun denominatore

Together[expr] separa l'espressione in termini con semplici denominatri

Apart[expr] cancella i fattori comuni fra numeratore e denominatore

Cancel[expr] Scrive l'equazione raggruppando le potenze di x

x] Scompone in due fattori, dove in uno non compare i

Dettagli
Publisher
26 pagine