3.- Resolució d’equacions d’una variable
3.1. Recerca de zeros de funcions.
Els algorisme per trobar zeros de funcions son mètodes numèrics que permeten trobar un (o més) valors de x tal que f(x) = 0 per una determinada funció f d’una variable. Donada la naturalesa numèrica dels mètodes, aquests algorismes no serveixen per trobar solucions exactes o enteres.
Aquests mètodes són de tipus iteratiu. Es parteix d’un (o més) punts inicials i es genera una seqüència de valors de x que, si tot va bé, convergeixen a un zero de la funció. Aquestes noves aproximacions a la solució del problema es generen tenint en compte d’alguna manera els valors anteriors.
Els principals factors a tenir en compte quan es fan servir aquestes mètodes son:
• la seva robustesa a l’hora de trobar una solució correcta
• la velocitat de convergència
• el grau de coneixement de les característiques de la funció f.
Finalment, és important donar-se compte que qualsevol equació d’una variable es pot escriure sempre de la forma f(x) = 0, per tant, trobar zeros de funcions és en el fons equivalent a resoldre equacions generals d’una variable.
3.2 Mètode de la bisecció
L’algorisme més senzill per trobar zeros de funcions és el mètode de la bisecció. Requereix el coneixement de dos punts inicials x=a i x=b tal que f(a) i f(b) tinguin signe diferent i és aplicable quan la funció f es continua com a mínim dins l’interval [a,b]. En aquest cas ha d’existir per força (Teorema de Bolzano) com a mínim un punt en l’interval tal que la funció s’anul·li, que serà un zero de la funció.
El mètode de la bisecció és molt robust però la seva convergència es força lenta.
48 Algorisme
Primer de tot cal disposar de dos punts a i b on les imatges de la funció f(a) i f(b) tinguin signe diferent. Si la funció és contínua dins l’interval x∈
[ ]
a,b , un zero de la funció es trobarà dins el mateix.a
b f(a)
f(b)
El que proposa aquest mètode és dividir l’interval [a,b] en dos parts iguals calculant el punt mig
xnou = (a + b)/2
a
b f(a)
xnew = (a+b)/2 f(b) f(xnew)
Llavors, segons sigui el signe6 de la imatge de la funció en aquest punt, f(xnou), el zero de la funció es trobarà dins l’interval [a,xnou] (f(xnou) i f(a) tenen diferent signe) o bé
6 En el cas que f(xnou) = 0 voldria dir que hauríem trobar el zero de la funció.
l’interval més petit on es troba la solució és el x∈[xnew, b].
En qualsevol cas, després d’aquesta primera iteració ens tornem a trobar en la mateixa situació que al principi però amb l’avantatge de que l’amplada de interval en què es troba el zero de la funció ha quedat reduït a la meitat.
Llavors, es torna a trobar de nou el punt mig del nou interval i va repetint l’operació fins que
a) trobem un punt mig xnou tal que f(xnou) = 0
b) l’amplada de l’interval és suficientment petita per a la precisió que es necessita.
En realitat, com que treballem numèricament amb variables de tipus REAL, el cas a) és, a la pràctica, gairebé impossible que succeeixi.
De fet, als programes no es sol imposar mai una condició com la de a) amb variables de tipus REAL. Així, en comptes de f(xnou) = 0 en realitat el que farem és dir | f(xnou) | < ε, on ε és un número suficientment petit que marca la precisió del càlcul numèric.
Es tracta doncs d’un mètode iteratiu, i el nombre d’iteracions vindrà donat, pel tipus de funció que estudiem i de la precisió o tolerància que volem.
50
3.3 Mètode de la Regula-Falsi o de la falsa posició
Aquest mètode és també un mètode iteratiu que parteix d’un interval on sabem que es troba la solució i que iterativament va disminuint l’interval, acotant així el valor del zero de la funció.
Algorisme
La única diferència respecte al mètode de la bisecció és que a l’hora de reduir l’interval on es troba el zero de la funció no fa servir simplement el punt mig,
a
b f(a)
f(b) xnew f(xnew)
sinó que fa servir el punt on la recta que passa pels punts {a, f(a)} i {b, f(b)} talla l’eix d’abscisses. És a dir, s’aproxima la funció f en l’interval [a,b] per una recta i es troba el punt de tall amb l’eix de les x d’aquesta.
L’equació general d’una recta en el pla és
f(x) = m x + n i el punt de tall
xnou = -n/m
Si aquesta recta passa pels punts {a, f(a)} i {b, f(b)} es complirà que f(a) = m a + n
f(b) = m b + n Restant l’una de l’altra trobem
a b
a f b m f
−
= ( )− ( )
i d’altra banda, aïllant de la primera equació tenim
Per tant, l’expressió per trobar el nou punt queda de la forma
m a a f m
xnou =− n = − ( )
Substituint l’expressió pel pendent de la recta m i reorganitzant termes podem escriure finalment una expressió pel nou punt en funció del valor dels punts de l’interval i les seves imatges
) ( ) (
) ( ) (
a f b f
b a f a b xnou f
−
= −
Una notable diferència respecte al mètode de la bisecció és que en el mètode de la falsa posició l’amplada de l’interval on es troba el zero de la funció no tendeix a zero. De fet el que succeeix és que un dels límits de l’interval inicial queda fix mentre que l’altre va tendint al zero de la funció.
Per tant, en aquest cas aturem el procés iteratiu quan | f(xnou) | < ε, essent ε com hem dit anteriorment un valor suficientment petit.
Aquest mètode sol presentar una convergència més ràpida que el de la bisecció, essent igual de robust.