Laboratorio di Fisica Computazionale

Capitolo 3. Calcolo Simbolico

3.1 Espressioni Algebriche

Ci sono molte funzioni in Mathematica che trasformano espressioni algebriche. Alcune di esse sono

	Apart[expr,var]			Riscrive una espressione razionale come somma di termini con
						il minimo denominatore trattando tutte le variabili diverse da var
						come costanti
	Cancel[expr]				Riduce una frazione nella forma più semplice.
	Collect[expr,x] 			Raccoglie i termini che contengono la stessa potenza di x.
	Expand[expr]				Applica la proprietà distributiva del prodotto rispetto alla somma
	ExpandAll[expr]			Applica Expand a tutte le subespressioni
	ExpandDenominator[expr]		Applica Expand al denominatore.
	ExpandNumerator[expr]		Applica Expand al numeratore.
	Factor[expr]				Fattorizza expr completamente
	FactorTerms[expr,x]			Mette in evidenza tutti i fattori che non dipendono da x
	Simplify[expr]				Restituisce la forma più semplice di expr applicando varie
	 					trasformazioni algebriche.
	Together[expr] 			Riduce una somma di frazioni ad unica frazione, con il minimo
						comune denominatore come denominatore
	ComplexExpand[expr]  		Applica Expand assumendo tutte le variabili reali.
	PowerExpand[expr]			Espande tutte le potenze.
	FullSimplify[expr]			Restituisce la forma più semplice di expr applicando varie
	 					trasformazioni che involgono sia funzioni elementari che speciali.

Apart[((5 (x^2) - 4 x + 16)/(((((x^2) - x + 1))^2) (x - 3))), 
      x]

Cancel[(((y^2) - 5 y + 4)/(y - 1))]

myexpr = (((x + 3) (((x - 1))^2))/(((x^2) + 1) (((x + 5))^2)))

Expand[myexpr]

ExpandAll[myexpr]

ExpandDenominator[myexpr]

ExpandNumerator[myexpr]

Clear[myexpr]

Factor[16 (y^2) - 25 (y^4)]

Expand[%]

Simplify[(1/((x^2) - 16)) - ((x + 4)/((x^2) - 3 x - 4))]

In questo caso Simplify non dà l'espressione più semplice perchè non mette insieme le frazioni.

Together[(1/((x^2) - 16)) - ((x + 4)/((x^2) - 3 x - 4))]

ExpandDenominator[%]

3.2  Expressioni Trigonometriche

Ad eccezione di Simplify e ComplexExpand tutte le funzioni introdotte in precedenza lasciano invariate le espressioni trigonometriche. Per manipolare espressioni trigonimetriche Mathematica mette a disposizione le seguenti funzioni:

	TrigExpand[expr]			Espande una espressione trigonometrica in somma di termini.
	TrigFactor[expr]			Fattorizza una espressione trigonometrica in prodotti di termini.
	TrigReduce[expr]			Applica identità trigonometriche per angoli multipli.
	TrigToExp[expr]			Scrive una funzione trigonometrica in forma esponenziale.
	ExpToTrig[expr]			Scrive esponenziali in forma trigonometrica

Expand[Sin[x] Cos[x]]

Simplify[Cos[x]^2 + Sin[x]^2]

ComplexExpand[Cos[x + I y]]

TrigReduce[Sin[x]^2 Cos[y] Sin[z]]

TrigFactor[%]

TrigExpand[Cos[x + y + z]]

ExpToTrig[(E^(I z))]

Un metodo semplice per verificare identità trigonometriche consiste nell'applicare la funzione Simplify alla identità lhs==rhs e vedere se ritorna True.

Simplify[(((1 - Cot[x]))^2) - (((Sec[x] - Csc[x]))^2) + (((1 - Tan[x]))^2) == 0]

Simplify[(2 Cot[4 x] + 2 Csc[4 x]) - (Cot[x] - 
              Tan[x]) == 0]

Simplify[(Tan[(x/2)] Cot[(y/2)] - 
              Cot[(x/2)] Tan[
                  (y/2)]) - ((2 (Cos[y] - Cos[x]))/(Sin[x] Sin[y])) == 0]

3.3 Unità, Conversione di Unità, e  Constanti Fisiche

Nei calcoli si possono inserire anche le unità di misura.

Esempio.

\(Un' 
        auto\ si\ muove\ su\ una\ linea\ retta\ con\ una\ accelerazione\ a = \ \(5.00\ \(m\/s\^2\) . \ \ Se\ la\ velocità\ \ iniziale\ è\ v\_0 = 6.50  m\/s\), \ 
    qual' è\ la\ velocità\ dell' 
        auto\ dopo\ che\ ha\ percorso\ un\ tratto\ s = 
      29.5\ m . \ \((\ 
            Applicare\ l' equazione\ cinematica\ v\^2 = 
              v\_0\^2 + 2\ a\ s)\)\)

v = 
      N[(Sqrt[(((((6.50 m)/s)))^2) + ((2 (29.5 m) (5.00 m))/(s^2))]), 3]

PowerExpand[v]

Il package Miscellaneous`Units` contiene le funzioni Convert e ConvertTemperature ,SI,MKS,\(CGS\ \ per\ la\ conversione\ di\ unità . \ 
Per\ usare\ questo\ package\ bisogna\ prima\ caricarlo\ con\ il\ \(\(comando\)\(.\)\)\)

Needs["Miscellaneous`Units`"]

Convert[((1.00 (10^3) Kilogram)/(Meter^3)), 
      (Gram/(Centimeter^3))]

N[Convert[((55 Mile)/Hour), ((Kilo Meter)/Hour)], 2]

ConvertTemperature[50, Fahrenheit, Celsius]

SI[3 (10^5) Gauss]

Il package Miscellaneous`PhysicalConstants` contiene molte costanti \(fisiche . 
Per\) avere più dettagli sui packages bisogna consultare l'Help.

Needs["Miscellaneous`PhysicalConstants`"]

ElectronMass (SpeedOfLight^2)

3.4 Definizione di variabili e Regole di Trasformazione

Ad una variabile si può assegnare sia un valore numerico che simbolico mediante il comando
							var=expr
Vediamo alcuni esempi.

t = Expand[(a + b) (a - b)]

?t

(b^2) + t

t = (d^2)

(b^2) + t

L'assegnazione resta finchè il valore viene cambiato o rimosso. Questo a volte può essere fonte di errore. 
Risolviamo per esempio l'equazione differenziale (((d^2) x)/(dt^2)) - (dx/dt) - 
          x = 0 con le condizioni iniziali x(
              0) = 1 x' (0) = 0

NDSolve[{x''[t]-x'[t]-x[t]==0,x'[0]==0,x[0] == 1},x,{t, 0, 5}]

Clear[t]

NDSolve[{x''[t]-x'[t]-x[t]==0,x'[0]==0,x[0] == 1},x,{t, 0, 5}]

Un modo per evitare questo tipo di errore è quello di usare regole di trasformazione
							expr/.var->value
Con questo tipo di sintassi alla variabile var non viene assegnato alcun valore mentre expr viene calcolato sostituendo a var value.
Vediamo alcuni esempi.

2 x + 10 /. x -> 10

x

ElectronMass (SpeedOfLight^2)

% /. ((Kilogram (Meter^2))/(Second^2)) -> 
        Joule

3.5 Equazioni

La funzione
						Solve[l  hs == rhs,var]
\(tenta\ di\ risolvere\ esattamente\ l' 
        equazione\ lhs = \(var\ rispetto\ alla\ variabile\ var . 
\ 
              Per\ esempio\ risolviamo\ l' 
            equazione\ di\ secondo\ grado\ x\^2\  - \ 3\ x\  - \ 10\  = 
        0\)\)

Solve[x^2  -  3 x  -  10  ==  0,  x]

\(\(\(\ \)\(Il\ risultato\ è\ una\ lista\ di\ regole\ di\ trasformazioni\)\)\). Si può verificare l'esattezza della soluzione applicando alla equazione le regole di trasformazione

x^2  -  3 x  -  10  ==  0  /.  %

\(\(\(\ \)\(Per\ avere\ la\ lista\ delle\ soluzioni\ basta\ applicare\ a\ x\)\)\) le regole di trasformazione

x  /.  %%

x /. %90[[1]]

\(Il\ comando\ Solve\ è\ adatto\ a\ risolvere\ soprattutto\ equazioni\ polinomiali, \ 
    ma\ può\ risolvere\ anche\ altri\ tipi\ di\ equazioni . \ 
        Per\ esempio\)

ClearAll

Solve[p == ((m v)/(Sqrt[1 - ((v^2)/(c^2))])), v]

Solve[9 Cos[x]^2 + 8 Cos[x] == 1, x]

Solve[(E^(-x)) (x^2) + x - 5 == 0, x]

Solve[(x^5) - 3 (x^4) + 2 (x^3) + x == 4, x]

N[%]

La funzione
				Solve[{l  hs1 == rhs1,l  hs2 == rhs2,...},{var1, var2,  ... }]
\(tenta\ di\ risolvere\ esattamente\ un\ sistema\ di\ equazioni\ \ rispetto\ alle\ variabili\ var1, var2,  ... \)

Solve[{x + y == z, -6 x - 2 z + 10 == 0, 
        6 x - 4 y - 24 == 0}, {x, y, z}]

3.6 Somme

Sum[f, {i, imin, imax}] calcola la somma
						(∑_(i = imin)^imax) f
Sum[f, {i, imin, imax, di}] calcola la somma incrementando l'indice i di di.
Se imin vale 1 può essere \(omesso . 
Per\) esempio generiamo le  somme
				1 + (1/x) + (1/(x^2)) + (1/(x^3)) + (1/(x^4)) + (1/(x^5)) + 
        (1/(x^6))
				1 + (1/(2^4)) + (1/(3^4)) + (1/(4^4)) + (1/(5^4)) + (1/(6^4)) + 
        (1/(7^4))
				1 + (1/(x^2)) + (1/(x^4)) + (1/(x^6)) + (1/(x^8)) + 
        (1/(x^10))

Sum[1/x^i,  {i,  0,  6}]

Sum[1/i^4,  {i,  1,  7}]

N[%]

Sum[1/x^i,  {i,  0,  10,  2}]

Sum[1/(x^i  +  y^j),  {i,  1,  3},  {j,  1,  i}]

3.7 Definizione di Funzioni

Una ovvia definizione di funzione potrebbe essere
				name[arg1, arg2,  ... ]:=body;
\(Per\ illustrare\ il\ risultato\ di\ questa\ definizione\ definiamo\ la\ funzione\ f \((x)\) = 
      x\^3 - 1\)

f[x]  :=  x^3  - 1

f[x]

f[y]

f[2]

Contrariamente a quello che uno si aspetta Mathematica  non dà come risultato (y^3)-1 e 7 per f[y] e f[2] rispettivamente. Ciò perchè 
Mathematica conosce f[x] e non f[y] e f[2]. 
Per definire una funzione è necessario scrivere
				name[arg1_,arg2_,...]:=body
dove "_" è chiamato blank e sta per "qualsiasi espressione" che nel corpo della funzione sarà chiamata arg.

f[x_]  :=  x^3  -  1

f[y]

f[2]

Clear[f]

Le funzioni con un solo argomento possono essere richiamate anche in forma operatoriale
				func@arg     prefix
				arg//func       postfix

N[Sin[50 Degree]]  ==  Sin[50 Degree] // N

Sqrt@3.2

3.2 // Sqrt

Per vedere la definzione di una funzione si può utilizzare l'operatore "?"

f[x_]  :=  x^3

?f

Si può anche associare alla definizione di una funzione un messaggio.

f::usage  =  "f[x] calcola il cubo di x.";

?f

?? f

Clear[f]

3.8 Limiti

\(Limit[f[x], 
        x -> 
          a]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ calcola, \ se\ esiste, \ 
    il\ limite\ \ \(lim\+\(x -> a\)\ f \((x)\)\)\)
Limit[f[x], x -> a, 
        Direction -> -1]            calcola,  
    se esiste,  
    il limite  (lim_(x -> a-)) f (x)
Limit[f[x], x -> a, 
        Direction -> 1]               calcola,  
    se esiste,  
    il limite  (lim_(x -> a+)) f (x)

Limit[Sqrt[9 x^2  +  2]/(3  -  4 x),  
      x  ->  -Infinity]

Limit[2 x^2/(9  -  x^2),  x  ->  3,  
      Direction  ->  -1]

Limit[2 x^2/(9  -  x^2),  x  ->  3,  
      Direction  ->  1]

3.9 Operatori Relazionali e Logici.

Gli operatori relazionali confrontano due espressioni e danno come risultato True o False quando il confronto è possibile.
Gli operatori relazionali sono:
lhs==rhs  o Equal[lhs,rhs]				True se lhs=rhs
lhs!=rhs  o Unequal[lhs,rhs]				True se lhs≠rhs
lhs > rhs  o Greater[lhs,rhs] 				True se lhs>rhs
lhs>=rhs  o GreaterEqual[lhs,rhs]			True se lhs≥rhs
lhs < rhs  o Less[lhs,rhs] 				True se lhs<rhs
lhs<=rhs  o LessEqual[lhs,rhs] 			True se lhs≤rhs

f[x_]  :=  x^2

g[x_]  :=  x^3

g[2]  >  f[3]  +  1

8  -  5  ==  3  ==  6/2

4  >  3  <=  2

1  +  x  >  2 y

Gli operatori logici agiscono su espressioni logiche e danno come risultato True o False
Gli operatori relazionali sono:
!expr o Not[expr]                                                             True se expr è False   False  se expr è  True 
expr1 && expr2 &&... o And[expr1,expr2,..]   Calcola le espressioni nell,ordine e da
                                                                                                   immediatamente False se una di essa è False,  
                                                                                                   e  True se tutte sono  True
expr1 || expr2 ||... o Or[expr1,expr2,..]      Calcola le espressioni nellordine e da
                                                                                                   immediatamente True se una di essa è True,  
                                                                                                   e False se tutte sono  False
Xor[expr1,expr2,..]                                                     True se il numero di expr True è dispari 
                                                                                                    False   altrimenti 
Null

4  >  3  ||  5  <=  10

Xor[4  >  3,  5  <=  10]

EvenQ[g[2]  +  1]  &&  1/0  <  10

1/0  <  10  &&  EvenQ[g[2]  +  1]

a  ||  b  ||  c

Clear[f,  g]

3.10 Assegnazione di variabile e regole di trasformazioni immediate e ritardate

Scrivendo var=value la variabile var assume immediatamente il valor value.
Se invece scriviamo var:=value l'assegnazione è ritardata, cioè l'assegnazione viene fatta nel momento in cui è richiesta. 
Anche le regole di trasformazione possono essere immediate (expr/.lhs->rhs) se la sostituzione è fatta subito o ritardate (expr/.lhs:>rhs) se la sostituzione è fatta al momento in cui è richiesta.
     Vediamo la differenza con degli esempi.

imasm  =  Random[]

dlasm  :=  Random[]

Table[imasm,  {4}]

Table[dlasm,  {4}]

{f[a],  f[a],  f[a],  f[a]}  /.  f[a]  ->  Random[]

{f[a],  f[a],  f[a],  f[a]}  /.  f[a]  :>  Random[]

3.11 Derivate

D[f, x] da ((∂f)/(∂x)) derivata parziale della funzione f rispetto a x
D[f, {x, n}] da (((∂^n)f)/(∂(x^n))) derivata n-sima parziale rispetto a x.

D[Cos[4  x]/(1  -  Sin[4  x]),  x]

Simplify[%]

%  /.  x  ->  0

D[4  x^2  -  5  x  +  8  - 3/x,  {x,  4}]

D[x^3 y^2  -  2 x^2 y  +  3 x,  x,  y]

3.12 Integrazione

Integrate[f, x] da∫ fdx  integrale indefinito della funzione f
Integrate[f, {x, a, b}] da(∫_a^b) fdx  integrale definito della funzione f tra a e b

Integrate[ x^4/(a^2  +  x^2),  x ]

D[%, x]

Simplify[%]

Integrate[(5 x  -  2 Sqrt[x]  +  32/x^3),  {x,  1,  
        4}]

Integrate[Tan[Cos[x]],  {x,  0,  1}]

N[%]

Integrate[
      x^2  +  y^2  +  1,  {x,  0,  1},  {y,  0,  
        2  -  2 x}]

3.13 Serie di potenze

Series[f, {x, (Subscript["\!\(\*StyleBox[\"\\\"x\\\"\", \"TI\"]\)", 0]), n}] genera lo sviluppo in serie di potenze di  f intorno al punto x = (Subscript[x, 0])all'ordine (((x - (Subscript[x, 0])))^n)

Series[Exp[Sin[u]],  {u,  0,  7}]

Series[(1  +  x^4)^(1/3),  {x,  0,  8}]

Normal[Series] trasforma una serie di potenze in una espressione normale

Normal[%]

Integrate[%,  {x,  0,  0.3}]

NIntegrate[(1  +  x^4)^(1/3),  {x,  0,  0.3}]

Esempio 3.13.1

Calcolare il potenziale elettrico V sull'asse di un disco uniformemente carico di raggio r e densità σ. Verificare che V, per x >> r approssima il potenziale prodotto da una carica puntiforme.

k g Pi Integrate[2  a/Sqrt[x^2  +  a^2],  {a,  0,  r}] // 
      PowerExpand

%  /.  x  ->  r/y

Series[%,  {y,  0,  1}] // PowerExpand

(%  //  Normal)  /.  y  ->  r/x

%  /.  g Pi r^2  ->  q

3.14 Equazioni differenziali

DSolve[eqn, y[x], x] risolve l'equazione differenziale eqn rispetto alla funzione y[x] della variabile indipendente x.

\(DSolve[\(\(y'\)'\)[x]\  - \ 3\ \(y'\)[x]\  - \ 18\ y[x]\  == \ 
        x\ Exp[4\ x], 
	\ \ \ \ \ \ \ \ \ \ \ \ \ \ y[x], \ x]\)

DSolve[x''[t]  +  r x'[t]  +  wo^2 x[t]  ==  0,  
      x[t],  t]

\(DSolve[{\(\(y'\)'\)[x]\  + \ 8\ \(y'\)[x]\  + \ 16\ y[x]\  == \ 
          0, 
	\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y[0]\  == \ 
          2, \ \(y'\)[0]\  == \ 1}, \ y[x], \ x]\)

Esempio 3.14.1.

Due oscillatori armonici sono uniti, come in figura. Mentre (Subscript[m, 2]) è tenuta ferma, (Subscript[m, 1]) viene spostata a sinistra di una distanza a. Al tempo t = 0, entrambe le masse vengono rilasciate. Determinare il loro moto successivo. Quali sono le frequenze normali del sistema? Siano (Subscript[x, 1]) e (Subscript[x, 2])gli spostamenti di (Subscript[m, 1])e (Subscript[m, 2]). Ciascuno spostamento è misurato dalla posizione di equilibrio, e la direzione verso destra è quella positiva. Considerare solo il caso di masse e costanti elastiche uguali.

oscillatori = 
        Block[{molla}, 
          molla[x0_, scale_] := 
            Block[{x, y}, 
              x[t_] := scale (Sin[t] + (t/2)  + (π/4) + 
                          1)/(Sin[(9/2) π] + (10/4) π + 
                          1) + x0; 
y[t_] := 
                scale  Cos[t]; 
              ParametricPlot [{x[t], 
                  y[t]}, {t, -(1/2) π, (9/2) π}, 
                PlotStyle -> {Thickness[0.006]}, Axes -> False, 
                DisplayFunction -> Identity]]; 
          Show[Graphics[{Thickness[0.006], RGBColor[0.70, 0.70, 0.70], 
                Rectangle[{0. , - .15}, { .1,  .15}], 
                RGBColor[0.0, 0.0, 0.0], Line[{{ .1, 0}, { .15, 0}}], 
                Line[{{ .1, - .15}, { .1,  .15}}], 
                Text[(Subscript[m, 1]), { .3, - .04}], Line[{{ .25, 0}, { .35, 0}}], 
                Text[(Subscript[m, 2]), { .5, - .04}], Line[{{ .45, 0}, { .5, 0}}], 
                PointSize[0.05], Point[{ .3, 0. }], Point[{ .5, 0. }]}, 
              AspectRatio -> Automatic], molla[ .15,  .1], 
            molla[ .35,  .1], 
            PlotRange -> {{0,  .55}, {- .15,  .15}}, 
            AspectRatio -> Automatic, 
            TextStyle -> {FontSize -> 14, 
                FontWeight -> "Bold"}]];

Le equazioni del moto sono
				(Subscript[(Overscript[x, ¨]), 1]) = -(k/m) 
              (Subscript[x, 1]) + (k/m) ((Subscript[x, 2]) - (Subscript[x, 1])) = -((2  k)/m) 
              (Subscript[x, 1]) + (k/m) (Subscript[x, 2])
				(Subscript[(Overscript[x, ¨]), 2]) = -(k/m) ((Subscript[x, 2]) - 
                (Subscript[x, 1])) = +(k/m) (Subscript[x, 1]) - (k/m) 
              (Subscript[x, 2])
In termini matriciali:
	(∂_t^2)(({{(Subscript[x, 1])}, {(Subscript[x, 2])}}))=Ω(({{(Subscript[x, 1])}, {(Subscript[x, 2])}}))       con      Ω=(({{-2 (ω^2), (ω^2)}, {(ω^2), -(ω^2)}}))    e    ω=(Sqrt[(k/m)])
\(x\_1\ e\ x\_2\ sono\ ora\ le\ coordinate\ di\ un\ vettore\ in\ uno\ spazio\ di\ Hilbert\ a\ 2\ dimensioni\ e\ Ω\ è\ un\ operatore\ su\ questo\ spazio . 
Detti\ \  | \(\(1\)\(>\)\)\) =(({{1}, {0}}))    e ,|2> =(({{0}, {1}})) i due vettori di base, \(il\ generico\ stato\ del\ sistema\ sarà\ dato\ dal\ vettore\)
				\(\(\(|\)\(\(x\)\(>\)\)\)\  = 
        x\_1\  | 1 > \ \(+\ x\_2\)\  | 2 > \ e\ \ \ ∂\_t\%2 | 
          x >= \ Ω | 
          x > \(\(.\)\(\ \)\(
\)\(In\)\)\ questa\ base\ le\ componenti\ del\ vettore\ di\ stato\ hanno\ un\ chiaro\ \ significato\ \(fisico : \ 
                tuttavia\ le\ equazioni\ del\ moto\ si\ presentano\ come\ equazioni\ differenziali\ accoppiate . \ 
                    I\ modi\ normali\ sono\ le\ componenti\ di\ una\ nuova\ base\ dello\ spazio\ di\ Hilbert\ che\ soddisfano\ ad\ equazioni\ del\ moto\ disaccoppiate . \ 
La\ nuova\ base\ è\ data\ dagli\ autovettori\ dell' operatore\ \ Ω\), \ 
      che\ chiamiamo\  | 
            n\_1 > e\  | \(\(n\_2\)\(>\)\) : 
			Ω\  | \(\(n\_i\)\(>\)\)\  = \ \(λ\_i | 
            n\_2 > \ con\ \ \ i = 1\), 2\)

Ω=(({{-2 (ω^2), (ω^2)}, {(ω^2), -(ω^2)}}));{{(Subscript[λ, 1]), (Subscript[λ, 2])}, {(Subscript[v, 1]), (Subscript[v, 2])}} = 
        Factor[Eigensystem[Ω]]

Detti -(Subscript[ω, 1]^2) e -(Subscript[ω, 2]^2) gli autovalori (negativi) di Ω e (Subscript[n, 1]) e (Subscript[n, 2]) i rispettivi autovettori, si ha

(Subscript[ω, 1]) = 
        FullSimplify[(Sqrt[-(Subscript[λ, 1])]), ω > 
            0];
(Subscript[ω, 2]) = 
        FullSimplify[(Sqrt[-(Subscript[λ, 2])]), ω > 
            0];
(Subscript[n, 1]) = FullSimplify[((Subscript[v, 1])/(Subscript[v, 1])) . (Subscript[v, 1])];
(Subscript[n, 2]) = FullSimplify[((Subscript[v, 2])/(Subscript[v, 2])) . (Subscript[v, 2])];
\(Print[\*""(Subscript[ω, 1]) ="", ω\_1, \*""      (Subscript[n, 1]) ="", 
      n\_1, \*""\n(Subscript[ω, 2]) ="", ω\_2, \*""     (Subscript[n, 2]) ="", n\_2]\)

Consideriamo ora (Subscript[y, 1]) e  (Subscript[y, 2]), le componenti del generico vettore di stato in questa nuova base
				|x>  = 
        (Subscript[y, 1]) | (Subscript[n, 1]) >  + (Subscript[y, 2]) | (Subscript[n, 2])>                  (*)
avremo
		 (∂_t^2)|x> =  (∂_t^2)(({{(Subscript[y, 1])}, {(Subscript[y, 2])}}))=Ω(({{(Subscript[y, 1])}, {(Subscript[y, 2])}}))  = Ω ((Subscript[y, 1]) | (Subscript[n, 1]) >  + (Subscript[y, 2]) | (Subscript[n, 2])>) = -(Subscript[ω, 1]^2)(Subscript[y, 1])|(Subscript[n, 1])>-(Subscript[ω, 2]^2) (Subscript[y, 2])|(Subscript[n, 2])> = (({{-(Subscript[ω, 1]^2), 0}, {0, -(Subscript[ω, 2]^2)}}))(({{(Subscript[y, 1])}, {(Subscript[y, 2])}})) =  (({{-(Subscript[ω, 1]^2) (Subscript[y, 1])}, {-(Subscript[ω, 2]^2) (Subscript[y, 2])}}))
cioè il moto dei modi normali è completamente disaccoppiato e corrisponde a due oscillatori indipendenti. Risolviamo le due equazioni differenziali con le condizioni di velocità iniziali nulle:

(Subscript[y, 1])[t_] =. ; (Subscript[y, 2])[t_] =. ; 
    (Subscript[y, 1])[t_] = 
      (Subscript[y, 1])[t] /. DSolve[{(Subscript[y, 1])''[t]  + (Subscript[ω, 1]^2) 
                      (Subscript[y, 1])[t] == 0, (Subscript[y, 1])'[0] == 0, 
                (Subscript[y, 1])[0] == A}, (Subscript[y, 1])[t], t][[1]] // 
        FullSimplify
(Subscript[y, 2])[t_] = 
      (Subscript[y, 2])[t] /. DSolve[{(Subscript[y, 2])''[t]  + (Subscript[ω, 2]^2) 
                      (Subscript[y, 2])[t] == 0, (Subscript[y, 2])'[0] == 0, 
                (Subscript[y, 2])[0] == B}, (Subscript[y, 2])[t], t][[1]] // 
        FullSimplify

Dall'equazione (*) vediamo che

{(Subscript[x, 1])[t_], (Subscript[x, 2])[t_]} = (Subscript[y, 1])[t] (Subscript[n, 1])  +  (Subscript[y, 2])[t] (Subscript[n, 2])

3.15 Transformate di Fourier

({{"\!\(\*StyleBox[\"\\\"FourierTransform[\\\"\", \"MR\"]\)\!\(\*StyleBox[\"\\\"expr\\\"\", \"TI\"]\)\!\(\*StyleBox[\"\\\",\\\"\", \"MR\"]\) \!\(\*StyleBox[\"\\\"t\\\"\", \"TI\"]\)\!\(\*StyleBox[\"\\\",\\\"\", \"MR\"]\) "ω"\!\(\* StyleBox[\"\\\",Opts]\\\"\",\n\"MR\"]\) ", trasformata di Fourier di  expr}, {"\!\(\*StyleBox[\"\\\"InverseFourierTransform[\\\"\", \"MR\"]\)\!\(\*StyleBox[\"\\\"expr\\\"\", \"TI\"]\)\!\(\*StyleBox[\"\\\",\\\"\", \"MR\"]\) "ω"\!\(\* StyleBox[\"\\\",\\\"\",\n\"MR\"]\) \!\(\* StyleBox[\"\\\"t\\\"\",\n\"TI\"]\)\!\(\* StyleBox[\"\\\",Opts]\\\"\",\n\"MR\"]\) ", trasformata inverse di Fourier di expr}})

In Mathematica la trasformata di Fourier di una funzionef(t)è definita normalmente come\(\(1\/\@\(2  π\)\) \(∫\_\(-∞\)\%∞\( f(t)\)\ \(e\^\(i  ω  t\)\) dt\)\). La trasformata inversa di Fourier diF(ω)è analogamente definita come\(\(1\/\@\(2  π\)\) \(∫\_\(-∞\)\%∞\( F(ω)\)\ \(e\^\(\(-i\) ω  
                      t\)\) dω\)\). In differenti campi scientifici e tecnici vengono usate spesso differenti convenzioni  .  L'opzione FourierParameters in Mathematica permette di scegliere tra le varie convenzioni.

({{"\!\(\*
StyleBox[\"\\\"convenzion\\\"\",\n\"SO10\"]\)\!\(\* StyleBox[\"i\",\n\"SO10\"]\)\!\(\* StyleBox[\" \",\n\"SO10\"]\)\!\(\* StyleBox[\"comuni\",\n\"SO10\"]\) ", "\!\(\* StyleBox[\"\\\"parametri\\\"\",\n\"SO10\"]\) ", "\!\(\* StyleBox[\"\\\"Trasformata di Fourier\\\"\",\n\"SO10\"]\) ", Trasformata inverse  di Fourier\(\*"""" \*"""\) "}, {"\!\(\*StyleBox[\"\\\"Mathematica\\\"\", \"TI\"]\) default ", "\!\(\*StyleBox[\"\\\"{0,\\\"\", \"MR\"]\) \!\(\*StyleBox[\"\\\"1}\\\"\", \"MR\"]\) ", \(\(1\/\@\(2  π\)\) \(∫\_\(-∞\)\%∞ 
                          f \((t)\)\ \(e\^\(i  ω  
                                t\)\) dt\)\)" ", \(\(1\/\@\(2  π\)\) \(∫\_\(-∞\)\%∞ 
                          F \((ω)\)\ \(e\^\(\(-i\) ω  
                                t\)\) dω\)\)" "}, {"pure mathematics ", "\!\(\*StyleBox[\"\\\"{1,\\\"\", \"MR\"]\) \!\(\*StyleBox[\"\\\"-1}\\\"\", \"MR\"]\) ", (∫_(-∞)^∞) 
                        f (t) (e^(-i ω  
                              t)) dt" ", \(\(1\/\(2  π\)\) \(∫\_\(-∞\)\%∞ 
                          F \((ω)\)\ \(e\^\(i  ω  
                                t\)\) dω\)\)" "}, {"classical physics ", "\!\(\*StyleBox[\"\\\"{-1,\\\"\", \"MR\"]\) \!\(\*StyleBox[\"\\\"1}\\\"\", \"MR\"]\) ", \(\(1\/\(2  π\)\) \(∫\_\(-∞\)\%∞ 
                          f \((t)\)\ \(e\^\(i  ω  
                                t\)\) dt\)\)" ", (∫_(-∞)^∞) 
                        F (ω) (e^(-i ω  
                              t)) dω" "}, {"modern physics ", "\!\(\*StyleBox[\"\\\"{0,\\\"\", \"MR\"]\) \!\(\*StyleBox[\"\\\"1}\\\"\", \"MR\"]\) ", \(\(1\/\@\(2  π\)\) \(∫\_\(-∞\)\%∞ 
                          f \((t)\)\ \(e\^\(i  ω  
                                t\)\) dt\)\)" ", \(\(1\/\@\(2  π\)\) \(∫\_\(-∞\)\%∞ 
                          F \((ω)\)\ \(e\^\(\(-i\) ω  
                                t\)\) dω\)\)" "}, {"systems engineering ", "\!\(\*StyleBox[\"\\\"{1,\\\"\", \"MR\"]\) \!\(\*StyleBox[\"\\\"-1}\\\"\", \"MR\"]\) ", (∫_(-∞)^∞) 
                        f (t) (e^(-i ω  
                              t)) dt" ", \(\(1\/\(2  π\)\) \(∫\_\(-∞\)\%∞ 
                          F \((ω)\)\ \(e\^\(i  ω  
                                t\)\) dω\)\)" "}, {"signal processing ", "\!\(\*StyleBox[\"\\\"{0,\\\"\", \"MR\"]\) \!\(\*StyleBox[\"\\\"-2\\\"\", \"MR\"]\) \!\(\*StyleBox[\"\\\"Pi}\\\"\", \"MR\"]\) ", (∫_(-∞)^∞) 
                        f (t) (e^(-2 π  i  ω  
                              t)) dt" ", (∫_(-∞)^∞) 
                        F (ω) (e^(2  π  i  ω  
                              t)) dω" "}, {"general case ", {"\!\(\*StyleBox[\"\\\"a\\\"\", \"TI\"]\)\!\(\*StyleBox[\"\\\",\\\"\", \"MR\"]\) \!\(\*StyleBox[\"\\\"b\\\"\", \"TI\"]\)"}" ", \(\(\@\(\(\(|\)\(b\)\(|\)\)\/\((2  π)\)\^\(1 - a\)\)\) \(∫\_\(-∞\)\%∞ 
                          f \((t)\)\ \(e\^\(i  b  ω  
                                t\)\) dt\)\)" ", \(\(\@\(\(\(|\)\(b\)\(|\)\)\/\((2  π)\)\^\(1 + a\)\)\) \(∫\_\(-∞\)\%∞ 
                          F \((ω)\)\ \(e\^\(\(-i\) b  ω  
                                t\)\) dω\)\)" "}})

Clear[b]

Plot[(Exp[- x] UnitStep[x]  +  
          Exp[ x] UnitStep[-x]), {x, -3, 3}]

\(ft = 
      FourierTransform[
\ \ \ \ \ \ \ \ Sqrt[
              b] \((Exp[\(-b\)\ x]\ UnitStep[x]\  + \ 
                Exp[b\ x]\ UnitStep[\(-x\)])\), x, \ k]\  // \ 
        Simplify\)

Plot[ft /. b -> 1, {k, -3, 3}]

InverseFourierTransform[ft,  k,  x]

PowerExpand[%]

\(FourierTransform[
\ \ \ \ \ \ \ \ DiracDelta[x\  - \ x0], \ x, \ 
      k]\)

\(FourierTransform[
\ \ \ \ \ \ \ \ Sqrt[2\ b]\ Exp[\(-b\)\ x]\ UnitStep[
          x], 
\ \ \ \ \ \ \ \ x, \ k]\)

\(\(Plot[
        UnitStep[x\  + \ 1]\  - \ UnitStep[x\  - \ 1], \ {x, \ \(-2\), \ 
          2}, 
\ \ \ \ \ \ \ \ \ \ \ AxesLabel\  -> \ {" x (b)", \ " P(x) (A^2)"}
\ \ \ \ \ \ \ \ \ ];\)\)

\(FourierTransform[
\ \ \ \ \ \ A\ Exp[\((I\ 2  Pi\ p0\ x)\)/
              h] \((UnitStep[x\  + \ b]\  - \ 
              UnitStep[x\  - \ b])\), 
\ \ \ \ \ \ x, \ \(-p\), \ 
        FourierParameters\  -> \ {0, 2\ Pi/h}\ ] // FullSimplify\)

% /. Abs[h] -> h

\(\(Plot[\((Sin[p\  - \ 10]/\((p\  - \ 10)\))\)^2, \ {p, \ \(-5\), \ 
          20}, 
\ \ \ \ \ \ \ \ \ \ \ \ PlotRange\  -> \ 
          All, 
\ \ \ \ \ \ \ \ \ \ \ AxesLabel\  -> \ 
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {" p (h/2Pib)", \ " P(p) ((1/h)(2Ab)^2)"}
\ \ \ \ \ \ \ \ \ ];\)\)

3.16 Esercizi

1. Fattorizzare l'espressione
				(x^4) + 2  (x^3) - 3  x - 6

Factor[(x^4) + 2  (x^3) - 3  x - 6]

2. Fattorizzare l'espressione
				6(t^3) + 9  (t^2) - 15  t

Factor[6  (t^3) + 9  (t^2) - 15  t]

3. Fattorizzare l'espressione
				a (x^2) + a y  + b (x^2) + b y

Factor[a (x^2) + a y  + b (x^2) + b y]

4. Fattorizzare l'espressione
				2  (x^4) (y^6) + 6  (x^2) (y^3)  - 20

Factor[2  (x^4) (y^6) + 6  (x^2) (y^3)  - 20]

5. Semplificare l'espressione
				(1/((x^2) - 16)) - ((x + 4)/((x^2) - 3  x - 4))

Together[(1/((x^2) - 16)) - ((x + 4)/((x^2) - 3  x - 4))]

6. Semplificare l'espressione
				(3/((x^3) - x)) + (4/((x^2) + 2  x + 1))

Factor[(3/((x^3) - x)) + (4/((x^2) + 2  x + 1))]

7. Dimostrare che

					((sec (x) - csc (x))/(tan (x) + cot (x)))=((tan(x) - cot(x))/(sec(x) + csc(x)))

Simplify[((Sec[x] - Csc[x])/(Tan[x] + Cot[x])) == ((Tan[x] - Cot[x])/(Sec[x] + Csc[x]))]

8.  Dimostrare che

	\(\(2\ sin\ \((2\ x)\) - sin\ \((3\ x)\)\)\/\(cos\ x\) = \(sin(x)\)\ \((8\ \(\(sin\^2\)(x\/2)\) + sec(x))\)\)

Simplify[((2  Sin[2  x] - Sin[3  x])/Cos)[x] == 
        Sin[x] (8  Sin[(x/2)]^2 + Sec[x])]

9. Risolvere il sistema di equazioni
				4 x+5 y = 5
				6 x+7 y = 7

Solve[{4  x + 5  y == 5, 6  x + 7  y == 7}, {x, 
        y}]

10. Risolvere l'equazione
				(t^2) + 4  t - 8  =  0

Solve[(t^2) + 4  t - 8 == 0, t]

11. Risolvere l'equazione
				(Sqrt[x + 2]) + 4 = x

Solve[(Sqrt[x + 2]) + 4 == x, x]

12. Risolvere l'equazione
				(Sqrt[y - 5]) - (Sqrt[y])  =  1

Solve[(Sqrt[y - 5]) - (Sqrt[y]) == 1, y]

13. Dato il circuito 
				

(a) determinare tutte le correnti in funzione della fem e delle resistenze
(b) ottenere i valori numerici della corrente con (Subscript[E, m])=12 V, (Subscript[R, 1]) = 2.0 Ω, (Subscript[R, 2]) = 4.0 Ω, (Subscript[R, 3]) = 6.0 Ω, (Subscript[R, 4]) = 2.0 Ω e (Subscript[R, 5]) = 3.0 Ω. 
      Si trascuri la resistenza interna della batteria

Clear[Subscript];
\(\({i\_0, i\_1, i\_2, i\_3, i\_4, 
          i\_5} = {i\_0, i\_1, i\_2, i\_3, i\_4, i\_5} /. 
          Simplify[\(Solve[{
		E\_m == 
                    i\_1\ R\_1 + i\_2\ R\_2, 
		E\_m == 
                    i\_3\ R\_3 + i\_4\ R\_4, 
		i\_3\ R\_3 - 
                      i\_1\ R\_1 == \(R\_5\) i\_5, 
		i\_1 == 
                    i\_2 + i\_5, 
		i\_3 == 
                    i\_4 - i\_5, 
		i\_0 == i\_1 + i\_3}, 
{i\_0, 
                  i\_1, i\_2, i\_3, i\_4, i\_5}]\)[\([1]\)]];\)\)
rule = {(Subscript[E, m]) -> 12  V, (Subscript[R, 1]) -> 2.0  Ω, 
          (Subscript[R, 2]) -> 4.0  Ω, 
          (Subscript[R, 3]) -> 6.0  Ω, 
          (Subscript[R, 4]) -> 2.0  Ω, 
          (Subscript[R, 5]) -> 3.0  Ω, 
          (V/Ω) -> Ampere};
\(\(Print[\*""\!\(i\_0\) ="", i\_0, " = ", 
        SetPrecision[i\_0 //. rule, 3], 
\*""\n\!\(i\_1\)="", 
        i\_1, " = ", 
        SetPrecision[i\_1 //. rule, 3], 
\*""\n\!\(i\_2\)="", 
        i\_2, " = ", 
        SetPrecision[i\_2 //. rule, 3], 
\*""\n\!\(i\_3\)="", 
        i\_3, " = ", 
        SetPrecision[i\_3 //. rule, 3], 
\*""\n\!\(i\_4\)="", 
        i\_4, " = ", 
        SetPrecision[i\_4 //. rule, 3], 
\*""\n\!\(i\_5\)="", 
        i\_5, " = ", SetPrecision[i\_5 //. rule, 3]];\)\)
(Subscript[E, m]) = 12  V; (Subscript[R, 1]) = 2.0  Ω; (Subscript[R, 2]) = 4.0  Ω; 
    (Subscript[R, 3]) = 6.0  Ω; (Subscript[R, 4]) = 2.0  Ω; 
    (Subscript[R, 5]) = 3.0  Ω; V = Ω Ampere;
\(\(Print[\*""\!\(i\_0\) ="", i\_0, \*""\n\!\(i\_1\)="", 
        i\_1, \*""\n\!\(i\_2\)="", i\_2, \*""\n\!\(i\_3\)="", 
        i\_3, \*""\n\!\(i\_4\)="", i\_4, \*""\n\!\(i\_5\)="", 
        i\_5];\)\)

14. Dato il circuito 
				
(a) determinare tutte le correnti in funzione della fem e delle resistenze
(b) ottenere i valori numerici della corrente con (Subscript[E, 1])=12 V, (Subscript[E, 2]) = 8 V, (Subscript[R, 1]) = 20.0 Ω, (Subscript[R, 2]) = 15.0 Ω, (Subscript[R, 3]) = 3.0 Ω, (Subscript[R, 4]) = 6.0 Ω, (Subscript[R, 5]) = 12.0 Ω  e  (Subscript[R, 6])=2.0 Ω. Si trascuri la resistenza interna della batteria

Clear[(Subscript[i, 1]), (Subscript[i, 2]), (Subscript[i, 3]), (Subscript[i, 4]), (Subscript[i, 5]), (Subscript[i, 6]), (Subscript[E, 1]), (Subscript[E, 2]), (Subscript[R, 1]), (Subscript[R, 2]), (Subscript[R, 3]), 
      (Subscript[R, 4]), (Subscript[R, 5]), (Subscript[R, 6])]
\(\({i\_1, i\_2, i\_3, i\_4, i\_5, 
          i\_6} = {i\_1, i\_2, i\_3, i\_4, i\_5, i\_6} /. 
          Simplify[\(Solve[{
		\(-E\_1\) + i\_1\ R\_1 + i\_2\ R\_2 - 
                      i\_3\ R\_3 == 
                    0, 
		\(-E\_2\) + i\_3\ R\_3 + i\_4\ R\_4 + 
                      i\_6\ R\_6 == 
                    0, 
		\(-i\_2\)\ R\_2 - 
                      i\_4\ R\_4 + \(i\_5\) R\_5 == 
                    0, 
		i\_1 + i\_3 - i\_6 == 
                    0, 
		i\_1 - i\_2 - i\_5 == 
                    0, 
		\(-i\_2\) - i\_3 + i\_4 == 0}, 
{i\_1, 
                  i\_2, i\_3, i\_4, i\_5, i\_6}]\)[\([1]\)]];\)\)
rule = {(Subscript[E, 1]) -> 12  V, (Subscript[E, 2]) -> 8  V, 
          (Subscript[R, 1]) -> 20.0  Ω, 
          (Subscript[R, 2]) -> 15.0  Ω, 
          (Subscript[R, 3]) -> 3.0  Ω, 
          (Subscript[R, 4]) -> 6.0  Ω, 
          (Subscript[R, 5]) -> 12.0  Ω, 
          (Subscript[R, 6]) -> 2.0  Ω, 
          (V/Ω) -> Ampere};
\(\(Print[\*""\!\(i\_1\)="", i\_1, " = ", 
        SetPrecision[i\_1 //. rule, 3], 
\*""\n\!\(i\_2\)="", 
        i\_2, " = ", 
        SetPrecision[i\_2 //. rule, 3], 
\*""\n\!\(i\_3\)="", 
        i\_3, " = ", 
        SetPrecision[i\_3 //. rule, 3], 
\*""\n\!\(i\_4\)="", 
        i\_4, " = ", 
        SetPrecision[i\_4 //. rule, 3], 
\*""\n\!\(i\_5\)="", 
        i\_5, " = ", 
        SetPrecision[i\_5 //. rule, 3], 
\*""\n\!\(i\_6\)="", 
        i\_6, " = ", SetPrecision[i\_6 //. rule, 3]];\)\)
(Subscript[E, 1]) = 12  V; (Subscript[E, 2]) = 8  V; (Subscript[R, 1]) = 20.0  Ω; 
    (Subscript[R, 2]) = 15.0  Ω; (Subscript[R, 3]) = 3.0  Ω; 
    (Subscript[R, 4]) = 6.0  Ω; (Subscript[R, 5]) = 12.0  Ω; 
    (Subscript[R, 6]) = 2.0  Ω; V = Ω Ampere;
\(\(Print[\*""\!\(i\_1\) ="", i\_1, \*""\n\!\(i\_2\)="", 
        i\_2, \*""\n\!\(i\_3\)="", i\_3, \*""\n\!\(i\_4\)="", 
        i\_4, \*""\n\!\(i\_5\)="", i\_5, \*""\n\!\(i\_6\)="", 
        i\_6];\)\)

15. Calcolare il limite per x->∞ della funzione

		\(\(Log \((x - a)\)\)\/\(\((a - b)\) \((a - c)\)\) + 
        Log[2 \((x - b)\)]\/\(\((b - c)\) \((b - a)\)\) + \(Log \((x - c)\)\)\/\(\((c - a)\) \((c - b)\)\)\)

Limit[
      Log[x - a]/((a - b) (a - c)) + 
        Log[2 (x - b)]/((b - c) (b - a)) + 
        Log[x - c]/((c - a) (c - b)), 
      x -> ∞]

16. Calcolare il limite per x->∞ della funzione

						(1/((e^x) - (e^(x - (x^(-2))))))

Limit[(1/((E^x) - (E^(x - (x^(-2)))))), 
      x -> ∞]

17. Calcolare la derivata della funzione
				y (x) =  Sin ((e^((x^2))))

D[Sin[(E^((x^2)))], x]

\(\(\(Derivative[1]\)[Sin[E\^\(#\^2\)] &]\)[x]\)

18. Calcolare la derivata seconda della  funzione
				y (x) =  (e^x) Sin (x)

D[(E^x) Sin[x], {x, 2}]

\(\(\(Derivative[2]\)[\(E\^#\) Sin[#] &]\)[x]\)

19. Siano f(t) e r(t) due funzioni legate dalla relazione
				f(t)=((d r(t))/(d t))
    A meno di una costante addittiva è
    				r(t)=∫f(t) dt
    Determinare r(t) per
    				f(t)=5 ln t -(e^(-3 t))

Clear[r, t]
∫(5 
               Log[t] - (E^(-3 t))) \[DifferentialD]t
r = 
        r /. DSolve[r'[t] == 
                5  Log[t] - (E^(-3 t)), r, 
              t][[1]];
r[t]

20. Siano f(t) e r(t) due funzioni legate dalla relazione
				f(t)=((d r(t))/(d t))
    A meno di una costante addittiva è
    				r(t)=∫f(t) dt
    Determinare r(t) per
    				f(t)=(t/(Sqrt[(d^2) + (t^2)]))
    dove d è una costante.

Clear[r, t, d]
∫(t/(Sqrt[(d^2) + (t^2)])) \[DifferentialD]t
r = 
      r /. DSolve[r'[t] == (t/(Sqrt[(d^2) + (t^2)])), r, 
            t][[1]]; r[t]

21. Calcolare
				(∫_0^1) (4/(1 + (x^2))) dx
   Cosa ha di particolare l'integrale?

(∫_0^1) (4/(1 + (x^2))) \[DifferentialD]x

22. Dato l'integrale
					(∫_0^1) (x/((a^3) + (x^3))) dx
(a) Calcolare l'integrale
(b) Derivare il risultato e ritrovare l'integrando

int = ∫(x/((a^3) + (x^3))) \[DifferentialD]x
Simplify[D[int, x]]

23. Calcolare la trasformata di Fourier della funzione
					ψ(x)={({{1- | x |     | x | <1}, {0                  | x | >1}})

Clear[f, x, h]
f[x_] = (1 - Abs[x]) UnitStep[1 - (x^2)];
\(FullSimplify[
      PowerExpand[
        FourierTransform[
f[x], x, p, 
            FourierParameters -> {0, \(2  π\)\/h}] /. {Abs[h] -> h, 
            Sign[h] -> 1}]]\)

Clear[f, h]

24. Calcolare la trasformata di Fourier della funzione

					ψ(x)=(({{0                | 
                  x | ≥ b}, {A              0 < x < b}, {-A               0 > x > -b}})

Clear[f, A, b, k]
I (Sqrt[(2/π)]) 
      A (∫_0^b) Sin[k t] \[DifferentialD]t
f[x_] = 
        A (UnitStep[-x (x - Abs[b])] - 
              UnitStep[-x (x + Abs[b])]);
FourierTransform[f[x], x, k]
b = 1;
FullSimplify[PowerExpand[FourierTransform[f[x], x, k]]]

3.17 Problemi

3.17.1. Considerare la funzione f(x) = Sin(x) Cos(x).
a) Trovare un'approssimazione, fino a (x^7), di f(x) intorno a x=0.
b) Riportare in un grafico la funzione e la sua approssimazione.
c) Determinare la regione in cui la serie di potenze dà una buona approssimazione alla funzione.

f[x_] := Sin[x] Cos[x];
g[x_] = 
        Series[f[x], {x, 0, 7}] // Normal;
Plot[{f[x], g[x]}, {x, -4, 4}];

3.17.2. Sia A=1 nella formula per la trasformata di Fourier di f(x)
			g(u) = (Sqrt[(A/(2 π))])(∫_(-∞)^(+∞))f(x)(e^(-iAux))dx
e 
			f(t) ={({{Sin((Subscript[ω, 0]) t) per | t | <T}, {0                 per  | 
                  t | >T}})  .     (Subscript[ω, 0]) T = π
Calcolare la trasformata di Fourier g(ω) e verificare la relazione d'indeterminazione.

Ricordiamo che in Mathematica 4.1 la funzione 
		FourierTransform[f[t], t, ω,FourierParameters->{a, b}]
calcola l'integrale
			 \(\(\@\(\(\(|\)\(b\)\(|\)\)\/\((2  π)\)\^\(1 - a\)\)\) \(∫\_\(-∞\)\%∞\( f(
                    t)\)\ \(e\^\(i  b  ω  t\)\) dt\)\).
dove il valore di a e b dipendono dalle convenzioni usate nella particolare disciplina. In questo caso dovremo usare a = 0e b = -1.
Inoltre se poniamo T=1 il tempo viene misurato in unità di T e le frequenze in unità di 1/T

Clear[f, g, T, ψ, φ]
T = 1; 
(Subscript[ω, 0]) = (π/T); 
f[t_] := Sin[(Subscript[ω, 0]) t] UnitStep[1 - ((t^2)/(T^2))]
g[ω_] = FourierTransform[f[t], t, ω, 
              FourierParameters -> {0,  -1}] /. Sign[x_] -> ((Sqrt[(x^2)])/x) // 
          PowerExpand // 
        Simplify                               (* per la versione 4 *)

Clear[ψ, φ]; ψ[t_] = f[t]^2
φ[ω_] = -g[ω]^2
Plot[ψ[t], {t, -2, 2}, PlotRange -> All];
Plot[φ[ω], {ω, -20, 20}, 
        PlotRange -> All];
Δt = 
      Sqrt[(∫_(-1)^1) (t^2) ψ[
              t] \[DifferentialD]t]
Δω = 
      Sqrt[(∫_(-∞)^∞) (ω^2) φ[ω] \[DifferentialD]ω]
Δt Δω // Simplify // 
      N

3.17.3. Se la funzione d'onda nello spazio delle configurazioni è il pacchetto d'onda Gaussiano
			ψ(x) = A \(TraditionalForm\`e\^\(\(i\/ℏ\) \(p\_0\) x\  - \ \((x - x\_0)\)\^2\/\(2  b\^2\)\)\)
dove A e b sono positive e costanti, mostrare che la funzione d'onda nello spazio degli impulsi è
			φ(p) = A(b/(Sqrt[ℏ])) \(TraditionalForm\`e\^\(\(i\/ℏ\) \(\(x\_0\)(p\_0 - p)\)\  - \ \(\(b\^2\)(p - p\_0)\)\^2\/\(2  ℏ\^2\)\)\).
Verificare che il prodotto della indeterminazione nella posizione e della indeterminazione nell'impulso è dell'ordine di ℏ.

In Meccanica Quantistica il passaggio dallo spazio delle coordinate a quello degli impulsi si ottiene tramite
			 g(p) = \(\(1\/\@\(2  πℏ\)\) \(∫\_\(-∞\)\%∞\( f(
                    x)\)\ \(e\^\(\(-i\) px\/ℏ\)\) dt\)\)
Occorre pertanto dare ai parametri di FourierTransform i valori a = 0 e b = -(1/ℏ).

ψ[x_]:=A (E^((I/ℏ) 
                  p0 x  -  ((((x - x0))^2)/(2  (b^2)))))

in = 
      Integrate[ψ[
            x] (E^((I/ℏ) p x )), {x, -∞, ∞}, 
        Assumptions -> {b > 0, ℏ > 0}]

FullSimplify[in]

a = 
      FourierTransform[ψ[x], x, p, 
        FourierParameters -> {0, -(1/ℏ)}, 
        Assumptions -> Re[(b^2)] > 0]

g[p_] = 
      FullSimplify[
        TrigToExp[-FullSimplify[-PowerExpand[a]]], ℏ > 
          0]

Come si vede, usando per le due indeterminazioni le dispersioni delle gaussiane si ha:

ΔxΔp == b (ℏ/b)

3.17.4. Una particella relativistica uni-dimensionale di massa a riposo m sotto l'azione di una forza costante F parte da ferma nell'origine al tempo t=0. L'equazione del moto è
					F = ((d p)/(d t))
dove p è l'impulso relativistico.
a) mostrare che la velocità della particella è
				v = \(TraditionalForm\`\(\(F\/m\) t\)\/\@\(1 + \((\(F\ t\)\/\(m\ c\))\)\^2\)\)
   e la sua posizione è
   				x =(( m (c^2))/F)[(Sqrt[1 + (((((F t)/(m c))))^2)]) + 1]
b) Riportare in un grafico la posizione relativistica insieme a quella classica in funzione del tempo.
Suggerimento: adottare un conveniente sistema di unità di misura.

L'equazione del moto si integra immediatamente, dato che la forza è costante:

p = F t

Possiamo integrare ulteriormente questa equazione usando la definizione di energia cinetica :

T = (Sqrt[(p^2) (c^2) +  (m^2) (c^4)])

e la relazione tra velocità e impulso in relatività v = ((p (c^2))/T):

eq = x'[t] == ((p (c^2))/T)

xr = 
      x[t] /. FullSimplify[
          FullSimplify[DSolve[{eq, x[0] == 0}, x[t], t][[1]], 
            m > 0], c > 0]

Nel caso classico il moto è uniformemente accelerato

xc = (1/2) (F/m) (t^2)

Poniamo ora α=(F/(m c)) e misuriamo gli spazi in unità di c (ora x ha le dimensioni di un tempo) e riportiamo le due equazioni del moto su un grafico per α=1

x[t_, α_] = 
      Simplify[PowerExpand[
          Simplify[
            (xr/c) /. F -> m c α]]]
(Subscript[x, cl])[t_, α_] = 
      FullSimplify[(xc/c) /. F -> m c α]

Plot[{x[t, 1], (Subscript[x, cl])[t, 1]}, {t, 0, 1}, 
      AxesLabel -> {"x(t)", "t"},  
      PlotStyle -> {{Thickness[0.006]}, {Thickness[0.006],  
            Dashing[{0.02}]}}]; Clear[F, T, p, x, c, eq, xr, xc];
(Subscript[x, cl])[t_, α_] =. ;