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

Slides:



Advertisements
Presentazioni simili
Training On Line - CONP. 2 Richiesta Da Menu: Conferimenti ad inizio anno termico > Agosto > Pluriennali > Nuova Richiesta Si accede alla pagina di Richiesta.
Advertisements

Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
Valutazione d’Istituto A.S. 2008/2009
MONITORAGGIO MATEMATICA V A Alunni 26 Presenti 23 Quesiti 44 Risposte totali 650 Risultato medio 28,3 media 64,2%
1 MeDeC - Centro Demoscopico Metropolitano Provincia di Bologna - per Valutazione su alcuni servizi erogati nel.
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
COORDINATE POLARI Sia P ha coordinate cartesiane
Frontespizio Economia Monetaria Anno Accademico
La scelta del paniere preferito
8 a lezione - laboratorio a.a Esercizi Preparziale Corso di Laurea ING. MECCANICA.
2 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
3 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
Lez. 3 - Gli Indici di VARIABILITA’
Implementazione dell algortimo di Viterbi attraverso la soluzione del problema di cammino mi- nimo tramite software specifico. Università degli studi di.
I MATEMATICI E IL MONDO DEL LAVORO
EIE 0607 III / 1 A B P a = 30 P b = 35 t = 2, tc = 1 Questo può essere un equilibrio? No! Politiche di un paese importatore: una tariffa allimportazione.
Varianza campionaria Errore standard della varianza campionaria
ELEZIONI REGIONALI 2010 PRIMI RISULTATI E SCENARI 14 aprile 2010.
Canale A. Prof.Ciapetti AA2003/04
Metodi iterativi G. Puppo.
Soluzione FEM di problemi parabolici
Metodi FEM per problemi ellittici
FEM -2 Gabriella Puppo.
Metodi FEM per problemi ellittici lineari a tratti Gabriella Puppo.
Metodi numerici per equazioni lineari iperboliche Gabriella Puppo.
FEM -3 G. Puppo.
Metodi conservativi per equazioni iperboliche
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
Test di ipotesi X variabile casuale con funzione di densità (probabilità) f(x; q) q Q parametro incognito. Test Statistico: regola che sulla base di un.
Esercizi x1=m-ts x2=m+ts
1 Sistemi Digitali. 2 Definizione Analog Waveform Time Voltage (V) 0 5 Digital Waveform Time Voltage (V)
Master universitario di II livello in Ingegneria delle Infrastrutture e dei Sistemi Ferroviari Anno Accademico 2012/2013 Cultura dimpresa, valutazione.
La partita è molto combattuta perché le due squadre tentano di vincere fino all'ultimo minuto. Era l'ultima giornata del campionato e il risultato era.
MP/RU 1 Dicembre 2011 ALLEGATO TECNICO Evoluzioni organizzative: organico a tendere - ricollocazioni - Orari TSC.
La relazione stock-reclutamento per questo tipo di popolazione ha prodotto la tabella:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% % Accrescimento della PECORA IN TASMANIA % % dal 1820 ad oggi % % ( MODELLO LOGISTICO ) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Cos’è un problema?.
1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a
3 a -4 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Laurea Specialistica in Ingegneria Matematica a.a
11 a bis lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica.
10a lezione di laboratorio
Gli italiani e il marketing di relazione: promozioni, direct marketing, digital marketing UNA RICERCA QUANTITATIVA SVOLTA DA ASTRA RICERCHE PER ASSOCOMUNICAZIONE.
Lezione 2 La progettazione degli esperimenti
CHARGE PUMP Principio di Funzionamento
Settimana: 3-7 marzo Orariolunedimartedi Mercoledi 5 Giovedi 6 Venerdi lezione intro alla fis mod DR lezione intro alla fis mod DR.
Velocità ed accelerazione
Q UESTIONI ETICHE E BIOETICHE DELLA DIFESA DELLA VITA NELL AGIRE SANITARIO 1 Casa di Cura Villa San Giuseppe Ascoli Piceno 12 e 13 dicembre 2011.
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
ISTITUTO COMPRENSIVO “G. BATTAGLINI” MARTINA FRANCA (TA)
1)Completa la seguente successione: C4, B7, E10, D13, G16,. A. G19 B
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
LE SAI LE TABELLINE? Mettiti alla prova!.
1 Questionario di soddisfazione del servizio scolastico Anno scolastico 2011/2012 Istogramma- risposte famiglie.
Un trucchetto di Moltiplicazione per il calcolo mentale
21 marzo 2002 (ri-)Avvisi: Giovedi 28 marzo la lezione e sospesa. Nuovo indirizzo di Spedire messaggi e esercizi solo.
LA CIRCONFERENZA.
Esempi risolti mediante immagini (e con excel)
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.
NO WASTE Progetto continuità scuola primaria scuola secondaria Salorno a.s. 2013_
Numeri Interi senza segno
I chicchi di riso e la sfida al Bramino
Metodi matematici per economia e finanza. Prof. F. Gozzi
Mercato del lavoro e condizione giovanile: la crisi si acuisce
Il numero più grande Accademia dei Lincei
TRASFORMATA DI FOURIER
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Transcript della presentazione:

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

2 Generalità su un problema del 2° ordine di tipo iperbolico Si può assumere per semplicità: (1) Si fa notare che le funzioni al bordo sono non nulle.

3 Approssimazioni utilizzate Si approssimano le derivate parziali seconde con le differenze finite: La condizione iniziale sulla derivata si approssima con una differenza centrale: con errore locale nell’approssimazione delle derivate:

4 Problema discreto 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: Si è posto:

5 Costruzione della forma vettoriale Dalla 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. V j (N-1) V j (1) U j-1

6 Costruzione della forma vettoriale Poniamo quindi: N.B. Il vettore ha N-1 componenti di cui N–3 uguali a zero!!! Per :

7 Forma vettoriale Si ottiene allora: 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

8 Function PDE_iperboliche:parte 1 function [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;

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];

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

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

12 c) Cosa accade per la teoria se si modifica la condizione sull’asse t in g 1 ( 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).

13 Calcolo della soluzione: file onda.m clear all;close all;clc % Dati del problema t0=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=x0 g2='0'; %cond.al contorno su x=xN r='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);

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 square xlabel('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 linea set(gca,'FontWeight','bold','Fontsize',12)

15 Grafico della soluzione numerica Figura 1

16 Altro grafico di sol H2=surf(x,t,sol);% osservare bene % l’istruzione!!!

17 Curve di livello Figura 2

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]);

19 Formula di D’Alembert 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.

20 Soluzione analitica dell’esercizio 1 la soluzione analitica del problema di Cauchy ottenuto dall’esercizio 1 non considerando le condizioni al contorno, è: Tenendo conto che:

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

22 Curve di livello della soluzione di D’Alembert figure(4) [C,H]=contour(x,t,solvera,20); axis square Figura 4 Osservare le differenze tra le figure 1 e 3 e tra le figure 2 e 4; giustificare teoricamente le differenze.

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

24 c) Caso con g 1 ( t ) = 1 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';

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

26 Grafico soluzione numerica in presenza di singolarità Figura 1

27 Altro grafico di sol in presenza di singolarità H2=surf(x,t,sol);

28 Curve di livello senza la retta t = x/v Figura 2

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

30 Generalità su un problema del 2° ordine di tipo parabolico Si può assumere per semplicità: N.B. Condizioni al contorno di Dirichlet

31 Metodo di Crank-Nicolson Si colloca l’equazione differenziale in è approssimata con la media delle differenze centrali relative ai livelli j e j+1 : La è approssimata con una differenza centrale di passo k/2 : i-1ii+1 j j+1

32 Schema di Crank-Nicolson Posto, si ottiene:

33 Costruzione della forma vettoriale Se si assume N=5, dalla prima equazione dello schema per j=0, si ottiene il sistema: V j (1) V j (N-1) V j+1 (1) V j+1 (N-1)

34 Forma vettoriale Per j = 0 abbiamo : Per j=1,2,… poniamo: Si ottiene il sistema lineare: N-3 La quantità nell’ovale è b N-3

35 Caratteristiche delle matrici A, B A, B sono tridiagonali e simmetriche Si ricorda che il metodo converge

36 Function PDE_paraboliche_CN: parte 1 function [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:

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!!!

38 Esercizio 2 Si risolva con il metodo di Crank-Nicolson il seguente problema con le condizioni al contorno miste Dirichlet-Neumann : con passo spaziale h = 0.2, passi temporali k =[ 0.5, 0.25,0.125 ] e numero di intervalli temporali M = 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.

39 Condizioni iniziali ed al contorno Per conservare l’ordine di approssimazione, la condizione viene approssimata con una differenza centrale: Si noti la continuità del problema nel punto ( x 0,t 0 )=(0,0):

40 Posto, si assume: si ottiene quindi: Approssimazione del problema in esame Dall’uguaglianza (*) si ricava:

41 Costruzione del sistema Per i=1,2,3,4 e j = 0, lo schema diventa: V j (1) V j+1 (1) V j+1 (N) V j (N) N.B In questo caso la dimensione di e del sistema è N; occorre infatti calcolare la soluzione anche in x=xN.

42 Sistema relativo al problema in esame Il sistema diventa: dove:

43 Soluzione del problema Il 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.

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; end t=linspace(t0,tM,M+1)';x=[x0;x];

45 Inizializzazione dei dati clear 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 noto x0=0;xN=1; t0=0; h=.2;c=1; xsol=0.4; ind=round((xsol-x0)/h)+1; tab=[]; k=[ ]; % attenzione si richiede che i valori di k siano % multipli altrimenti la soluzione non può essere confrontata % nei nodi corrispondenti

46 a - Calcolo della soluzione approssimata con M fissato % si può usare il comando sol(:,:,i)solo se le % matrici hanno le stesse dimensioni M=30; tM3=t0+M*k(3); num=fix((tM3-t0)/k(1)); t_fin=t0+num*k(1); % 3.5 valore limite comune for 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)]; end tab=[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')

47 Soluzione approssimata U(0.4,t) t sol1 sol2 sol t sol1 sol2 sol

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;

49 Grafico della soluzione approssimata con M fissato Figura 1

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

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)]; end tab=[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.

52 Esercizio 3 Sia dato il seguente problema alle derivate parziali di tipo parabolico: con soluzione vera:

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.

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.4 utilizzando 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.

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));

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=[ ] 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

57 Risultati quesito 3):tabella 1 Tabella per t=0.1 x sol_CN sol_esp err_CN err_esp e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e+000 Tabella per t=0.1 x sol_CN sol_esp err_CN err_esp e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e+000 Errori massimi nei due metodi: alfa err_CN err_esp e e-007 alfa err_CN err_esp e e-007

58 Risultati quesito 3): tabella 2 Tabella per t=0.4 x sol_CN sol_esp err_CN err_esp e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e+000 Tabella per t=0.4 x sol_CN sol_esp err_CN err_esp e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e+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?

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')

60 Grafici della soluzione vera ed approssimata

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.