7a - 8a lezione di laboratorio

Slides:



Advertisements
Presentazioni simili
Una calcolatrice del XV° secolo
Advertisements

Training On Line - CONP. 2 Richiesta Da Menu: Conferimenti ad inizio anno termico > Agosto > Pluriennali > Nuova Richiesta Si accede alla pagina di Richiesta.
7a lezione - laboratorio
Numeri a 100 Electronic flashcard. 1 uno ritorno.
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
Equazioni non lineari Gabriella Puppo.
Metodi numerici in Matlab
1 MeDeC - Centro Demoscopico Metropolitano Provincia di Bologna - per Valutazione su alcuni servizi erogati nel.
Sistema di riferimento sulla retta
Esercitazione su SMF Lezione 14
MATLAB.
MATLAB. Outline Grafica 2D Esercizi Grafica 3D Esercizi.
MATLAB.
Frontespizio Economia Monetaria Anno Accademico
Meccanica 2 1 marzo 2011 Cinematica in una dimensione
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.
Esercitazione MATLAB (13/5)
XXIV Congresso ACOI 2005 Montecatini Terme Maggio 2005
Varianza campionaria Errore standard della varianza campionaria
Campionamento casuale semplice
ELEZIONI REGIONALI 2010 PRIMI RISULTATI E SCENARI 14 aprile 2010.
Canale A. Prof.Ciapetti AA2003/04
MATLAB.
Genova - 21maggio 2008 Tavola rotonda sulla Mobilità sanitaria.
Interpolazione polinomiale a tratti
Soluzione FEM di problemi parabolici
Metodi FEM per problemi ellittici lineari a tratti Gabriella Puppo.
Metodi numerici per equazioni lineari iperboliche Gabriella Puppo.
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)
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Simulazione di un esperimento di laboratorio: Caduta di un corpo quadrato in.
MP/RU 1 Dicembre 2011 ALLEGATO TECNICO Evoluzioni organizzative: organico a tendere - ricollocazioni - Orari TSC.
COMPLETAMENTI Mil.Tslc All
La relazione stock-reclutamento per questo tipo di popolazione ha prodotto la tabella:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% % Accrescimento della PECORA IN TASMANIA % % dal 1820 ad oggi % % ( MODELLO LOGISTICO ) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Progetto di applicazioni grafiche. Disegno di forme complesse Prassi : un classe per ciascuna forma Progetta la forma individuando le componenti base.
Cos’è un problema?.
1 5 a -6 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.
Ropol09anci INDAGINE SU PATTO DI STABILITA 2009 IN PIEMONTE ANCI PIEMONTE Torino, 29 giugno 2009.
Metodi numerici per equazioni differenziali ordinarie Laboratorio di Metodi Numerici a.a. 2008/2009.
Progetto Lauree Scientifiche DINAMICA DI POPOLAZIONI Liceo Statale A. Meucci Aprilia (LT) Anno Scolastico 2007/2008.
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.
Operazioni con Numeri Naturali e Numeri Decimali
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.
INTRODUZIONE A MATLAB LEZIONE 4 Sara Poltronieri slide3.4 matlabintro
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.
Metodi matematici per economia e finanza. Prof. F. Gozzi a.a. 2009/10
ESERCITAZIONE di CHIMICA
Diagrammi 2D e 3D Funzioni di ordine superiore
Un trucchetto di Moltiplicazione per il calcolo mentale
Navigazione piana, introduzione pns pnr.
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.
NO WASTE Progetto continuità scuola primaria scuola secondaria Salorno a.s. 2013_
Metodi matematici per economia e finanza. Prof. F. Gozzi
Lezione 3: Esempi di sistemi LTI tempo-continui
Esercizio 1: La seguente distribuzione riporta i punteggi di un test sullo spettro autistico misurato su un gruppo di bambini: a)Costruire una tabella.
1 11 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica.
DIRETTIVI UNITARI SPI-CGI – FNP-CISL - UILP-UIL TERRITORIO LODIGIANO Lunedì 23 marzo 2015 dalle ore 9,00 alle ore 13,00 Presso la sala Conferenze Confartigianato.
1 Ministero dell’Istruzione, dell’Università e della Ricerca Dipartimento per la Programmazione e la Gestione delle risorse umane, finanziarie e strumentali.
Esercizi Due gruppi di studenti effettuano la misura della densità di un oggetto, trovando rispettivamente i valori 13.7 ± 0.9 g/cm3 e ± 1300 kg/m3.
Transcript della presentazione:

7a - 8a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici a.a. 2007-2008

Esercizio 1 Prova pratica del 04-09-2007 Si consideri il seguente problema di Cauchy: 1- Si verifichi che la funzione è soluzione del problema proposto e si dica, motivando opportunamente la risposta, se tale soluzione è unica, sapendo che y(x) e la sua derivata sono funzioni limitate e strettamente positive nell’intervallo [0, 2].

Quesito 2 2- Si costruisca un file MATLAB: Cognome_studente_matricola.m che, una volta avviato a) faccia visualizzare una schermata con i dati personali ed una breve presentazione del problema b) determini la soluzione approssimata utilizzando il metodo di Heun ed il metodo di Runge Kutta del quarto ordine, con il passo h = 0.04; c) valuti l’errore relativo nei nodi nei due casi; faccia visualizzare una tabella riassuntiva in cui si riporti:

intestazione: x solH solRK errH errRK in cui x contiene i nodi xi, presi ogni 5, solH e solRK sono le soluzioni approssimate in tali nodi, calcolate con i due metodi ed errH e errRK i corrispondenti errori relativi. Si utilizzino i seguenti formati di stampa: 3 cifre decimali e formato virgola fissa per i valori dei nodi, 10 cifre decimali e formato virgola fissa per le soluzioni nei due casi, 2 cifre decimali e formato floating point per gli errori.

Quesiti 3 e 4 3- Si esegua una figura con 2 finestre grafiche; nella prima finestra grafica si riporti la soluzione vera (color blu) e quella approssimata ottenuta con il metodo di Heun (color rosso); nella seconda finestra grafica si riporti la soluzione vera (color blu) e quella approssimata ottenuta con il metodo di Runge Kutta (color verde). Si corredino i grafici di titolo e label. 4- Si commentino i risultati e si specifichi se essi soddisfano la aspettative teoriche.

Risoluzione quesito 2: variabili di input delle functions clear all clc t0=0;tmax=2; h=0.04; n=round((tmax-t0)/h); y0=[2 2]; f1='y(2)'; f2='(1+y(2).^2).*y(2)./(1+y(1).*y(2))'; f=strvcat(f1,f2); yveras='2*exp(T)';

Risoluzione quesito 2: applicazione dei metodi e stampe [T,Y1]=Heun(t0,tmax,n,y0,f); [T,Y2]=Rungekutta4(t0,tmax,n,y0,f); yvera=eval(yveras); err1=abs(yvera-Y1(:,1))./abs(yvera); err2=abs(yvera-Y2(:,1))./abs(yvera); tab=[T Y1(:,1) Y2(:,1) err1 err2]; tabr=tab(1:5:end,:); % stampa della tabella e grafici fprintf(' nodi solH solRK errH errRK \n') fprintf('%7.3f %14.10f %14.10f %10.2e %10.2e\n',tabr') subplot(2,1,1),plot(T,yvera,T,Y1(:,1),'r') xlabel('t'),ylabel('yvera -Heun') title('Soluzione vera - Heun h=0.04') subplot(2,1,2),plot(T,yvera,T,Y2(:,1),'g') xlabel('t'),ylabel('yvera - RK4') title('Soluzione vera - RK4 h=0.04')

Risultati quesito 2: tabella nodi solH solRK errH errRK 0.000 2.0000000000 2.0000000000 0.00e+000 0.00e+000 0.200 2.4426790826 2.4428055062 5.18e-005 4.13e-009 0.400 2.9833405503 2.9836493707 1.04e-004 8.25e-009 0.600 3.6436717793 3.6442375557 1.55e-004 1.24e-008 0.800 4.4501604196 4.4510817835 2.07e-004 1.65e-008 1.000 5.4351568857 5.4365635447 2.59e-004 2.06e-008 1.200 6.6381720177 6.6402336811 3.11e-004 2.48e-008 1.400 8.1074619672 8.1103996994 3.62e-004 2.89e-008 1.600 9.9019638802 9.9060645217 4.14e-004 3.30e-008 1.800 12.0936600235 12.0992944794 4.66e-004 3.71e-008 2.000 14.7704651859 14.7781115880 5.17e-004 4.13e-008

Risultati quesito 3: grafici

Esercizio 2 Prova pratica del 30-11-2006 Si consideri il problema differenziale di Cauchy 1- Sapendo che nell’intervallo [0,1] le componenti della soluzione e le rispettive derivate fino all’ordine 3 si mantengono limitate, si dica, motivando la risposta, se il problema è ben posto.

Quesito 2 2- Si costruisca un file MATLAB: Cognome_studente_matricola.m che una volta avviato: faccia visualizzare una schermata con i dati personali ed una breve presentazione del problema; b) risolva il problema utilizzando il metodo Runge Kutta del quarto ordine con i passi h1=0.1, h2=0.05 e h3=0.01; c) faccia visualizzare una tabella riassuntiva che riporti ogni 5 nodi: intestazione: nodi sol1 sol2 sol3 dove nodi sono i nodi comuni delle partizioni, sol1, sol2, sol3 sono le soluzioni numeriche ottenute con il metodo e valutate nei nodi comuni, con i seguenti formati di stampa: 3 cifre decimali e formato virgola fissa per i valori dei nodi; 4 cifre decimali e formato virgola mobile per le soluzioni.

Quesito 3, 4 e 5 3- In una stessa figura corredata di label e titolo, si riporti la componente y(x) di ognuna delle tre soluzioni numeriche ottenute con il metodo RK4. 4- Si utilizzi l’ode suite per risolvere il problema proposto, scegliendo ode45 e riportando nella stessa figura del punto precedente, il grafico della componente y(x) della soluzione ottenuta con ode45 ( color rosso e punto). 5- Si commentino i risultati.

Risoluzione quesito 2 clear all clc t0=0; tmax=1; y0=[0 1 0 0 0.5]; h=[0.1 0.05 0.01]; n=round((tmax-t0)./h); f1='y(2)';f2='y(3)';f3='t.^2.*y(1).*y(3)-y(1).*y(5)'; f4='y(5)';f5='t.*y(4).*y(5)+4*y(2)'; f=strvcat(f1,f2,f3,f4,f5); tab=[];s='%7.3f'; for i=1:length(n) step=round(h(1)/h(i)); [T,Y]=Rungekutta4(t0,tmax,n(i),y0,f); tab=[tab Y(1:step:end,[1,4])]; subplot(1,2,1),plot(T,Y(:,1));hold on subplot(1,2,2),plot(T,Y(:,4));hold on s=[s,' %12.4e %12.4e']; end tab=[T(1:step:end) tab];tabr=tab(1:5:end,:);

Risoluzione quesiti 3 e 4 function f5=fun5(t,y) f5=[y(2) y(3) t.^2.*y(1).*y(3)-y(1).*y(5) y(5) t.*y(4).*y(5)+4*y(2)]; fprintf(' t \t\t\t\t\t sol1_h1 \t\t\t\t sol2_h2 \t\t\t\t sol3_h3 \n') fprintf([s,' \n'],tabr') [T,Y] = ode45('fun5',[t0 tmax],y0); tab=[T Y(:,:)];tab=tab(1:4:end,:); fprintf(' t solode45 \n') fprintf('%7.3f %12.4e %12.4e %12.4e %12.4e %12.4e \n', tab') subplot(1,2,1),plot(T,Y(:,1),'r.') xlabel('t');ylabel('y(t)');title('Componente y(t)') subplot(1,2,2),plot(T,Y(:,4),'r.') xlabel('t');ylabel('z(t)');title('Componente z(t)')

Risultati quesito 2: tabella t sol1_h1 sol2_h2 sol3_h3 0.000 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000 0.500 4.9659e-001 7.5910e-001 4.9659e-001 7.5910e-001 4.9659e-001 7.5910e-001 1.000 9.0431e-001 2.9880e+000 9.0430e-001 2.9882e+000 9.0430e-001 2.9882e+000

Risultati quesito 4: tabella t solode45 (si riportano le 5 componenti) 0.000 0.0000e+000 1.0000e+000 0.0000e+000 0.0000e+000 5.0000e-001 0.000 2.0095e-004 1.0000e+000 -1.0106e-008 1.0056e-004 5.0080e-001 0.001 1.2057e-003 1.0000e+000 -3.6577e-007 6.0576e-004 5.0482e-001 0.006 6.2295e-003 1.0000e+000 -1.0024e-005 3.1924e-003 5.2492e-001 0.031 3.1348e-002 1.0000e+000 -2.8676e-004 1.7640e-002 6.2540e-001 0.131 1.3134e-001 9.9971e-001 -7.3360e-003 1.0019e-001 1.0258e+000 0.231 2.3124e-001 9.9801e-001 -2.9932e-002 2.2290e-001 1.4292e+000 0.331 3.3083e-001 9.9293e-001 -7.6340e-002 3.8634e-001 1.8419e+000 0.431 4.2963e-001 9.8165e-001 -1.5557e-001 5.9199e-001 2.2760e+000 0.531 5.2683e-001 9.6037e-001 -2.7846e-001 8.4293e-001 2.7523e+000 0.631 6.2120e-001 9.2402e-001 -4.5962e-001 1.1450e+000 3.3055e+000 0.731 7.1091e-001 8.6579e-001 -7.2085e-001 1.5085e+000 3.9948e+000 0.831 7.9331e-001 7.7604e-001 -1.0972e+000 1.9519e+000 4.9268e+000 0.931 8.6460e-001 6.4055e-001 -1.6488e+000 2.5087e+000 6.3116e+000 1.000 9.0430e-001 5.0996e-001 -2.1819e+000 2.9882e+000 7.7458e+000

Risultati quesito 3: grafici

Esercizio 3 Prova pratica del 26-06-06 Si consideri il seguente problema di Cauchy: 1- Si verifichi che la funzione è soluzione del problema proposto e si dica, motivando opportunamente la risposta, se tale soluzione è unica, sapendo che essa e la sua derivata sono funzioni limitate nell’intervallo [1, 2].

Quesito 2 2- Si costruisca un file MATLAB   Quesito 2 2- Si costruisca un file MATLAB Cognome_studente_matricola.m che, una volta avviato: faccia visualizzare una schermata con i dati personali ed una breve presentazione del problema; b) determini la soluzione approssimata utilizzando il metodo di Runge Kutta del quarto ordine considerando N1=100 e N2=200 intervalli; c) valuti l’errore assoluto nei nodi; d) faccia visualizzare una tabella riassuntiva in cui si riporti: intestazione: t soluzione1 soluzione2 errore1 errore2 e, ogni 5, i nodi ti , le soluzioni approssimate ed i corrispondenti errori assoluti nei nodi coincidenti nei due casi, utilizzando i seguenti formati di stampa:

Quesiti 3 e 4 3 cifre decimali e formato virgola fissa per i valori dei nodi, 10 cifre decimali e virgola fissa per le soluzioni nei due casi, 2 cifre decimali e formato floating point per gli errori. 3- Si esegua una figura con due finestre grafiche, una per N1=100 ed una per N2=200; in ciascuna finestra grafica si riporti la soluzione approssimata (color rosso e punto-linea) e la soluzione vera (color verde e linea continua). 4- Si commentino i risultati e si specifichi se essi soddisfano la aspettative teoriche.

Istruzioni quesito 2 clc clear all % Dati di input: t0=1;tmax=2; n1=100;n2=200; y0=[17 -14]; f=strvcat('y(2)','1/8*(32+2*t.^3-y(1).*y(2))'); % Elaborazione: [T1,Y1]=Rungekutta4(t0,tmax,n1,y0,f); [T2,Y2]=RungeKutta4(t0,tmax,n2,y0,f); xvera=T1.^2+16./T1; yvera=2*T1-16./T1.^2; vera=[xvera yvera]; err1=abs(Y1-vera); err2=abs(Y2(1:2:end,:)-vera);

Istruzioni quesito 2 tab=[T1 Y1 Y2(1:2:end,:) err1 err2]; tab5=tab(1:5:end,:); tabella=[T1 Y1(:,1) Y2(1:2:end,1) err1(:,1) err2(:,1)]; tabella5=tabella(1:5:end,:); % Stampa della tabella: s='___________________________________________________'; disp(s) fprintf(' t \t\t\t\t y1 y2 \t\t\t\t erry1 erry2 \n') disp(s);disp(' ') fprintf('%7.3f %14.10f %14.10f %12.2e %12.2e \n', tabella5') disp(' ')

Istruzioni quesito 3 % Stampa dei grafici: subplot(2,1,1) plot(T1,Y1(:,1),'.-r',T1,xvera,'g');grid on xlabel('tempo');ylabel('y1 e xvera'); title(' RK4 (n1=100)') subplot(2,1,2) plot(T2,Y2(:,1),'.-r',T1,xvera,'g');grid on xlabel('tempo');ylabel('y2 e xvera'); title(' RK4 (n2=200)')

Tabella risultati __________________________________________________________________________________________________ t y1 y2 erry1 erry2 __________________________________________________________________________________ 1.000 17.0000000000 17.0000000000 0.00e+000 0.00e+000 1.050 16.3405952410 16.3405952383 2.95e-009 1.83e-010 1.100 15.7554545505 15.7554545458 5.07e-009 3.14e-010 1.150 15.2355434849 15.2355434787 6.61e-009 4.09e-010 1.200 14.7733333411 14.7733333338 7.73e-009 4.79e-010 1.250 14.3625000086 14.3625000005 8.56e-009 5.30e-010 1.300 13.9976923169 13.9976923083 9.16e-009 5.68e-010 1.350 13.6743518615 13.6743518524 9.62e-009 5.96e-010 1.400 13.3885714385 13.3885714292 9.95e-009 6.17e-010 1.450 13.1369827688 13.1369827593 1.02e-008 6.32e-010 1.500 12.9166666771 12.9166666673 1.04e-008 6.44e-010 1.550 12.7250806557 12.7250806458 1.05e-008 6.52e-010 1.600 12.5600000106 12.5600000007 1.06e-008 6.59e-010 1.650 12.4194697077 12.4194696976 1.07e-008 6.64e-010 1.700 12.3017647166 12.3017647065 1.08e-008 6.67e-010 1.750 12.2053571537 12.2053571435 1.08e-008 6.69e-010 1.800 12.1288888997 12.1288888896 1.08e-008 6.71e-010 1.850 12.0711486595 12.0711486493 1.08e-008 6.72e-010 1.900 12.0310526424 12.0310526323 1.09e-008 6.72e-010 1.950 12.0076282160 12.0076282058 1.09e-008 6.72e-010 2.000 12.0000000108 12.0000000007 1.08e-008 6.72e-010 ________________________________________________________________________________

Grafici

Esercizio 4: Moto del Battello Si determini la traiettoria ed il tempo di attraversamento di un fiume largo 2 km, con velocità della corrente di modulo s, da parte di un battello che si muove con velocità relativa (rispetto all’acqua) di modulo v, e che, partendo da un punto a valle (o a monte) del punto di attracco, si dirige sempre verso tale punto. Si utilizzi il metodo di Eulero. Si esaminerà il caso di partenza da un punto a valle. Lo studente può studiare l’altro caso.

s y dx/dt V v dy/dt x A P 2 km 0.1 km s y dx/dt V v dy/dt x A P

Modello del problema Velocità assoluta battello:

[T,X,Y]=Eulero2(t0,tmax,n,x0,y0,f1,f2); Metodo di Eulero [T,Y]=Eulero(t0,tmax,n,y0,f) Eulero scalare: f=strvcat(f1,f2); [T,Y]=Eulero(t0,tmax,n,y0,f) Eulero vettoriale: Eulero vettoriale applicato in serie: [T,X,Y]=Eulero2(t0,tmax,n,x0,y0,f1,f2);

Soluzione del problema e simulazione del moto t0=0;tmax=0.5; %primo valore di tentativo y0=[2 0.1]; f=strvcat('-5*y(1)/sqrt(y(1)^2+y(2)^2)‘, ... '-5*y(2)/sqrt(y(1)^2+y(2)^2)+3'); n=50; [T,Y]=Eulero(t0,tmax,n,y0,f); x=Y(:,1); y=Y(:,2); figure(1) axis([-0.1 2 -0.2 0.6]) hold on for i=1:length(T) plot(x(i),y(i),'*b') %*=simbolo,b=blu pause(0.30) end hold off title([' Traiettoria del battello - tmax = ' num2str(tmax)]) xlabel(' X [km]');ylabel(' Y [km]') grid

L’estremo finale viene calcolato per tentativi.

Risultati con tmax=0.65 T X Y 0.000 2.000000e+000 1.000000e-001 ... ... ... 0.559 1.919500e-002 1.821415e-001 0.572 1.238269e-002 1.564994e-001 0.585 7.255724e-003 1.307019e-001 0.598 3.652893e-003 1.048019e-001 0.611 1.388678e-003 7.884131e-002 0.624 2.439726e-004 5.285139e-002 0.637 -5.607722e-005 2.685208e-002 0.650 7.966688e-005 8.522218e-004

Esercizio 5: Problema Preda-Predatore Sistema differenziale non lineare di ordine 1 P(t): prede, Q(t): predatori. Si trovi la soluzione del problema per assumendo: k1 = 2; k2 = 10; c = 0.001; d = 0.002; P0=5000; Q0=100.

Soluzione analitica del problema Variabili separate Integrando i due membri si ottiene l’Int. Gen. cost. si calcola imponendo le condizioni iniziali.

Istruzioni: Metodo Eulero esplicito e grafici di P( t ), Q( t ) t0=0;tmax=3; y0=[5000 100]; % P,Q sono in y(1), y(2) f=strvcat('2*y(1)- 0.001*y(1)*y(2)',... '-10*y(2)+ 0.002*y(1)*y(2)'); str1='Eulero';n=300; h=tmax/n; [T,Y]=Eulero(t0,tmax,n,y0,f); plot(T,Y(:,1),’b’,T,Y(:,2),’g’); grid title(['Risultati del metodo di ',str1]) legend('prede','predatori') title(['Risultati del metodo di ',str1,... ' con h =' num2str(h)]) xlabel('Tempo')

Grafici: Metodo di Eulero Esplicito

Istruzioni per grafico nel piano P Q t0=0;tmax=3; y0=[5000 100]; % P,Q sono in y(1), y(2) f=strvcat('2*y(1)- 0.001*y(1)*y(2)','-10*y(2)+ .002*y(1)*y(2)'); str1='Eulero';N=[60 300]; h=tmax./N; n=N(1); [T,Y]=Eulero(t0,tmax,n,y0,f); plot(Y(:,1),Y(:,2),'r') hold on n=N(2); plot(Y(:,1),Y(:,2),'b',10/0.002,2/0.001,'*'),grid title(['Risultati del metodo di ',str1]) xlabel('Prede'),ylabel('Predatori');grid legend(['h1 = ',num2str(h(1))],['h2 = ',num2str(h(2))])

Rappresentazione nel piano PQ Il punto segnato con * è il punto critico che si ottiene ponendo:

Istruzioni del Metodo Heun Grafici di P( t ), Q( t ) t0=0;tmax=3; y0=[5000 100]; f=strvcat('2*y(1)- 0.001*y(1)*y(2)',... '-10*y(2)+ 0.002*y(1)*y(2)'); str1=‘Heun';n=300; h=tmax./n; [T,Y]=Heun(t0,tmax,n,y0,f); plot(T,Y(:,1),T,Y(:,2)); grid legend('prede','predatori') title(['Risultati del metodo di ',str1,... ' con h = ',num2str(h)]) xlabel('Tempo')

Grafici prede, predatori Metodo di Heun

Soluzione nel piano PQ: simulazione movimento t0=0;tmax=3; y0=[5000 100]; f=strvcat('2*y(1)- 0.001*y(1)*y(2)','-10*y(2)+ 0.002*y(1)*y(2)'); n=300; h=tmax./n; [T,Y]=Heun(t0,tmax,n,y0,f); plot(10/0.002,2/0.001,’*r’,y0(1),y0(2),’*b’) hold on for i=1:n plot(Y(i,1),Y(i,2),’*b’) pause(0.25) end title('Simulazione nel piano PQ - Heun')

Simulazione: metodo di Heun

Esercizio 6: Sistema differenziale lineare del 1° ordine Stabilire se il problema ammette soluzione unica e se è ben condizionato. Calcolare la soluzione con il metodo di Eulero Implicito, n1=100 e n2=200; n1, n2 = numero sottointervalli.

Esercizio 6: quesiti c,d c) Si calcoli l’errore nei nodi sapendo che la soluzione vera è: d) Si confronti la soluzione vera calcolata nei nodi al punto c), con quella approssimata ottenuta applicando il metodo di Runge-Kutta 4 con n1 = 100.

a: esistenza, unicità della soluzione Esiste unica la soluzione del problema.

a: stabilità e condizionamento La matrice dei coefficienti è i suoi autovalori si trovano risolvendo l’equazione caratteristica: il sistema è asintoticamente stabile e quindi ben condizionato.

b: metodo di Eulero Implicito n=input('n = '); % numero sottointervalli t0=0;tmax=10; A=[-1 1; -1 -1]; b=strvcat('0','0'); y0=[-1 1]; [T,Y]=Eulsis(t0,tmax,n,y0,A,b); str1='Eulero Implicito'; Stampa dei risultati disp(['Risultati del metodo di ',str1]); t=T; Xv=exp(-t).*(sin(t)-cos(t)); Yv=exp(-t).*(sin(t)+cos(t)); tabella2

c: file “tabella2.m” ErrX= abs(Y(:,1)-Xv);ErrY= abs(Y(:,2)-Yv); % Il file scrive una tabella in cui si riportano i valori in uscita da % un problema differenziale di Cauchy di tipo vettoriale e le colonne % di errore nella X e nella Y; ErrX= abs(Y(:,1)-Xv);ErrY= abs(Y(:,2)-Yv); tabella=[T,Y, ErrX,ErrY]; s='------------------------------------------'; disp(s) fprintf(' T X Y ErrX ErrY \n'); %stampa ogni 10 valori fprintf('%6.3f %16.6e %16.6e %10.2e %10.2e\n', tabella(1:10:end,:)')

tabella2.m : Eulero Implicito n1 = 100 ----------------------------------------------------------------------------------------------------- T X Y ErrX ErrY 0.000 -1.000000e+000 1.000000e+000 0.00e+000 0.00e+000 1.000 6.326408e-002 5.194194e-001 4.75e-002 1.11e-002 2.000 1.657577e-001 1.000365e-001 1.36e-002 3.33e-002 3.000 6.695044e-002 -2.547604e-002 1.06e-002 1.68e-002 4.000 7.847666e-003 -2.531598e-002 9.74e-003 5.17e-004 5.000 -5.585724e-003 -8.060362e-003 2.79e-003 3.51e-003 6.000 -3.622299e-003 -2.110340e-004 5.50e-004 1.90e-003 7.000 -8.876485e-004 1.007195e-003 7.99e-004 2.79e-004 8.000 9.098508e-005 4.883277e-004 2.90e-004 2.05e-004 9.000 1.630219e-004 8.486890e-005 2.80e-007 1.46e-004 10.000 6.190752e-005 -2.813839e-005 4.85e-005 3.47e-005

% Grafico componente x della soluzione vera ed approssimata plot(T,Xv,T,Y(:,1));grid xlabel('Tempo (s)') title(’Metodo di Eulero implicito - n=100') legend('Xvera','Xapp')

Errore per la x(t): Eulero Implicito % Andamento degli errori nella valutazione di x plot(T,ErrX);grid title(’Andamento degli errori nella x')

tabella2.m: Eulero Implicito n2 = 200 -------------------------------------------------------------- T X Y ErrX ErrY 0.000 -1.000000e+000 1.000000e+000 0.00e+000 0.00e+000 0.500 -2.615168e-001 8.176226e-001 2.00e-002 5.44e-003 1.000 8.623577e-002 5.138799e-001 2.46e-002 5.55e-003 1.500 1.894160e-001 2.532959e-001 1.74e-002 1.49e-002 2.000 1.726328e-001 8.400313e-002 6.75e-003 1.73e-002 2.500 1.165047e-001 -2.675497e-003 1.62e-003 1.40e-002 3.000 6.211849e-002 -3.383809e-002 5.80e-003 8.42e-003 3.500 2.410848e-002 -3.553024e-002 6.42e-003 3.34e-003 4.000 3.128919e-003 -2.587447e-002 5.02e-003 4.12e-005 ...... 7.000 -5.159904e-004 1.197169e-003 4.28e-004 8.94e-005 7.500 5.446362e-005 7.894289e-004 2.73e-004 7.89e-005 8.000 2.488899e-004 4.108081e-004 1.32e-004 1.28e-004 8.500 2.485198e-004 1.524551e-004 3.64e-005 1.12e-004 9.000 1.764843e-004 1.315848e-005 1.32e-005 7.47e-005 9.500 9.888436e-005 -4.197206e-005 2.99e-005 3.83e-005 10.000 4.168455e-005 -5.014193e-005 2.83e-005 1.27e-005

Soluzione con movimento nel piano XY n=200;t0=0;tmax=10; A=[-1 1; -1 -1]; b=strvcat('0','0'); y0=[-1 1]; [T,Y]=Eulsis(t0,tmax,n,y0,A,b); plot(0,0,'or',y0(1),y0(2),'*g') % (0,0) punto % di stazionarietà hold on for i=1:n plot(Y(i,1),Y(i,2),'ob') pause(0.25) title('Soluzione nel piano delle fasi') end

Grafico nel piano XY

Confronto risultati con n1=100 e n2=200 clear all t0=0;tmax=10;y0=[-1 1];A=[-1 1; -1 -1]; b=strvcat('0','0'); n1=100; [T1,Y1]=Eulsis(t0,tmax,n1,y0,A,b); n2=200; [T2,Y2]=Eulsis(t0,tmax,n2,y0,A,b); t=T1; % calcolo degli errori Xv=exp(-t).*(sin(t)-cos(t)); Yv=exp(-t).*(sin(t)+cos(t)); ErrX1= abs(Y1(:,1)-Xv);ErrY1= abs(Y1(:,2)-Yv); % I vettori da inserire in tab devono essere della stessa lunghezza e ErrX2,ErrY2 vanno calcolati negli stessi nodi di ErrX1, ErrY1!!! ErrX2= abs(Y2(1:2:end,1)-Xv);ErrY2= abs(Y2(1:2:end,2)-Yv); tab=[T1,ErrX1,ErrX2,ErrY1,ErrY2]; % costruzione della tabella s='---------------------------------------------------'; disp(s) fprintf(' T ErrX1 ErrX2 ErrY1 ErrY2 \n'); fprintf('%6.3f %10.2e %10.2e %10.2e %10.2e\n',tab(1:10:end,:)')

Confronto dei risultati --------------------------------------------------- T ErrX1 ErrX2 ErrY1 ErrY2 0.000 0.00e+000 0.00e+000 0.00e+000 0.00e+000 1.000 4.75e-002 2.46e-002 1.11e-002 5.55e-003 2.000 1.36e-002 6.75e-003 3.33e-002 1.73e-002 3.000 1.06e-002 5.80e-003 1.68e-002 8.42e-003 4.000 9.74e-003 5.02e-003 5.17e-004 4.12e-005 5.000 2.79e-003 1.28e-003 3.51e-003 1.92e-003 6.000 5.50e-004 3.86e-004 1.90e-003 9.42e-004 7.000 7.99e-004 4.28e-004 2.79e-004 8.94e-005 8.000 2.90e-004 1.32e-004 2.05e-004 1.28e-004 9.000 2.80e-007 1.32e-005 1.46e-004 7.47e-005 10.000 4.85e-005 2.83e-005 3.47e-005 1.27e-005

d: metodo di Runge-Kutta 4 n=input('n = '); % numero sottointervalli t0=0;tmax=10; y0=[-1 1]; % x,y sono in y(1), y(2) f=strvcat('-y(1)+y(2)','-y(1)-y(2)'); [T,Y]=RungeKutta4(t0,tmax,n,y0,f); X=Y(:,1); Y=Y(:,2); str1='Runge-Kutta'; Stampa dei risultati disp(['Risultati del metodo di ',str1]); t=T; Xv=exp(-t).*(sin(t)-cos(t)); Yv=exp(-t).*(sin(t)+cos(t)); tabella

Tabella Metodo RK4: n1 = 100 -------------------------------------------------------------- T X Y ErrX ErrY 0.000 -1.000000e+000 1.000000e+000 0.00e+000 0.00e+000 1.000 1.107954e-001 5.083239e-001 1.62e-006 2.12e-006 2.000 1.793787e-001 6.673883e-002 6.65e-007 1.85e-006 3.000 5.631372e-002 -4.226311e-002 1.05e-006 2.42e-007 4.000 -1.889800e-003 -2.583285e-002 3.79e-007 3.71e-007 5.000 -8.372432e-003 -4.549641e-003 4.95e-008 2.39e-007 6.000 -3.072525e-003 1.687461e-003 1.01e-007 3.86e-008 7.000 -8.833836e-005 1.286537e-003 3.73e-008 2.74e-008 8.000 3.807013e-004 2.830635e-004 1.21e-009 1.94e-008 9.000 1.632948e-004 -6.158686e-005 7.03e-009 3.92e-009 10.000 1.339237e-005 -6.279076e-005 2.90e-009 1.55e-009

% Grafico soluzione vera ed approssimata plot(T,Xv,T,X);grid xlabel('Tempo (s)') title(’Metodo di Runge-Kutta - n=100') legend('Xvera','Xapp')

Errore per la x(t): Metodo RK4

Esercizio 7 Si consideri un satellite in orbita ellittica attorno ad un pianeta di massa M. Supponiamo che il pianeta sia posto nell’origine del riferimento cartesiano bidimensionale e il problema sia normalizzato in modo che GM=1, con G costante di gravitazione universale. Il moto del satellite è allora regolato dalle equazioni: Sia T il periodo di rivoluzione del satellite. 1 - Si stabilisca se il problema ammette soluzione unica. 2 - Per la terza legge di Keplero risulta dove a è il semiasse maggiore dell’orbita.

Quesiti 2a, 2b 1- Si costruisca un file MATLAB: Cognome_studente_matricola.m che, una volta avviato: a) faccia visualizzare una schermata con i dati personali ed una breve presentazione del problema; b) risolva il problema con il metodo Runge-Kutta4 nel caso In questo caso l’orbita è un’ellisse di centro (-1,0) e semiasse maggiore a = 2.

Quesiti 2c, 2d, 3 c) faccia visualizzare una tabella riassuntiva, che riporti ogni 10 nodi: Intestazione: tempo soluzione derivata_soluzione; con i seguenti formati di stampa: 3 cifre decimali e formato virgola fissa per i valori dei nodi; 8 cifre decimali e virgola fissa per la soluzione e la derivata ; d) mediante il comando subplot, con 2 finestre grafiche, si ritrovino per via grafica (corredata di label e titolo) le affermazioni del punto b) e si tracci l’andamento della soluzione in funzione del tempo. 3 - Si commentino i risultati.

Metodo RK4 t0=0;tmax=2*pi*sqrt(2^3); f1='y(2)';f2='-y(1)/(y(1)^2+y(3)^2)^(3/2)'; f3='y(4)';f4='-y(3)/(y(1)^2+y(3)^2)^(3/2)'; f=strvcat(f1,f2,f3,f4); y0=[1 0 0 sqrt(6)/2]; n=100; [T,Y]=RungeKutta4(t0,tmax,n,y0,f); X=Y(:,1); X1=Y(:,2); YV=Y(:,3);YV1=Y(:,4); str1='Runge-Kutta'; disp(['Risultati del metodo di ',str1]); tab=[T X YV X1 YV1]; tab_10=tab(1:10:end,:); s='------------------------------------------------------------------' disp(s) fprintf(' tempo soluzione derivata_soluzione \n') fprintf(' %7.3f %12.8f %12.8f %12.8f %12.8f \n',tab_10') subplot(2,1,1),plot(T,X,T,YV),grid,title('soluzioni x(t) e y(t)') xlabel('t'),ylabel('x,y') subplot(2,1,2),plot(X,YV),grid,title('orbita') xlabel('x'),ylabel('y')

Risultati ------------------------------------------------- tempo soluzione derivata_soluzione 0.000 1.00000000 0.00000000 0.00000000 1.22474487 1.777 - 0.03265426 1.51593990 -0.81632406 0.39064849 3.554 - 1.35404660 1.70460966 -0.63935333 -0.09962284 5.331 - 2.28448065 1.32746219 -0.41023654 -0.29773434 7.109 - 2.82363255 0.71084577 -0.19934779 -0.38356134 8.886 - 2.99985645 -0.00027980 0.00006125 -0.40826680 10.663 - 2.82341431 -0.71137187 0.19947120 -0.38352275 12.440 - 2.28404148 -1.32787730 0.41036158 -0.29764433 14.217 - 1.35338881 -1.70479154 0.63947005 -0.09943831 15.994 - 0.03186270 -1.51561630 0.81630315 0.39107078 17.772 1.00000057 0.00109146 -0.00092295 1.22473755

Grafici