Esercizi Lezione 4: Algebra e Analisi.

70. Algebra: Prodotti e scomposizioni. Mathematica dispone di comandi per eseguire operazioni algebriche (Expand) e la scomposizione in fattori (Factor).
Utilizzando Expand e Factor, eseguire i prodotti:
                     (a-b)(a+b), (a-b)(a^2+a*b+b^2)
e le scomposizioni:
                       a^2-b^2, (a^3-b^3), (a^6-b^6)
Si consiglia di evidenziare l'input con il mouse, quindi di utilizzare la Palette "Algebraic Manipulation".
L'errore più comune qui è scrivere ab (un nome di variabile) anzichè a b (un prodotto) . Per evitarlo, non sottointendete mai un prodotto e scrivete a*b.

[Graphics:../Images/index_gr_155.gif]
[Graphics:../Images/index_gr_156.gif]
[Graphics:../Images/index_gr_157.gif]
[Graphics:../Images/index_gr_158.gif]
[Graphics:../Images/index_gr_159.gif]
[Graphics:../Images/index_gr_160.gif]
[Graphics:../Images/index_gr_161.gif]
[Graphics:../Images/index_gr_162.gif]

72. Frazioni algebriche. Diamo qui altri esempi di comandi; per la lista completa rimandiamo alla Palette "Algebraic Manipulation". Semplificare la frazione algebrica 4xy/(6x^2y) usando "Cancel". Sommare e poi suddividere di nuovo la frazione algebrica 2x/(3y)+(3y)/(2z) usando "Together" e "Apart". (Nelle soluzioni incluse, "%" indica il risultato del calcolo precedente.)

[Graphics:../Images/index_gr_163.gif]
[Graphics:../Images/index_gr_164.gif]
[Graphics:../Images/index_gr_165.gif]
[Graphics:../Images/index_gr_166.gif]
[Graphics:../Images/index_gr_167.gif]
[Graphics:../Images/index_gr_168.gif]
[Graphics:../Images/index_gr_169.gif]
[Graphics:../Images/index_gr_170.gif]
[Graphics:../Images/index_gr_171.gif]
[Graphics:../Images/index_gr_172.gif]
[Graphics:../Images/index_gr_173.gif]
[Graphics:../Images/index_gr_174.gif]
[Graphics:../Images/index_gr_175.gif]
[Graphics:../Images/index_gr_176.gif]

75. Semplificazioni. Semplificare le espressioni algebriche:
                        ([Graphics:../Images/index_gr_177.gif]-[Graphics:../Images/index_gr_178.gif])/([Graphics:../Images/index_gr_179.gif]+[Graphics:../Images/index_gr_180.gif]) + y,    ([Graphics:../Images/index_gr_181.gif] - 2 a b + [Graphics:../Images/index_gr_182.gif])
usando il comando "Simplify".

[Graphics:../Images/index_gr_183.gif]
[Graphics:../Images/index_gr_184.gif]

77. Risoluzione di equazioni. Una caratteristica meno spettacolare ma più utile di Mathematica è la possibilità di risolvere equazioni contenenti dei parametri.
I comandi sono Reduce[eq = = eq', x] e Solve[eq = = eq', x], che prendono una equazione scritta nella forma eq = = eq', nella variabile x, e forniscono la lista delle soluzioni. Si noti l'uso del doppio uguale "= =", per evitare la confusione con l'assegnazione "=". Reduce fornisce tutte le soluzioni (quando esista un metodo per trovarle), mentre Solve ne fornisce una lista semplificata, ottenuta supponendo che tutti i coefficienti siano ~= 0. La singola equazione eq = = eq' può venire sostituita da una lista {eq_1 = = eq_1, ..., eq_n = eq'_n}, consentendo così la soluzione di sistemi. La singola variabile può venire rimpiazzata da una lista {x_1,...,x_m}, consentendo così di affrontare equazioni in m variabili.
Risolvere, usando il comando Reduce oppure Solve, l'equazione nell'incognita t:
                        (1/2)g[Graphics:../Images/index_gr_185.gif] + (v1)t + S1 = 0

[Graphics:../Images/index_gr_186.gif]
[Graphics:../Images/index_gr_187.gif]

Le due soluzioni dell'equazione verranno espresse come formule nei parametri g, v1, S1.

77.bis Risoluzione di un sistema di primo grado. Risolvere, usando il comando Reduce oppure Solve, il sistema di matrice dei coefficienti A = {{a11,a12},{a21,a22}}, vettore di variabili X = {x1,x2}, vettore di termini noti B = {b1,b2}. La soluzione sarà una formula nei parametri a11, ..., b2.
Disegnare i vettori e le matrici usate con il comando MatrixForm. Alla fine, ripulire A, X, B.

[Graphics:../Images/index_gr_188.gif]
[Graphics:../Images/index_gr_189.gif]
[Graphics:../Images/index_gr_190.gif]
[Graphics:../Images/index_gr_191.gif]
[Graphics:../Images/index_gr_192.gif]
[Graphics:../Images/index_gr_193.gif]

Attenzione (1). Definite X, B o entrambe come i vettori {x1,x2,x3}, {b1,b2,b3} (in questo caso, sia A.X che B sono vettori), oppure entrambe come matrici ridotte a un'unica colonna:
                                   X = [Graphics:../Images/index_gr_194.gif], B = [Graphics:../Images/index_gr_195.gif]
E' più semplice definire X, B come vettori {x1,x2,x3}, {b1,b2,b3}. Se invece scegliamo X, B come matrici di una colonna, dobbiamo scrivere:
          X={{x1},{x2},{x3}},         B={{b1},{b2},{b3}}
Non potete invece scegliere X come vettore e B come matrice, o viceversa. In Mathematica non è possibile eguagliare un vettore ad una matrice-colonna, anche se della stessa dimensione. Un'equazione si può scrivere solo tra oggetti dello stesso tipo: entrambi vettori, oppure entrambi matrici.

  Attenzione (2).Evitate definizioni del tipo
                            A = MatrixForm[...]
MatrixForm infatti produce il disegno di una matrice, non una matrice vera e propria. Evitare inoltre di usare come secondo argomento di Reduce[eq,var], Solve[eq,var], ... una matrice var = {{x1},{x2}} di variabili: Mathematica richiede in questo punto una lista.

78. Urto tra due corpi. Attenzione: gli esercizi da 78 ad 82 richiedono conoscenze di Fisica I. Si consiglia di saltarli in prima lettura.
Risolvere, usando il comando Solve, il seguente sistema.
[Graphics:../Images/index_gr_196.gif]

Reduce, in questo caso, fornirebbe troppe soluzioni. Solo per curiosità diamo il significato fisico del problema. I parametri m, M rappresentano le masse dei due corpi che si scontrano muovendosi lungo l'asse x. v1, w1 sono le loro velocità iniziali (prima dell'urto). Le incognite v2, w2 sono le loro velocità dopo l'urto. Le due equazioni del sistema rappresentano la conservazione della quantità di moto e dell'energia.

[Graphics:../Images/index_gr_197.gif]
[Graphics:../Images/index_gr_198.gif]

La prima coppia di soluzioni, v2=v1, w2=w1 è da scartare (rappresenta le velocità prima dell'urto. La seconda coppia di soluzioni rappresenta le velocità dei due corpi dopo l'urto.)

79. Definire a partire dalla seconda coppia di soluzioni due funzioni v2[v1_]:= ...., w2[v1_]:= ... , che calcolino le velocità dei due corpi dopo l'urto a partire dalle loro velocità prima dell'urto.

[Graphics:../Images/index_gr_199.gif]
[Graphics:../Images/index_gr_200.gif]

80. Studio delle soluzioni del sistema in funzione di v1. Consideriamo un caso particolare. Fissiamo m, M (masse dei due corpi) a 100, 200, e w1 (velocità del secondo corpo prima dell'urto) a 0. In altre parole: il secondo corpo è originariamente in quiete, quindi viene urtato dal primo, che ha massa la metà, e viaggia con velocità v1.

[Graphics:../Images/index_gr_201.gif]
[Graphics:../Images/index_gr_202.gif]
[Graphics:../Images/index_gr_203.gif]
[Graphics:../Images/index_gr_204.gif]

80 bis. Ricalcoliamo, sotto le ipotesi m=100, M=200, w1=0, le formule v2[v1], w2[v1] che danno le velocità dei due corpi dopo l'urto.

[Graphics:../Images/index_gr_205.gif]
[Graphics:../Images/index_gr_206.gif]
[Graphics:../Images/index_gr_207.gif]

Sotto le ipotesi m=100, M=200, w1=0, le due formule prevedono che il primo corpo (quello di massa m) rimbalzi indietro, con un terzo della sua velocità iniziale, e che il secondo (quello di massa M) si muova in avanti, con due terzi della velocità con cui è stato colpito.

81. Studiamo ora le soluzioni v2[v1], w2[v1] (velocità dei due corpi dopo l'urto) come funzioni di v1 (velocità del primo corpo).

[Graphics:../Images/index_gr_208.gif]

[Graphics:../Images/index_gr_209.gif]

[Graphics:../Images/index_gr_210.gif]

82. Ripulire m, M, v1, v2, w1, w2.

[Graphics:../Images/index_gr_211.gif]

83. Equazioni di grado superiore al secondo. Risolvere, usando Solve, la generica equazione di grado 3. Si noti che la soluzione viene effettivamente trovata, ma non è leggibile, perchè troppo lunga. Reduce fornirebbe una lista di soluzioni ancora più lunga e illeggibile. Per queste equazioni si preferiscono soluzioni numeriche approssimate, usando il comando NSolve[.] (vedi esercizio seguente).

[Graphics:../Images/index_gr_212.gif]
[Graphics:../Images/index_gr_213.gif]

85. Il comando NSolve[eq== eq', x] risolve, analogamente a Reduce e Solve, l'equazione eq = = eq' nella variabile x. A differenza di questi tuttavia, fornisce solo soluzioni numeriche  approssimate, prive di parametri. Conviene usarlo quando Reduce e Solve falliscono, oppure quando essi forniscono una soluzione troppo complicata per essere comprensibile.
[Graphics:../Images/index_gr_214.gif]
prima con Solve: la soluzione verrà lasciata indicata, perchè non esiste una formula in grado di esprimerla. Quindi usate NSolve.

[Graphics:../Images/index_gr_215.gif]
[Graphics:../Images/index_gr_216.gif]
[Graphics:../Images/index_gr_217.gif]

85 bis. Un comando ancora meno completo e preciso, ma che può riuscire quando tutti gli altri hanno fallito,è FindRoot[eq = = eq', {x,x0}]. FindRoot usa il metodo delle tangenti di Newton, richiede come primo argomento l'equazione, come secondo una lista {x,x0} contenente  la variabile x e il punto da cui si fa partire la ricerca della radice (x0 deve essere molto vicino a una radice di eq = = eq' perché il metodo converga, ed anche in questo caso la convergenza non è garantita). FindRoot trova al massimo una radice. Provate ad usare FindRoot per trovare una soluzione dell'equazione precendente partendo da x0=0.

[Graphics:../Images/index_gr_218.gif]
[Graphics:../Images/index_gr_219.gif]

Qui di seguito diamo alcuni esempi di calcoli dell'Analisi risolti usando Mathematica. Tutti questi comandi possono venire trovati nella Palette "Basic Calculation", alla voce "Analisi". Non introduciamo spiegazioni sul loro uso: per impararli, dovrebbe essere sufficiente la spiegazione inclusa nella Palette, oppure alla voce corrispondente dell'Help.

86. Sommatorie. Calcolare, usando il comando Sum[f[i], {i,1,n}], la somma di 1, i, [Graphics:../Images/index_gr_220.gif], [Graphics:../Images/index_gr_221.gif] per i che varia da 0 a n (con n generico).

[Graphics:../Images/index_gr_222.gif]
[Graphics:../Images/index_gr_223.gif]
[Graphics:../Images/index_gr_224.gif]
[Graphics:../Images/index_gr_225.gif]
[Graphics:../Images/index_gr_226.gif]
[Graphics:../Images/index_gr_227.gif]
[Graphics:../Images/index_gr_228.gif]
[Graphics:../Images/index_gr_229.gif]

87. Integrali, Derivate, Equazioni Differenziali (cenni).
Calcolare, usando il comando Integrate[expr, x], l'integrale di x nella variabile x.

[Graphics:../Images/index_gr_230.gif]
[Graphics:../Images/index_gr_231.gif]

88. Calcolare, usando il comando Dt[expr, x], la derivata di [Graphics:../Images/index_gr_232.gif] nella variabile x.

[Graphics:../Images/index_gr_233.gif]
[Graphics:../Images/index_gr_234.gif]

89. Calcolare, usando il comando DSolve[eq = = eq', y[x], x], la soluzione dell'equazione differenziale y' = y nelle variabili y(x) ed x.

[Graphics:../Images/index_gr_235.gif]
[Graphics:../Images/index_gr_236.gif]

90. Limiti. Diamo dei primi esempi di uso di Mathematica nello studio di funzioni. Consideriamo alcuni limiti fondamentali per x->0, ovvere 1/x, Sin[x]/x, (1-Cos[x])/x^2, ... . Per ciascuno di essi, cerchiamo di indovinare il valore del limite sia disegnando il grafico, sia usando il comando Lim[expr, x->x0].
Disegnare il grafico della funzione 1/x nelle vicinanze di x=0. Quindi (utilizzando l'opzione Direction) calcolare il limite di 1/x per:
                   x->0,   x->0 da sinistra,   x->0 da destra

[Graphics:../Images/index_gr_237.gif]

[Graphics:../Images/index_gr_238.gif]

[Graphics:../Images/index_gr_239.gif]
[Graphics:../Images/index_gr_240.gif]
[Graphics:../Images/index_gr_241.gif]
[Graphics:../Images/index_gr_242.gif]
[Graphics:../Images/index_gr_243.gif]
[Graphics:../Images/index_gr_244.gif]
[Graphics:../Images/index_gr_245.gif]
[Graphics:../Images/index_gr_246.gif]

91. Studio grafico di limiti notevoli. Disegnare il grafico delle funzioni:
          sin(x)/x,   (1-cos(x))/x^2,   (e^x-1)/x,   log(1+x)/x
nelle vicinanze di x=0.
Quindi calcolare il limite di tali funzioni per x->0.

[Graphics:../Images/index_gr_247.gif]

[Graphics:../Images/index_gr_248.gif]

[Graphics:../Images/index_gr_249.gif]
[Graphics:../Images/index_gr_250.gif]
[Graphics:../Images/index_gr_251.gif]
[Graphics:../Images/index_gr_252.gif]

[Graphics:../Images/index_gr_253.gif]

[Graphics:../Images/index_gr_254.gif]
[Graphics:../Images/index_gr_255.gif]
[Graphics:../Images/index_gr_256.gif]
[Graphics:../Images/index_gr_257.gif]

[Graphics:../Images/index_gr_258.gif]

[Graphics:../Images/index_gr_259.gif]
[Graphics:../Images/index_gr_260.gif]
[Graphics:../Images/index_gr_261.gif]
[Graphics:../Images/index_gr_262.gif]

[Graphics:../Images/index_gr_263.gif]

[Graphics:../Images/index_gr_264.gif]
[Graphics:../Images/index_gr_265.gif]
[Graphics:../Images/index_gr_266.gif]

92. Limiti indeterminati. Disegnare la funzione sin(1/x) nelle vicinanze di x=0, quindi calcolarne il limite per x->0.

[Graphics:../Images/index_gr_267.gif]

[Graphics:../Images/index_gr_268.gif]

[Graphics:../Images/index_gr_269.gif]
[Graphics:../Images/index_gr_270.gif]
[Graphics:../Images/index_gr_271.gif]


Converted by Mathematica      March 1, 2003