La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

7a lezione - laboratorio

Presentazioni simili


Presentazione sul tema: "7a lezione - laboratorio"— Transcript della presentazione:

1 7a lezione - laboratorio
Corso di Laurea ING. MECCANICA a.a

2 g: accelerazione di gravità
Esercizio 1: Problema del Pendolo Si utilizzi il metodo di Runge Kutta 4 per calcolare la soluzione del problema del pendolo: g: accelerazione di gravità Problema di Cauchy del 2° ordine nell’incognita

3 Problema equivalente del 1° ordine
Sostituzioni Problema equivalente Risolvendo (*) in si ottengono: x (t) e quindi  (t), valore dell’angolo istante per istante, e , velocità.

4 Dati del problema e metodo di soluzione
Si assume: Si analizzano i risultati che si ottengono applicando il metodo di Runge Kutta 4.

5 Istruzioni: Runge Kutta 4
t0=0;tmax=10; n=100;y0=[0 0.5]; f1='y(2)';f2=' *sin(y(1))'; f=strvcat(f1,f2); [T,Y]=Rungekutta4(t0,tmax,n,y0,f); x=Y(:,1);y=Y(:,2); plot(T,x) axis([0 10 min(x) max(x)]) title('Valori istantanei dell''angolo-RK4') xlabel('Tempo (s)') ylabel('Angolo (rad)') tabella

6

7 File “tabella.m” clc a=[T,x,y];
% Il file permette di scrivere una tabella in cui si riportano i valori % in uscita da un problema differenziale di Cauchy di tipo vettoriale. % Se si vuole riportare anche l'errore, vanno aggiunte altre colonne clc a=[T,x,y]; s=' '; disp(s) fprintf('tempo\t\t\t angolo\t\t\t\t velocità\n') n=length(T); for i=1:10:n fprintf('%6.3f %16.6e %16.6e \n',a(i,1:3)) end

8 Risultati del Metodo RK4
tempo angolo velocità e e-001 e e-001 e e-001 e e-001 e e-001 e e-001 e e-001 e e-001 e e-001 e e-001 e e-001

9 Movimento del punto P Il punto P ha coordinate:
x y P Il punto P ha coordinate: Per costruire la rappresentazione del punto P in movimento, determiniamo le coordinate di P, cioè: (sin ( x ( i )), - cos ( x ( i ))), i = 0,1,…,n . N.B. l’asse y è orientato verso il basso, cioè in modo contrario della normale rappresentazione.

10 Metodo di Runge Kutta 4: simulazione
……………………… y0=[0 3]; [T,Y]=Rungekutta4(t0,tmax,n,y0,f); theta=Y(:,1);n=length(T); plot(0,-1,'or'); for i=1:n x(i)=sin(theta(i)); y(i)=-cos(theta(i)); plot(x(i),y(i),'ob',[0,x(i)],[0,y(i)],'r'); axis([ ]) pause(.25) end title('Oscillazioni del pendolo – RK4') xlabel('Ascissa del punto P') ylabel('Ordinata del punto P')

11

12 Esercizio 2: Moto del Battello
Si determini la traiettoria ed il tempo di attraversamento di un fiume largo 2 km e 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.

13 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

14 Modello del problema Velocità assoluta battello:

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

16 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([ ]) 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

17 L’estremo finale viene calcolato per tentativi.

18

19 Risultati con tmax=0.65 T X Y 0.000 2.000000e+000 1.000000e-001
e e-001 e e-001 e e-001 e e-001 e e-002 e e-002 e e-002 e e-004

20 Esercizio 3: 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.

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

22 Istruzioni: Metodo Eulero esplicito e grafici di P( t ), Q( t )
t0=0;tmax=3; y0=[ ]; % P,Q sono in y(1), y(2) f=strvcat('2*y(1) *y(1)*y(2)',... '-10*y(2) *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')

23 Grafici: Metodo di Eulero Esplicito

24 Istruzioni per grafico nel piano P Q
t0=0;tmax=3; y0=[ ]; % P,Q sono in y(1), y(2) f=strvcat('2*y(1) *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))])

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

26 Istruzioni del Metodo Heun Grafici di P( t ), Q( t )
t0=0;tmax=3; y0=[ ]; f=strvcat('2*y(1) *y(1)*y(2)',... '-10*y(2) *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')

27 Grafici prede, predatori Metodo di Heun

28 Soluzione nel piano PQ: simulazione movimento
t0=0;tmax=3;y0=[ ]; f=strvcat('2*y(1) *y(1)*y(2)','-10*y(2) *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')

29 Simulazione: metodo di Heun

30 Esercizio 4: 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.

31 Esercizio 4: 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.

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

33 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.

34 b: metodo di Eulero Implicito
n=input('n = '); % numero sottointervalli t0=0;tmax=10; coeff=[-1 1 0; ]; x0=-1;y0=1; [T,X,Y]=Eulsis(t0,tmax,n,x0,y0,coeff); 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

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

36 Tabella Eulero Implicito: n1 = 100
T X Y ErrX ErrY e e e e+000 e e e e-002 e e e e-002 e e e e-002 e e e e-004 e e e e-003 e e e e-003 e e e e-004 e e e e-004 e e e e-004 e e e e-005

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

38 Errore per la x(t): Eulero Implicito

39 Tabella Eulero Implicito: n2 = 200
T X Y ErrX ErrY e e e e+000 e e e e-003 e e e e-003 e e e e-002 e e e e-002 e e e e-002 e e e e-003 e e e e-003 e e e e-005 ...... e e e e-005 e e e e-005 e e e e-004 e e e e-004 e e e e-005 e e e e-005 e e e e-005

40 Costruzione tabella riassuntiva
n1=100; % numero sottointervalli t0=0;tmax=10;coeff=[-1 1 0; ]; x0=-1;y0=1; [T1,X1,Y1]=Eulsis(t0,tmax,n1,x0,y0,coeff); t=T1; Xv=exp(-t).*(sin(t)-cos(t)); Yv=exp(-t).*(sin(t)+cos(t)); ErrX1= abs(X1-Xv);ErrY1= abs(Y1-Yv); n2=200; % numero sottointervalli [T2,X2,Y2]=Eulsis(t0,tmax,n2,x0,y0,coeff); t=T2; ErrX2= abs(X2-Xv);ErrY2= abs(Y2-Yv); a=[T1,ErrX1,ErrX2(1:2:end),ErrY1,ErrY2(1:2:end)]; fprintf(' T ErrX ErrX ErrY ErrY2\n'); fprintf('%6.3f %10.2e %10.2e %10.2e %10.2e \n',a(1:10:end,:)')

41 Tabella riassuntiva dei risultati
T ErrX ErrX2 ErrY ErrY2 e e e e+000 e e e e-003 e e e e-002 e e e e-003 e e e e-005 e e e e-003 e e e e-004 e e e e-005 e e e e-004 e e e e-005 e e e e-005

42 MODIFICHE ai files EULSIS e TRAPEZI
.. … %file TRAPEZI.M while t<tmax c1_old=eval(coeff(1,:)); c2_old=eval(coeff(2,:)); t=t+h; if abs(tmax-t)<1.e-13 t=tmax; end c1_new=eval(coeff(1,:)); c2_new=eval(coeff(2,:)); .. …. .. . .. … %file EULSIS.M while t < tmax tn=x1+h*tn1; x1=mat\tn; X=[X;x1(1)]; Y=[Y;x1(2)]; t=t+h; if abs(tmax-t)<1.e-13 t=tmax; end T=[T;t];

43 Soluzione con movimento nel piano XY
tmax=10; coeff=[-1 1 0; ]; x0=-1;y0=1; [T,X,Y]=Eulsis(t0,tmax,n,x0,y0,coeff); plot(0,0,'or',x0,y0,'*g') % (0,0) punto % di stazionarietà hold on for i=1:n plot(X(i),Y(i),'ob') pause(0.25) end

44 Grafico nel piano XY

45 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

46 Tabella Metodo RK4: n1 = 100 T X Y ErrX ErrY e e e e+000 e e e e-006 e e e e-006 e e e e-007 e e e e-007 e e e e-007 e e e e-008 e e e e-008 e e e e-008 e e e e-009 e e e e-009

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

48 Errore per la x(t): Metodo RK4


Scaricare ppt "7a lezione - laboratorio"

Presentazioni simili


Annunci Google