6a lezione - laboratorio

Slides:



Advertisements
Presentazioni simili
7a lezione - laboratorio
Advertisements

Prof.Maurita Fiocchi Corso A-ERICA RICERCA PUNTI ESTREMANTI LIBERI DELLE FUNZIONI REALI A DUE VARIABILI REALI z = f( x ; y )
Laboratorio di Matematica Applicata Parte 3
Equazioni non lineari Gabriella Puppo.
Metodi numerici in Matlab
Sistema di riferimento sulla retta
MATLAB: w=randn(N,1) x=filter(b,a,w) Processi Autoregressivi AR(1)
MATLAB.
MATLAB. Outline Grafica 2D Esercizi Grafica 3D Esercizi.
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
8 a lezione - laboratorio a.a Esercizi Preparziale Corso di Laurea ING. MECCANICA.
2 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
5 a lezione - laboratorio a.a Corso di Laurea ING. MECCANICA.
3 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
1 4 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
Pattern Recognition con Reti Neurali MLP
Esercitazione MATLAB (13/5)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Matematica e statistica Versione didascalica: parte 2 Sito web del corso Docente: Prof. Sergio Invernizzi, Università di.
MATLAB.
Interpolazione polinomiale a tratti
Equazioni differenziali
Metodi iterativi G. Puppo.
Algebra lineare G. Puppo.
Soluzione FEM di problemi parabolici
Metodi FEM per problemi ellittici
Interpolazione polinomiale
Metodi iterativi semplici G. Puppo. Riassunto Problema del fill-in Memorizzazione di matrici sparse Metodo di Jacobi.
FEM -2 Gabriella Puppo.
Metodi FEM per problemi ellittici lineari a tratti Gabriella Puppo.
Metodi iterativi su spazi di Krylov G. Puppo. Riassunto Metodo Ortomin Metodo del gradiente Metodo del gradiente coniugato Metodo GMRES Metodo GMRES con.
Metodi numerici per equazioni lineari iperboliche Gabriella Puppo.
FEM -3 G. Puppo.
Metodi conservativi per equazioni iperboliche
LE EQUAZIONI DI SECONDO GRADO
STIMA DELLO SPETTRO Noi considereremo esempi:
Studente Claudia Puzzo
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.
13 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica.
10a lezione di laboratorio
Fondamenti di Informatica Algoritmi
Rappresentazione dell’informazione
Diagramma degli stati che descrive il comportamento della rete.
Cinetica Chimica Applicata
GRAFICO DI UNA FUNZIONE
La Cooperativa Sociale Le Sagome nasce nel dicembre 2005, grazie ad un progetto finanziato in parte dal fondo sociale europeo, coordinato e guidato da.
INTRODUZIONE A MATLAB LEZIONE 4 Sara Poltronieri slide3.4 matlabintro
I NUMERI IMMAGINARI X2 + 1 = 0 X2 = -1
Metodi matematici per economia e finanza. Prof. F. Gozzi a.a. 2009/10
Funzioni e disequazioni. Proviamo con le calcolatrici grafiche.
Avevo una scatola di colori brillanti, decisi e vivi:avevo una scatola di colori, alcuni caldi, altri molto freddi. Avevo una scatola di colori brillanti,
Milano, 17 Dicembre 2013 Informatica B Informatica B Matlab Laboratorio del 14/01/2014 Responsabili di laboratorio: Gianluca Durelli:
Stabilità per E.D.O. (I): STABILITÀ LINEARIZZATA
Una rete sequenziale asincrona è dotata di due ingressi X1, X2 e di un’uscita Z. I segnali X2 e X1 non cambiano mai di valore contemporaneamente. Il segnale.
Metodi matematici per economia e finanza. Prof. F. Gozzi
Scopo del Cento Qualità d’Ateneo Il Centro per la Qualità della ricerca scientifica dell’UNO è costituito al fine di promuovere la cultura della Gestione.
Lezione 3: Esempi di sistemi LTI tempo-continui
Process synchronization
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Analisi di Immagini e Dati Biologici Introduzione al linguaggio di MATLAB/OCTAVE Parte 2 16 L5.
ANNI POLIZZA 1 IMPORTO PREMIO UNICO INTERESSE NETTO ANNUO (%) TOTALE INTERESSI (€) POLIZZA 2 IMPORTO PREMIO ANNUO (INDICIZZATO) POLIZZA 3 IMPORTO PREMIO.
F U N Z I O N I Definizioni Tipi Esponenziale Logaritmica
1 Equazioni non lineari Data una funzione consideriamo il problema di determinare i valori x tali che Tali valori sono solitamente chiamati zeri o radici.
Risoluzione di equazioni non lineari:
Metodi di ricerca approssimata dello zero di una funzione F(z) = 0.
Il 23 dicembre 1899 nasce a Perugia Aldo Capitini, esponente italiano del movimento pacifista e della nonviolenza.
4^D Liceo Scientifico G. Novello A. S. 2010/2011 PRESENTAZIONE FOTOGRAFICA.
Transcript della presentazione:

6a lezione - laboratorio Corso di Laurea ING. MECCANICA a.a 2004-2005

La scatola dei colori Avevo una scatola di colori Ogni colore splendeva di gioia Caldi e delicati e vivi. Non avevo il rosso per le ferite e per il sangue, Non avevo il nero per l’orfano, Non avevo il bianco per il viso dei morti, Non avevo il giallo per le sabbie infuocate, Avevo l’arancione per la gioia e per la vita, Avevo il verde per germogli e fioriture, Avevo il blu per limpidi cieli azzurri, Avevo il rosa per i sogni e per il riposo. Mi sedetti e dipinsi La PACE Tali Shurek

Esercizio 1 Data l’equazione: Si verifica facilmente che x = 0 è soluzione. b) Senza preoccuparsi delle ipotesi di convergenza, si approssimi tale soluzione, applicando il metodo di Newton e quello di bisezione per 15 iterazioni. c) Fare le dovute considerazioni.

Punto b: metodo di Newton x0=-1; nmax=15; toll=1e-12; fun='sin(x)-0.5*sin(2*x)'; dfun='cos(x)-cos(2*x)'; [xvect,xdiff,fx,it,p,c]=newton(x0,nmax,toll,fun ,dfun); Superato il numero massimo di iterazioni Numero di Iterazioni : 15 Radice calcolata : -1.9309205276636407e-003 Ordine stimato : 0.9999897626825431 Fattore di riduzione : 0.6666198373211456

Tabella riassuntiva - Newton iter=0:it; fprintf('%2d %23.15e %15.3e %15.3e\n',[iter' xvect xdiff fx]') 0 -1.000000000000000e+000 0.000e+000 3.868e-001 1 -5.955642027988763e-001 4.044e-001 9.658e-002 2 -3.843266909954277e-001 2.112e-001 2.735e-002 3 -2.529596248184762e-001 1.314e-001 7.965e-003 4 -1.677278487209687e-001 8.523e-002 2.343e-003 5 -1.115548118641202e-001 5.617e-002 6.920e-004 6 -7.429254153014103e-002 3.726e-002 2.047e-004 7 -4.950555324952729e-002 2.479e-002 6.063e-005 8 -3.299695812958521e-002 1.651e-002 1.796e-005 9 -2.199597566746803e-002 1.100e-002 5.320e-006 10 -1.466339248533952e-002 7.333e-003 1.576e-006 11 -9.775419823703882e-003 4.888e-003 4.671e-007 12 -6.516894652077655e-003 3.259e-003 1.384e-007 13 -4.344581058363196e-003 2.172e-003 4.100e-008 14 -2.896382816341328e-003 1.448e-003 1.215e-008 15 -1.930920527663641e-003 9.655e-004 3.600e-009 >> xvect ci mostra la lenta convergenza.

Punto b: metodo di bisezione a=-1;b=1; nmax=15; toll=1e-12; fun='sin(x)-0.5*sin(2*x)'; [xvect,xdiff,fx,it,p,c]=bisezione(a,b,nmax,toll ,fun); Superato il numero massimo di iterazioni Numero di Iterazioni : 15 Radice calcolata : -6.1035156250000000e-005 Ordine stimato : 1.0000000000000000 Fattore di riduzione : 0.5000000000000000

Tabella riassuntiva - bisezione iter=1:it; fprintf('%2d %23.15e %15.3e %15.3e\n',[iter' xvect xdiff fx]') 1 0.000000000000000e+000 5.000e-001 0.000e+000 2 -5.000000000000000e-001 2.500e-001 5.869e-002 3 -2.500000000000000e-001 1.250e-001 7.691e-003 4 -1.250000000000000e-001 6.250e-002 9.728e-004 5 -6.250000000000000e-002 3.125e-002 1.220e-004 6 -3.125000000000000e-002 1.563e-002 1.526e-005 7 -1.562500000000000e-002 7.813e-003 1.907e-006 8 -7.812500000000000e-003 3.906e-003 2.384e-007 9 -3.906250000000000e-003 1.953e-003 2.980e-008 10 -1.953125000000000e-003 9.766e-004 3.725e-009 11 -9.765625000000000e-004 4.883e-004 4.657e-010 12 -4.882812500000000e-004 2.441e-004 5.821e-011 13 -2.441406250000000e-004 1.221e-004 7.276e-012 14 -1.220703125000000e-004 6.104e-005 9.095e-013 15 -6.103515625000000e-005 3.052e-005 1.137e-013 >>

Confronto tra i due metodi Newton Iter xvect xdiff fx .... 15 -1.930920527663641e-003 9.655e-004 3.600e-009 Bisezione Iter xvect xdiff fx .... 15 -6.103515625000000e-005 3.052e-005 1.137e-013 Il valore ottenuto con la bisezione è più vicino alla soluzione vera x = 0!!!

Motivo di tale comportamento? Newton Numero di Iterazioni : 15 Radice calcolata : -1.9309205276636407e-003 Ordine stimato : 0.9999897626825431 Fattore di riduzione : 0.6666198373211456 Bisezione Numero di Iterazioni : 15 Radice calcolata : -6.1035156250000000e-005 Ordine stimato : 1.0000000000000000 Fattore di riduzione : 0.5000000000000000

x = 0 è radice multipla con molteplicità La radice è multipla? x = 0 è radice multipla con molteplicità m = 3.

Grafico di f ( x ) Anche il grafico mostra che la radice x=0 è multipla fplot('sin(x)-0.5*sin(2*x)’,[-1,1]) grid title('Andamento di f(x)= sin(x)- 0.5*sin(2*x)')

Modifica metodo di Newton: m noto x0=-1; nmax=15; toll=1e-12; fun='sin(x)-0.5*sin(2*x)'; dfun='cos(x)-cos(2*x)'; mol=3; [xvect,xdiff,fx,it,p,c]=newton_m(x0,nmax,toll, fun,dfun,mol); Arresto per azzeramento di dfun Iter xvect xdiff fx .... 3 7.266362938868759e-010 1.634e-003 0.000e+000

Modifica del problema: L’applicazione del metodo di Newton al problema implica: fun='(sin(x)-0.5*sin(2*x))./(cos(x)-cos(2*x))'; dfun='1-((sin(x)-0.5*sin(2*x)).*(-sin(x)+2*… sin(2*x)))./(cos(x)-cos(2*x)).^2';

Metodo di Newton (*): risultati [xvect,xdiff,fx,it,p,c]=newton(x0,nmax,toll,fun,dfun); Warning: Divide by zero. > In C:\analisi_numerica\prog_matlab_new\eq_non_lin\NEWTON.M at line 70 > In C:\analisi_numerica\prog_matlab_new\eq_non_lin\NEWTON.M at line 62 Numero di Iterazioni : 5 Radice calcolata : NaN Iter xvect xdiff fx 0 -1.000000000000000e+000 0.000e+000 4.044e-001 1 -3.108031246559614e-001 6.892e-001 1.053e-001 2 -9.943189700371891e-003 3.009e-001 3.314e-003 3 -3.276824228314046e-007 9.943e-003 1.092e-007 4 -1.029850733179902e-010 3.276e-007 NaN 5 NaN NaN NaN

Semplificazione della F ( x ) Poiché:

Grafico di F(x) fplot('sin(x)/(1+2*cos(x))’,[-1,1]) grid title(‘F(x)=sin(x)/(1+2*cos(x))’)

Grafico di F’(x) fplot('(cos(x)+2)/(1+2*cos(x))^2’,[-1,1]) grid title(‘DF(x)=(cos(x)+2)/(1+2*cos(x))^2’)

Grafico di F’’(x) La derivata seconda non ha segno costante per la convergenza del metodo di Newton occorre prendere vicino alla soluzione!! fplot('(7+2*cos(x)) *sin(x)/(1+2*cos(x))^3',[-1,1]) grid title('F''''(x)= (7+2*cos(x)) *sin(x)/(1+2*cos(x))^3)')

Risultati del problema modificato metodo Newton (*) x0=0.7; fun='sin(x)./(1+2*cos(x))'; dfun='(cos(x)+2)./(1+2*cos(x)).^2'; [xvect,xdiff,fx,it,p,c]=newton(x0,nmax,toll,fun,dfun); Numero di Iterazioni : 5 Radice calcolata : 0.0000000000000000e+000 Ordine stimato : 3.0020776453233839 Fattore di riduzione : 0.3387128554185560 x0=-0.8; Ordine stimato : 3.0052937675224145 Fattore di riduzione : 0.3450700538122051

Utilizzo della function ‘fzero’ di Matlab >> alfa=fzero('(x^2-4)*cos(x)+4*x*sin(x)',0.8) alfa = 8.052563483762232e-001 >> options=optimset('Tolx',1e-15); >> x=fzero('sin(x)-0.5*sin(2*x)',-0.1,options) x = 1.050493220693351e-008 Il risultato è meno preciso!!

Esercizio 2: Sistema non lineare Dato il sistema non lineare : a) separare graficamente le soluzioni; b) utilizzare il metodo di punto fisso per approssimare la soluzione situata nel primo quadrante; c) applicare quindi il metodo di Newton per risolvere lo stesso problema. d) Confrontare i risultati ottenuti nei due casi.

Punto a: separazione grafica Circonferenza:C=(0,2),R = 2 Parabola simm.rispetto l’asse x fplot('2-sqrt(4-x^2)', [0,2]),grid hold on fplot('2+sqrt(4-x^2)', [0,2]) fplot('sqrt(x)',[0,4]), hold off %y=0:.01:4; %x2=0:.01:4; %x1=sqrt(-%y.^2+4*y); %y2=sqrt(x2); %plot(x1,y,x2,y2),grid La soluzione D = [1,2] x [1,2]

Grafico di F ( x ) in [1,2] x [1,2] fplot('2-sqrt(4-x^2)', [1,2]),grid hold on fplot('2+sqrt(4-x^2)', [1,2]) fplot('sqrt(x)',[1,2]) axis([1 2 1 2]) hold off

Punto b: metodo di punto fisso Convergenza del metodo di punto fisso

Verifica delle ipotesi: Hp.1, Hp.2 Hp.1 Le funzioni g1 crescente g2 è anche crescente

Verifica delle ipotesi: Hp. 3 Il metodo di punto fisso converge!!

Istruzioni metodo punto fisso x0=[1 1]; nmax=30; toll=1.e-6; fun=strvcat('x(1)^2+x(2)^2-4*x(2)', '-x(1)+x(2)^2'); % x,y sono in x(1),x(2) g=strvcat('sqrt(4*x(2)-x(2)^2)','sqrt(x(1))'); [xvect,xdiff,fx,it]=Punto_fissoxs(x0,nmax,toll, fun,g); .... while (it<nmax) & (norm(res_x,inf)>=toll) xap=x; for k=1:n x_new(k)=eval(g(k,:)); % x(k)=x_new(k); % da aggiungere per avere la % soluzione con metodo in serie end x=xap;

Risultati e tabella: metodo in parallelo Numero di iterazioni : 15 Radice calcolata: 1.9010802796691053e+000 1.3787965146159946e+000 iter=0:it; tab=[iter' xvect xdiff fx]; fprintf('%2d %19.15f %19.15f %13.3e %13.3e\n', tab') it soluzione xdiff fx 0 1.000000000000000 1.000000000000000 0.000e+000 2.000e+000 1 1.732050807568877 1.000000000000000 7.321e-001 7.321e-001 2 1.732050807568877 1.316074012952492 3.161e-001 5.322e-001 .... .... .... .... .... 14 1.901079828717214 1.378796514615995 1.380e-006 1.715e-006 15 1.901080279669105 1.378796514615995 4.510e-007 4.510e-007

Risultati e tabella: metodo in serie Numero di iterazioni : 8 % sono di meno! Radice calcolata: 1.9010802796691053e+000 1.3787966781469649e+000 it soluzione xdiff fx 0 1.000000000000000 1.000000000000000 0.000e+000 2.000e+000 1 1.732050807568877 1.316074012952492 7.321e-001 5.322e-001 2 1.879426839289333 1.370921893941932 1.474e-001 7.202e-002 3 1.898489066726062 1.377856693102030 1.906e-002 8.677e-003 4 1.900772923229405 1.378685215424248 2.284e-003 1.030e-003 5 1.901043907559104 1.378783488282009 2.710e-004 1.221e-004 6 1.901076023090326 1.378795134561450 3.212e-005 1.447e-005 7 1.901079828717214 1.378796514615995 3.806e-006 1.715e-006 8 1.901080279669105 1.378796678146965 4.510e-007 2.032e-007

Punto c: metodo di Newton Indichiamo: Hp. La soluzione del sistema:

Istruzioni metodo di Newton x0=[1 1]; nmax=30; toll=1.e-6; fun=strvcat('x(1)^2+x(2)^2-4*x(2)', '-x(1)+x(2)^2'); Jac=strvcat('2*x(1)','2*x(2)-4','-1','2*x(2)'); % Jacobiana in forma di vettore di stringhe [xvect,xdiff,fx,it]=newtonxs(x0,nmax,toll,fun, Jac); Numero di iterazioni : 6 % Sono in numero < 8!! Radice calcolata: 1.9010803402881398e+000 1.3787967001295518e+000

Tabella riassuntiva del metodo di Newton iter=0:it; tab=[iter' xvect xdiff fx]; fprintf('%2d %19.15f %19.15f %13.3e %13.3e\n’, tab') it soluzione xdiff fx 0 1.000000000000000 1.000000000000000 0.000e+000 2.000e+000 1 3.000000000000000 2.000000000000000 2.000e+000 5.000e+000 2 2.166666666666667 1.541666666666667 8.333e-001 9.045e-001 3 1.927083333333333 1.395833333333333 2.396e-001 7.867e-002 4 1.901399523614772 1.379015003483898 2.568e-002 9.425e-004 5 1.901080391293387 1.378796735902042 3.191e-004 1.495e-007 6 1.901080340288140 1.378796700129552 5.101e-008 2.665e-015