Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoAlda Paolini Modificato 11 anni fa
1
8 a lezione - laboratorio a.a 2004-2005 Esercizi Preparziale Corso di Laurea ING. MECCANICA
2
Esercizio 1: Quesiti 1,2 Dato il seguente problema differenziale: 1 -Si verifichi se il problema è ben posto; 2 -dato il metodo numerico si riconosca il metodo e se ne stabilisca lordine motivando la risposta.
3
Esercizio 1: Quesito 3 3 -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; faccia visualizzare una schermata con i dati personali ed una breve presentazione del problema; permetta di dare in input il punto iniziale ed il valore della soluzione in tale punto; permetta di dare in input il punto iniziale ed il valore della soluzione in tale punto; determini la soluzione utilizzando il metodo di Heun con passi h1=1/100, h2=1/200;determini la soluzione utilizzando il metodo di Heun con passi h1=1/100, h2=1/200; faccia visualizzare una tabella in cui compaia lintestazione : faccia visualizzare una tabella in cui compaia lintestazione : x y1 y2 x y1 y2 con x vettore dei nodi, y1 soluzione nel primo caso e y2 soluzione nel secondo caso, riporti ogni 10, i valori corrispondenti nei seguenti formati: riporti ogni 10, i valori corrispondenti nei seguenti formati: 2 cifre decimali e formato virgola fissa per i punti di valutazione ; 8 cifre decimali e formato virgola fissa per i valori y1 e y2.
4
Esercizio 1: Quesiti 4, 5 4 -Mediante il comando subplot, si riportino in una stessa figura 2 finestre grafiche orizzontali, nella prima finestra compaia il grafico della soluzione y1, nella seconda il grafico di y2. 5 – Si commentino i risultati. Se si fosse utilizzato il metodo del punto 2 i risultati sarebbero stati migliori? Motivare la risposta.
5
Istruzioni MATLAB: quesiti 3, 4 clear all disp(' ') disp('Cognome e nome studente: XXXX_XXX') disp('Numero di matricola: XXXX') disp('Corso di Laurea: XXXX ') disp(' ') disp(' Questo programma consente di calcolare e visualizzare ') disp(' la soluzione di un problema di Cauchy utilizzando') disp(' il metodo di heun per due passi di discretizzazione.' ) disp(' ') x0=input('x0 = ');y0=input('y0 = '); xmax=1; % x0=-1; y0=0;% dati da inserire f='t.^2*cos(y).^2+y*sin(t).^2'; % calcolo della soluzione con n=n1 h1=0.01;n1=round((xmax-x0)/h1); [T1,Y_H1]=Heun(x0,xmax,n1,y0,f);
6
Seguito Istruzioni MATLAB % calcolo della soluzione con n=n2 h2=0.005; n2=round((xmax-x0)/h2); [T2,Y_H2]=Heun(x0,xmax,n2,y0,f); tab=[T1 Y_H1 Y_H2(1:2:end)]; disp('-------------------------------------------') disp(' t soluzione1 soluzione2 ') disp('-------------------------------------------') fprintf('%6.2f %14.8f %14.8f \n',tab(1:10:end,:)') disp(' ') subplot(1,2,1);plot(T1,Y_H1); title(['Soluzione con n=' num2str(n1)]);xlabel('x');ylabel('Soluzione');grid subplot(1,2,2);plot(T2,Y_H2); title(['Soluzione con n=' num2str(n2)]);xlabel('x');ylabel('Soluzione');grid
7
Risultati file Preparziale_1 Cognome e nome studente: XXXX_XXX Numero di matricola: XXXX Corso di Laurea: XXXX Questo programma consente di calcolare e visualizzare la soluzione di un problema di Cauchy utilizzando il metodo di heun per due passi di discretizzazione. x0 = -1 y0 = 0
8
-------------------------------------------------------------------------- t soluzione1 soluzione2 --------------------------------------------------------------------------- 0.00000000 -0.900.093161320.09316100 -0.800.171683020.17168187 -0.700.235162800.23516055 -0.600.284221170.28421766 -0.500.320136540.32013169 -0.400.344612690.34460643 -0.300.359643680.36742076 -0.200.367429990.36742076 -0.100.370315130.37030436 0.000.370730080.37071777 0.100.371145700.37113121 0.200.374032930.37401754 0.300.381846730.38182982 0.400.397007390.39698898 0.500.421885840.42186602 0.600.458751110.45873001 0.700.509645120.50962302 0.800.576148620.57612598 0.900.659038620.65901610 1.000.757924210.75790261
9
Esercizio 2: Quesiti 1, 2 Data la funzione: 1)Si determini il sistema atto a calcolare gli estremi relativi; 2) Mediante Matlab si esegua lindividuazione grafica delle soluzioni sapendo che esse cadono negli intervalli:
10
Esercizio 2: Quesiti 3, 4 3 -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; contenga le istruzioni relative al punto 2; permetta di dare in input il valore di nmax=10 e di toll= ; calcoli le soluzioni con il metodo di Newton; faccia visualizzare una tabella in cui compaia lintestazione : iterazioni approssimazioni valori_funzione in approssimazioni vanno riportati i valori in xvect ed in valori_ funzione i valori in fx; tali valori siano dati nei seguenti formati: 2 cifre intere per le iterazioni ; 10 decimali e formato virgola fissa per i valori in xvect e fx. 4 -Si commentino i risultati mettendo in evidenza se essi rispettano la teoria.
11
Rappresentazione Superficie y=-4:.1:1; x=-2:.1:2; [X,Y]=meshgrid(x,y); Z=3*(1-X.*Y).^2.*exp(-X.^2-(Y+1).^2); title(rappresentazione funzione') surf(X,Y,Z) xlabel('x');ylabel('y');
12
Superficie
13
Soluzione quesito 1: determinazione del sistema Il sistema si determina annullando il gradiente di f(x,y). Si calcolano le derivate parziali si azzerano e si elimina da entrambe le equazioni il fattore ottenendo: Esplicitando, dopo avere considerato che 1-xy=0 dà infinite soluzioni, le due equazioni rispetto a y, si ottiene:
14
Individuazione grafica delle soluzioni figure(1) fplot('x/(x^2-1)',[-1.5,-1.2]) hold on fplot('(1-x+sqrt(1+2*x+5*x^2))/(2*x)',[-1.5,-1.2]),grid hold off figure(2) fplot('x/(x^2-1)',[1.5,2]) hold on fplot('(1-x+sqrt(1+2*x+5*x^2))/(2*x)',[1.5,2]),grid hold off figure(3) fplot('x/(x^2-1)',[0.2,0.8]) hold on fplot('(1-x-sqrt(1+2*x+5*x^2))/(2*x)',[0.2,0.8]),grid hold off Ricordiamo che i punti che azzerrano il gradiente non sono Necessariamente estremi della funzione!!!
15
Verifica delle condizioni minime di applicabilità del metodo di Newton Si deduce: il cui determinante deve essere non nullo nei punti dei tre intervalli. La verifica si può fare mediante MATLAB tenendo conto dei risultati ottenuti nellindividuazione grafica
16
Verifica non annullamento di det(J ( x,y )) % verifica della condizione di det(Jac)diverso da 0 clear all clc figure(1) y=-2:.01:-1.5;x=-1.5:.01:-1.2; [X,Y]=meshgrid(x,y); Z=-X-4*X.*Y+X.^2.*Y+X.^2.*Y.^2+Y+Y.^2+X.^2; surf(X,Y,Z) figure(2) y=1.1:.01:2;x=1.5:.01:2; [X,Y]=meshgrid(x,y); Z=-X-4*X.*Y+X.^2.*Y+X.^2.*Y.^2+Y+Y.^2+X.^2; surf(X,Y,Z) figure(3) y=-1.5:.01:-0.8;x=0.2:.01:0.8; [X,Y]=meshgrid(x,y); Z=-X-4*X.*Y+X.^2.*Y+X.^2.*Y.^2+Y+Y.^2+X.^2; surf(X,Y,Z)
17
Soluzione quesito 3: Newton e tabella nmax=input('nmax='); toll=input('toll='); fun=strvcat('x(2)+x(1).*(1-x(1).*x(2))','x(1)+(1- x(1).*x(2)).*(1+x(2))'); J11='1-2*x(1).*x(2)';J12='1-x(1).^2'; J21='1-x(2)-x(2).^2';J22='1-x(1)-2*x(1).*x(2)'; Jac=strvcat(J11,J12,J21,J22); [xvect,xdiff,fx,it]=newtonxs(x0,nmax,toll,fun,Jac); iter=0:it; tab=[iter' xvect xdiff fx]; fprintf('iter soluzione xdiff fx \n') fprintf('%2d %19.12f %19.12f %13.3e %13.3e\n',tab') Le istruzioni seguenti vanno ripetute 3 volte inserendo rispettivamente i punti di innesco: [-1.3,-1.8], [1.5,1.2], [0.5,-1.5]
18
Soluzioni -1.2986712038098545e+000 -1.8915986833871814e+000 in 5 iterazioni 1.5413291810500551e+000 1.1203998408900298e+000 in 5 iterazioni 6.9747049787326465e-001 -1.3581754455841648e+000 in 5 iterazioni
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.