Lezione del 20 novembre 2007

annuncio pubblicitario
a
9
bis lezione di laboratorio
Laurea Ingegneria CIVILE
Lauree Specialistiche in Ingegneria
CHIMICA, ELETTRONICA,
AMBIENTE
a.a. 2007-2008
Esercizio 1 (Esame 04/09/2007)
Sia dato il seguente problema del secondo
ordine alle derivate parziali:
  2u  2u
 t 2  x 2  6t (1  2 x ) x  R, t  0

 u( x , 0)  1, x  R,

 ut ( x , 0)  2 x 3 , x  R.
1) Si determini, motivando la risposta, a quale
classe appartiene il problema proposto e si
verifichi che la funzione u( x, t )  t (t 2  2 x 3 )  1 è
soluzione di tale problema.
Quesito 2)
Si consideri il problema ai valori iniziali ed al
contorno
  2u  2u
 2  2  6t (1  2 x ) x  (0,3), t  0
x
 t
 
 u( x ,0)  1, x  0,3 ,
 ut ( x ,0)  2 x 3 , x  0,3 ,

 u(0, t )  g1 ( t ), u( 3, t )  g 2 ( t ), t  0
ottenuto dal precedente aggiungendo le condizioni
al bordo in modo che la soluzione del problema al
punto 1, risolva anche questo problema.
Quesito 3a)
Si costruisca un file MATLAB: ……
• determini la soluzione approssimata fino al
valore t = 2 utilizzando il metodo alle differenze
finite con passi h1 = 0.05,h2 = 0.01 ed
assumendo, in corrispondenza, i valori massimi di
k1, k2 idonei ad assicurare la convergenza nei due
casi.
Quesito 3b)
• costruisca una tabella che riporti
l’intestazione: t sol1 err1 sol2 err2 con le
quantità t, sol1, sol2, err1, err2 rappresentanti,
rispettivamente i nodi ti comuni nei due casi e
presi ogni 5, sol1 e sol2 sono le soluzioni
approssimate in tali nodi, calcolate in x =1.5,
err1 ed err2 sono gli errori assoluti
corrispondenti a sol1 e sol2.
Si utilizzino i seguenti formati di stampa:
3 cifre decimali e formato virgola fissa per i
nodi,
9 cifre decimali e formato esponenziale per le
soluzioni approssimate,
2 cifre decimali e formato floating point per
l’errore nei due metodi.
Quesiti 4) e 5)
• In una figura si riportino 3 finestre grafiche.
Nella prima si rappresenti la soluzione vera, nella
seconda si riporti la superficie rappresentante la
soluzione approssimata ottenuta usando la
partizione relativa a h1, k1, nella terza si
rappresenti il corrispondente errore.
Si corredino le figure di label, titolo e barra dei colori.
• Si commentino e si confrontino i risultati e si specifichi
se essi soddisfano la aspettative teoriche.
Esercizio 1: istruzioni
clear all; clc
%Grafici
uvera='t.^3+2*t.*x.^3+1';
%Input
t0=0;tmax=2;
x0=0;xN=3;
h=[0.05 0.01];
v=1;
k=h/v;
M=round((tmax-t0)./k);
r='6*t.*(1-2*x)';
f='1';
l='2*x.^3';
g1='t.^3+2*t.*x0.^3+1';
g2='t.^3+2*t.*xN.^3+1';
x_ind=1.5;
ind_x=round((x_ind-x0)./h)+1;
Istruzioni
% Implementazione del metodo
[x1,t1,sol1]=PDE_iperboliche(t0,M(1),x0,xN,h(1),k(1),v,r,f
,l,g1,g2);
[x2,t2,sol2]=PDE_iperboliche(t0,M(2),x0,xN,h(2),k(2),v,r,f
,l,g1,g2);
%soluzione approssimata per x0=1.5;
solx1=sol1(:,ind_x(1));
solx2=sol2(1:5:end,ind_x(2));
% Confronto con la soluzione vera in x=1.5;
t=t1;x=x_ind;Uvera=eval(uvera);
errx1=abs(Uvera-solx1);
errx2=abs(Uvera-solx2);
% Tabella
tab=[t1 solx1 errx1 solx2 errx2 ];tab5=tab(1:5:end,:);
fprintf('
t
\t\t
sol1
\t\t
err1
\t\t
sol2
\t\t\t err2\n')
fprintf('%7.3f
%18.8e
%12.2e
%18.8e
%12.2e
\n',tab5')
Istruzioni
% Rappresentazione delle superfici vera, approssimata,
% errore
[x,t]=meshgrid(x1,t1);
Uvera=eval(uvera);
err1=abs(Uvera-sol1);
figure(1)
subplot(221),surf(x,t,Uvera),colorbar
xlabel('x'),ylabel('t'),zlabel('sol-vera')
title('Soluzione vera')
subplot(222),surf(x,t,sol1),colorbar
xlabel('x'),ylabel('t'),zlabel('sol-appr1')
title('Sol-appr.')
subplot(223),surf(x,t,err1),colorbar
xlabel('x'),ylabel('t'),zlabel('err1'),title('Errore1')
Risultati
t
0.000
0.250
0.500
0.750
1.000
1.250
1.500
1.750
2.000
sol1
1.00000000e+000
2.70250000e+000
4.49875000e+000
6.48250000e+000
8.74750000e+000
1.13875000e+001
1.44962500e+001
1.81687500e+001
2.24975000e+001
err1
0.00e+000
6.25e-004
1.25e-003
1.87e-003
2.50e-003
3.13e-003
3.75e-003
3.13e-003
2.50e-003
sol2
1.00000000e+000
2.70310000e+000
4.49995000e+000
6.48430000e+000
8.74990000e+000
1.13905000e+001
1.44998500e+001
1.81717500e+001
2.24999000e+001
err2
0.00e+000
2.50e-005
5.00e-005
7.50e-005
1.00e-004
1.25e-004
1.50e-004
1.25e-004
1.00e-004
Rappresentazioni grafiche
Esercizio 2 (Esame 19/12/2005 )
Si consideri il problema alle derivate parziali:

 2u
 2u
 9 2  0 x   0, 2  , t  0

2
t
x

u

2
u
x
,
0

3
x
,
 
 x, 0   1, x   0, 2

t

2
2
3

2

 u  0, t   27 t  t , u  2, t   2   2  3t    2  3t    t ,

t0
1) Si verifichi che la funzione
2
2
3

u  x, t  
x  3t    x  3t    t

2

che risolve il problema dato, è anche soluzione
del problema associato di Cauchy con condizioni
Quesiti 2), 3) e 4)
2) Si utilizzi il metodo alle differenze finite per
determinare la soluzione nell’insieme
D   0, 2   0,4
considerando il passo spaziale h = 0.5 e quello
temporale k uguale al valore massimo per cui il
metodo converge.
3) Si calcoli l’errore nei nodi al livello j = 10 e si
dica, motivando la risposta, se esso è conforme
alle aspettative teoriche legate al metodo.
4) Si rappresenti la soluzione vera, la soluzione
approssimata e l’errore nell’insieme D.
Esercizio 2: istruzioni
clear all;clc
t0=0; tM=4;x0=0; xN=2;
h=1/2;v=3;k=h/v;
M=round((tM-t0)/k);
livello=10;
f='3*x.^2';
l='1';
g1='27*t.^2+t';
g2='3/2*((2-3*t).^2+(2+3*t).^2)+t';
r='0';
%Calcolo della soluzione
[x,t,sol]=PDE_iperboliche(t0,M,x0,xN,h,k,v,r,f,l,g1,g2);
[X,T]=meshgrid(x,t);
solvera='3/2*((X-3*T).^2+(X+3*T).^2)+T';
solvera=eval(solvera);
err=abs(solvera-sol);
Istruzioni
tab=[x,sol(livello+1,:)',err(livello+1,:)' ];
fprintf('%8.4f
%20.12e %10.2e\n',tab')
errmax=max(max(err))
figure(1)
subplot(221),surf(X,T,solvera)
xlabel('x'),ylabel('t'),title('sol. vera')
subplot(222),surf(x,t,sol)
xlabel('x'),ylabel('t'),title('sol. appross.')
subplot(223),surf(x,t,err)
xlabel('x'),ylabel('t'),title('errore')
Risultati
x
0.0000
0.5000
1.0000
1.5000
2.0000
errmax =
1.1369e-013
sol_10
7.666666666667e+001
7.741666666667e+001
7.966666666667e+001
8.341666666667e+001
8.866666666667e+001
err_10
1.42e-014
0.00e+000
1.42e-014
1.42e-014
0.00e+000
Grafici
Scarica