61
1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici a.a. 2007-2008

1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

Embed Size (px)

Citation preview

Page 1: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

1

11a lezione di laboratorio

Laurea Specialistica in

Ingegneria MatematicaIngegneria dei Sistemi Energetici

Laurea Specialistica in

Ingegneria MatematicaIngegneria dei Sistemi Energetici

a.a. 2007-2008

Page 2: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

2

20 0

0 0

0 0

0 1 2 0

,

, ,

, ,

, , ,

tt xx N

N

t N

N

u v u x x x t t

u x t x x x x

u x t x x x x

u x t g t u x t g t t t

Generalità su un problema del 2° ordine di tipo iperbolico

Si può assumere per semplicità: 0 00, 0.x t

(1)

Si fa notare che le funzioni al bordo sono non nulle.

Page 3: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

3

Approssimazioni utilizzate

2 2, 1 , , 1 1, , 1,

2 2 2 2

, ,

2 2,

i j i j

i j i j i j i j i j i j

x t x t

u u u u u uu u

t k x h

0

,1 , 1 2

,

errore locale: 2

i

i ii

x t

u uux O k

t k

Si approssimano le derivate parziali seconde con le differenze finite:

2 2,O k O h

La condizione iniziale sulla derivata si approssima con una differenza centrale:

con errore locale nell’approssimazione delle derivate:

Page 4: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

4

Problema discreto

1 1 2 2; ; ;i i i i j j j jx x g g t g g t

2 2,1 -1 1

2 2 2, 1 1, , 1, , 1

,0

0, 1 , 2

11 1, , 1

2

2 1 1, , 1 12

0,1, ,

0

i i i i i

i j i j i j i j i j

i i

j j N j j

u k i N

u u u u u i N j

u i N

u g u g j

Si indica si considera dapprima j = 0, si utilizzano le condizioni iniziali e si ottiene la soluzione approssimata in . Per ci serviremo della seconda equazione del sistema (2) e delle condizioni iniziali/al contorno:

,vk

h

Si è posto:

1j 1,ix t

Page 5: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

5

Costruzione della forma vettorialeDalla seconda equazione dello schema assumendo ad esempio N=5 e j=1, si ha:

il vettore a primo membro è la soluzione approssimata nei punti al livello 2.

0,41,52

1,42

1,32

2,4

0,31,42

1,32

1,22

2,3

0,21,32

1,22

1,12

2,2

0,11,22

1,12

1,02

2,1

12

12

12

12

uuuuu

uuuuu

uuuuu

uuuuu

Vj (N-1)

Vj(1) Uj-1

Page 6: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

6

Costruzione della forma vettorialePoniamo quindi:

1, 2, 1,, , , Tj j j N jU u u u

0, , 1 2,0, ,0, , 0, ,0,TT

j j N j j jV u u g t g t

TNU 1210 ,,,

1, , 1

1, , 1

2 21 ,1 -1 1

11

2i Ni N

TT

i i i i iU u k

N.B. Il vettore ha N-1 componenti di cui

N–3 uguali a zero!!!jV

Per :1j

Page 7: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

7

Forma vettoriale

2 2

22

2

2 2

2 1 0

2

0 2 1

A I T

Si ottiene allora: jjjj VUAUU 211

con la matrice A tridiagonale e simmetrica:

I matrice identità, T matrice tridiagonale con 2 sulla diagonale principale e –1 sulle due codiagonali

Si ricorda che il metodo converge se 1

Page 8: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

8

Function PDE_iperboliche:parte 1function [x,t,sol]=PDE_iperboliche(t0,M,x0,xN,h,k,v,r,f,l,

g1,g2);

alfa=v*k/h;x=(x0:h:xN)';x(end)=xN;N=length(x)-1;

f=eval(f).*ones(size(x)); %condizione iniziale U(x,t0)

%La presenza del vettore è necessaria per il caso f=cost.

U0=f(2:N);

vv=eval(l).*ones(size(x)); %condizione iniziale Ut(x,t0) % Calcolo della soluzione al passo 1

t=t0;x=x(2:end-1); tnoto=eval(r).*ones(size(x));

U1=alfa^2/2*(f(1:N-1)+f(1+2:N+1))+(1-alfa^2)*f(2:N)+k*vv(2:N) + 0.5*k^2*tnoto;

tM=k*M+t0;t=linspace(t0,tM,M+1)';

v1=eval(g1).*ones(size(t)); %condizione al contorno U(xo,t)

v2=eval(g2).*ones(size(t)); %condizione al contorno U(xN,t)

Vj=zeros(N-1,1);

sol=[f'; [v1(2) U1' v2(2)]];Uj=U1;Uj_1=U0;

Page 9: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

9

Function PDE_iperboliche:parte 2

T=2*eye(N-1)-diag(ones(1,N-2),-1)-diag(ones(1,N-2),+1);

A=2*eye(N-1)-alfa^2*T;

t=t(2);

for j=2:M

Vj([1,N-1])=[v1(j),v2(j)];

tnoto=eval(r).*ones(size(x));

Uj1=A*Uj-Uj_1+alfa^2*Vj + k^2*tnoto;

sol=[sol;[v1(j+1); Uj1 ;v2(j+1)]'];

Uj_1=Uj;

Uj=Uj1;

t=t+k;

end

t=linspace(t0,tM,M+1)';

x=[x0;x;xN];

Page 10: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

10

2

2

5

1 2

0,10 0 1

5,0 0,10

0.76

,0 0 0,10

0, 0 10, 0

tt xx

x

t

u v u x t v

xu x f x e x

u x l x x

u t g t u t g t

Esercizio 1

Per le funzioni che forniscono le condizioni, si sono utilizzati gli stessi nomi della function PDE_iperboliche

Page 11: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

11

b) graficare la superficie che si ottiene e le sue curve di livello in due figure distinte, utilizzando i comandi surf, per la figura 1, e contour per la figura 2. Analizzare bene e commentare le figure.

a) calcolare la soluzione approssimata del problema con il metodo esplicito utilizzando i seguenti valori per i passi k=0.25, e h=0.30 ed un numero di intervalli temporali pari a M=40;

Quesiti a, b

Page 12: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

12

c) Cosa accade per la teoria se si modifica la condizione sull’asse t in g1( t ) = 1 ? d) Risolvere ancora il problema, eseguire i grafici come al punto b) ed evidenziarne le differenze col caso precedente. Riportare inoltre sulla figura 2 (contour) anche la retta di equazione t = x/v; cosa rappresenta?

Quesiti c, d

Lo studente risolva ed analizzi il problema assumendo M = 80, ed utilizzi il comando subplot per le figure di cui al punto b).

Page 13: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

13

Calcolo della soluzione: file onda.mclear all;close all;clc% Dati del problemat0=0; M=40;x0=0; xN=10;k=.25;h=.30; %cond.iniziale su t=0 f='(x-5).*exp(-(x-5).^2 )/.76 '; l='0'; %altra cond.iniz.su t=0 g1='0'; %cond. al contorno su x=x0g2='0'; %cond.al contorno su x=xNr='0';v=1;alfa=v*k/h; % implementazione del metodo[x,t,sol]=PDE_iperboliche(t0,M,x0,xN,h,k,v,r,f,l,g1,g2);

Page 14: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

14

% N.B. Non si costruisce la matrice dei nodi con % meshgrid perché non si valuta la soluzione vera;% l’assegnazione particolare di H1 è stata fatta per % avere una grafica più significativa

figure(1) H1=surf(t,x,sol'); % vedi N.B. xlabel('t','FontWeight','bold','Fontsize',12)ylabel('x','FontWeight','bold','Fontsize',12)title(['Soluzione con alfa= ' num2str(alfa)],'FontWeight','bold','Fontsize',12)set(gca,'FontWeight','bold','Fontsize',12)

figure(2)[C,H]=contour(x,t,sol,20); axis squarexlabel('x','FontWeight','bold','Fontsize',12)ylabel('t','FontWeight','bold','Fontsize',12)title('Curve di livello','FontWeight','bold','Fontsize',12)set(H,'LineWidth',2) %spessore della lineaset(gca,'FontWeight','bold','Fontsize',12)

Page 15: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

15

Grafico della soluzione numerica

Figura 1

Page 16: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

16

Altro grafico di sol

H2=surf(x,t,sol);% osservare bene

% l’istruzione!!!

Page 17: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

17

Curve di livello

Figura 2

Page 18: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

18

Grafico della condizione iniziale

f='(x-5).*exp(-(x-5).^2)/.76';fplot(f, [0 10]), xlabel('x');ylabel('y');title(['Grafico di f(x)=', f]);

Page 19: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

19

Formula di D’Alembert

1 1( , ) ( ) ( ) ( )

2

x vt

x vtu x t f x vt f x vt l z dz

v

1 1

( , ) ( ) ( ) ( )2

x vt

x vtu x t f x vt f x vt l z dz

v

La soluzione analitica del problema di Cauchy sull’asse reale, associato al problema (1), con gli stessi dati iniziali è data, in base alla formula di D’Alembert, da:

con i dati assegnati su una linea che non è

caratteristica.

Page 20: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

20

Soluzione analitica dell’esercizio 1

2 2( 5) ( 5)1( , ) ( 5) ( 5)

2 0.76x t x tu x t x t e x t e

2 2( 5) ( 5)1( , ) ( 5) ( 5)

2 0.76x t x tu x t x t e x t e

la soluzione analitica del problema di Cauchy ottenuto dall’esercizio 1 non considerando le condizioni al contorno, è:

( ) 0,l x 2( 5)5( ) ,

0.76xx

f x e Tenendo conto che:

Page 21: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

21

Soluzione del problema di Cauchy: formula di D’Alembert

[X,T]=meshgrid(x,t); sv=inline(f);

solvera=1/2*(sv(X+T)+sv(X-T));surf(t,x,solvera')

Figura 3

Page 22: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

22

Curve di livello della soluzione di D’Alembert

figure(4)

[C,H]=contour(x,t,solvera,20); axis square

Figura 4

Osservarele differenzetra le figure 1 e 3 e tra le figure 2 e 4; giustificare teoricamentele differenze.

Page 23: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

23

Soluzione numerica: M=3*40

N.B. 1- Il numero degli intervalli temporali

è stato triplicato per evidenziare il fenomeno delle onde;

2- la figura è stata opportunamente ruotata

Page 24: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

24

c) Caso con g1 ( t ) = 1

10, 1 0u t g t t Imporre la condizione:

equivale ad introdurre una discontinuità nel punto (0,0), discontinuità che si propaga lungo la caratteristica passante per tale punto di equazione

. Dal punto di vista del calcolo, è sufficiente modificare nel file onda.m solo l’istruzione:

% condizione al contorno in (0,tj)g1='0'sostituendola con g1='1';

xt v

Page 25: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

25

Grafico della soluzione con g1 ( t )=1[x,t,sol]=PDE_iperboliche(t0,M,x0,xN,h,k,v,r,f,l,g1,g2);figure(1)... % rimangono le stesse istruzionifigure(2)[C,H]=contour(x,t,sol,20);... % rimangono le stesse istruzioniset(gca,'FontWeight','bold','Fontsize',12)% grafico della retta di equazione t=x/vt1=x/v; % caratteristica passante per (0,0) hold on H3=plot(x,t1,'k');set(H3,'LineWidth',3) %spessore della lineaset(gca,'FontWeight','bold','Fontsize',12)

Page 26: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

26

Grafico soluzione numerica in presenza di singolarità

Figura 1

Page 27: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

27

Altro grafico di sol in presenza di singolarità

H2=surf(x,t,sol);H2=surf(x,t,sol);

Page 28: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

28

Curve di livello senza la retta t = x/v

Figura 2

Page 29: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

29

Curve di livello e retta caratteristica per (0,0)

Page 30: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

30

0 0

0 0

0 0

0

,

, ,

,

,

t xx N

N

N

u c u x x x t t

u x t x x x x

u x t g t t t

u x t l t t t

Generalità su un problema del 2° ordine di tipo parabolico

Si può assumere per semplicità: 0 00, 0.x t

N.B. Condizioni al contorno di Dirichlet

Page 31: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

31

Metodo di Crank-Nicolson

1, , 1, 1, 1 , 1 1, 11 2 2

2 2,

2i j i j i j i j i j i j

xx i j

u u u u u uu x t

h

Si colloca l’equazione differenziale in

è approssimata con la media delle differenze centrali relative ai livelli j e j+1:

1 2, .i jx t

1 2,xx i ju x t

La è approssimata con una differenza centrale di passo k/2:

1 2,t i ju x t

, 1 ,1 2, i j i j

t i j

u uu x t

k

1 2j

i-1 i i+1

j

j+1

Page 32: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

32

Schema di Crank-Nicolson

1, , 1, 1, 1 , 1 1, 1 , 1 ,

2

2 2

2i j i j i j i j i j i j i j i ju u u u u u u u

ckh

1, 1 , 1 1, 1 1, , 1,

,0

0,

,

2 1 2 1

1,2 , 1, 0

0,1, ,

0

0

i j i j i j i j i j i j

i i

j j

N j j

u u u u u u

i N j

u i N

u g j

u l j

Posto , si ottiene: 2

kc

h

Page 33: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

33

Costruzione della forma vettoriale

Se si assume N=5 , dalla prima equazione dello schema per j=0, si ottiene il sistema:

0,1 1,1 2,1 0,0 1,0 2,0

1,1 2,1 3,1 1,0 2,0 3,0

2,1 3,1 4,1 2,0 3,0 4,0

3,1 4,1 5,1 3,0 4,0 5,0

2 1 2 1

2 1 2 1

2 1 2 1

2 1 2 1

u u u u u u

u u u u u u

u u u u u u

u u u u u u

Vj(1)

Vj(N-1)

Vj+1(1)

Vj+1(N-1)

Page 34: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

34

Forma vettorialePer j = 0 abbiamo :

1, 2, 1,, , ,T

j j j N jU u u u

TNU 1210 ,,,

Per j=1,2,…poniamo:

0, ,,0, ,0, ,0, ,0,TT

j j N j j jV u u g t l t

1 1 , 0,1, ...j j j jAU BU V V j

Si ottiene il sistema lineare:

N-3

La quantità nell’ovale è b

N-3

Page 35: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

35

Caratteristiche delle matrici A, B

2 1 0

2 ;

0 2 1

A I T

2 1 0

2 .

0 2 1

B I T

A, B sono tridiagonali e simmetriche

Si ricorda che il metodo converge , .h k

1 1N NR

Page 36: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

36

Function PDE_paraboliche_CN:parte 1function [x,t,sol]=PDE_paraboliche_CN(t0,M,x0,xN,h,k,c,r,

f,g,l);

alfa=k*c/h^2;x=(x0:h:xN)'; x(end)=xN; N=length(x)-1;

tM=M*k+t0; t=linspace(t0,tM,M+1)';

f=eval(f).*ones(size(x)); %condizione iniziale U(x,0)

v1=eval(g).*ones(size(t)); %condizione al contorno U(xo,t)

v2=eval(l).*ones(size(t)); %condizione al contorno U(xN,t)

U0=f(2:N); sol=f';

Vj=zeros(N-1,1);

Uj=U0;

bb=alfa*ones(N-2,1);

A=-diag(bb,-1)+2*(1+alfa)*eye(N-1)-diag(bb,1);

B= diag(bb,-1)+2*(1-alfa)*eye(N-1)+diag(bb,1);

N.B. Questa function risolve un problema parabolico del tipo: ).,( txrcuu xxt

Page 37: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

37

Function PDE_paraboliche_CN:parte 2

t=t0+k/2;x=x(2:end-1);

for j=1:M

tnoto=eval(r).*ones(N-1,1);

Vj([1,N-1])=[v1(j)+v1(j+1),v2(j)+v2(j+1)];

b=B*Uj+alfa*Vj + 2*k*tnoto;

Uj1=A\b;

sol=[sol;[v1(j+1); Uj1 ;v2(j+1)]'];

Uj=Uj1;

t=t+k;

end

t=linspace(t0,tM,M+1)';x=[x0;x;xN];

Attenzione all’indice j!!!

Page 38: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

38

Esercizio 2Si risolva con il metodo di Crank-Nicolson il seguente problema con le condizioni al contorno miste Dirichlet-Neumann:

0,1 0

,0

0, 0 1,

t xx

x

u u x t

u x f x x

u t g t u t l t t

con passo spaziale h = 0.2, passi temporali k=[0.5, 0.25,0.125] e numero di intervalli temporali M=30.

1- Si rappresenti la soluzione e le sue linee di livello.

2- Si calcoli la soluzione approssimata in x=0.4 e t variabile, nel caso M fissato e nel caso tM fissato.

Page 39: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

39

Condizioni iniziali ed al contorno

Per conservare l’ordine di approssimazione, la

condizione viene approssimata con

una differenza centrale:

,x Nu x t l t

1, 1 1, 11 1, 0.

2N j N j

x N j j

u uu x t l j

h

Si noti la continuità del problema nel punto (x0,t0)=(0,0):

0 0

,0 0, 0.x t

u x u t

Page 40: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

40

Posto , si assume: si ottiene quindi:

Approssimazione del problema in esame

1, 1 , 1 1, 1 1, , 1,

,0

0,

1, 1 1, 11

2 1 2 1

0,1, ,

0 0

0 *2

i j i j i j i j i j i j

i i

j

N j N jj

u u u u u u

u x i N

u j

u ut j

h

0 0, 1,Nx x 2

k

h

1, 1 1 1, 12 + 0N j j N ju ht u j

Dall’uguaglianza (*) si ricava:

Page 41: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

41

Costruzione del sistemaPer i=1,2,3,4 e j = 0, lo schema diventa:

0,1 1,1 2,1 0,0 1,0 2,0

1,1 2,1 3,1 1,0 2,0 3,0

2,1 3,1 4,1 2,0 3,0 4,0

3,1 4,1 1 3,0 4,0 0

2 1 2 1

2 1 2 1

2 1 2 1

2 2 1 2 2 2 1 2

u u u u u u

u u u u u u

u u u u u u

u u h l u u h l

Vj(1) Vj+1(1)

Vj+1(N) Vj(N)

N.B In questo caso la dimensione di e del

sistema è N; occorre infatti calcolare la soluzione

anche in x=xN.

jV

Page 42: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

42

Sistema relativo al problema in esame

Il sistema diventa:

dove:

1 1j j j jAU BU V V

2 1 0

0 2 2 1

A

2 1 0

0 2 2 1

B

1, 2, ,, , , ,T

j j j N jU u u u

1 0, 1 1,0, ,0, 2T

j j jV u h l 0, ,0, ,0, 2

T

j j jV u h l

Page 43: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

43

Soluzione del problemaIl sistema è lineare ad ogni livello j; la matrice dei coefficienti di dimensione NxN ha la forma:

A è matrice diagonalmente dominante ( A non singolare ), quindi la soluzione approssimata nei nodi, per i= 1,2,3,4 ad ogni livello, esiste ed è unica.

2 1 0

;

0 2 2 1

A

Page 44: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

44

Function Pde_paraboliche_CN1 ...U0=f(2:N+1);sol=f';Uj=U0;Vj=zeros(N,1);bb=alfa*ones(N-1,1);A=-diag(bb,-1)+2*(1+alfa)*eye(N)-diag(bb,1);A(N,N-1)=-2*alfa;B= diag(bb,-1)+2*(1-alfa)*eye(N)+diag(bb,1);B(N,N-1)= 2*alfa; t=t0+k/2;x=x(2:end);for j=1:M tnoto=eval(r).*ones(N,1); Vj([1,N])=[v1(j)+v1(j+1),2*h*(v2(j)+v2(j+1))]; b=B*Uj+alfa*Vj +2*k*tnoto; Uj1=A\b; sol=[sol;[v1(j+1); Uj1]']; Uj=Uj1; t=t+k;endt=linspace(t0,tM,M+1)';x=[x0;x];

Page 45: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

45

Inizializzazione dei daticlear all;close all;f='x'; %condizione iniziale nei nodi (xi,0)g='0'; %condizione al contorno U(xo,t) l='t'; %condizione al contorno Ux(xN,t)r='0'; %termine notox0=0;xN=1; t0=0; h=.2;c=1;xsol=0.4;ind=round((xsol-x0)/h)+1;tab=[];k=[.5 .25 .125]; % attenzione si richiede che i valori di k siano % multipli altrimenti la soluzione non può essere confrontata % nei nodi corrispondenti

Page 46: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

46

a - Calcolo della soluzione approssimata con M fissato

% si può usare il comando sol(:,:,i)solo se le % matrici hanno le stesse dimensioniM=30; tM3=t0+M*k(3);num=fix((tM3-t0)/k(1));t_fin=t0+num*k(1); % 3.5 valore limite comunefor i=1:length(k) [x,t,sol(:,:,i)]=PDE_paraboliche_CN1(t0,M,x0,xN, h,k(i),c,r,f,g,l); n=round((t_fin-t0)/k(i))+1; tab=[tab sol(1:round(k(1)/k(i)):n,ind,i)];endtab=[t(1:round(k(1)/k(i)):n) tab];fprintf(' t sol1 sol2 sol3\n')fprintf('%7.4f %10.6f %10.6f %10.6f\n',tab')

Page 47: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

47

Soluzione approssimata U(0.4,t)

t sol1 sol2 sol3

0.0000 0.400000 0.400000 0.400000

0.5000 0.225572 0.187795 0.206611

1.0000 0.212672 0.262851 0.265497

1.5000 0.438797 0.425218 0.424684

2.0000 0.597636 0.613716 0.612849

2.5000 0.815526 0.810050 0.809411

3.0000 1.004790 1.008788 1.008411

3.5000 1.209085 1.208307 1.208120

t sol1 sol2 sol3

0.0000 0.400000 0.400000 0.400000

0.5000 0.225572 0.187795 0.206611

1.0000 0.212672 0.262851 0.265497

1.5000 0.438797 0.425218 0.424684

2.0000 0.597636 0.613716 0.612849

2.5000 0.815526 0.810050 0.809411

3.0000 1.004790 1.008788 1.008411

3.5000 1.209085 1.208307 1.208120

Page 48: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

48

Rappresentazione della soluzione%____________________________________________________%% Queste istruzioni inserite nel ciclo consentono di % graficare tutte le soluzioni e relative curve di % livello.%____________________________________________________ jj=1; alfa=k(i)*c/h^2;figure(jj)surf(x,t,sol(:,:,i)); colorbar('vert')title(['Soluzione con alfa= ' num2str(alfa)])xlabel('x');ylabel('t')

figure(jj+1)contour(x,t,sol(:,:,i),20); colorbar('vert')title(['Curve di livello con alfa= ' num2str(alfa)])xlabel('x');ylabel('t')jj=jj+2;

Page 49: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

49

Grafico della soluzione approssimata con M fissato

Figura 1 0

0.5

1

0

2

40

1

2

3

4

x

Soluzione con alfa= 3.125

t0

0.5

1

1.5

2

2.5

3

Page 50: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

50

Figura 2

Si invitano gli studenti a risolvere l’esercizio 2 con il metodo esplicito, modificando opportunamente la function relativa a tale metodo.

Curve di livello con alfa= 3.125

x

t

0 0.2 0.4 0.6 0.8 10

0.5

1

1.5

2

2.5

3

3.5

0.5

1

1.5

2

2.5

3

Page 51: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

51

b - Calcolo della soluzione approssimata con tM fissato

tM=3.5; tab=[];for i=1:length(k) M=round((tM-t0)/k(i)); [x,t,sol]=PDE_paraboliche_CN1(t0,M,x0,xN,h,k(i), c,r,f,g,l); tab=[tab sol(1:round(k(1)/k(i)):end,ind)];endtab=[t(1:round(k(1)/k(i)):end) tab];fprintf(' t sol1 sol2 sol3\n')fprintf('%7.4f %10.6f %10.6f %10.6f\n',tab')

Si riportano ora le istruzioni relative al caso tM fissato.

Page 52: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

52

Esercizio 3Sia dato il seguente problema alle derivate parziali di tipo parabolico:

.038),2(

03),0(

20)0,(

0,20)1(32

1

3

tttu

tttu

xxxu

txxuu xxt

.038),2(

03),0(

20)0,(

0,20)1(32

1

3

tttu

tttu

xxxu

txxuu xxt

con soluzione vera:

.3),()1( 3 txtxu .3),()1( 3 txtxu

Page 53: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

53

Quesito 1) e 2)

2) Si valuti, per il passo spaziale h=0.1, passo temporale k=0.02 e M=20, l’errore assoluto massimo che si commette usando il metodo di Crank-Nicolson ed il metodo alle differenze esplicito. Si confrontino e commentino i risultati; soddisfano le aspettative teoriche?

1) Si verifichi che la funzione (1) è soluzione del problema proposto.

Lo studente risolva ed analizzi il problema anche con M = 40, facendo le dovute considerazioni sull’errore di troncamento delle approssimazioni effettuate, e su come una perturbazione dovuta alla macchina potrebbe influenzare i risultati.

Page 54: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

54

Quesito 3)

3) Si costruiscano due tabelle che riportino l’intestazione: x sol1 sol2 err1 err2 con le quantità x, sol1, sol2, err1, err2 rappresentanti, rispettivamente i nodi spaziali, la soluzione numerica e l’errore ottenuti con i due metodi, da riportare uno ogni due, valutati in corrispondenza dei valori t=0.1 e t=0.4utilizzando i seguenti formati di stampa: 3 cifre decimali e formato virgola fissa per i nodi, 8 cifre decimali e formato esponenziale per la soluzione, 2 cifre decimali e formato virgola mobile per l’errore.

Page 55: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

55

Istruzioni relative al quesito 2)

clc; clear all

t0=0;M=20;x0=0;xN=2;h=0.1; k=0.02;c=1/2;

r='-3*(1+x)';f='x.^3';g='-3*t';l='8-3*t';

% Implementazione dei metodi

[x,t,sol_CN]=PDE_paraboliche_CN(t0,M,x0,xN,h,k,c,r,f,g,l);

[x,t,sol_esp]=PDE_paraboliche(t0,M,x0,xN,h,k,c,r,f,g,l);

% Confronto con la soluzione vera

[X,T]=meshgrid(x,t);

Uvera=X.^3-3*T;

err_CN=abs(Uvera-sol_CN); err_esp=abs(Uvera-sol_esp);

errmax_CN=max(max(err_CN)); errmax_esp=max(max(err_esp));

Page 56: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

56

Istruzioni relative al quesito 3)

alfa=k*c/h^2;

disp(' alfa err_CN err_esp')

fprintf('\n %7.3f %11.2e %11.2e \n\n',

[alfa errmax_CN errmax_esp])

for t_val=[0.1 0.4]

i=round((t_val-t0)/k)+1;

tab=[x sol_CN(i,:)' sol_esp(i,:)', err_CN(i,:)',

err_esp(i,:)'];

tab_rid=tab(1:2:end,:);

fprintf([' \n\n Tabella per t=', num2str(t_val),

' \n\n x \t\t sol_CN \t\t sol_esp \t\t

err_CN \t\t err_esp \n'])

fprintf(' %7.3f %16.8e %16.8e %10.2e %10.2e \n',

tab_rid')

end

Page 57: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

57

Risultati quesito 3):tabella 1

Tabella per t=0.1

x sol_CN sol_esp err_CN err_esp

0.000 -3.00000000e-001 -3.00000000e-001 0.00e+000 0.00e+000 0.200 -2.92000000e-001 -2.92000000e-001 5.55e-017 1.67e-016

0.400 -2.36000000e-001 -2.36000000e-001 2.78e-017 1.75e-015

0.600 -8.40000000e-002 -8.40000000e-002 1.94e-016 3.43e-015

0.800 2.12000000e-001 2.12000000e-001 4.16e-016 4.52e-015

1.000 7.00000000e-001 7.00000000e-001 6.66e-016 1.73e-014

1.200 1.42800000e+000 1.42800000e+000 8.88e-016 6.00e-015

1.400 2.44400000e+000 2.44400000e+000 2.66e-015 3.33e-014

1.600 3.79600000e+000 3.79600000e+000 7.11e-015 9.99e-014

1.800 5.53200000e+000 5.53200000e+000 7.11e-015 1.10e-013

2.000 7.70000000e+000 7.70000000e+000 0.00e+000 0.00e+000

Tabella per t=0.1

x sol_CN sol_esp err_CN err_esp

0.000 -3.00000000e-001 -3.00000000e-001 0.00e+000 0.00e+000 0.200 -2.92000000e-001 -2.92000000e-001 5.55e-017 1.67e-016

0.400 -2.36000000e-001 -2.36000000e-001 2.78e-017 1.75e-015

0.600 -8.40000000e-002 -8.40000000e-002 1.94e-016 3.43e-015

0.800 2.12000000e-001 2.12000000e-001 4.16e-016 4.52e-015

1.000 7.00000000e-001 7.00000000e-001 6.66e-016 1.73e-014

1.200 1.42800000e+000 1.42800000e+000 8.88e-016 6.00e-015

1.400 2.44400000e+000 2.44400000e+000 2.66e-015 3.33e-014

1.600 3.79600000e+000 3.79600000e+000 7.11e-015 9.99e-014

1.800 5.53200000e+000 5.53200000e+000 7.11e-015 1.10e-013

2.000 7.70000000e+000 7.70000000e+000 0.00e+000 0.00e+000

Errori massimi

nei due metodi:alfa err_CN err_esp

1.000 1.20e-014 6.72e-007

alfa err_CN err_esp

1.000 1.20e-014 6.72e-007

Page 58: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

58

Risultati quesito 3): tabella 2 Tabella per t=0.4

x sol_CN sol_esp err_CN err_esp

0.000 -1.20000000e+000 -1.20000000e+000 0.00e+000 0.00e+000 0.200 -1.19200000e+000 -1.19200000e+000 6.66e-016 4.32e-009

0.400 -1.13600000e+000 -1.13600000e+000 8.88e-016 1.91e-009

0.600 -9.84000000e-001 -9.84000021e-001 1.44e-015 2.14e-008

0.800 -6.88000000e-001 -6.88000027e-001 2.00e-015 2.72e-008

1.000 -2.00000000e-001 -1.99999954e-001 3.39e-015 4.64e-008

1.200 5.28000000e-001 5.28000251e-001 5.22e-015 2.51e-007

1.400 1.54400000e+000 1.54400053e+000 7.77e-015 5.27e-007

1.600 2.89600000e+000 2.89600067e+000 1.15e-014 6.72e-007

1.800 4.63200000e+000 4.63200048e+000 8.88e-015 4.85e-007

2.000 6.80000000e+000 6.80000000e+000 0.00e+000 0.00e+000

Tabella per t=0.4

x sol_CN sol_esp err_CN err_esp

0.000 -1.20000000e+000 -1.20000000e+000 0.00e+000 0.00e+000 0.200 -1.19200000e+000 -1.19200000e+000 6.66e-016 4.32e-009

0.400 -1.13600000e+000 -1.13600000e+000 8.88e-016 1.91e-009

0.600 -9.84000000e-001 -9.84000021e-001 1.44e-015 2.14e-008

0.800 -6.88000000e-001 -6.88000027e-001 2.00e-015 2.72e-008

1.000 -2.00000000e-001 -1.99999954e-001 3.39e-015 4.64e-008

1.200 5.28000000e-001 5.28000251e-001 5.22e-015 2.51e-007

1.400 1.54400000e+000 1.54400053e+000 7.77e-015 5.27e-007

1.600 2.89600000e+000 2.89600067e+000 1.15e-014 6.72e-007

1.800 4.63200000e+000 4.63200048e+000 8.88e-015 4.85e-007

2.000 6.80000000e+000 6.80000000e+000 0.00e+000 0.00e+000

N.B. Il metodo di Crank-Nicolson riproduce ancora la soluzione (errore circa della precisione di macchina). Il metodo esplicito fornisce errore più grande rispetto al caso precedente; cosa succede per valori di t ancora più grandi?

Page 59: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

59

Rappresentazione della soluzione

figure(1)

subplot(211), surf(x,t,Uvera);

title('Soluzione vera')

xlabel('x');ylabel('t')

subplot(212), surf(x,t,sol_esp);

title(['Soluzione metodo esplicito con alfa= '

num2str(alfa)])

xlabel('x');ylabel('t')

figure(2)

surf(x,t,err_esp);colorbar('vert')

title(['Errore metodo esplicito con alfa= ',

num2str(alfa)])

xlabel('x');ylabel('t')

Page 60: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

60

Grafici della soluzione vera ed approssimata

Page 61: 1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica

61

Grafico dell’errore col metodo esplicito

Si noti che per piccoli valori di t l’errore è piccolo; ma, essendo il metodo instabile, all’aumentare del numero delle iterazioni e per effetto dell’errore di macchina, amplificato dall’instabilità numerica, l’errore diventa sempre più grande.