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 , t0 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