You are on page 1of 29

ANALISI NUMERICA Equazione del calore e delle onde

Andrea Guglielmi May 29, 2011

1

Cenni sulle PDE

In questo breve paragrafo verrá fornita una minima introduzione riguardo alle equazioni dierenziali alle derivate parziali, concentrandosi sulle notazioni e sulla nomenclatura ad esse relative. Questo permetterá di addentrarci al meglio nella comprensione dei metodi numerici utilizzati per la risoluzione di due delle principali equazioni differenziali a derivate parziali (PDE): l'equazione del calore e l'equazione

delle onde. Verranno presentati alcuni metodi numerici per la risoluzione di quest'ultime concentrandosi sull'implementazione in ambiente

Matlab R

.

Senza essere troppo puntigliosi si puó pensare alle equazioni dierenziali a derivate parziali (PDE), come ad ordinarie equazioni dierenziali (ODE) , con l'eccezione che la funzione interessata non è funzione solo di una variabile indipendente, ma di diverse variabili. Per essere piú precisi una PDE in contiene derivate parziali della

u = u(x1 , . . . , xn ) funzione u relative a

è una equazione che una o piú incognite

x1 , . . . , x n .
Notazione

Introduciamo la seguente notazione ridotta relative alle derivate parziali per brevitá di esposizione:

ux =
di derivazione da sinistra a destra:

∂u ∂x

Allo stesso modo, indichiamo le derivate di ordine superiore, leggendo l'ordine

1

uxxy =

∂ 3u ∂x2 ∂y

Per il contesto in cui lavoreremo, ovvero per poter vedere sviluppi numerici delle equazioni dierenziali, non ci interesserá l'ordine in cui sono state eseguite le derivate perziali. L'

ordine

di una PDE è il massimo ordine delle derivate che gura tra i ter-

mini dell'equazione.

Catalogazione delle equazioni di secondo ordine

La forma standard

di una equazione dierenziale alle derivate parziali di secondo ordine in due varibili indipendenti è:

Auxx + 2Buxt + Cutt = F (x, t, u, ux , ut )
dove di

u(x, t) è la funzione incognita, e F (x, t, u, ux , ut ) una funzione arbitraria x, t ed è lineare in u e nelle sue derivate parziali prime.
ellitiche,

Le equazioni dierenziali vengono classicate in tre diversi tipi:
paraboliche e iperboliche.

Questa distinzione viene fatta considerando la

quantitá

(B 2 − AC): <0 B 2 − AC = 0 >0
Ellitica Parabolica Iperbolica

Introduciamo quelle che vengono chiamate le tre equazioni dierenziali fondamentali, per via della loro importanza nello sviluppo storico e dei problemi sici ad esse legate: l'equazione delle onde . Queste equazioni sono rispettivamente di tipo ellitico, parabolico ed iperbolico e vengono associate a diversi problemi sici. l'equazione Laplaciana, l'equazione del calore e

Condizioni iniziali e condizioni al contorno

Le condizioni per ottenere

una soluzione particolare di una PDE spesso nascono dal particolare problema sico che si intende risolvere, e si possono distinguere in due tipi: condizioni iniziali e condizioni al contorno. In questo elenco le condizioni

che presentiamo si riferiscono al caso monodimensionale su cui ci concentreremo in seguito. Le prime date fornendo:

u(x, t0 ) = f (x)
2

x∈I

(1)

t) = u0 t>0 Le condizione al contorno possono invece essere: (2) oppure ux (L. t) = 0 t>0 (3) Piú in generale in letteratura vengono individuati alcuni tipi di notazioni standard per indicare particolari condizioni al contorno del problema: Dirichlet Sono forniti i valori della funzione u solamente su parte del bordo Neumann Sono forniti solo i valori delle derivate normali della funzione su parte del bordo Cauchy I valori sia della funzione che delle derivate normali sono forniti sulla stessa parte di bordo. L].in [0. Consideriamo una sbarra di metallo la cui sezione è trascurabile rispetto Figure 1: Sbarra di lunghezza L 3 .dove generalmente t0 è posto uguale a 0 e questo particolare esempio I rappresenta un intervallo di R. 2 Equazione del calore L'esempio classico da cui partiremo per introdurre l'equazione del calore è quello di una sbarra in metallo all'interno della quale si sviluppa un usso di calore. u(0. Robin É fornita un'espressione lineare omognea che coinvolge la derivata della funzione e la funzione stessa.

si puó considerare la quantitá di calore contenuta in un elemento di lunghezza ∆x (in qualunque istante) è proporzionale alla sua temperatura e alla sua lunghezza. t) Dall'unione delle due espressioni si ha: ut ∆x ∼ ux (x + ∆x. t) = temperatura nel punto x all'istante t Per cercare di modellizzare questa situazione. 4 . t) ut e portando al limite per ∼ ux (x+∆x. Allora la velocitá con cui il calore entra nell'elemento è dato dalla derivata di rispetto al tempo relativa all'elemento di lunghezza ∆x: ∂ (u∆x) = ut ∆x ∂t velocitá ∼ Un altro modo per calcolare questa velocitá è considerare la quantitá di calore che uisce attraverso i due estremi della porzione di sbarra considerata.ta calore entrante dal lato sx ∼ ux (x + ∆x. pensiamo inoltre questa sbarra posizionata nello spazio in modo che i suoi estremi giacciano entrambi sull'asse di sinistra ha ascissa x.ta calore entrante dal lato dx + q.t) ∆x si ottiene: ∆x → 0 ut ∼ ut = uxx costante uxx Ottenendo cosí l'equazione del calore: ut = α2 uxx dove (4) α2 è detta diusivitá termica. Questo è possibile assumendo che la sbarra sia isolata per tutta la sua lunghezza fatta eccezione per gli estremi. dove l'estremo 0 e quello di destra L. t) − ux (x.t)−ux (x. t) − ux (x. Quello che vogliamo fare è determinare la funzione della temperatura: u(x.alla sua lunghezza. Risulta quindi che la velocitá con cui il calore entra nell'elemento (porzione di sbarra tra x e x + ∆x) è: q.

t) = 0. • non omogenea: u(0. t) = g1 (t). t) = g1 (t). ma solo di poco. ovvero anché esista una unica soluzione e il problema sia stabile . • non omogenea: kux (0. t) = 0. allora anche la soluzione cambia. t) = g2 (t). t) = g2 (t). o u(L. 5 . o t > t0 t > t0 ux (L. dove è possibile quanticare quello che intendiamo con un poco. o t ≥ t0 t ≥ t0 t ≥ t0 t ≥ t0 u(L. t) = 0. o t > t0 t > t0 −kux (L. bisogna che sia fornita una condizione iniziale come quella fornita in 1 e due condizioni al contorno riguardo ai due estremi della sbarra.Condizioni per l'equazione del calore Anché il problema sia ben posto. Neumann usso specicato a un estremo: • omogenea se: ux (0. t) = 0. t) = uL . 1 Per dare un'idea non rigorosa di stabilitá si puó pensare che risulta stabile se qualora vengano cambiate le condizioni iniziali o al contorno di poco. 2 e lema: Dirichlet viene specicata la temperatura/concentrazione in un estremo: 1 u(L. Diamo ora una breve nomenclatura per le condizioni al contorno del prob- • omogenea se: u(0.

t) e E(x. t) = h[u(L. t) = h[u(L. infatti il calore si dionde attraverso la sbarra.la resistenza. • non omogenea: kux (0. t) = h[u(0. t) − g1 (t)]. C . t) rappresenta la concentrazione (massa x all'istante t. dove h è chiamato coeciente di scambio del calore. t) = h[u(0. proprio come una goccia di inchiostro si dionde in un bicchiere d'acqua. o t > t0 t > t0 −kux (L. t) − 0]. cavo isolato Se i(x. La conduzione del calore Altre applicazioni dell'equazione del calore è un esempio specico di un processo di diusione. o t > t0 t > t0 −kux (L. .Robin un estremo in contatto con un materiale mantenuto a temperatura/concentrazione costante: • omogenea se: kux (0. Nel caso piú generale l'equazione 4 assume la forma: per unitá di volume). si puó mostrare che sia telegrafo: i che E debbano soddisfare l'equazione del (5) uxx = LCutt + (RC + LG)ut + RGu dove le costanti allora sia L. nel punto u(x. di qualunque cosa si stia ut = kuxx dove k è chiamato coeciente di diusione. In generale diondendo. t) − 0]. t) isolato. t) − g2 (t)]. R e G rappresentano rispettivamente l'induttanza. rappresentano la corrente e il voltaggio in un lungo cavo Corrente elettrica in un lungo. Nel caso in cui L e G siano nulli i che E devono soddisfare: uxx = RCut 6 . la capacitá e la conduttanza.

la costante di L'equazione risulta separabile ed è possibile attraverso un cambio di variabile ritornare all'equazione del calore uτ = σ2 uxx 2 Per risolvere Risoluzione attraverso la separazione delle variabili esplicitamente l'equazione del calore è possibile ricorre alla tecnica di separazione delle variabili che permette di dare una soluzione a una PDE lineare ed omogenea. t) Ipotizzando che u(x. t) = X(x)T (t) allora l'equazione del calore diventa: XT = α2 T X T α2 T = X X = −λ con λ costante per lo stesso T + λα2 T = 0. t il tempo. t) = u(π. corrispondenti al numero di variabili indipendenti. altrimenti: X(0) = X(π) = 0 7 . σ r è la costante tasso di interesse. Consideriamo il problema:  ut = α2 uxx  u(x. 0) = f (x)   u(0.Finanza matematica. t).l'equazione di Black-Scholes Nello studio del prezzo delle opzioni un modello molto importante e relativamente nuovo (1973) va sotto il nome di equazione di Black-Scholes σ 2 s2 Vss + rsVs − rV + Vt = 0 2 Dove. s il valore del bene opzionato. X + λX = 0 λ Le condizioni al contorno ci dicono che: X(0)T (t) = X(π)T (t) = 0 se T (t) ≡ 0 allora questo porta ad ottenere come soluzione. volatilitá del bene e V = V (s. u identicamente nulla.trasformandola in un certo numero di ODE.

Si ha cosí da risolvere un equazione dierenziale ordinaria con condizioni al contorno: X + λX = 0 X(0) = X(π) = 0 Risolvendo il problema degli autovalori e delle autofunzioni. . .f (x) con seguenti proprietá valgono sia per a ≤ x ≤ b si dice liscia a tratti se le f che per f : • • • ha un numero nito di discontinutitá in ogni punto di discontinuitá il limite sinistro e destro esistono e sono niti il limite destro di a e quello sinistro di b esistono e sono niti 8 . t) = e−(nα) t sin(nx). visto che la PDE e che le condizioni al contorno sono omogenee. 2 n = 1. Per il principio di sovrapposizione. f (x) ∞ è esprimibile come serie di fourier f (x) = cn sin(nx). 2. λ per autovalori e autofunzioni del problema. λn la soluzione prodotto data Risulta cosí che per uno specico autovalore dal problema iniziale. si ha che per λ≤0 non ci sono autovalori e l'unica soluzione ammissibile del problema è quella identicamente nulla. . Si possono cosí n=1 2 Anché f sia il limite di una serie di fourier deve ammettere derivata prima continua a tratti. ∞ u(x. . sottoposto solo alla condizione al contorno risulti: 2 un (x. 2. questi sono gli unici valori di cui il problema riguardante la variabile X non ha soluzione identicamente nulla. ovvero deve essere liscia a tratti. questa è detta soluzione generale. . ogni qualsiasi combinazione lineare di queste funzioni è soluzione del problema soggetto solo alle condizioni al contorno. Per λ>0 si ha invece: λn = n2 e Xn (x) = sin(nx) n = 1. Non ci rimane ora che risolvere l'equazione dierenziale ordinaria in T sostituendo i valori λn appena trovati. . t) = n=1 cn e−(αn) t sin(nx) 2 2 Ricordando che sotto opportune ipotesi di continuitá ogni funzione. Si ha cosí: T + α 2 λn T = 0 Ottenendo come soluzione Tn (t) = e−(nα) t .

in casi semplici. t) = 2e−α t sin(x) − 5e−9α t sin(3x) Abbiamo cosí mostrato come risolvere esplicitamente. f (x) = 2 sin(x) − 5 sin(3x) 2 Questo si puó facilmente vedere nel caso che da u(x.calcolare i coecienti come soluzione: cn . mostreremo piú avanti anche una possibile implementazione e risoluzione attraverso 2 Matlab R di problemi simili. 9 . l'equazione del calore.

angoli θ1 e θ2 . nell'estremo di sinistra e la pendenza del lo. t) = altezza del lo nel punto x all'istante t Con questa modellizzazione assumiamo implicitamente che ogni punto del lo si puó muovere solo lungo la direzione u e che il moto è ristretto al piano xu. T la tensione si ha che le componenti verticali agenti sulla tensione sono date da T sin θ2 nell'estremo di ha che tan θ1 = ux (x. t) F = ma dove con Questo da una relazione non lineare tra gli T sin θ1 ux . che per l'ipotesi di perfetta essibilitá rimane costante su tutto il lo. t). m la massa e a 10 . e la funzione u. Il movimento del lo è descritto dalla funzione: u(x.3 Equazione delle onde Una semplice situazione che si intende modellizzare facendo riferimento all'equazione delle onde è quella data da un lo vibrante di sezione trascurabile rispetto alla lunghezza. Figure 2: Filo su cui agisce la tensione T agli estremi forza che agisce su un elemento è la tensione. perfettamente essibile. ai quali il lo è vinco- lato. Considerando 3 La seconda legge di newton: accelerazione F si indica la forza. 0). consideriamo un tratto del lo di lunghezza legge di Newton 3 ∆x e applichiamo la seconda Osserviamo che l'unica al movimento verticale del lo. Consideriamo infatti un lo. di lunghezza estremi sono ssati sull'asse L e i cui x nell'origine e in (L. Ora procediamo in modo analogo a come si è fatto per l'equazione del calore. si Indicando con destra. e tan θ2 = ux (x + ∆x.

Condizioni per l'equazione delle onde Anché l'equazione delle onde abbia soluzione. ut (x. sin θ ≈ tan θ ≈ θ. t) − ux (x.Per ottenere una relazione lineare. utt = c2 uxx dove (8) c= T è detto ρ velocitá d'onda. dove ρ è una costante che indica la densitá di massa per unitá di lunghezza. . e sin θ = θ − θ3 + . t) risulta: e T sin θ2 ≈ T ux (x + ∆x. avendo quindi. t)] 2 si ottiene l'equazione delle onde: ∆x e ∆x → 0. t) − ux (x. allora è possibile approssimare massa per accellerazione dell'elemento del lo come: ρ∆xutt x + ∆x . a meno di un errore dell'ordine di O(θ3 ). t0 ) = g(x). t0 ) = f (x). utt è l'accelerazione in ogni punto. Osserviamo che in questa modellizzazione non si è tenuto conto della forza di gravitá. t = T [ux (x + ∆x. t) La somma dei contributi verticali della forza agenti su un elemento del lo T [ux (x + ∆x. Le piú comuni condizioni utilizzate per il problema del lo vibrante sono: tan θ = 3 3 θ + θ3 + . assumendo che approssimare servendosi di Taylor 4 ux sia piccolo è possibile T sin θ1 ≈ T ux (x. . . sono necessarie due condizioni iniziali e due condizioni al contorno. Neumann e Robin sono applicabili all'equazione delle onde. 0≤x≤L 0≤x≤L Risulta che le condizioni al contorno del tipo Dirichlet. . t)] La massa dell'elemento è (6) ρ∆x. unendo quindi le equazioni 6 e 7 si ha: ρ∆xutt x + e dividendo per ∆x .t 2 (7) Applicando ora la seconda legge di Newton all'elemento del lo. le condizioni iniziali sono della forma: u(x. Questo metodo di approssimazione viene spesso indicato in letteratura come metodo delle piccole oscillazioni 4 Ricordiamo lo sviluppo in serie di Taylor (piú precisamente di McLaurin) di 11 .

allora u deve soddisfare: utt = kuxx dove la costante modulo di Young. indicando con u(x. k è la misura di quanto è elastica la sbarra ed è chiamata Vibrazione torsionale di una sbarra Si prenda una sbarra come nel caso precedente e si consideri che le sezioni verticali siano circolari. t) = 0 t > t0 Il signicato sico della prima si puó facilmente immaginare considerando i capi del lo bloccati. la si attorcigli e poi si rilasci. t) = angolo di rotazione della sezione verticale in x. Corrente elettrica in un lungo cavo isolato Ricordandoci l'equazione del telegrafo 5 che vale per la corrente i e il voltaggio E. t) = 0 o o u(L. Altre applicazioni dell'equazione delle onde L'equazione delle onde viene utilizzata per modellizzare anche altre situazioni oltre a quella di un lo vibrante. ρ ρ densitá e G è detto modulo sollecitazione di taglio del materiale. t) = lo spostamento di una sezione verticale che originariamente si trova nel punto x all'istante t. mentre della seconda è da intendersi come se negli estremi non c'è nessuna forza che fa variare la pendenza del lo.Dirichlet omogenee Neumann omogenee u(0. Attraverso ogni sezione verticale ci sará una vibrazione orizzontale. all'istante t Si ottiene cosí : θtt = c2 uxx dove c2 = G . Considerando: θ(x. t) = 0 t > t0 ux (L. t) = 0 ux (0. e invece di colpirla con un martello. Vibrazioni longitudinali di una sbarra Consideriamo una sbarra simile a quella utilizzata nella derivazione dell'equazione del calore e pensiamo di ssarne un estremo a una parete e di prenderla a martellate dall'altro. uxx = LCutt + (RC + LG)ut + RGu 12 .

.Se R e G sono uguali a zero. . dizioni al contorno per la Ragionando come nel caso dell'equazione del calore ottengo le seguenti con- X: X(0) = X(1) = 0 Risolviamo il problema degli autovalori rispetto alla X ed otteniamo: autovalori autofunzioni Ora risolviamo l'equazione in λn = n2 π 2 Xn = sin(nπx) n = 1. . che risulta quando si lavora con alte frequenze. y) = X(x)T (t) allora si ha: XT = c2 X T T c2 T = X X = −λ T + c2 λT = 0 X + λX = 0. t) = 0 Iniziamo considerando u(x. T per λ = λn ed otteniamo cosí qualcosa di diverso rispetto a quello trovato per l'equazione del calore: T + c2 λn T = 0 T + c2 n 2 π 2 T = 0 T (t) = c1 cos(cnπt) + c2 sin(cnπt) Otteniamo cosí per ogni intero n: Tn (t) = cn cos(cnπt) + dn sin(cnπt) 13 . t) = u(1. allora sia i che E devono soddisfare: uxx = LCutt Risoluzione attraverso la separazione delle variabili Adottiamo lo stesso metodo utilizzato nella sezione precedente per risolvere ora l'equazione delle onde. 2. Consideriamo il problema:  utt = c2 uxx   u(x. 0) = g(x)    u(0. 0) = f (x) ut (x.

. 2. . 2.  utt = uxx   u(x. . . che permette di descrivere un'altra situazione sica. t) = n=1 sin(nπx)(cn cos(cnπt) + dn sin(cnπt)) (9) Prima di poter applicare le condizioni al contorno dobbiamo calcolare ut : ∞ ut (x.La nostra soluzione generale risulta come combinazione lineare: ∞ u(x. Xn (x) = cos(nx) n = 1. ma continua a muoversi verticalmente ad una certa velocitá iniziale senza cambiare forma. . . λn : Risolviamo l'equazione in T per i valori trovati di per per λ0 = 0: λn = n2 : T = 0 ⇒ T0 (t) = c0 + d0 t T + n T = 0 ⇒ Tn (t) = cn cos(nt) + dn sin(nt) n = 1. 0) = 0  ut (x. λn = n2 n = 1. . T + λT = 0 X (0) = X (π) = 0 Risolvendo il problema degli autovalori di X: autovalori: autofunzioni: λ0 = 0. t) = ux (π. 2 La soluzione del problema è della forma sommando le singole soluzioni si ottiene: Xn (x)Tn (t) per ogni autovalore. X0 (x) = 1. t) = 0 Applicando il metodo di separazione delle variabili si ottiene: (10) X + λX = 0. . quella di un lo che non vibra. mostriamo brevemente che anche in questo caso si possono far valere le considerazioni del caso precedente. t) = c0 + d0 t + n=1 cos(nx)[cn cos(nt) + dn sin(nt)] 14 . 2. ∞ u(x. 0) = 1   ux (0. di fourier per cal- Ora è possibile utilizzare colare i coecienti cn e Portiamo ora un altro esempio notevole. t) = n=1 sin(nπx)[−cnπcn sin(cnπt) + cnπdn cos(cnπt)] f (x) e g(x) espresse come serie dn ed ottenere cosí la soluzione. .

Tenendo conto delle condizioni iniziali è possibile calcolare i coecienti cn e dn trovando la soluzione del problema iniziale: u(x. 15 . t) = t Ho cosí trovato che il lo non vibra. ma al contrario mantiene la sua forma iniziale che si muove lungo il lo a velocitá costante pari a uno.

j − 2ui. k 2 ∆t 2k 2 ∆t k 2 ∆t ui+1. questa puó ui. tj ) ∆x→0. sapendo i valori di partenza di Si dice che le quantitá schema appena esposto. ui−1. j ). ui. lavorando sul'equazione 11. in modo da dare un passo temporale e uno spaziale al metodo per farlo procedere.j ui.j e ui−1.j + 1 − ui−1. tj .j (∆x. ∆t) ∆t (∆x)2 (11) u calcolata nei due nodi xi . Dove indica la funzione Lo schema risulta consistente ntanto che: ui. mentre invece scegliendo valori grandi di ∆t si riduce sia il numero di volte per cui l'errore locale di arrotondamento viene accumulato. La scelta di piccoli ∆x e ∆t ridurranno l'errore locale di troncatura. concentrandoci su pochi metodi che sono preferibili per stabilitá e convergenza.j formano lo stencil per lo ∆x e ∆t.j = u(xi . ∆t) = 0 Questo metodo risulta esplicito rispetto al tempo poiché la derivata seconda è calcolata per valori essere riscritta come: tj del tempo.j + ui−1.j+1 in funzione dei termini di u calcolati al tempo preceu in Si puó quindi vedere come sia possibile marciare passo dopo passo lungo la direzione temporale. e una dierenza centrata per approssi- uxx : ui+1.4 Metodi numerici con Matlab R In questa sezione ci focalizzeremo sui metodi numerici per risolvere l'equazione del calore e quella delle onde.j . sia il tempo di esecuzione delle 16 . In pratica dobbiamo scegliere valori per valori per t0 .j è 2 invece l'errore locale di troncatura O[∆t+(∆x) ] (l'errore che viene commesso al passo i.j = k2 + Ti.∆t→0 lim Ti. ui.j + (∆x)2 (∆x)2 (∆x)2 (12) ui. 4. Ti.j+1 .j (∆x.j+1 − ui.j+1 = ovvero esprimendo dente (tj ).j ui.1 L'equazione del calore Partiamo con l'idea di voler discretizzare l'equazione del calore 4: ut = k 2 uxx Per farlo iniziamo utilizzando l'approssimazione di mare ut considerata secondo un classico schema esplicito di dierenza.

dierenziali ordinarie: dando le limitazioni del metodo esplicito di eulero applicato alle equazioni ∆t < 2 min m dove Reλd. Bisogna peró tenere conto del rapporto prendere che se k2 ∆t ed è intuitivo com(∆x)2 Ricor- (∆x)2 è molto piú piccolo di ∆t.d | 2k k 2 ∆t 1 ≤ 2 (∆x) 2 (13) Si noti che questa scelta garantisce che i valori dei coecienti siano non neg1 ativi e che il fattore non dipenda dalle unitá o dalla scala utilizzata.m = 2 cos(m∆xπ/(b−a)) m = d. 2 La restrizione cosí trovata risulta peró particolarmente severa.m |2 Ad ottenuta attraverso λd. quindi per quanto detto prima ad aumentare la complessitá computazionale e a sommare numerosi errori di 17 . allora il coeciente sopra puó essere troppo grande e portare a un comportamento instabile. Da queste considerazioni si ottiene: ∆t ≤ 2 1 = 2 (∆x)2 k 2 |λd. dove a e b (∆x)2 sono gli estremi dell'intervallo su cui si vuole calcolare l'equazione. Infatti ∆t a causa della limitazione deve essere preso piccolo. costringendo cosí il metodo a numerose valutazioni lungo la direzione di t.Figure 3: Stencil relativo al metodo esplicito per equazione del calore operazioni.m |λd. e che λd. Ad è simmetrica.m sono gli autovalori complessi della matrice il metodo delle delle dierenze nite considerando lo spazio funzionale di approssimazione di dimensione Nel nostro caso la matrice d.m sibile riscrivere la formula esplicita di massimo si ha per λd. denita positiva e quindi è pos- .

n − 1 j = 0. Questo metodo risulta peró di semplice implementazione. la condizione iniziale: u(x. .j − un−1.j permettendoci cosí di scrivere: o u(L + ∆x. . . 0) = f (x) ci da come informazione u(xi .j = u(L. . tj ) = u−1.j . (∆x)2 Naturalmente non è necessario risolvere tutte le equazioni contemporanea- = mente. 1. tj ) 2∆x o sistema di a un Riprendiamo invece il caso di condizioni iniziali di tipo Dirichlet. . 1. u1.j = 0 j = 0. Fintanto che l'errore locale di tronca2 mento è dell'ordine di O[∆t + (∆x) ] è prassi scegliere l'approssimazione al bordo in modo che sia consistente con quest'errore. si ottiene lo schema esplicito di Bender-Schmidt: 2 1 ui. . m − 1 k2 ∆t .j + ui−1. n mentre le condizioni al contorno di Dirichlet: u(0. . . Scegliendo = 1 . centrata o all'indietro per approssimare la derivata nella condizione al contorno. 0) = ui.j ≈ ux (L. i = 1. una volta scelto adeguatamente il rapporto 13.j + (1 − 2 )ui. . . utilizzando i risultati della j−esima riga per calcolare quelli della (j + 1)−esima. Cosí scegliamo di utilizzare la dierenza centrata per avere un errore di troncatura dell'ordine di O[(∆x)2 ]Questo naturalmente comporta l'introduzione di punti fantasma : u(−∆x.j+1 = ui+1.j + ui−1. .arrotondamento locali.j+1 = (ui+1. Tutto questo rende il metodo abbastanza impraticabile. tj ) 2∆x Questa condizione insieme alla PDE calcolata per x−1 o xn+1 da luogo sistema con n + 1 equazioni per ogni istante temporale tj . 2. si procede utilizzando la dierenza in avanti. t) = u(a. visto che è possibile marciare  lungo la variabile temporale. .j ) 2 18 (14) .j ≈ ux (0. t) = 0 danno le seguenti equazioni: u(0. tj ) = u0. . . tj ) = un. Se invece si hanno condizioni al contorno di tipo Neumann o Robin. si ha un (n − 1)m equazioni: ui.0 = f (xi ) i = 0.j − u−1. Dove.j un+1. . tj ) = un+1.

j+1 = (1 − )ui.j+1 −ui.j (∆x)2 i−1.j + u −2ui. tj+1 ). tj ) e uxx (xi . 1 Risulta inoltre che scegliendo 0 < a ≤ lo schema risulta stabile. Lo stencil puó essere visto nella gura 4.j+1 + ui−1.j+1 +u +(1 − a) i+1.j k 2 a i+1.j ) 2 Dove = k2 ∆t (∆x)2 19 .j + (ui+1. senza nes2 suna limitazione sui passi ∆t e ∆x.j ∆t = i. Lo schema implicito di Crank-Nicolson Cerchiamo ora uno schema che risulti stabile per ogni scelta di scegliamo cosí il seguente schema implicito: = k2 ∆t .j + ui−1.j+1 u −2u +u Dove approssimazioni di 0 < a < 1 e il membro di destra altro non è che una media pesata delle uxx (xi .j+1 + ui+1.j+1 (∆x)2 i−1. ma tutti quanti presentano forti limitazioni dovuti al rapporto 13.Naturalmente esistono molti altri schemi espliciti per la risoluzione dell'equazione del calore. Per diversi motivi. la forma piú utilizzata dello schema Crank-Nicolson è Figure 4: Stencil relativo al metodo implicito Crank-Nicolson quello in cui a= 1 : 2 (15) (1 + )ui. (∆x)2 ui.

tj ). ∆t) (∆t)2 (∆x)2 esprimendo (16) ui. Pos- .j+1 − 2ui. (18) In- Si puó inoltre fare considerazioni grache sulla restrizione =1 allora c∆t = ∆x e le caratteristiche attraverso il punto (xi . tj+1 ) Se invece dominio passano direttamente per i punti (xi−1 . Si puó suppore che anché il metodo risulti stabile sia ∆x necessario che 1 − ≥ 0. Questa restizione non risulta essere cosí severa come quella del caso esplicito dell'equazione del ∆t ≤ nanzi tutto se ∆x c ≤ 1.j − 2ui. siamo quindi dire che il domino analitico di dipendenza è un sottinsieme del numerico di dipendenza.j−1 ui+1.j+1 in funzione degli altri termini risulta: (17) ui.j+1 = ui+1. Questa condizione è meglio = nota con il nome di condizione Courant calore.j + ui.j = c2 + Tij (∆x.Figure 5: Stencil relativo al metodo esplicito per l'equazione delle onde 4. infatti Friedrichs Lewy.2 L'equazione delle onde Ricordiamo l'equazione delle onde 8 utt = c2 uxx Sembra ragionevole approssimare le due derivate seconde con la dierenza centrata in modo da rendere lo schema: ui.j + ui−1. ed è eettivamente cosí.j + 2(1 − )ui.j + ui−1. Questo ci dice che le perturbazioni devono 20 <1 allora le linee caratteristiche passano tra questi punti. tj ) e (xi+1 .j − ui.j−1 Dove c∆t 2 .

0 = f (xi ) i = 0. scegliamo ancora la dierenza centrata per approssimare ut . n Ci sono naturalmente anche schemi impliciti per l'equazione delle onde. In rosso il dominio propagarsi attraverso lo schema numerico a una velocitá schema stabile. 1. Visto e considerato che la condizione di stabilitá per lo schema esplicito non è particolarmente forte e ci permette di essere essibili nella nostra scelta della griglia.−1 i = 0. 1. . n La seconda condizione iniziale coinvolge le derivate rispetto al tempo: ut (x. Le condizioni iniziali: ≥c per avere uno u(x. . . . . Introduciamo cosí i punti fantasma: u(xi . −∆t) = ui.Figure 6: In nero si possono vedere le linee caratteristiche per tratteggiato invece le linee caratteristiche per analitico di dipendenza e in nero quello numerico c=1. 0) = g(x) Fintanto che lo schema esplicito è O[(∆t)2 + (∆x)2 ]. 0) = f (x) ci danno. . . 21 . in rosso < 1. . ui. come nel caso dell'equazione del calore. non è fondamentale trovare alternative allo schema.

U). fL]. %controllo convergenza if(k>0. i=i+1. n=100. hold on while t<(nt*dt) f0=latosx(t).5 Esempi con Matlab R Matlab R In questa ultima sezione presentiamo alcune implementazioni su per la risoluzione dell'equazione del calore e delle onde. Equazione del calore metodo esplicito Presentiamo un possibile le . k=d*dt/(dx)^2.1). dt=20. per utilizzare altri tipi di condizioni al contorno è necessario utilizzare una approssimazione calcolata per mezzo di una dierenza centrata.u`].1)+diag(k*ones(n-1. % condizione sul bordo sx fL=latodx(t). %Metodo esplicito equazione del calore: d=input('inserire coeciente diusività: ').%passi direzione t L=4. Come giá discusso in precedenza si nota che il metodo è sottoposto alla condizione 13 anché risulti stabile. %lunghezza barra x=linspace(0. % condizioni iniziali i=1. se tale condizione viene violata. L. U=condinz(x). t=t+dt.m per risolvere l'equazione del calore con il metodo esplicito. if(mod(i. plot(x.1))+diag(k*ones(n-1. Le condizioni utilizzate dal codice sono di Dirichlet.4)==1) 22 .n). %passi direzione x punti in cui si valuta u nt=400.-1)). t=0. il programma si limita a segnalarlo.5) fprintf('Attenzione metodo instabile'). % condizione sul bordo dx u=A*(U(i.:))`+k*[f0. zeros(n-2.1). U=[U. dx=L/n. end A=sparse(diag((1-2*k)*ones(n.1).

1).2) end end gure(2). i=i+1. hold on while t<(nt*dt) f0=latosx(t).pause(.U).plot(x.`r'). mesh(x.n).m che permette di vedere l'implementazione utilizzata. si veda l'equazione 15. i=1.[0:dt:nt*dt]. Equazione del calore metodo implicito Crank-Nicolson Per quel che riguarda il metodo implicito di Crank-Nicolson riportiamo un le .%passi direzione t L=4.1).-1)).1)..u.4)==1) plot(x. il vantaggio di questo metodo rispetto al precedente consiste. zeros(n-2. Am=sparse(diag((1-k)*ones(n. %lunghezza barra x=linspace(0.1))-diag((k/2)*ones(n-1. u=Ap\(Am*U(i..1). t=t+dt.u. Ap=sparse(diag((1+k)*ones(n. +diag((k/2)*ones(n-1.'r'). a del Come nel caso precedente è stata implementata per un problema con condizioni al contorno del tipo Dirichlet e considerando come costante 1 metodo . dt=20.U). U=[U.1). n=100. %passi direzione x punti in cui si valuta u nt=400. L.u']. -diag((k/2)*ones(n-1.pause(.1))+diag((k/2)*ones(n-1..2) 23 . t=0.1). fL]). 2 %Metodo implicito (Crank-Nicolson) equazione del calore: d=input('inserire coeciente diusività: '). if(mod(i. k=d*dt/(dx)^2. come giá considerato in precedenza. fL=latodx(t). dx=L/n. plot(x.-1)).1).:)'+k*[f0. nel non avere condizioni sul passo ∆x e ∆t.. U=condinz(x).

Di seguito riportiamo la soluzione graca calcolata per i seguenti problemi del calore:  ut = 3uxx  u(x. mesh(x. t) = 0  ut = 117 ∗ 10−6 uxx  u(x. 0) = x(π − x)   u(0. contenenti le funzioni che danno I due le richiamano entrambi la funzione le condizioni al contorno di tipo Dirichlet del problema. condinz che contiene le condizioni iniziali su u.end end gure(2). t) = 100.U). t) = 0 (19) (20) 24 .[0:dt:nt*dt]. e le funzioni latosx e latodx. 0) = 0 0 < x < 4   u(0. u(4. t) = u(π.

25 .GRAFICI IN DUE DIMENSIONI Relativo al problema del calore descritto da 19 GRAFICI IN TRE DIMENSIONI Relativo al problema del calore descritto da 20 Figure 7: I graci in 2D rappresentano la soluzione rispetto al piano xz. Il graco in 3D rappresenta la soluzione rispetto mettendo sul piano sull'asse z i valori di u. dove in blu è indicata la condizione iniziale e in rosso la soluzione a intervalli di tempo successivi.

t=t+dt. %passi direzione x punti in cui si valuta u nt=3000.-1)). zeros(n-2. fL=latodx_onde(t). t=0.:)=(A*(U(i+1. dt=0.(nt+2)*dt.U(i+2.001. L.%passi direzione t L=1.nt+2).U). hold on for i=1:nt f0=latosx_onde(t). latosx_onde 26 .Equazione delle onde metodo esplicito Dalle considerazioni precedenti si puó ci concentriamo sul metodo esplicito di risoluzione dell'equazione delle onde. if(mod(i.1))+diag(k*ones(n-1. visto che le condizione per la sua stabilitá non risultano particolarmente restrittive.1). mesh(x.'r').4)==1) plot(x.2) end end gure(2). i=1.1). infatti il metodo è sottoposto solo alla condizione 18.1). k=d*dt^2/(dx)^2.U).:))'-U(i. plot(x. U=[U.pause(. end A=sparse(diag((2-2*k)*ones(n.n). n=100. U(i+2. %lunghezza del lo x=linspace(0. u=U+dt*condiniz2(x). Attraverso Matlab R è stato prodotto il seguente le .m per risolvere l'equazione delle onde: %risoluzione equazione onde metodo esplicito d=input('inserire velocita donda: '). %controllo convergenza if(k>=1) fprintf('Attenzione metodo instabile').linspace(0.:). Questo le richiama quattro funzioni condiniz1.1)+diag(k*ones(n-1. dx=L/n. U=condiniz1(x).u].:)'+k*[f0. fL])'. condiniz2.

t) = u(1. t) = 0 (21) Un altro esempio è quello che modellizza una corda che senza sformarsi si sposta a una velocitá iniziale. Coleman. AN INTRODUCTION TO PARTIAL DIFFERENTIAL EQUATION WITH MATLAB. 0) = x(1 − x) 0 ≤ x ≥ 1 ut (x. Il le genera il movimento della corda.m che crea inizialmente la perturbazione della corda a forma di parabola e la derivata prima uguale alla perturbazione iniziale della corda. t) = 0 (22) Per la risoluzione di questo problema abbiamo utilizzato un altro le . 0) = cos(x)    u(0. Si è deciso di studiare il problema di una corda vibrante con gli estremi ssati:  utt = 4uxx   u(x. References [MCP] Matthew P. riproducendo una sorta di lmato. t) = u(100. Chapman & Hall-CRC Applied mathematics and nonlinear science series 2005 27 .e latodx_onde che contengono rispettivamente le due condizioni iniziali e le condizioni al contorno di tipo Dirichlet. questa situazione è modellizzabile attraverso il seguente problema: utt = uxx u(0.

dove in blu è indicata la condizione iniziale e in rosso la soluzione a intervalli di tempo successivi.GRAFICI RELATIVI AL PROBLEMA DELL'EQUAZIONE DELLE ONDE 21 Figure 8: I graci in 2D rappresentano la soluzione rispetto al piano xz. 28 .

29 .GRAFICI RELATIVI AL PROBLEMA DELL'EQUAZIONE DELLE ONDE 22 Figure 9: Si può vedere ad istanti successivi la stringa che si muove. da una immagine all'altra si può vedere come l'errore locale di arrotondamento si accumula. nella prima immagine in alto a sinistra la situazione iniziale.