a
5
lezione - laboratorio
Corso di Laurea ING. MECCANICA
a.a 2004-2005
Esercizio 1
Data l’equazione:


f  x   x  4 cos  x   4 x sin  x   0,
2
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.
Punto a: proprietà di f ( x )
•
•
f  x C

 
è 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.
Grafico di f (x) in [-10,10]
x=linspace(-10,10);
%100 punti
y=(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]), grid
hold on
fplot('0*x',[-10,10],’r’)
In 0,10 si ottengono 4 soluzioni :
 1  0,2  2  2,4  3  4,6  4  8,10
Punto b: valutazione di f (x) in [0,2]
fplot(‘(x^2-4)*cos(x)+4*x*sin(x)’,[0,2])
hold on
fplot(‘0*x’,[0,2],’r’), grid
hold off
Si può restringere l’intervallo di
lavoro intorno al valore 0.8 ad
[0.76, 0.85];
esempio
Si consideri ora il problema,
posto nella forma consistente:
 4  x2 
x  g  x   atan 

 4x 
Come è stata ottenuta la forma
consistente?
Dall’equazione:
x
2

 4 cos  x   4 x sin  x   0,
Dividendo entrambi i membri per cos  x  , e
Portando le altre quantità a secondo membro,
si ottiene:
2
sin  x 
cos  x 
 tan  x 
x


4
4x
,
Da cui, applicando la funzione inversa di tan ad
Entrambi i membri, si ottiene la x = g(x) data.
Metodo del punto fisso: convergenza
Hp: g  C
1
 I  , I = I    [a,b], ed inoltre:
1. g:I  I  g ( I )  I
2.
 L  0,1 : g( x )  L  1 x  I
Th:
a. !   I : g ( )  
b. La successione  xk 1  g  xk  
converge a  per  x0  I .
Punto b: verifica delle ipotesi:Hp.1
 4  x2 
1
1  [0.76,0.85]; x  g( x )  atan 

g

C
[0.76, 0.85],

 4x 
4
g ( x )   2
 0 x   0.76, 0.85 ,
x 4

g( x ) è funzione decrescente in [0.76,0.85],
g(0.76)=0.844502307, g(0.85)=0.767055032

Hp.1:
g  0.76, 0.85   0.76, 0.85 
Per potere dire
ciò è fondamentale
la proprietà di
monotonia!!!
Punto b: verifica Hp.2
d g'
4
g ( x )   2
 0 x ,
<0
dx
x 4

g ' è funzione decrescente in [0.76,0.85],
quindi ha il max in x = 0.76.
Hp. 2: g  x   g (0.76)  0.873820343  1
Sono quindi soddisfatte le Hp. del Teorema
di convergenza. La convergenza è alternata.
Stima della costante asintotica
g(0.85)  0.847009000  g ( 1 )  0.873820343
C  g( 1 )

Il metodo è lento! Si prevedono molte iterate!
Per la convergenza alternata, il criterio di
arresto sull’incremento delle iterate
xk  xk 1  toll
dà informazioni sull’errore e quindi è
valido.
Stima di:
Risulta:
xk   1 
g  1 
1  g  1 
g  1 
1  g  1 
x k 1  x k
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
Punto b: istruzioni punto fisso
x0=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
Radice calcolata
Ordine stimato
Fattore di riduzione
:
:
:
:
30
8.0574762944530720e-001
1.0002306954253075
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
1
0.767055031913984
2
0.838344708482176
3
0.776947841631129
4
0.829734759889720
5
0.784282285048637
6
0.823369936788959
7
0.789718599049830
8
0.818662530354475
... ... ......
29
0.804685482453066
30
0.805747629445307
0.000e+000
8.294e-002
7.129e-002
6.140e-002
5.279e-002
4.545e-002
3.909e-002
3.365e-002
2.894e-002
3.913e-001
3.268e-001
2.886e-001
2.429e-001
2.130e-001
1.803e-001
1.574e-001
1.338e-001
1.163e-001
1.234e-003
1.062e-003
4.936e-003
4.249e-003
xvect ci mostra la conv. alternata del metodo
Stima del numero
di
iterazioni
k
xk   1 
g  1 
1  g   1 


x0  x1  toll
 1  g  1  toll 
1

 k  ln 

 ln g  1 
x0  x1




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
Radice calcolata
Ordine stimato
Fattore di riduzione
:
:
:
:
169
8.0525634837580429e-001
1.0001387160064317
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
Radice calcolata
Ordine stimato
Fattore di riduzione
:
36
: 8.0525634837700633e-001
: 0.9999388520125837
: 0.4992064724546705
Punto c: tabella riassuntiva
metodo bisezione
iter=1:it;
fprintf('%2d
%22.15f
%15.3e %15.3e\n',[iter;xvect';xdiff';fx'])
1
0.805000000000000
2
0.827500000000000
3
0.816250000000000
4
0.810625000000000
5
0.807812500000000
6
0.806406250000000
7
0.805703125000000
8
0.805351562500000
... ... ......
30
0.805256348354742
... ... ......
35
0.805256348378316
36
0.805256348377006
2.250e-002
1.125e-002
5.625e-003
2.812e-003
1.406e-003
7.031e-004
3.516e-004
1.758e-004
2.217e-003
1.935e-001
9.535e-002
4.650e-002
2.212e-002
9.948e-003
3.864e-003
8.235e-004
4.191e-011
1.858e-010
1.310e-012
6.548e-013
1.810e-011
6.773e-012
Metodo di Newton
a

x2 x1
x0=b

f x k  
 x k 1  x k 

f  x k  

Grafico di f ( x ) in 0.76,0.85
fplot(‘(x^2-4)* cos(x)+4*x*sin(x)’,
[0.76,0.85]),grid
title(‘Andamento di f’)
Teorema 1: convergenza locale
del metodo di Newton
Hp: f  C [a , b] , f (a ) f (b)  0,
f ( x )  0 ,
2
f ( x )  0 oppure f ( x )  0 x   a , b 
Th:  I     a,b  : x0  I  
risulta: lim xk    0 .
k 
Teorema 2: convergenza globale
del metodo di Newton
Hp: f  C [a , b] , f (a ) f (b)  0,
f ( x )  0 ,
f ( x )  0 oppure f ( x )  0 x  [a, b],
2
f (a )
 ba e
f (a )
f (b)
 ba
f (b)
Th: x0  a, b risulta: lim xk    0 .
k 
Verifica delle ipotesi di convergenza
f(0.76)=-0.3864 < 0
f(0.85)= 0.3913 > 0
df=6*x.*cos(x)...
-(x.^2-8).*sin(x);
f   0  f crescente
  1  0.76,0.85
Proprietà di f ” in 0.76,0.85
ddf=-8*x.*sin(x)-(x.^2-14).*cos(x);
f   0  f convessa
sono verificate le ipotesi per la convergenza locale!
Verifica ulteriori ipotesi per avere
la convergenza globale
b  a  0.09
f a
 0.0459  0.09
f  a
f  b
 0.0443  0.09
f   b
Sono verificate tutte le ipotesi del Teorema 2
 x0   a , b , lim xk    0 .
k 
Punto b: istruzioni Newton
x0
estremo di Fourier:
f  x 0  f   x 0   0
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
Radice calcolata
Ordine stimato
Fattore di riduzione
:
4
: 0.8052563483762233
: 1.99949...
: 0.2649...
Punto c: tabella riassuntiva
metodo di Newton
iter=0:it;
tab=[iter;xvect';xdiff';fx'];
fprintf('%2d %22.15f %15.3e %15.3e\n',tab)
it
0
1
2
3
4
soluzione
0.850000000000000
0.805706691316114
0.805256402305875
0.805256348376224
0.805256348376223
xdiff
0.000e+000
4.429e-002
4.503e-004
5.393e-008
7.772e-016
e k 1  C e k
fx
3.913e-001
3.895e-003
4.664e-007
7.105e-015
4.441e-016
2
xvect ci mostra la convergenza monotona del metodo
Scarica

File