1 / 16

METODI NUMERICI PER LA RICERCA DEGLI ZERI DI UNA FUNZIONE

METODI NUMERICI PER LA RICERCA DEGLI ZERI DI UNA FUNZIONE. Prof. Stefano Gori Liceo Scientifico Salutati – Montecatini Terme. TEOREMA DI ESISTENZA. Data una funzione f continua nell’intervallo chiuso e limitato [a;b],

jaden
Download Presentation

METODI NUMERICI PER LA RICERCA DEGLI ZERI DI UNA FUNZIONE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. METODI NUMERICI PER LA RICERCA DEGLI ZERI DI UNA FUNZIONE Prof. Stefano Gori Liceo Scientifico Salutati – Montecatini Terme

  2. TEOREMA DI ESISTENZA Data una funzione f continua nell’intervallo chiuso e limitato [a;b], se negli estremi dell’intervallo la funzione assume valori di segno opposto allora esiste almeno un punto interno ad [a;b] in cui f(x)=0.

  3. PRIMO TEOREMA DI UNICITÀ È data f(x) continua in [a;b]e derivabile in (a;b). Per f(x) sussistano le ipotesi del teorema di esistenza. Se f’(x)0 in (a;b), allora lo zero è unico.

  4. SECONDO TEOREMA DI UNICITÀ È data f(x) continua in [a;b] e derivabile due volte in (a;b). Per f(x) sussistano le ipotesi del teorema di esistenza. Se f’’(x) non cambia segno in (a;b), allora lo zero è unico.

  5. METODI • Bisezione • Secanti (o corde) • Tangenti (o metodo di Newton)

  6. Problema: ricerca degli zeri di y= sen x – log x In [1;3] sono verificate le ipotesi del secondo teorema di unicità.

  7. BISEZIONEProblema: ricerca degli zeri di y= sen x – log x Posto: x1=a=1f(x1)=0,84>0 x2=b=3 f(x2)=-0,96<0 Si considera il punto medio x3=2  f(x3)=0,22>0 Siccome f(x3) è positiva come f (x1), x3 sostituisce x1 nella definizione dell’intervallo. Al posto di [1;3], a questo passo, consideriamo pertanto l’intervallo [2;3].

  8. BISEZIONEProblema: ricerca degli zeri di y= sen x – log x Abbiamo quindi: x2=b=3 f(x2)=-0,96<0 x3=2  f(x3)=0,22>0 Si considera il punto medio x4=2,5  f(x4)=-0,318<0 Siccome f(x4) è negativa come f (x2), x4 sostituisce x2 nella definizione dell’intervallo. Al posto di [2;3], a questo passo, consideriamo pertanto l’intervallo [2;2,5].

  9. BISEZIONEProblema: ricerca degli zeri di y= sen x – log x Sapevamo all’inizio che lo zero era compreso in [1;3]. Dopo due passi, sappiamo che lo zero è compreso in [2;2,5]. A ogni passo, l’ampiezza dell’intervallo si dimezza (bisezione). Problema: quando ci si ferma? Il processo si può arrestare quando l’ampiezza dell’intervallo è minore di un valore prefissato (ad esempio, un milionesimo). Per le funzioni a forte pendenza, fissato  arbitrario e positivo, ci si può fermare quando |f(x)|< .

  10. ESEMPIO CON MATLAB x(1)=1; a=x(1); x(2)=3; b=x(2); y(1)=sin(x(1))-log(x(1)); fa=y(1); y(2)=sin(x(2))-log(x(2)); fb=y(2); for i=1:1000 x(i+2)=(a+b)/2; y(i+2)=sin(x(i+2))-log(x(i+2)); if y(i+2)*fa>0 a=x(i+2); fa=y(i+2); end if y(i+2)*fa<0 b=x(i+2); fb=y(i+2); end if abs(y(i+2))<1E-04 ind=i; break end end display('ascissa=') a display('ordinata=') y(ind+2) display('numero di iterazioni=') ind Output ascissa= a = 2.2190 ordinata= ans = -9.5557e-006 numero di iterazioni= ind = 14

  11. SECANTIProblema: ricerca degli zeri di y= sen x – log x Posto: a=1f(a) b=3 f(b) Si costruisce la secante per (x1,f(x1)) e (b, f(b)) e se ne determina il punto x1 di intersezione con l’asse x. x1 sostituisce a nella definizione dell’intervallo.

  12. SECANTI • Si procede poi calcolando xn+1, che sostituisce xn nella definizione dell’intervallo: • Questo procedimento è corretto se: • f(a)>f(b) e la concavità è verso il basso, come nell’esempio • f(a)<f(b) e la concavità è verso l’alto • Altrimenti, se: • f(a)>f(b) e la concavità è verso l’alto • f(a)<f(b) e la concavità è verso il basso • rimane fisso l’estremo sinistro dell’intervallo ed è il destro ad avvicinarsi allo zero.

  13. ESEMPIO CON MATLAB a=1; b=3; fa=sin(a)-log(a); fb=sin(b)-log(b); x(1)=a-fa*(b-a)/(fb-fa); for i=1:1000 y(i)=sin(x(i))-log(x(i)); x(i+1)=x(i)-y(i)*(b-x(i))/(fb-y(i)); if abs(y(i))<1E-04 ind=i; break end end display('ascissa=') x(i) display('ordinata=') y(i) display('numero di iterazioni=') ind Output ascissa= ans = 2.2191 ordinata= ans = 1.9643e-005 numero di iterazioni= ind = 6

  14. TANGENTIProblema: ricerca degli zeri di y= sen x – log x Posto: x1=a=1f(x1) x2=b=3 f(x2) Si costruisce la tangente per (x2, f(x2)) e se ne determina il punto x3 di intersezione con l’asse x. x3 sostituisce x2 nella definizione dell’intervallo.

  15. TANGENTI • Si procede poi calcolando xn+1, che sostituisce xn nella definizione dell’intervallo, sempre dalla stessa parte destra. • Questo procedimento è corretto se: • f(a)>f(b) e la concavità è verso il basso, come nell’esempio • f(a)<f(b) e la concavità è verso l’alto • Altrimenti, se: • f(a)>f(b) e la concavità è verso l’alto • f(a)<f(b) e la concavità è verso il basso • rimane fisso l’estremo destro dell’intervallo ed è il sinistro ad avvicinarsi allo zero.

  16. ESEMPIO CON MATLABrealizzato da Macchini Matteo e Castiglia Dario, classe 5B A.S. 2007/2008 Liceo Scientifico Salutati – Montecatini T. Output ascissa= ans = 2.2191 ordinata= ans = -1.9146e-006 numero di iterazioni= ind = 4 a=1 b=3 fb=sin(b)-log(b); m(1)=cos(b)-(1/b); x(1)=(m(1)*b-fb)/m(1); for i=1:1000 y(i)=sin(x(i))-log(x(i)); m(i+1)=cos(x(i))-(1/(x(i))); x(i+1)=(m(i)*(x(i))-(y(i)))/(m(i)); if abs(y(i))<1E-04 ind=i; break end end display('ascissa=') x(i) display('ordinata=') y(i) display('numero di iterazioni=') ind

More Related