Date post: | 01-May-2015 |
Category: |
Documents |
Upload: | giuliano-sassi |
View: | 212 times |
Download: | 0 times |
5a lezione - laboratorio
a.a 2004-2005
Corso di Laurea ING. MECCANICA
Esercizio 1
2 4 cos 4 sin 0,f x x x x x a) si analizzino in [-10 10], le proprietà di f ( x ) atte a determinare le soluzioni dell’equazione
data; b) si enunci, per ogni metodo, almeno un
teorema di convergenza e si calcoli la prima radice positiva, utilizzando i metodi di: punto fisso, bisezione e Newton;
c) si riporti, per ciascun metodo, una tabella riassuntiva dei risultati.
Data l’equazione:
Punto a: proprietà di f ( x )
• è funzione pari (simmetrica rispetto all’asse y), infatti f ( x ) = f ( - x )
Si cercano le radici solo in [0, 10], le altre si ottengono per simmetria.
f x C •
Grafico di f (x) in [-10,10]
x=linspace(-10,10);%100 puntiy=(x.^2-4).*cos(x)+4*...x.*sin(x);plot(x,y,[-10 10],...[0 0],'r')grid%fplot(‘(x^2-4)*cos(x)+4*...x*sin(x)’,[-10,10]), gridhold onfplot('0*x',[-10,10],’r’)
10,86,44,22,0
:soluzioni 4 ottengono si 10,0 In
4321
Punto b: valutazione di f (x) in [0,2]fplot(‘(x^2-4)*cos(x)+4*x*sin(x)’,[0,2])hold onfplot(‘0*x’,[0,2],’r’), gridhold off
Si può restringere l’intervallo di lavoro intorno al valore 0.8 ad esempio
Si consideri ora il problema, posto nella forma consistente:
24
atan4
xx g x
x
[0.76,0.85];
Come è stata ottenuta la forma consistente?
2 4 cos 4 sin 0,x x x x
Dall’equazione:
Dividendo entrambi i membri per e Portando le altre quantità a secondo membro,si ottiene:
cos ,x
2 4sin
tan ,cos 4
xxx
x x
Da cui, applicando la funzione inversa di tan ad Entrambi i membri, si ottiene la x = g(x) data.
Metodo del punto fisso: convergenza
I Hp: , I = [a,b], ed inoltre:1. : ( )g I I g I I
0,1 : ( ) 1 L g x L x I
Th:
! : ( )I g
2.
a.
b. 1k kx g x La successione converge a
1g C I
0per .x I
Punto b: verifica delle ipotesi:Hp.12
14( ) atan [0.76,0.85],
4
xx g x g C
x
2
4( ) 0 0.76,0.85 ,
4g x x
x
g(0.76)=0.844502307, g(0.85)=0.767055032
g( x ) è funzione decrescente in [0.76,0.85],
0.76,0.85 0.76,0.85g
Hp.1:
Per potere dire ciò è fondamentale la proprietà dimonotonia!!!
1 [0.76,0.85];
Punto b: verifica Hp.2
2
'4( ) 0 , < 0
4
d gg x x
dxx
è funzione decrescente in [0.76,0.85], quindi ha il max in x = 0.76.
(0.76) 0.873820343 1 g x g
Sono quindi soddisfatte le Hp. del Teorema di convergenza. La convergenza è alternata.
'g
Hp. 2:
Stima della costante asintotica1
1
(0.85) 0.847009000 ( ) 0.873820343
( )
g g
C g
Per la convergenza alternata, il criterio di arresto sull’incremento delle iterate
dà informazioni sull’errore e quindi è valido.
Il metodo è lento! Si prevedono molte iterate!
1k kx x toll
x=[0.76 0.85]; % vettore di valutazione
dg=4./(4+x.^2); % vettore derivata prima
%% il massimo del modulo è nella prima %%componente
fattore=abs(dg(1))/(1-abs(dg(1)))
fattore=6.9252 % il criterio sull’increme. % dell’iterata sarebbe buono anche in caso % di convergenza monotona
Stima di:
1
11
g
g
1
1 1
11k k k
gx x x
g
Risulta:
Punto b: istruzioni punto fissox0=0.85;nmax=30;toll=1e-12;g='atan((4-x.^2)./(4*x))';fun='(x.^2-4).*cos(x)+4*x.*sin(x)';[xvect,xdiff,fx,it,p,c]=Punto_fisso(x0,nmax,toll,fun,g);
Superato il numero massimo di iterazioni Numero di Iterazioni : 30 Radice calcolata : 8.0574762944530720e-001 Ordine stimato : 1.0002306954253075 Fattore di riduzione : 0.8618208303146728
Punto c: tabella riassuntiva punto fisso
iter=0:it;fprintf('%2d %22.15f %15.3e %15.3e\n',[iter;xvect';xdiff';fx'])
0 0.850000000000000 0.000e+000 3.913e-001 1 0.767055031913984 8.294e-002 3.268e-001 2 0.838344708482176 7.129e-002 2.886e-001 3 0.776947841631129 6.140e-002 2.429e-001 4 0.829734759889720 5.279e-002 2.130e-001 5 0.784282285048637 4.545e-002 1.803e-001 6 0.823369936788959 3.909e-002 1.574e-001 7 0.789718599049830 3.365e-002 1.338e-001 8 0.818662530354475 2.894e-002 1.163e-001 ... ... ...... 29 0.804685482453066 1.234e-003 4.936e-00330 0.805747629445307 1.062e-003 4.249e-003
xvect ci mostra la conv. alternata del metodo
Stima del numero di iterazioni 1
1 0 1
11
k
k
gx x x toll
g
1
0 1 1
1 1ln
ln
g tollk
x x g
x=0.76;toll=1.e-12;dg=-4./(x.^2+4);err1=abs(xvect(1)-xvect(2));k=log(toll*(1-abs(dg))/abs(err1))/log(abs(dg))k = 201.7452
Risultati con nmax = k stimato
x0=0.85;nmax=201;toll=1e-12;g='atan((4-x.^2)./(4*x))';fun='(x.^2-4).*cos(x)+4*x.*sin(x)';[xvect,xdiff,fx,it,p,c]=Punto_fisso(x0,nmax,toll,fun,g); Numero di Iterazioni : 169 Radice calcolata : 8.0525634837580429e-001 Ordine stimato : 1.0001387160064317 Fattore di riduzione : 0.8638470881065841
Punto b: istruzioni bisezione
a=0.76;b=0.85;nmax=50;toll=1e-12;fun='(x.^2-4).*cos(x)+4*x.*sin(x)';[xvect,xdiff,fx,it,p,c]=bisezione(a,b,nmax,toll,fun);
Numero di Iterazioni : 36 Radice calcolata : 8.0525634837700633e-001 Ordine stimato : 0.9999388520125837 Fattore di riduzione : 0.4992064724546705
Punto c: tabella riassuntivametodo bisezione
iter=1:it;fprintf('%2d %22.15f %15.3e %15.3e\n',[iter;xvect';xdiff';fx'])
1 0.805000000000000 2.250e-002 2.217e-003 2 0.827500000000000 1.125e-002 1.935e-001 3 0.816250000000000 5.625e-003 9.535e-002 4 0.810625000000000 2.812e-003 4.650e-002 5 0.807812500000000 1.406e-003 2.212e-002 6 0.806406250000000 7.031e-004 9.948e-003 7 0.805703125000000 3.516e-004 3.864e-003 8 0.805351562500000 1.758e-004 8.235e-004 ... ... ...... 30 0.805256348354742 4.191e-011 1.858e-010 ... ... ...... 35 0.805256348378316 1.310e-012 1.810e-01136 0.805256348377006 6.548e-013 6.773e-012
x0=b
a
Metodo di Newton
x1x2
k
kkk xf
xfxx 1
Grafico di f ( x ) infplot(‘(x^2-4)* cos(x)+4*x*sin(x)’,[0.76,0.85]),gridtitle(‘Andamento di f’)
0.76,0.85
Teorema 1: convergenza locale del metodo di Newton
2: [ , ] , ( ) ( ) 0,
( ) 0 ,
( ) 0 oppure ( ) 0 ,
Hp f C a b f a f b
f x
f x f x x a b
0 : :
risulta: lim 0 .kk
Th I a,b x I
x
Teorema 2: convergenza globale del metodo di Newton
2: [ , ] , ( ) ( ) 0,
( ) 0 ,
( ) 0 oppure ( ) 0 [ , ],
( ) ( ) e
( ) ( )
Hp f C a b f a f b
f x
f x f x x a b
f a f bb a b a
f a f b
0 : , risulta: lim 0 .kkTh x a b x
Verifica delle ipotesi di convergenza
0 f f crescente
f(0.76)=-0.3864 < 0 f(0.85)= 0.3913 > 0
85.0,76.01
df=6*x.*cos(x)... -(x.^2-8).*sin(x);
Proprietà di f ” in ddf=-8*x.*sin(x)-(x.^2-14).*cos(x);
0
sono verificate le ipotesi per la convergenza locale!
f f convessa
0.76,0.85
Verifica ulteriori ipotesi per avere la convergenza globale
0.09
0.0459 0.09
0.0443 0.09
b a
f a
f a
f b
f b
Sono verificate tutte le ipotesi del Teorema 2
0 , , lim 0 .k
kx a b x
Punto b: istruzioni Newton estremo di Fourier: 0 0 0f x f x
x0=0.85;nmax=30;toll=1e-12;fun='(x.^2-4).*cos(x)+4*x.*sin(x)';dfun='6*x.*cos(x)-(x.^2-8).*sin(x)';
[xvect,xdiff,fx,it,p,c]=newton(x0,nmax,toll,fun,dfun);
Numero di Iterazioni : 4 Radice calcolata : 0.8052563483762233 Ordine stimato : 1.99949... Fattore di riduzione : 0.2649...
0x
Punto c: tabella riassuntivametodo di Newton
iter=0:it;tab=[iter;xvect';xdiff';fx'];fprintf('%2d %22.15f %15.3e %15.3e\n',tab) it soluzione xdiff fx 0 0.850000000000000 0.000e+000 3.913e-001 1 0.805706691316114 4.429e-002 3.895e-003 2 0.805256402305875 4.503e-004 4.664e-007 3 0.805256348376224 5.393e-008 7.105e-015 4 0.805256348376223 7.772e-016 4.441e-016
xvect ci mostra la convergenza monotona del metodo
21 kk eCe