18.01.2015 Views

Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...

Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...

Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

12. PRIMI PASSI IN MATLAB®<br />

Figura 12.8: Uso delle functions corrispondenti agli algoritmi <strong>di</strong> Lagrange e delle <strong>di</strong>fferenze <strong>di</strong>vise <strong>di</strong> Newton<br />

nell’esempio malcon<strong>di</strong>zionato. Osserviamo che la Figura 5.6 relativa allo stesso problema è stata ottenuta<br />

eseguendo le stesse functions (per semplicità abbiamo omesso i risultati ottenuti dalla interpmonom) in<br />

ambiente Octave.<br />

12.9.3 Confronto tra schemi per equazioni <strong>di</strong>fferenziali or<strong>di</strong>narie<br />

Quando abbiamo introdotto alcuni meto<strong>di</strong> per la risoluzione <strong>di</strong> equazioni <strong>di</strong>fferenziali or<strong>di</strong>narie, in<br />

particolare i meto<strong>di</strong> <strong>di</strong> Eulero esplicito, <strong>di</strong> Eulero implicito e <strong>di</strong> Crank-Nicolson.<br />

Li abbiamo anche confrontati per capire meglio il concetto <strong>di</strong> stabilità, considerando l’equazione test<br />

y ′ = −y con y(0) = 1 (si veda a proposito la Figura 11.3).<br />

Scriviamo ora un programma MATLAB® che, per questa equazione test,<br />

G ci permetta <strong>di</strong> poter confrontare i tre meto<strong>di</strong> tra loro e con la soluzione esatta<br />

G crei dei grafici simili a quelli <strong>di</strong> Figura 11.3<br />

G salvi i valori numerici dei <strong>di</strong>versi meto<strong>di</strong> e della soluzione esatta in un file.<br />

clear<br />

% h = passo <strong>di</strong> d i s c r e t i z z a z i o n e temporale<br />

% Tfin = tempo f i n a l e <strong>di</strong> osservazione<br />

% n = numero <strong>di</strong> v o l t e in cui verra ’ applicato ciascuno dei meto<strong>di</strong><br />

% proposti<br />

% f i d = v a r i a b i l e associata al f i l e <strong>di</strong> r i s u l t a t i<br />

% t = v e t t o r e dei tempi<br />

% ye = v e t t o r e dei v a l o r i a s s o c i a t i al metodo <strong>di</strong> Eulero e s p l i c i t o<br />

% ( <strong>di</strong> lunghezza n+1 perche ’ la prima componente corrisponde<br />

% al valore della soluzione al tempo zero )<br />

% y i = v e t t o r e dei v a l o r i a s s o c i a t i al metodo <strong>di</strong> Eulero implicito<br />

% ycn = v e t t o r e dei v a l o r i a s s o c i a t i al metodo <strong>di</strong> Crank−Nicolson<br />

% yex = v e t t o r e dei v a l o r i a s s o c i a t i alla soluzione e s a t t a<br />

h=input (’passo h ’ ) ;<br />

Tfin=input (’tempo finale <strong>di</strong> osservazione ’ ) ;<br />

n=Tfin /h ;<br />

f i d =fopen (’ode_a_confronto.txt’ ,’w’ ) ;<br />

t ( 1 ) = 0 ;<br />

y ( 1 ) = 1 ;<br />

ye (1)= y ( 1 ) ;<br />

y i (1)= y ( 1 ) ;<br />

ycn (1)= y ( 1 ) ;<br />

yex (1)= y ( 1 ) ;<br />

for i =1:n<br />

ye ( i +1)= ye ( i ) − h* ye ( i ) ;<br />

y i ( i +1)= y i ( i )/(1+h) ;<br />

202

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!