You are on page 1of 102

Zeros de funcions

N. PARÉS, F. POZO i Y. VIDAL

Grup d’Innovació Matemàtica E-Learning (GIMEL)


Universitat Politècnica de Catalunya (Spain)
http://www.gimel.es

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 1


Motivació

Molts problemes es poden modelitzar matemàticament


mitjançant una equació

f (x) = 0.

Per resoldre aquests problemes, cal trobar els valors de x que


satisfan l’equació anterior. Aquests valors s’anomenen zeros o
arrels de l’equació f (x) = 0.

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 2


Motivació
Objectiu

L’objectiu dels mètodes de zeros de funcions [root-finding


methods] és trobar les solucions de l’equació

f (x) = 0

on x ∈ R i f és una funció de variable real no lineal.

Les solucions de l’equació anterior


s’acostumen a denotar per α.
α

Gràficament, els zeros d’una funció


són els punts d’intersecció de la
gràfica y = f (x) amb l’eix OX.
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 3
Motivació
Per alguns casos senzills, l’equació es pot resoldre
analı́ticament. Per exemple
si f (x) = ax2 + bx + c, llavors les solucions són:

−b ± b2 − 4ac
x= ,
2a
sempre i quan b2 − 4ac ≥ 0.

Malauradament, en la majoria de problemes reals, on f és una


funció més complexa, l’equació f (x) = 0 no es pot resoldre
analı́ticament.

⇒ En aquests casos cal utilitzar una tècnica numèrica, que és


el que estudiarem en aquest tema.
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 4
Motivació
Exemples d’aplicació
Resolució d’una equació senzilla: f (x) = ex − 5 sin(x)
L’equació f (x) = 0 no admet una solució analı́tica.
> f:=x->exp(x)-5*sin(x):
> solve(f(x)=0,x);
RootOf ( Z − ln (5 sin ( Z )))
> plot(f(x),x=0..2,color=blue,thickness=3);

> fsolve(f(x)=0,x,0..1);
0.2632647979
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 5
Motivació


Càlcul d’una arrel quadrada: 62.41

Generalment els processadors només realitzen les operacions


aritmètiques +, −, ×.
Totes les altres operacions es fan a nivell de software.

Per calcular el valor de x = 62.41, es resol l’equació

x2 − 62.41 = 0.

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 6


Motivació
Billar circular:
Considerem una taula de billar circular (perfectament elàstica i
on cal fer un únic rebot).
En quina direcció cal colpejar la primera bola per colpejar el
billar i després tocar la segona bola?
Dades: (xP , yP ), (xQ , yQ )
γ γ
Incògnita: θ
(xp,yp)
L’angle θ que busquem és la solució de (xq,yq)
θ
xP sin θ − yP cos θ
p
(R cos θ − xP )2 + (R sin θ − yP )2
xQ sin θ − yQ cos θ
+p
(R cos θ − xQ )2 + (R sin θ − yQ )2
=0 Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 7
Newton Iteration
Motivació
DRAFT V1.1 © The Authors. License: Creative Commons BY-NC-SA 3.
Braç robotitzat [MIT OpenCourseWare]:
Math, Numerics, & Programming (for Mechanical Engineers)
23.1 Introduction
The demonstration robot arm of Figure 23.1 is represented sche
La necessitat de calcular zeros de funcions apareix
that although the en 23.1
robot of Figure moltes
has three degrees-of-free
“waist”), we will be dealing with only two degrees-of-freedom — “s
aplicacions pràctiques, sobretot en problemes
assignment. de disseny i
optimització.

El problema que es planteja a con-


tinuació és més complicat que el
que es tractarà en aquest curs, però
requereix les mateixes eines.
Objectiu: determinar els angles en-
tre les diferents components del
braç perquè segueixi una determi-
nada trajectòria. Figure 23.1: Demonstration robot arm. (Robot
and photograph courtesy of James Penn.) Figure 23.

Càlcul Numèric i Eq. Diferencials


The- forward
N. Parés, F. Pozo
kinematics i Y. arm
of the robot Vidal
determineZF
the -coord
8
Motivació

(Click to Load Video...)

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 9


Motivació
En aquest cas, el problema que se’ns planteja és: donades les
coordenades X = [X1 , X2 ]T dels punts a dibuixar, determinar
els angles del robot Q = [Q1 , Q2 ]T que permeten seguir la
trajectòria.

Dades: X = [X1 , X2 ]T

Incògnites: Q = [Q1 , Q2 ]T

Sistema d’equacions:

L1 cos(Q1 ) + L2 cos(Q1 + Q2 ) − X1 = 0
L1 sin(Q1 ) + L2 sin(Q1 + Q2 ) − X2 = 0

Figure 23.2: Schematic of robot arm.

termine the coordinatesCàlcul


of theNumèric i Eq. Diferencials
end effector X = - N. Parés, F. Pozo i Y. Vidal ZF - 10
Motivació

En acabar el tema
haurieu de poder
reproduir aquesta
simulació.

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 11


Motivació

Disseny òptim d’un col·lector: l’objectiu és dissenyar un


col·lector solar pla a fi d’obtenir la màxima eficiència
energètica amb el mı́nim cost possible.

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 12


Motivació
Els col·lectors intercepten la radiació solar en una placa
d’absorció per on s’hi fa passar el fluid portador (lı́quid o gas
que s’escalfa per transferència de calor des de la placa
d’absorció).

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 13


Motivació

Objectiu: determinar la distància


òptima ω entre els tubs del
col·lector.

Existeix una distància òptima entre els tubs del col·lector que
s’obté resolent l’equació no lineal


sinh( 16α1 ω 3 ) 4α2 ω + 3
f (ω) = √ − =0
16α1 ω 3 4α2 ω + 1

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 14


Motivació
Determinació de l’angle d’incidència d’un DPA: El DPA (Deep
Penetrating Anchor) és un sistema que permet ancorar
estructures al fons marı́ a grans profunditats.

http : //www.deepseaanchors.com/

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 15


Motivació
Objectiu: calcular l’angle d’incidència θa de la ploma
metàl·lica (DPA) que fa la funció d’àncora.

L’angle d’incidència θa s’obté resolent l’equació no lineal


(1 + µ2 )p0 Dh
f (θa ) = cos θa + µ sin θa − exp(µθa − µθ0 )(cos θ0 + µ sin θ0 ) + =0
Ta

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 16


Motivació
Disseny d’una taula de pı́cnic: l’objectiu és dissenyar una taula
de pı́cnic com la que es veu a la figura

Gerald Recktenwald, Numerical Methods with MATLAB:


Implementations and Applications, Prentice Hall (2000)

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 17


Motivació

Paràmetres de disseny:
◦ w, h i b
Aquestes tres magnituds s’especifiquen a priori per raons
pràctiques i estètiques (la resta es calculen a partir d’aquestes
tres)

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 18


Motivació

Objectiu: calcular θ, l’angle de la pota amb el terra

L’angle θ es determina a partir de les magnituds w, h i b


mitjançant la resolució de l’equació no lineal:

f (θ) = w sin θ − h cos θ − b = 0

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 19


Objectius
Mètodes de zeros de funcions [root-finding methods]
Donada una equació
f (x) = 0
els mètodes numèrics per determinar zeros de funcions ens
proporcionen una aproximació α∗ a la solució exacta del
problema.
En general, no podrem trobar la
solució analı́tica α tal que
α α∗
f (α) = 0,

sinó que trobarem α∗ ≈ α tal


que
f (α∗ ) ≈ 0.
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 20
Objectius

En aquest tema estudiarem tres mètodes diferents per a


determinar zeros de funcions:

mètode de la bisecció

mètode de Newton

mètode de la secant

destacant-ne les principals caracterı́stiques.

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 21


Mètodes iteratius
En general, per resoldre equacions no lineals

f (x) = 0

farem servir algoritmes o mètodes iteratius [iterative methods].

Donada una aproximació inicial x0 de la solució exacta α


[initial guess], es construeix iterativament una successió
d’aproximacions {xk }:

x0 → x1 → x2 → x3 → . . .

que s’espera que convergeixi a α.


El subı́ndex k és el comptador de la iteració: x0 és
l’aproximació inicial, a la primera iteració es calcula x1 , a la
segona iteració es calcula x2 , . . .
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 22
Mètodes iteratius
L’objectiu dels mètodes iteratius és que

lim xk = α.
k→+∞

A la pràctica, el procés s’atura quan el valor xk és una


aproximació suficientment bona de α (valor similar a α).

... x2 x1 x0

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 23


Mètodes iteratius
A l’hora de dissenyar un mètode iteratiu cal decidir:

1) Com es tria l’aproximació inicial x0 ?

2) Com es construeixen els termes de la successió?


És a dir, donada l’aproximació inicial x0 , com calculem
x1 i la resta d’aproximacions?

3) Com es decideix si una aproximació xk és suficientment


bona?
És a dir, quan es para el procés iteratiu?

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 24


Mètodes iteratius
A l’hora de dissenyar un mètode iteratiu cal decidir:

1) Com es tria l’aproximació inicial x0 ?


Depèn de la funció i del mètode
2) Com es construeixen els termes de la successió?
És a dir, donada l’aproximació inicial x0 , com calculem
x1 i la resta d’aproximacions?
Depèn del mètode: bisecció, Newton, secant...
3) Com es decideix si una aproximació xk és suficientment
bona?
És a dir, quan es para el procés iteratiu?
Els criteris que es fan servir per aturar
un mètode iteratiu s’anomenen
criteris de convergència.

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 25


Mètodes iteratius: enfoc gràfic

Què farieu si us demanen determinar les solucions de l’equació

ex − 3x = 0 ?

Si es disposa d’un software adequat, es pot fer una


representació gràfica i apropar-se a la solució mitjançant zoom.

Aquest enfoc és equivalent a anar avaluant la funció i fer una


taula de valors amb els resultats.

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 26


Mètodes iteratius: enfoc gràfic

(Click to Load Video...)

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 27


Mètodes iteratius: enfoc gràfic
Aquest mètode a la pràctica no s’utilitza perquè
1) com que no és un mètode hàbil, és car ja que requereix
avaluar molts cops la funció
2) és poc precı́s
3) no és automàtic, requereix l’intervenció d’una persona

Tot i això, ens pot ajudar a obtenir aproximacions inicials


ràpides de la solució.

A l’hora de dissenyar un mètode per trobar zeros de funcions,


ens interessarà que: 1) sigui barat (poques avaluacions de la
funció), 2) sigui precı́s (convergència ràpida) i 3) proporcioni
un algoritme completament automàtic llevat de la tria de
l’aproximació inicial.
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 28
Mètodes iteratius: classificació
Els mètodes de zeros de funcions es classifiquen en dos tipus
Bracketing methods (mètodes d’encaix)
Open methods (mètodes oberts)

Els mètodes d’encaix ens garantitzen durant tot el procés


iteratiu que la solució exacta està dins d’un interval donat,
mentre que els mètodes anomenats oberts només donen una
aproximació a la solució.

El mètode de la bisecció és un mètode d’encaix. Aquests


mètodes necessiten dues aproximacions inicials que
continguin/encerclin l’arrel i generalment estan basats en el
teorema de Bolzano.

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 29


Mètode de la bisecció
Idea: encerclar la solució en un interval tan petit com es
vulgui utilitzant el teorema de Bolzano

Teorema (Bolzano)
Si f : [a, b] → R és contı́nua a l’interval [a, b] i és tal que
f (a) · f (b) < 0, aleshores existeix almenys un punt c ∈ (a, b)
tal que f (c) = 0.
f(a)· f(b)<0
f(b)

a
c b

f(a)

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 30


Mètode de la bisecció
Del teorema de Bolzano es dedueix un mètode molt senzill per
determinar zeros de funcions contı́nues numèricament.
Donada f : [a, b] → R, contı́nua en un interval [a, b], sent
f (a) · f (b) < 0, aleshores pel teorema de Bolzano sabem que
hi ha un almenys un punt c ∈ (a, b) tal que f (c) = 0.
f(a)· f(b)<0
f(b) Per tant α ∈ (a, b).

El mètode de la bisecció
a c consisteix en:
x1 b 1) dividir l’interval en dos
2) avaluar f (x1 )
3) reduir l’interval a
f(a)
α ∈ (a, x1 ) o α ∈ (x1 , b)
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 31
Mètode de la bisecció: algoritme
Sigui x0 una aproximació inicial al zero de la funció i a un valor
auxiliar tal que f (x0 )f (a) < 0. Llavors α ∈ interval{x0 , a}.
Algoritme:
x0 + a
1) càlcul del punt mig x1 =
2
2) avaluació de f (x1 )
.a
3) si f (x1 )f (a) ≤ 0, α ∈ inter{x1 , a} sino α ∈ inter{x1 , x0 }

a α a α
x1 x0 x1 x0
-
a
no cal fer res actualitzem a = x0
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 32
Mètode de la bisecció: algoritme
⇒ Repetint aquest procediment ens podem acostar a la
solució α tant com volguem

Observem que el mètode de la bisecció s’implementa com un


mètode iteratiu

x0 , x1 , x2 , . . . , xk , xk+1 , . . .

on les aproximacions xk són els punts mitjos dels intervals que


anem obtenint.
Ara bé, en cada pas, per calcular la nova aproximació
necessitem tenir una variable auxiliar a que es va actualitzant:
x0 , x1 , x2 , . . . , xk , xk+1 , . . .
+ + + + +
a(0) , a(1) , a(2) , . . . , a(k) , a(k+1) , . . .
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 33
Mètode de la bisecció: exemple
Exercici Proposat Usant el mètode de la bisecció, trobeu el
zero de la funció f (x) = x ln(x) − 1 amb un decimal correcte.

1.5

0.5

0 0.5 1 1.5 2 2.5 3

x
–0.5

–1

Considereu com a interval inicial [0.5, 2].

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 34


Mètode de la bisecció: exemple
Realitzem els primers passos de la bisecció, prenent x0 = 0.5 i
a = 2:

1a iteració: entra {x0 , a} i surt {x1 , a} x0 = 0.5, a = 2


f (x0 ) = −1.3, f (a) = 0.3
x0 +a
1. calculem x1 = 2
i f (x1 ) x1 = 1.25, f (x1 ) = −0.7
2. Qui és la nova a?
f (x1 )f (a) ≤ 0 −→ no cal actualitzar x1 = 1.25, a = 2

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 35


Mètode de la bisecció: exemple
Realitzem els primers passos de la bisecció, prenent x0 = 0.5 i
a = 2:

2a iteració: entra {x1 , a} i surt {x2 , a} x1 = 1.25, a = 2


f (x1 ) = −0.7, f (a) = 0.3
x1 +a
1. calculem x2 = 2
i f (x2 ) x2 = 1.625, f (x2 ) = −0.2
2. Qui és la nova a?
f (x2 )f (a) ≤ 0 −→ no cal actualitzar x2 = 1.625, a = 2

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 36


Mètode de la bisecció: exemple
Realitzem els primers passos de la bisecció, prenent x0 = 0.5 i
a = 2:

3a iteració: entra {x2 , a} i surt {x3 , a} x2 = 1.625, a = 2


f (x2 ) = −0.2, f (a) = 0.3
x2 +a
1. calculem x3 = 2
i f (x3 ) x3 = 1.8125, f (x3 ) = 0.07
2. Qui és la nova a?
f (x3 )f (a) > 0 −→ a = x2 = 1.625 x3 = 1.8125, a = 1.625

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 37


Mètode de la bisecció: exemple
Si fem tots els passos necessaris per garantir un decimal tenim:
interval{xk , a} xk+1 f (xk+1 ) f (xk ) f (a) f (xk+1 )f (a)

x0 = 0.5 a = 2. x1 = 1.25 −0.7211 −1.3466 0.3863 →X


x1 = 1.25 a = 2. x2 = 1.6250 −0.2110 −0.7211 0.3863 →X
x2 = 1.625 a = 2. x3 = 1.8125 0.0779 −0.2110 0.3863 ⊕→a
x3 = 1.8125 a = 1.625 x4 = 1.71875 −0.0691 0.0779 −0.211 ⊕→a
x4 = 1.71875 a = 1.8125 x5 = 1.765625 0.0038 −0.0691 0.0779 ⊕→a
x5 = 1.765625 a =1.71875

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 38


Mètode de la bisecció: exemple
Si fem tots els passos necessaris per garantir un decimal tenim:
interval{xk , a} xk+1 f (xk+1 ) f (xk ) f (a) f (xk+1 )f (a)

x0 = 0.5 a = 2. x1 = 1.25 −0.7211 −1.3466 0.3863 →X


x1 = 1.25 a = 2. x2 = 1.6250 −0.2110 −0.7211 0.3863 →X
x2 = 1.625 a = 2. x3 = 1.8125 0.0779 −0.2110 0.3863 ⊕→a
x3 = 1.8125 a = 1.625 x4 = 1.71875 −0.0691 0.0779 −0.211 ⊕→a
x4 = 1.71875 a = 1.8125 x5 = 1.765625 0.0038 −0.0691 0.0779 ⊕→a
x5 = 1.765625 a =1.71875

Per tant, si denotem per α el zero de la funció,


α ∈ interval{1.7656, 1.7188}, que amb un decimal, α = 1.7.

És important observar que el valor auxiliar a pot estar a la


dreta o a l’esquerra de xk . L’important és que en totes les
iteracions sempre es compleix que α ∈ interval{xk , a}.

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 39


Mètode de la bisecció: exemple

x0
interval inicial
x0 a
1a iteració
x1 a
2a iteració
x2 a
3a iteració
a x3
4a iteració
x4 a

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 40


Mètode de la bisecció: algoritme
Algoritme del mètode de la bisecció
Inicialització
1. Comptador d’iteracions k = 0
2. Aproximacions inicials x0 , a tals que f (x0 )f (a) < 0
3. Inicialització xk = x0
Iteració k+1
4. Calcular el punt mig de l’interval xk+1 = (xk + a)/2
5. Avaluar la funció en la nova aproximació f (xk+1 )
6. Si xk+1 és una aproximació prou bona −→ Parar
Si no −→ Actualització
Actualització
7. Si f (xk+1 )f (a) > 0 −→ a = xk
8. k = k + 1 −→ xk = xk+1
9. Tornar a 4
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 41
Mètode de la bisecció
Requisits
f contı́nua
aproximacions inicials x0 i a tals que f (x0 )f (a) < 0
Caracterı́stiques
convergència lineal – la longitud dels intervals es va
dividint constantment entre 2
robust – sempre retorna una aproximació encara que
necessiti moltes iteracions per fer-ho
Avantatges / Inconvenients
Avantatges Inconvenients
robustesa lentitud (lineal)
requisit de canvi de signe
(no podem trobar els zeros de x2 )

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 42


Criteris de convergència

Donat un mètode iteratiu, podem determinar una successió

x0 , x1 , x2 , . . . −→ α

però com/quan decidim quan l’aproximació que obtenim ja és


prou bona i podem parar el procés?

Els criteris per decidir quan un mètode iteratiu ha convergit,


és a dir, quan l’aproximació xk que obtenim ja és
suficientment bona, s’anomenen criteris de convergència.

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 43


Criteris de convergència
Criteris de convergència
Definició (convergència): Una successió {xk } convergeix a α si
lim xk = α.
k→+∞

De forma equivalent, definint l’error absolut i relatiu de


l’aproximació xk com
α − xk
Ek = α − xk i rk = per α 6= 0,
α
podem dir que una successió {xk } convergeix a α si
lim Ek = 0 o bé lim rk = 0 per α 6= 0.
k→+∞ k→+∞

Exemple: la successió {xk }k=1...+∞ on xk = 1/k convergeix a 0


ja que lim xk = lim k1 = 0.
k=+∞ k=+∞
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 44
Criteris de convergència
Per acceptar una aproximació xk com a suficientment bona,
voldrı́em que
xk ≈ α i f (xk ) ≈ 0.
Per garantir que xk ≈ α, ens agradaria exigir que l’error relatiu
fos, en valor absolut, inferior a una tolerància preestablerta
tolx :
|rk | < tolx

OBSERVACIÓ: Prenent tolx = 21 · 10−q , la condició |rk | < tolx


implica que xk és una aproximació amb q xifres significatives
correctes.
Evidentment, no és possible que el criteri d’aturada sigui que:
|α − xk |
|rk | = < tolx ,
|α|
ja que per calcular rk és necessari conèixer el zero α.
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 45
Criteris de convergència

A la pràctica, es suposa que


xk+1 − xk
rk ≈ =: r̃k .
xk+1
i s’utilitza com a criteri de convergència

xk+1 − xk
xk+1 < tolx

=⇒ Important: S’ha de calcular xk+1 per decidir si xk és, o


no, una bona aproximació.

r̃k s’anomena error relatiu aproximat

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 46


Criteris de convergència

Per α = 0, no es pot calcular l’error relatiu rk = (α − xk )/α


i per tant no es pot utilitzar el criteri d’aturada
xk+1 −x |rk | < tolx
k
o el criteri d’aturada aproximat xk+1 < tolx .

En aquest cas s’utilitza el criteri alternatiu



xk+1 − xk < tolx · xk+1 + E (1)

on E s’escull ordres de magnitud menor que tolx ,

E = tolx · 10−n , n ≥ 1.

Per exemple, si tolx = 0.5 · 10−3 , E = 0.5 · 10−6 .

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 47


Criteris de convergència
La condició |rk | < tolx (o la condició aproximada |r̃k | < tolx )
no és suficent per garantir que
xk ≈ α i f (xk ) ≈ 0.
És a dir, pot passar que es verifiqui el criteri de convergència,
és a dir, que |r̃k | < tolx , però que f (xk ) no sigui prou petit, i
per tant que xk no sigui una bona aproximació de la solució.

Funció amb un gradient gran


[steep function]

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 48


Criteris de convergència
Per evitar-ho, es pot utilitzar que si f és una funció contı́nua

lim xk = α =⇒ lim f (xk ) = f (α) = 0.


k→+∞ k→+∞

Llavors, es pot utilitzar el criteri de convergència


complementari

f (xk ) < tolf

Observació: Aquest criteri tam-


poc es pot utilitzar sol, ja que
pot
ser que es verifiqui el criteri
f (xk ) < tolf però que xk no
sigui una bona aproximació.

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 49


Criteris de convergència

Per tant, el criteri d’aturada que utilitzarem serà:


. fixar tolx i tolf
. xk serà una aproximació suficientment bona si alhora:

xk+1 − xk
xk+1 < tolx i
f (xk ) < tolf

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 50


Criteris de convergència

És molt important vigilar que no sigui impossible complir


el criteri de convergència.

1. No es pot demanar que tolx i tolf siguin menors que la


precisió de la màquina (a Matlab, ε = 10−16 ).
=⇒ Com a màxim imposarem tolx = tolf = 10−13 .

2. És útil, per evitar bucles infinits, posar un nombre màxim


d’iteracions.

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 51


Mètode de la bisecció: exemple
Exercici Proposat Usant el mètode de la bisecció, trobeu el
zero de la funció f (x) = x ln(x) − 1 utilitzant el criteri de
convergència amb tolx = tolf = 0.1.

1.5

0.5

0 0.5 1 1.5 2 2.5 3

x
–0.5

–1

Considereu com a interval inicial [0.5, 2].


Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 52
Mètode de la bisecció: exemple
En l’exercici anterior hem vist que, si x0 = 0.5 i a = 2, el
mètode de la bisecció ens retorna les aproximacions
iteració 0 1 2 3 4 5
xk 0.5 1.25 1.625 1.8125 1.71875 1.765625
a 2 2 2 1.625 1.8125 1.71875

Per tant, només hem de calcular |r̃k | and |f (xk )| per cada
iteració i mirar si es verifiquen els criteris de convergència.
iteració 0 1 2 3
xk 0.5 1.25 1.625 1.8125
|r̃k | 0.6 0.230769 0.103448 0.054545
|f (xk )| 1.346574 0.721071 0.211050 0.077907

on r̃0 = (1.25 − 0.5)/1.25 = 0.6, r̃1 = (1.625 − 1.25)/1.625 = 0.23,


r̃2 = (1.8125 − 1.625)/1.8125 = 0.10, r̃3 = (1.71875 − 1.8125)/1.71875 = −0.05
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 53
Mètode de la bisecció: algoritme
Algoritme del mètode de la bisecció (criteris de convergència)
Inicialització
1. Comptador d’iteracions k = 0
2. Aproximacions inicials x0 , a tals que f (x0 )f (a) < 0
Iteració k+1 (mentre k+1 < max iter)
3. Calcular el punt mig de l’interval xk+1 = (xk + a)/2
4. Avaluar la funció en la nova aproximació f (xk+1 )
5. Si
xk és una aproximació prou bona, és a dir, si
xk+1 − xk
xk+1 < tolx i
f (xk ) < tolf −→ Parar
acceptem xk
Si no −→ Actualització
Actualització
6. Si f (xk+1 )f (a) > 0 −→ a = xk
7. k = k + 1
8. Tornar a 3
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 54
Convergència

Mètode de la bisecció
Exemple: taula de pı́cnic
Considerem el disseny de la taula de pı́cnic on es vol
determinar l’angle θ tal que
f (θ) = w sin θ − h cos θ − b = 0
amb els paràmetres w = 0.75m, h = 0.7m i b = 0.1m.
Prenent com a aproximacions inicials x0 = 0 i a = 2 s’arriba a
l’aproximació del problema
θ = 0.84855811501620
en 35 iteracions (tolx = tolf = 0.5 · 10−10 ).
L’aproximació té 10 xifres significatives correctes, ja que
|α − 0.84855811501620| 1
|rk | = = 0.4 · 10−10 ≤ · 10−10 .
|α| 2
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 55
Convergència

Mètode de la bisecció
Convergència de l’error absolut
En el mètode de la bisecció, sabem que α ∈ interval{xk , a(k) }.
Per tant, podem acotar l’error absolut en l’iteració k per
|Ek | = |α − xk | ≤ long(inter{xk , a(k) }) = |xk − a(k) |.
Addicionalment, l’error absolut aproximat és

xk + a(k) |xk − a(k) |
|Ẽk | = |xk+1 − xk | =
− xk =
2 2
long(inter{xk , a(k) })
= .
2
Per tant, l’error absolut aproximat en cada iteració es divideix
per dos.
long(inter{xk+1 , a(k+1) }) 1 long(inter{xk , a(k) }) |Ẽk |
|Ẽk+1 | = = =
2 2 2 2
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 56
Convergència

Mètode de la bisecció
Convergència de l’error relatiu
En general l’error relatiu exacte no el podem calcular perquè
no coneixem α, i hem de calcular l’error relatiu aproximat.
Tot i això, en exemples acadèmics, es pot calcular tant
|α − xk | |Ek | |Ẽk | |xk+1 − xk |
|rk | = = com |r̃k | = = .
|α| |α| |xk+1 | |xk+1 |

En aquest cas tenim que l’error relatiu aproximat es divideix


per dos en cada iteració (aproximadament)
|Ẽk+1 | |Ẽk | |Ẽk | |r̃k |
|r̃k+1 | = = ≈ =
|xk+2 | 2|xk+2 | 2|xk+1 | 2
Per tant: |r̃0 | C
|r̃k | ≈ k
= k
2 2
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 57
Convergència

Mètode de la bisecció
iter xk Ek 2Ẽk Ẽk rk r̃k
0 0.00000000 0.84855812 2.00000000 1.00000000 1.00000000 1.00000000
1 1.00000000 -0.15144188 -1.00000000 -0.50000000 -0.17846967 -1.00000000
2 0.50000000 0.34855812 0.50000000 0.25000000 0.41076517 0.33333333
3 0.75000000 0.09855812 0.25000000 0.12500000 0.11614775 0.14285714
4 0.87500000 -0.02644188 -0.12500000 -0.06250000 -0.03116096 -0.07692308
5 0.81250000 0.03605812 0.06250000 0.03125000 0.04249339 0.03703704
6 0.84375000 0.00480812 0.03125000 0.01562500 0.00566622 0.01818182
7 0.85937500 -0.01081688 -0.01562500 -0.00781250 -0.01274737 -0.00917431
8 0.85156250 -0.00300438 -0.00781250 -0.00390625 -0.00354058 -0.00460829
9 0.84765625 0.00090187 0.00390625 0.00195312 0.00106282 0.00229885
10 0.84960938 -0.00105126 -0.00195312 -0.00097656 -0.00123888 -0.00115075
11 0.84863281 -0.00007470 -0.00097656 -0.00048828 -0.00008803 -0.00057571
12 0.84814453 0.00041358 0.00048828 0.00024414 0.00048740 0.00028777
13 0.84838867 0.00016944 0.00024414 0.00012207 0.00019968 0.00014386
14 0.84851074 0.00004737 0.00012207 0.00006104 0.00005583 0.00007193
15 0.84857178 -0.00001366 -0.00006104 -0.00003052 -0.00001610 -0.00003596
16 0.84854126 0.00001686 0.00003052 0.00001526 0.00001986 0.00001798
17 0.84855652 0.00000160 0.00001526 0.00000763 0.00000188 0.00000899
18 0.84856415 -0.00000603 -0.00000763 -0.00000381 -0.00000711 -0.00000450
19 0.84856033 -0.00000222 -0.00000381 -0.00000191 -0.00000261 -0.00000225
20 0.84855843 -0.00000031 -0.00000191 -0.00000095 -0.00000037 -0.00000112

Observacions importants:
1. mètode lineal perquè |Ẽk | = |Ẽk−1 |/2 i |r̃k | ≈ |r̃k−1 |/2
2. cota per l’error absolut exacte |Ek | ≤ 2|Ẽk |
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 58
Convergència

Mètode de la bisecció
Gràfiques de convergència
Les gràfiques de convergència ens mostren com disminueix
l’error a mesura que es realitzen iteracions.
Error relatiu Error relatiu − escala logaritmica
1 0
error exacte error exacte
0.8 error aproximat error aproximat

log10(|rk|)
0.6
|rk|

−5
0.4

0.2
−10
0 10 20 30 0 10 20 30
iteracions iteracions

L’avantatge de treballar en escala logarı́tmica, és que ens dóna


directament el nombre de xifres significatives correctes de les
aproximacions.
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 59
Convergència

Mètode de la bisecció
Observació 1
Sabem que l’error del mètode de la bisecció es comporta com
C
|r̃k | ≈ =⇒ log10 (|r̃k |) ≈ log10 (C2−k ) = log10 (C)−k log10 (2).
2k
Error relatiu − escala logaritmica
Si representem les iteracions k 0
versus |r̃k |, obtenim una corba error exacte
error aproximat
de la forma y = 1/2k .

log10(|rk|)
En canvi, si representem k ver- −5

sus log10 (|r̃k |), obtenim una


recta y = a + bk de pendent rectes
−10
b = − log10 (2). 0 10 20 30
iteracions

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 60


Convergència

Mètode de la bisecció
Observació 2
Suposem que tenim una aproximació amb q xifres significatives
correctes, és a dir, que
1
|rk | < · 10−q
2
llavors  
1 Error relatiu − escala logaritmica
log10 (|rk |) < log10 · 10−q
2 0
error exacte
 
1
+ log10 10−q

= log10
2 error aproximat

log10(|rk|)
= 0.3 − q
−5
Per tant, si log10 (|rk |) ≈ −10,
vol dir que tenim una aproxi-
mació amb aproximadament 10 −10
xifres significatives correctes. 0 10 20 30
x.s.c. iteracions
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 61
Mètode de Newton
Mètode de la bisecció

Avantatges Inconvenients
robustesa requisit de canvi de signe
control senzill precisió lentitud (lineal)
(longitud interval) (calen moltes iteracions)

Bisecció versus Newton

Bisecció Newton
tècnica robusta no sempre convergeix

mètode lent mètode ràpid

càlcul senzill càlcul costós


Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 62
Interpretació gràfica

Mètode de Newton
Interpretació gràfica
Idea: aproximar la funció per la recta tangent i imposar que la
següent aproximació sigui el punt de tall de la recta amb
l’eix d’abscisses.
Recta tangent a f (x) que passa
pel punt (xk , f (xk ))

y(x) = f (xk ) + f 0 (xk )(x − xk )

Busquem xk+1 tal que

y(xk+1 ) = 0

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 63


Interpretació gràfica

Mètode de Newton
El mètode de Newton aproxima la funció f (x) per la recta
tangent que passa per (xk , f (xk ))
f (x) ≈ y(x) = f (xk ) + f 0 (xk )(x − xk )
i llavors
f (xk+1 ) = 0 ≈ y(xk+1 ) = 0.

Per tant xk+1 es determina segons


y(xk+1 ) = 0 ⇐⇒ f (xk ) + f 0 (xk )(xk+1 − xk ) = 0
de manera que si f 0 (xk ) 6= 0

f (xk )
xk+1 = xk −
f 0 (xk )

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 64


Deducció analı́tica

Mètode de Newton
Deducció analı́tica
El mètode de Newton també es pot deduir utilitzant una
aproximació mitjançant el polinomi de Taylor de la funció f (x).
Suposem que tenim una aproximació xk i que volem calcular la
següent aproximació xk+1 tal que
f (xk+1 ) = 0

Si f és suficientment regular podem considerar un


desenvolupament de Taylor entorn xk
1
f (x) = f (xk ) + f 0 (xk )(x − xk ) + f 00 (xk )(x − xk )2 + . . .
2
i imposar
1
f (xk+1 ) = f (xk )+f 0 (xk )(xk+1 −xk )+ f 00 (xk )(xk+1 −xk )2 +. . . = 0
2
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 65
Deducció analı́tica

Mètode de Newton
En particular, el mètode de Newton utilitza una aproximació
d’ordre 1 (recta) d’on
1
f (xk+1 ) = f (xk ) + f 0 (xk )(xk+1 − xk )+ f 00 (xk )(xk+1 − xk )2 + . . .
2
0
≈ f (xk ) + f (xk )(xk+1 − xk )
Per tant, imposant que f (xk+1 ) = 0, obtenim de nou

f (xk )
xk+1 = xk −
f 0 (xk )

sempre que f 0 (xk ) 6= 0.

OBSERVACIÓ: si en alguna iteració obtenim f 0 (xk ) ≈ 0


(recta tangent horitzontal), el mètode de Newton pot divergir.

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 66


Mètode de Newton: algoritme
Algoritme del mètode de Newton (criteris de convergència)
Inicialització
1. Comptador d’iteracions k = 0
2. Aproximació inicial x0
Iteració k+1
3. Avaluar la funció en el punt xk , f (xk )
4. Avaluar la derivada en el punt xk , f 0 (xk )
5. Calcular la nova aproximació xk+1 = xk − ff0(x k)
(xk )
6. Si
xk és una aproximació prou bona, és a dir, si
xk+1 − xk
xk+1 < tolx i
f (xk ) < tolf −→ Parar

Si no −→ Actualització
Actualització
7. k = k + 1
8. Tornar a 3
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 67
Mètode de Newton: exemple

Exercici Proposat
Considereu la funció f (x) = x3 − 6x2 + 9x − 6 que té un zero
en el punt α ≈ 4.1958233454456471528.
a) Realitzeu cinc iteracions del mètode de Newton
considerant l’aproximació inicial x0 = 5.
b) Feu el mateix procediment agafant com a aproximacions
inicials x0 = 3, x0 = 3.01, i x0 = 2.
c) Comenteu els resultats obtinguts.

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 68


Mètode de Newton: exemple
Apartat a)
Prenent x0 = 5 obtenim els següents resultats on
f (xk ) |xk+1 − xk | |α − xk |
xk+1 = xk − , |r̃k | = i |rk | =
f 0 (xk ) |xk+1 | |α|
xk xk+1 |r̃k | |rk | x.s.c
14
x0 =5 x1 = 5 − = 4.4166666667 0.1320754717 0.1916612279 0
24
2.8640
x1 =4.4166666667 x2 = 4.4167 − = 4.2194324884 0.0467442432 0.0526340847 0
14.5208
0.27436
x2 =4.2194324884 x3 = 4.2194 − = 4.1961373404 0.0055515695 0.0056268201 1
11.7776
0.0036
x3 =4.1961373404 x4 = 4.1961 − = 4.1958234021 0.0000748216 0.0000748351 3
11.4691
−7
6.5 · 10
x4 =4.1958234021 x5 = 4.1958 − = 4.1958233454 0.0000000135 0.0000000135 7
11.4649
-15
x5 =4.1958233454 — 0.4·10 15

Observem que el mètode de Newton té una convergència molt


ràpida. Cada iteració aproximadament es dobla el nombre de
xifres significatives correctes (x.s.c.).
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 69
Mètode de Newton: exemple
Apartat b) x0 = 3
No es pot aplicar el mètode de Newton perquè f 0 (3) = 0.
x0 = 3.01
iter xk xk+1 |r̃k | |rk | f 0 (xk ) x.s.c
0 3.01000000 102.50749585 0.97063629 0.28261994 0.06030000 0
1 102.50749585 69.01176290 0.48536266 23.43084168 30302.27016857 -2
2 69.01176290 46.68475630 0.47825047 15.44772842 13468.72910109 -2
3 46.68475630 31.80543244 0.46782335 10.12648280 5987.18233747 -2
4 31.80543244 21.89418336 0.45268868 6.58026013 2662.09140801 -2
5 21.89418336 15.29976185 0.43101465 4.21808989 1184.33559492 -1
6 15.29976185 10.92449987 0.40049998 2.64642660 527.65099549 -1
7 10.92449987 8.04227060 0.35838502 1.60366059 235.94009396 -1
8 8.04227060 6.17917053 0.30151297 0.91673241 106.52710187 -1
9 6.17917053 5.03630077 0.22692643 0.47269559 49.39639894 0
10 5.03630077 4.43270323 0.13616917 0.20031287 24.65736712 0
11 4.43270323 4.22267821 0.04973740 0.05645612 14.75413508 0
12 4.22267821 4.19622852 0.00630321 0.00640038 11.82089528 1
13 4.19622852 4.19582344 0.00009654 0.00009657 11.47025912 3
14 4.19582344 4.19582335 0.00000002 0.00000002 11.46492174 7
15 4.19582335 — 0.1·10-14 14

En aquest cas, el mètode de Newton també convergeix, però com que f 0 (3.01) és
petit comencem divergint. Un cop estem a prop de la solució convergim ràpidament
(doblem el nombre de x.s.c. en cada iteració)
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 70
Mètode de Newton: exemple

x0 = 2
iter xk xk+1 |r̃k | |rk |
0 2.0000000000000000 0.6666666666666667 1.9999999999999998 0.5233355088290601
1 0.6666666666666667 1.6825396825396821 0.6037735849056602 0.8411118362763533
2 1.6825396825396821 0.5409515507582181 2.1103334118949673 0.5989965391736539
3 0.5409515507582181 1.3467794340239250 0.5983369384087222 0.8710738021548515
4 1.3467794340239250 -0.0015861274429498 850.0991313530403204 0.6790190331807497
5 -0.0015861274429498 0.6652575197497853 1.0023842307615649 1.0003780253152630
6 0.6652575197497853 1.6776492732238681 0.6034585235617287 0.8414476814254135
7 1.6776492732238681 0.5369739503618236 2.1242656596161416 0.6001620814077239
8 0.5369739503618236 1.3385465630767790 0.5988380492886726 0.8720217925893660
9 1.3385465630767790 -0.0274527535639983 49.7581895913040384 0.6809811918011984
10 -0.0274527535639983 0.6424810646116289 1.0427292804039185 1.0065428764044122
11 0.6424810646116289 1.6031641779006698 0.5992418783627310 0.8468760451249671
12 1.6031641779006698 0.4668979067398606 2.4336503864299770 0.6179142814387496
13 0.4668979067398606 1.2084301632611445 0.6136326939408223 0.8887231734275337
14 1.2084301632611445 -0.6851396170725661 2.7637721322034636 0.7119921255567554
15 -0.6851396170725661 0.1363543292061907 6.0247001401511753 1.1632908634764736

En aquest cas el mètode de Newton no convergeix perquè va


oscil·lant al voltant d’un màxim local de la funció que es troba
en x = 1.
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 71
Mètode de Newton: convergència lenta

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 72


Convergència

Mètode de Newton

Exemple: taula de pı́cnic


Volem determinar l’angle θ tal que w sin θ − h cos θ − b = 0
on w = 0.75m, h = 0.7m i b = 0.1m.
Prenent com a aproximació x0 = 0 i tolx = tolf = 0.5 · 10−10
convergim en només 4 iteracions
iter xk |rk | |r̃k | |f (xk )| x.s.c.
0 0.00000000000000000 1.0000 1.0000 0.80000 -1
1 1.06666666666666665 0.2570 0.26601 0.21856 0
2 0.84254408668476877 0.70874e-02 0.70854e-02 0.61423e-02 1
3 0.84855641735703979 0.20007e-05 0.20007e-05 0.17334e-05 5
4 0.84855811504656709 0.16629e-12 0.16642e-12 0.14413e-12 12
5 0.84855811504670831

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 73


Convergència

Mètode de Newton
Mètode d’ordre p
Direm que un mètode té ordre de convergència p si

|xk − α| ≈ λ|xk−1 − α|p ⇐⇒ |Ek | ≈ λ|Ek−1 |p

on λ s’anomena el Factor Assimptòtic de Convergència (FAC).

Observacions:
Els mètodes amb convergència d’ordre 1 s’anomenen
mètodes amb convergència lineal
Els mètodes amb convergència d’ordre 2 s’anomenen
mètodes amb convergència quadràtica
Perquè un mètode sigui convergent, cal que a l’iterar
l’error es vagi reduı̈nt. Per tant, si p = 1, és a dir, si
tenim un mètode lineal, aquest només serà convergent si
el seu FAC verifica 0 ≤ λ < 1
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 74
Convergència

Mètode de Newton
Recordem que en el mètode de la bisecció tenim que
|Ek−1 |
|Ek | ≈
2
per tant, és un mètode lineal amb FAC λ = 1/2.
Determinació de l’ordre p
|Ek | ≈ λ|Ek−1 |p ⇐⇒ log |Ek | ≈ log(λ) + p log |Ek−1 |
log |Ek | log(λ) log |Ek | log |rk |
⇐⇒ p ≈ − ⇐⇒ p ≈ ≈
log |Ek−1 | log |Ek−1 | log |Ek−1 | log |rk−1 |
| {z }
→0
(si convergeix)
Determinació del FAC λ (per a mètodes lineals)
Un cop sabem que p = 1, calculem el FAC segons
|Ek | |rk |
λ≈ ≈ .
|Ek−1 | |rk−1 |
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 75
Convergència

Mètode de Newton
Convergència
Afegim a la taula del mètode de Newton les aproximacions de
l’ordre de convergència

log |rk | log |r̃k |


pk = , p̃k =
log |rk−1 | log |r̃k−1 |

És important recordar que a mesura que fem més iteracions,


obtenim millors aproximacions de p.
iter xk |rk | |r̃k | pk p̃k
0 0.00000000000000000 1.00000000000000000 1.00000000000000000
1 1.06666666666666665 0.25703431238525465 0.26600694672699254 ∞ ∞
2 0.84254408668476877 0.00708735000620245 0.00708536350593796 3.6432 3.7378
3 0.84855641735703979 0.00000200067577965 0.00000200067561336 2.6512 2.6511
4 0.84855811504656709 0.00000000000016629 0.00000000000016642 2.2424 2.2424

Com es veu, pk → 2, i per tant en aquest cas el mètode de


Newton és un mètode d’ordre p = 2.
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 76
Convergència

Mètode de Newton

Convergència del mètode de Newton


La convergència del mètode de Newton depèn del tipus d’arrel.

arrel simple f (α) = 0 i f 0 (α) 6= 0


−→ mètode quadràtic p = 2

arrel doble f (α) = f 0 (α) = 0 i f 00 (α) 6= 0


−→ mètode lineal amb FAC λ = 1/2

arrel múltiple d’ordre m


f (α) = f 0 (α) = . . . = f m−1) (α) = 0 i f m) (α) 6= 0
−→ mètode lineal amb FAC λ = 1 − 1/m

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 77


Convergència

Mètode de Newton
Gràfiques de convergència

Error relatiu − escala logaritmica


Observem que al ser
0
error exacte un mètode d’ordre
error aproximat
−2 p = 2, el nombre de
xifres significatives es
−4
dobla en cada iteració
log10(|rk|)

−6
(aproximadament).
−8
1
−10 |rk−1 | < · 10−q
2
−12 ↓
0 1 2 3 4 λ −2q
x.s.c. iteracions
|rk | ≈ λ|rk−1 |2 < 10
4

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 78


Mètode de Newton
Requisits
f ha de ser derivable
la derivada ha de ser sempre diferent de zero f 0 (xk ) 6= 0
Caracterı́stiques
convergència quadràtica (per arrels simples)
|xk − α| ≈ λ|xk−1 − α|2
mètode costós: en cada iteració cal avaluar f (xk ) i f 0 (xk )
si l’aproximació inicial x0 és dolenta és possible que el
mètode no convergeixi (cal evitar aproximacions a prop
dels extrems locals)
Avantatges / Inconvenients
Avantatges Inconvenients
rapidesa (quadràtic) cal conèixer f 0
car (avaluació de f (xk ) i f 0 (xk ))
pot divergir (si f 0 (xk ) ≈ 0)
convergència lineal (arrels múltiples)
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 79
Mètode de Newton
Mètode de Newton
Avantatges Inconvenients
rapidesa (quadràtic) cal conèixer f 0
car (avaluació de f (xk ) i f 0 (xk ))
pot divergir (si f 0 (xk ) ≈ 0)
convergència lineal (arrels múltiples)

Bisecció versus Newton versus secant


Bisecció Newton Secant
tècnica robusta pot divergir pot divergir
mètode lent mètode ràpid mètode bastant ràpid
(lineal p = 1, λ = 1/2) (quadràtic p = 2) (superlineal p = 1.6)

càlcul senzill càlcul costós càlcul senzill


f avaluable f 0 avaluable f avaluable
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 80
Interpretació gràfica

Mètode de la secant
Interpretació gràfica
Idea: utilitzar l’esquema del mètode de Newton aproximant la
derivada de la funció pel pendent de la recta secant que
passa per les dues aproximacions anteriors
Recta secant a f (x) que
passa pels punts
(xk−1 , f (xk−1 )) i (xk , f (xk ))
y(x) = f (xk ) + sk (x − xk )
f (xk ) − f (xk−1 )
amb sk =
xk − xk−1
Busquem xk+1 tal que
y(xk+1 ) = 0

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 81


Interpretació gràfica

Mètode de la secant
El mètode de la secant aproxima la funció f (x) per la recta
secant que passa pels punts (xk−1 , f (xk−1 )) i (xk , f (xk ))

f (xk ) − f (xk−1 )
f (x) ≈ y(x) = f (xk ) + sk (x − xk ) sk =
xk − xk−1
i llavors
f (xk+1 ) = 0 ≈ y(xk+1 ) = 0.

Per tant xk+1 es determina segons


y(xk+1 ) = 0 ⇐⇒ f (xk ) + sk (xk+1 − xk ) = 0
de manera que si sk 6= 0
f (xk )
xk+1 = xk −
sk
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 82
Mètode de la secant: algoritme
Algoritme del mètode de la secant (criteris de convergència)
Inicialització
1. Comptador d’iteracions k = 0
2. Aproximacions inicials x0 i x1
Iteració k+1
3. Avaluar la funció en el punt xk , f (xk )
f (xk )−f (xk−1 )
4. Calcular el pendent de la recta secant sk = xk −xk−1
f (xk )
5. Calcular la nova aproximació xk+1 = xk − sk
6. Si
xk és una aproximació prou bona, és a dir, si
xk+1 − xk
xk+1 < tolx i
f (xk ) < tolf −→ Parar

Si no −→ Actualització
Actualització
7. k = k + 1
8. Tornar a 3
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 83
Mètode de la secant: exemple

Exercici Proposat
Considereu la funció f (x) = x3 − 6x2 + 9x − 6. Realitzeu cinc
iteracions del mètode de la secant considerant les
aproximacions inicials (x0 , x1 ) = (2, 3). Feu el mateix
considerant (x0 , x1 ) = (2, 5).

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 84


Mètode de la secant: exemple
(x0 , x1 ) = (2, 3)
f (xk ) − f (xk−1 ) f (xk ) |xk+1 − xk | |α − xk |
sk = , xk+1 = xk − , |r̃k | = i |rk | =
xk − xk−1 sk |xk+1 | |α|
xk sk xk+1 |r̃k | |rk | x.s.c
x0 = 2 0.3333 0.5233 −1
−6 − (−4) −6
x1 = 3 s1 = = −2 x2 = 3 − =0 ∞ 0.2850 0
3−2 −2
−6 − (−6)
x2 = 0 s2 = =0 x3 no es pot calcular — 1.0000 −1
0−3

Observem que la recta secant


que passa per x1 i x2 és horit-
zontal, i per tant no es pot
seguir aplicant el mètode de la
secant.

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 85


Mètode de la secant: exemple
(x0 , x1 ) = (2, 5) α ≈ 4.1958233454456471528
iter xk sk xk+1 |r̃k | |rk | q
0 2.00000000000000 0.60000000000000 0.52333550882906 -1
1 5.00000000000000 6.0000 2.66666666666667 0.87500000000000 0.19166122792735 0
2 2.66666666666667 8.4444 3.34210526315789 0.20209973753281 0.36444734510541 0
3 3.34210526315789 0.1404 43.28328767123192 0.92278531869983 0.20346854764856 0
4 43.28328767123192 1758.5176 3.34529479809060 11.93855707303787 9.31580314700659 -2
5 3.34529479809060 1758.6579 3.34847969589402 0.00095114741395 0.20270837862568 0
6 3.34847969589402 2.4423 5.63866725390060 0.40615759981622 0.20194931478023 0
7 5.63866725390060 16.9650 3.67818074352995 0.53300439730136 0.34387622873139 0
8 3.67818074352995 19.1625 3.90300999465550 0.05760406748469 0.12337092372527 0
9 3.90300999465550 6.6313 4.32786881829155 0.09816813805456 0.06978686343122 0
10 4.32786881829155 10.4704 4.17209102482036 0.03733806202800 0.03147069406276 1
11 4.17209102482036 12.1933 4.19410249153731 0.00524819475951 0.00565617726758 1
12 4.19410249153731 11.2979 4.19584706603833 0.00041578600782 0.00041013497630 3
13 4.19584706603833 11.4537 4.19582332197480 0.00000565897601 0.00000565338212 4
14 4.19582332197480 11.4651 4.19582334544533 0.00000000559378 0.00000000559386 7
15 4.19582334544533 0.00000000000008 12

Observem que la recta secant que passa per x2 i x3 és casi


horitzontal s3 = 0.14. Això fa que la següent iteració s’alluny
molt de la solució. Tot i això, en aquest cas, el mètode acaba
convergint.
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 86
Mètode de la secant: exemple

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 87


Convergència

Mètode de la secant
Exemple: taula de pı́cnic
Volem determinar l’angle θ tal que w sin θ − h cos θ − b = 0
on w = 0.75m, h = 0.7m i b = 0.1m.
Prenent com a aproximacions inicials x0 = 0, x1 = 2 i
tolx = tolf = 0.5 · 10−10 convergim en només 5 iteracions
iter xk |rk | |r̃k | |f (xk )| x.s.c. pk p̃k
0 0.00000000000000000 1.0000 1.0000 0.80000 -1
1 2.00000000000000000 1.3569 1.0916 0.87328 -1 ∞ ∞
2 0.95620814377226071 0.12686 0.18467 0.10912 0 -6.7642 -19.2743
3 0.80715235417194120 0.48795e-01 0.49096e-01 0.42350e-01 1 1.4628 1.7843
4 0.84882667600454031 0.31649e-03 0.31594e-03 0.27420e-03 3 2.6682 2.6742
5 0.84855858247371374 0.55085e-06 0.55086e-06 0.47726e-06 5 1.7885 1.7881
6 0.84855811504055512 0.72512e-11 0.72511e-11 0.62824e-11 10 1.7798 1.7798
7 0.84855811504670808

Observem que en aquest cas, el mètode de la secant és un


mètode de convergència superlineal amb

1 + 5
|rk | ≈ λ|rk−1 |p , p= ≈ 1.618.
2
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 88
Convergència

Mètode de la secant

Gràfiques de convergència

Error relatiu − escala logaritmica Observem que al ser un


0
error exacte
error aproximat
mètode d’ordre p = 1.6,
−2 el nombre de xifres sig-
nificatives es multiplica
−4
per 1.6 en cada iteració
log10(|rk|)

−6 (aproximadament).
−8
1
|rk−1 | < · 10−q
−10 2

0 1 2 3 4 5 6
iteracions λ −1.6q
|rk | ≈ λ|rk−1 |1.6 < 10
4
Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 89
Comparació dels mètodes
El mètode de Newton és el més ràpid, en el sentit que
calen menys iteracions per aconseguir convergència
(convergència quadràtica), seguit del de la secant
(convergència superlineal) i, finalment, del de la bisecció
(convergència lineal).

Cada iteració del mètode de Newton és més costosa que


la dels altres mètodes, doncs cal avaluar la funció i la seva
derivada.

El mètode de la bisecció és el més robust dels tres; els


mètodes de Newton i de la secant poden presentar
problemes de convergència.

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 90


Comparació dels mètodes
Exemple: taula de pı́cnic
Error relatiu aproximat − escala logaritmica
0
biseccio
newton
−2 secant

−4
log (|r |)
k

−6
10

−8

−10

−12
0 5 10 15 20 25 30 35
iteracions

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 91


Mètodes hı́brids

Idea: combinar la robustesa del mètode de la bisecció per


apropar-se al zero i la velocitat dels mètodes de Newton
o secant.
1. Mètode hı́brid bisecció-secant:
. si el pas amb el mètode de la secant és molt gran es
recurreix a la bisecció
2. Mètode de Brent: és l’algortime que fa servir la funció
fzero de Matlab
. combina el mètode de la bisecció, el mètode de la secant
i la interpolació quadràtica inversa

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 92


Mètodes hı́brids
Regula-Falsi (hı́brid bisecció-secant)
Idea: és com el mètode de la bisecció però enlloc de tallar
l’interval en dues parts iguals, talla l’interval al punt
donat per la fòrmula del mètode de la secant.

El mètode de Regula-Falsi hereda la robustesa del mètode de la


bisecció i la convergència superlineal del mètode de la secant.

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 93


Mètodes hı́brids

Mètode de Brent

Idea: combinació entre els mètodes: bisecció, secant i


interpolació quadràtica inversa.
En cada iteració el mètode de Brent decideix quin dels tres
mètodes és més convenient. La idea és utilitzar el mètode de
la secant o d’interpolació quadràtica inversa quan sigui
possible, ja que convergeixen ràpidament, però recórrer al
mètode de la bisecció si és necessari per donar robustesa.

⇒ És un mètode robust i ràpid, i per això és bastant usat


(funció fzero de Matlab).

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 94


Mètodes hı́brids

Mètode de Brent

Referències:
. R. P. Brent, An algorithm with guaranteed convergence
for finding a zero of a function, Computer Journal 14,
1971, pp. 422–425.
http://web.comlab.ox.ac.uk/oucl/work/
richard.brent/pd/rpb005.pdf
. http://en.wikipedia.org/wiki/Brent’s method
. Numerical recipies
http://www.library.cornell.edu/nr/bookcpdf.html

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 95


Exercicis d’autoavaluació

Exercici 1. Considereu les funcions f (x) = x + e−x i


g(x) = cos(x). Apliqueu el mètode de Newton i de la secant
per a trobar una aproximació de l’intersecció de les dues
funcions anteriors, triant les aproximacions inicials de forma
adequada, i parant quan l’aproximació tingui un error absolut
aproximat (en valor absolut) menor que 10−2 . Quin és l’ordre
de convergència dels dos mètodes en aquest exemple?

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 96


log10 (|Ẽk |) |Ẽk |
Solució esquemàtica: Siguin p̃k = i λ̃k =
log10 (|Ẽk−1 |) |Ẽk−1 |

Newton: convergència subòptima, lineal p = 1 enlloc de p = 2 amb FAC λ = 1/2 = 1 − 1/2, (m = 2).
iter xk |Ẽk | |p̃k | λ̃k
0 1.00000000000000000 0.56160551333041031 — —
1 0.43839448666958969 0.22841667670943605 2.559268 0.406721
2 0.20997780996015364 0.10693981097741102 1.513960 0.468179
3 0.10303799898274262 0.05197376434913063 1.322760 0.486010
4 0.05106423463361198 0.02564221280646581 1.238923 0.493368
5 0.02542202182714617 0.01273811405773286 1.190975 0.496763
6 0.01268390776941331 0.00634867876680661 1.159598 0.498400
7 0.00633522900260670 — — —

Secant: convergència subòptima, lineal p = 1 enlloc de p = 1.6 amb FAC λ = 0.6.


iter xk |Ẽk | |p̃k | λ̃k
0 1.00000000000000000 0.50000000000000000 — —
1 0.50000000000000000 0.19122702332119268 2.386642 0.382454
2 0.30877297667880732 0.12480227746480937 1.257953 0.652639
3 0.18397069921399795 0.07107135350315394 1.270562 0.569472
4 0.11289934571084401 0.04378610937047166 1.183190 0.616087
5 0.06911323634037235 0.02655741827552002 1.159827 0.606526
6 0.04255581806485233 0.01633488302530317 1.133943 0.615078
7 0.02622093503954916 0.01004092122007597 1.118274 0.614692
8 0.01618001381947319 0.00619099913712670 1.105100 0.616577
9 0.00998901468234649 — — —

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 97


Exercicis d’autoavaluació

Exercici 2. Considereu
f (x) = −x5 + 3x4 − x3 − 5x2 + 6x − 2. Apliqueu el mètode
de Newton triant les aproximacions inicials de forma adequada
per a trobar aproximacions a les dues solucions de l’equació
f (x) = 0 que verifiquin els criteris d’aturada amb tolf = 10−4 .
Quin és l’ordre de convergència del mètode de Newton quan
convergeix a cada una de les dues arrels?

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 98


log10 (|r̃k |) |r̃k |
Solució esquemàtica: Siguin p̃k = i λ̃k =
log10 (|r̃k−1 |) |r̃k−1 |

Newton per α = 1: convergència subòptima, lineal p = 1 enlloc de p = 2 amb FAC λ = 2/3 = 1 − 1/3,
(m = 3) =⇒ arrel de multiplicitat 3.

iter xk f (xk ) |r̃k | |p̃k | λ̃k


0 0.50000000000000000 -0.21875000000000000 0.23333333333333334 — —
1 0.65217391304347827 -0.06626371528055608 0.13956313221219316 1.353161 0.598128
2 0.75795672809816361 -0.02021374364862938 0.08928166640664735 1.226850 0.639722
3 0.83226251206292390 -0.00616990756909175 0.05901536577021325 1.171360 0.661002
4 0.88445919496246195 -0.00187826930915413 0.03960451244970545 1.140940 0.671088
5 0.92093226845377496 -0.00056938561563769 0.02672744413878964 1.121795 0.674859
6 0.94622237410041676 -0.00017180459333321 0.01804849082090547 1.108399 0.675279
7 0.96361415533792794 -0.00005161410302712 — — —


Newton per α = 2: convergència òptima, p = 2 =⇒ arrel simple.

iter xk f (xk ) |r̃k | |p̃k | λ̃k


0 2.00000000000000000 -2.00000000000000000 0.11111111111111108 — —
1 1.80000000000000004 -0.63487999999999900 0.09110947832476096 1.090327 0.819985
2 1.64969696969697011 -0.19786497026606575 0.07061377844857666 1.106373 0.775043
3 1.54088897687039039 -0.05923648515494584 0.04942681948217446 1.134589 0.699960
4 1.46831484412674085 -0.01601750696900606 0.02773506334830712 1.192133 0.561134
5 1.42869003548740259 -0.00324231397179808 0.00924290562698806 1.306506 0.333257
6 1.41560572536284979 -0.00028280908167488 0.00097412936471264 1.480383 0.105392
7 1.41422808425757318 -0.00000291936785590 0.00001026739041183 1.656561 0.010540
8 1.41421356397478615 -0.00000000032195580 0.00000000113256547 1.793298 0.000110
9 1.41421356237309670 -0.00000000000000178 — — —

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 99


Exercicis d’autoavaluació

Exercici 3. Considereu f (x) = (x − 2)5 . Apliqueu el mètode


de la bisecció, Newton i de la secant triant les aproximacions
inicials de forma adequada per a trobar una aproximació de
l’equació f (x) = 0. Quin és l’ordre de convergència dels tres
mètodes en aquest exemple? Quin és el mètode més ràpid?

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 100


log10 (|r̃k |) |r̃k |
Solució esquemàtica: Siguin p̃k = i λ̃k =
log10 (|r̃k−1 |) |r̃k−1 |
bisecció newton secant
iter xk |r̃k | |p̃k | λ̃k xk |r̃k | |p̃k | λ̃k xk |r̃k | |p̃k | λ̃k
0 3.0000 1.0000 – – 3.0000 0.0714 – – 3.0000 0.0714 – –
1 1.5000 0.3333 -Inf 0.33 2.8000 0.0606 1.06 0.85 2.8000 0.0361 1.26 0.50
2 2.2500 0.2000 1.46 0.60 2.6400 0.0510 1.06 0.84 2.7025 0.0410 0.96 1.14
3 1.8750 0.0909 1.49 0.45 2.5120 0.0425 1.06 0.83 2.5960 0.0332 1.07 0.81
4 2.0625 0.0476 1.27 0.52 2.4096 0.0352 1.06 0.83 2.5125 0.0304 1.03 0.91
5 1.9688 0.0233 1.24 0.49 2.3277 0.0290 1.06 0.82 2.4384 0.0264 1.04 0.87
6 2.0156 0.0118 1.18 0.51 2.2621 0.0237 1.06 0.82 2.3758 0.0232 1.03 0.88
7 1.9922 0.0058 1.16 0.50 2.2097 0.0193 1.05 0.82 2.3218 0.0203 1.04 0.87
8 2.0039 0.0029 1.13 0.50 2.1678 0.0157 1.05 0.81 2.2757 0.0177 1.03 0.87
9 1.9980 0.0015 1.12 0.50 2.1342 0.0127 1.05 0.81 2.2362 0.0154 1.03 0.87
10 2.0010 0.0007 1.09 0.50 2.1074 0.0103 1.05 0.81 2.2024 0.0133 1.03 0.87
11 1.9995 0.0004 1.10 0.50 2.0859 0.0083 1.05 0.81 2.1734 0.0116 1.03 0.87

El mètode de la bisecció convergeix com esperat, de forma lineal amb FAC λ = 1/2, mentre que els mètodes de
Newton i de la secant convergeixen de forma subòptima. Convergeixen linealment amb λ ≈ 0.8. Per tant, en
aquest cas, el mètode que convergeix més ràpid és el mètode de la bisecció que divideix l’error en dos a cada
iteració, enlloc de multiplicar-lo per 0.8.

Observem que el mètode de Newton convergeix amb λ ≈ 1 − 1/m per m = 5, és a dir, λ ≈ 4/5 = 0.8, ja que
α = 2 és una arrel de multiplicitat 5.

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 101


Exercicis d’autoavaluació

Exercici 4. Considereu f (x) = (x ln(x) − 1)2 . Quina és la


multiplicitat de la única solució de l’equació f (x) = 0?

Càlcul Numèric i Eq. Diferencials - N. Parés, F. Pozo i Y. Vidal ZF - 102

You might also like