Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Metodos Numericos Con Matlab PDF
Metodos Numericos Con Matlab PDF
1,
:
Kn, -
(14) |P = pn| < K'lpr=Pol nara todo n> 1.
1-K
Interpretacién grdafica de la iteracién de punto fijo
Puesto que buscamos un punto fijo P de la funcién g(), es necesario que la curva
g(x) y la recta y = x se corten en el punto (P, P). Los dos tipos simples de
sracién convergente, monétona y oscilante, se muestran en la Figura 2.4 (a) y
(b), respectivamente.52 Cap. 2 RESOLUCION DE ECUACIONES NO LINEALES
Ny ex
<> (@y Py)
Figura 2.4 (b) Convergencia oscilante si —1 < g'(P) < 0.
(Pp. 8(P))
x
Figura 2.5 (a) Divergencia
monétona si 1 < g'(P)
Visualicemos el proceso: empezamos en po sobre el eje OX y nos move-
mos verticalmente hasta el punto (p9.p1) = (po; 9(Po)) que esta sobre la curva
y = g(x). Entonces nos movemos horizontalmente desde el punto (po, p1) hasta
el punto (p1,p1) sobre la recta y = x. Finalmente nos movemos otra vez ver-
ticalmente hasta p; sobre el eje OX. Usamos la recursion pryi = g(Pn) para
construir el punto (pn, Pn 41) sobre la curva, entonces un movimiento horizontal
nos Heva al punto (Pn+1,Pn+1) Sobre la recta y = x y un movimiento vertical
termina ahora en p,,1 sobre el eje OX. La situacién se muestra en la Figura 2.4.
Si |g'(P)| > 1, entonces la iteracién p41 = 9(pn) produce una sucesién
que se aleja de P. Los dos tipos simples de iteracién divergente, monétona y
oscilante, se muestran en la Figura 2.5 (a) y (b), respectivamente.2.1 METODOS ITERATIVOS PARA RESOLVER x = g(x) 53
“
Figura 2.5 (b) Divergencia
oscilante si g'(P) < -1.
Ejemplo 2.4. Consideremos la iteracién p41 = g(Pn) cuando la funcién viene
dada por g(«) = 1+ ~—22/4. Los puntos fijos pueden determinarse resolviendo la
ecuacién z = g(x), cuyas soluciones (los puntos fijos de g) son z = —2y x =2. La
derivada de la funcién es g'(«) = 1—:x/2 y los dos casos que tenemos que considerar
son:
Caso (i): P=-2 Caso (ii):
Inicio po= — 2.05 Inicio
pr = — 2.100625 |
po= —2.20378135 |
pa= ~ 2.41794441 | 1.99999996
dim pu = - 00. tim Pa
Como |g'()| < } en [1,3], por el
Como |g'(x)| > $ en [-3,-1], porel |
e | Teorema 2.3, la sucesién converge a
|
Teorema 2.3, la sucesién no conver
aP=~-2
P=2.
El Teorema 2.3 no dice qué ocurrir si |g/(P)| = 1. El siguiente ejemplo se
ha construido especialmente para que {pn} converja cuando po > P y diverja
cuando pp < P.
Ejemplo 2.5. Consideremos la iteracién pri = g(Pn) cuando la funcién viene
dada por g(r) = 2(a—1)/? para « > 1. Esta funcién sélo tiene un punto fijo P = 2
y su derivada es g'(zz) = 1/(«—1)*/2, de manera que g/(2) = 1 y no podemos aplicar
el Teorema 2.3. Consideremos los dos casos segtin que el punto de partida esté a la
derecha o a la izquierda de P = 2.54 Cap. 2. RESOLUCION DE ECUACIONES NO LINEALES
Caso (i): Inicio po = 1.5, Caso (ii): Inicio po = 2.5,
pi = 141421356 Pi = 2.44948974
po = 1.28718851 40789513
p3 = 107179943 2.37309514
pa = 0.53590832 2.34358284
Ps = 2(—0.46409168)'/?
lim pa =2.
Como pi esta fuera del dominio de Esta sucesién converge muy lenta-
g(2), el término ps no puede calcu- mente a P = 2; de hecho, Piooo =
larse. 2.00398714.
Consideraciones sobre el error absoluto y el relativo
En el Ejemplo 2.5, caso (ii), la sucesién converge muy lentament
1000 iteraciones los tres siguientes términos son
; después de
Piooo = 2.00398714, — pioo1 = 2.00398317 yy — piooz = 2.00397921.
Esto no deberia preocuparnos; después de todo, jpodriamos calcular unos pocos
miles de términos mds para encontrar una aproximacién mejor! Pero, jcudl es el
criterio para detener una iteracién? Si usamos la diferencia entre do:
consecutivos, obtenemos
|2.00398317 — 2.00397921}
{Proo1 — Pro02 0.00000396.
Sin embargo, sabemos que el error absoluto de la aproximacién pyo99 €s
|P — prooo| = |2-00000000 — 2.00398714| = 0.00398714,
que resulta ser unas mil veces mayor que |pioo1 ~ Pioo2|- Esto prueba que la
cercanfa entre dos términos consecutivos no garantiza que hayamos obtenido
una precisidn alta; sin embargo, éste (0 bien el error relativo) es usualmente el
nico criterio del que se dispone y, a menudo, es el que se usa para determinar
cuando debe detenerse un proceso iterativo.
Programa 2.1 (Iteracién de punto fijo). Aproximacién a una solucién
de la ecuacién x = (x) mediante la iteracién p41 = (Pn) realizada a partir
de una aproximacién inicial po.
function [k,p,err,P]=fixpt(g,p0,tol,max1)
% Datos
- g es la funcién de iteracién
- pO es el punto de partidaSec. 2.1 Méropos ITERATIVOS PARA RESOLVER & = g(x) 55
% - tol es la tolerancia
% - maxi es el niimero m4ximo de iteraciones
% Resultados
h - k es el ntimero de iteraciones realizadas
% - p es la aproximacién al punto fijo
% - err es la diferencia entre dos términos consecutivos
% - Pes la sucesién {pn} completa
P(1)= po;
for k=2:maxt
P(k)=feval(g,P(k-1));
err=abs(P(k)-P(k-1));
relerr=err/(abs(P(k))+eps) ;
p=P(k);
if (err0.
Las potencias superiores A¥p,, se definen de manera recursiva mediante
(2) A*p, = A*"(Ap,) para k > 2. a
Teorema 2.8 (Aceleracién de Aitken). Sea {p,}2%g una sucesién que
converge linealmente a su limite p y tal que p — pn # 0 para todo n > 0. Si
existe un nitmero real A con |A| < 1 y tal que
(3)
(Apa)? (ns = Pn)?
4 n= Py ~ abe) =p, — Pati Pa _
@) ree Pn ont? — Pati +P
converge a p mas répidamente que {p,,}92., en el sentido de que
Bema
P—Pn
0.
n-r00
Demostracién. Mostraremos cémo se deduce la formula (4) y dejaremos la
demostracién de (5) como un ejercicio. Usando la relacién (3), podemos escribir
() PoP 4 y POPe2. 4 cuando n es grande.
P—Pn P~Pn+1100 Cap. 2 RESOLUCION DE ECUACIONES NO LINEALES
Tabla 2.10 Sucesién linealmente convergente
{Pn}.
n Pn En =Pn-P
1 | 0.606530660 | 0.039387369 | ——0.586616609
2 0.545239212 | —0.021904079 | —0.556119357
3 | 0.579703005 | 0.012559805 | —-0.573400269
4 | 0.560064628 | —0.007078663 | —0.563596551
5 | 0.571172149 0,004028859 | —0.569155345
6 | 0.564862947 | —0.002280343 | —0.566002341
Tabla 2.11 Sucesidn {gn} obtenida
con el método de Aitken.
n qn qn —P
1 0.567298989 0.000155699
2 0.567193142 0.000049852
3) 0.567159364 0.000016074
4 0.567148453 0.000005163
5 0.000001662
0.000000534
Las aproximaciones dadas en (6) implican que
2
(7) (Pp — Prati)” © (P— Pn42) (P= Pn)
Haciendo las operaciones en ambos miembros de (7) y simplificando los términos
p’, obtenemos
2
Pn+2Pn — Prt
Prt2~ Pati + Pn
(8) De dn para n=0, 1, ...
La formula (8), que define el término gn, puede ser manipulada algebraicamente
para convertirla en la formula (4), que tiene mejor comportamiento frente a la
propagacién de los errores cuando se usan con un computador. °
Ejemplo 2.18. Veamos que la sucesién {pn} del Ejemplo 2.2 presenta convergen-
cia lineal y que la sucesién {gn} obtenida con el método A? de Aitken converge mas
ripidamente.
La sucesién {pp} se obtuvo aplicando iteracién de punto fijo a la funcién dada
por g(x) = e~* a partir del valor inicial pp = 0.5. Una vez detenidas las iteraciones,sec. 2.5 Los METODOS DE AITKEN, STEFFENSEN Y MULLER 101
el limite calculado fue p © 0.567143290. Los valores pp y gn se muestran en las
Tablas 2.10 y 2.11. Para ilustrar lo que decimos, observemos que el valor q, se
obtiene con el calculo
_ (p2 =p)?
1 3 =I +P
— penesangen _ (02061291448
= 0.606530660 — “T= = 0.567208089 .
Aunque la sucesién {gn} de la Tabla 2.11 converge linealmente, su velocidad
de convergencia es mayor que la de {pp} en el sentido dado en el Teorema 2.8;
de hecho, el método de Aitken produce, usualmente, mejoras més sustanciales
que la de este caso. Cuando el método de Aitken se combina con una iteracién
de punto fijo, el resultado se conoce como método de aceleracién de Stef-
fensen. Los detalles de este método se dan en el Programa 2.7 y en los ejerci-
cios
El método de Muller
El método de Muller es una generalizacién del método de la secante, en el
sentido de que no necesita el cdlculo de la derivada de la funcién. Es un método
iterativo que necesita tres puntos iniciales (po, f(po)), (p1, £(p1)) ¥ (pe, F (p2))-
Entonces se construye la parabola que pasa por estos puntos y se usa la formula
de resolucién de las ecuaciones de segundo grado para determinar el punto
de corte de dicha pardbola con el eje OX; la abscisa de este punto se usa
para construir la siguiente aproximacién. Puede probarse que, cerca de una
raiz simple, el método de Muller converge mds rapidamente que el método
de la secante y es casi tan veloz como el método de Newton-Raphson. Este
método puede emplearse tanto para hallar ceros reales como para hallar ceros
complejos y puede programarse para que trabaje con aritmética compleja. Sin
pérdida de generalidad, supongamos que p2 es la mejor aproximacién a la rafz
y consideremos la parabola, que se muestra en la Figura 2.17, que pasa por los
tres puntos de partida. Hagamos el cambio de variable
(9) t=r-pa,
y usemos las diferencias
(10) ho =Ppo-Pp2 Y hi =pi- pz
Consideremos el polinomio cuadratico en la variable t:
ay102 Cap. 2 RESOLUCION DE ECUACIONES NO LINEALES
y=fo)
@pfe))
1=hy rah, 1=0 z
Figura 2.17 Los valores iniciales po, pry p2 para el método de Muller y las
diferencias ho y hi.
Cada punto inicial nos proporciona una ecuacién para a, b y c:
En t=ho: ahj+bho +e= f(po),
(12) En t=hy: ah? +bhy +c= f(p1),
En t=0: a0? +b0 +c= f(p2).
La tercera ecuacién de (12) nos dice que
(13) c= f(p2)-
Sustituyendo (13) en las primeras dos ecuaciones de (12) y poniendo e) =
f(po) — cy e1 = f (pi) — ¢ nos queda
ahs + bho = f(po) — € = eo,
u4
(4) ah? + bhy = f(pi) -—e= 41.
Ahora resolvemos este sistema y obtenemos a y b:
(16) z= —SEC. 2.5 Los METODOS DE AITKEN, STEFFENSEN Y MULLER 103
Esta formula (16) es equivalente a la férmula habitual para hallar las raices de
una ecuacién de segundo grado; pero, en este caso, (16) es mejor porque ya
sabemos que ¢ = f(p2).
Para asegurar la estabilidad del método hay que elegir la raiz de (16) que
tenga menor valor absoluto; asi, si b > 0, entonces usamos el signo positivo de
la raiz cuadrada, mientra que si 6 < 0, entonces usamos el signo negativo. El
nuevo punto p3, que se muestra en la Figura 2.17, viene dado por
(17) P3 =p +2.
Para actualizar los valores y dar el siguiente paso, elegimos los nuevos po y 71
como los dos puntos mas cercanos a pz de entre {po, pi, 2} (0 sea, rechazamos
el més lejano) y ps pasa a ser el nuevo pz, Aunque hace falta realizar muchos
‘Alculos adicionales en el método de Muller, slo hace falta una evaluacién de
la funcion f en cada iteracion.
Si usamos el método de Muller para hallar las rai
posible que nos encontremos con aproximaciones complejas,
de (16) podrian ser ntimeros complejos (0 sea, tener parte imaginaria no nula).
En estos casos las partes imaginarias seran de pequeiia magnitud y podremos
despreciarlas, de manera que nuestros cdlculos se hagan con ntimeros reales
Comparacién entre los métodos
El método de Steffensen puede usarse junto con la funcién de iteracién del
método de Newton-Raphson g(x) = x — f(«)/f'(«). En los dos ejemplos
siguientes nos vamos a plantear el célculo de las raices del polinomio f(x) =
zx? ~32+2, para el cual la funcién de iteracién del método de Newton-Raphson
es g(x) = (2r3 — 2)/(3x? — 3). Cuando usamos esta funcién en el Programa 2.7,
obtenemos los calculos que se muestran bajo la cabecera Steffensen con Newton
en las Tablas 2.12 y 2.13. Por ejemplo, empezando con py = —2.4, calculamos
(18) 1 = g(po) = —2.076190476,
.
(19) ps = (pr) = —2.003596011.
Entonces la formula de Aitken nos proporciona p3 = —1.982618143.
Ejemplo 2.19 (Convergencia cerca de una raiz simple.)._ Vamos acomparar
los métodos dados usando la funcién f(x) = 2% — 3x + 2 cerca de su raiz simple
p=-2.
Los resultados producidos por los métodos de Newton-Raphson y de la se-
cante para este caso ya se mostraron en los Ejemplos 2.14 y 2.16, respectivamente.
La Tabla 2.12 proporciona un resumen de los resultados obtenidos con todos los
métodos. .104 Cap. 2 RESOLUCION DE ECUACIONES NO LINEALES
Tabla 2.12 Comparacién de las convergencias
cerca de una raiz simple.
Método Steffensen
Método Método de con
de la de Newton- Newton-
k secante Muller Raphson Raphson
0 —2,600000000 —2.600000000, —2.400000000 —2.400000000
1 —2.400000000 2.500000000 2.076190476 —2.076190476
2 ~2.106598985 | —2.400000000 ~2.003596011 003596011
3 —2.022641412 —1.985275287 —2.000008589 982618143
4 —2.001511098 —2.000334062 —2.000000000 000204982
5 —2.000022537 —2,000000218 —2.000000028
6 —2,000000022 —2.000000000 000002389
7 —2.000000000 000000000
Ejemplo 2.20 (Convergencia cerca de una raiz doble). Vamos a comparat
ahora los métodos dados usando la funcién f(z) = 23 —3x+2 cerca de su raiz doble
p= 1. La Tabla 2.13 proporciona un resumen de los resultados obtenidos con todos
los métodos .
El método de Newton-Raphson es la mejor eleccién para hallar una raiz
simple como se ve en la Tabla 2.12. En una raiz doble, tanto el método de
Muller como el método de Steffensen aplicado a la formula de iteracién de
Newton-Raphson resultan ser una buena eleccién, como se ve en la Tabla 2.13.
Hagamos notar que, en la formula del método de aceleracién de Aitken (4),
podrfamos tener una divisién entre cero conforme la sucesion {px} converge. En
este caso, la tiltima aproximacién calculada es la que usamos como aproximacién
al cero.
En el programa que damos a continuacién, la sucesién {px}, generada con
el método de Steffensen aplicado a la formula de iteracién de Newton-Raphson,
se almacena en una matriz Q que tiene maxi filas y tres columnas: La primera
columna de Q contiene la aproximacién inicial po y los términos p3, pg, «-»s Dsks «+»
generados por el método de aceleracién de Aitken (4), mientras que las colum-
nas segunda y tercera de Q contienen los téminos generados por el método de
Newton. El criterio de parada del programa se basa en la diferencia entre dos
términos consecutivos de la primera columna de Q.
Programa 2.7 (Aceleracién de Steffensen). Aceleracién de la conver-
gencia de la iteracién de punto fijo para resolver la ecuacién f(x) = 0 a
partir de po; donde se supone que f y f/ son continuas y que el método de
Newton-Raphson converge lentamente (linealmente) a p.ETODOS DE AITKEN, STEFFENSEN Y MULLER 105
Tabla 2.13 | Comparacién de la convergencia cerca de una raiz doble.
Método Steffensen
Método Método de con
de la de Newton- Newton-
k secante Muller Raphson Raphson
0 1.400000000 1.400000000 1.200000000 1.200000000
1 1200000000 1.300000000 1.103030303 1.103030303
2 1,138461538 1.200000000 1.052356417 1.052356417
3 1.083873738 1.003076923 1.026400814 0.996890433
4 1.053093854 1.003838922 1.013257734 0.998446023
5 1.032853156 1.000027140 1.006643418 0.999223213
6 1.020429426 0.999997914 1.003325375, 0.999999193
7 1.012648627 0.999999747, 1.001663607 0.999999597
8 1.007832124 1.000000000 1.000832034 0.999999798
2 1.004844757 1.000416075 0.999999999
function [p,Q]=steff(f,df,p0,delta,epsilon,max1)
% Datos
- f la funcién, introducida como
una cadena de caracteres ’f’
df es la derivada de f, introducida como una cadena df’
- pO es la aproximacién inicial a un cero de f
- delta es la tolerancia para pO
- epsilon es la tolerancia para los valores de la funcién
- maxi es el niimero méximo de iteraciones
Resultados
- p es la aproximacién al cero,
obtenida con el método de Steffensen
- Qes la matriz que contiene la sucesién de Steffensen
% Inicializamos la matriz R
R=zeros(maxi,3);
R(1,1)=p0;
for k
for
:maxt
3
% Denominador del método de Newton-Raphson
nrdenom=feval (df ,R(k,j-1));
% Apoximacién de Newton-Raphson
if nrdenom=="104 Cap. 2 RESOLUCION DE ECUACIONES NO LINEALES:
Tabla 2.12 Comparacidn de las convergencias cerca de una rafz simple
Método Steffensen
Método. Método. de con
de la de Newton- Newton-
k secante Muller Raphson. Raphson
0 —2.600000000 —2.600000000 —2.400000000, —2.400000000
1 2.400000000 —2.500000000 —2.076190476 —2.076190476
2 —2.106598985 —2.400000000 2.003596011 —2.003596011
3 2022641412 1,985275287 -2.000008589 —1,982618143
4 —2.001511098 —2.000334062 —2.000000000 —2.000204982
5 —2.000022537 —2.000000218 —2,000000028
6 —2.000000022 —2.000000000 —2.000002389
7 —2.000000000 —2.000000000
Ejemplo 2.20 (Convergencia cerca de una raiz doble). Vamos a comparar
ahora los métodos dados usando la funcién f(z) = 2° —3x+2 cerca de su raiz doble
p= 1. La Tabla 2.13 proporciona un resumen de los resultados obtenidos con todos
los métodos. .
El método de Newton-Raphson es la mejor eleccién para hallar una raiz
simple como se ve en la Tabla 2.12. En una rafz doble, tanto el método de
Muller como el método de Steffensen aplicado a la formula de iteracién de
Newton-Raphson resultan ser una buena eleccién, como se ve en la Tabla 2.13.
Hagamos notar que, en la férmula del método de acele m de Aitken (4),
podriamos tener una divisién entre cero conforme la sucesidn {px} converge. En
este caso, la tiltima aproximacién calculada es la que usamos como aproximacién
al cero.
En el programa que damos a continuacién, la sucesién {p,}, generada con
el método de Steffensen aplicado a la formula de iteracién de Newton-Raphson,
se almacena en una matriz Q que tiene maxt filas y tres columnas: La primera
columna de Q contiene la aproximacién inicial po y los términos ps, ps, -.., Pak
generados por el método de aceleracién de Aitken (4), mientras que las colum-
nas segunda y tercera de Q contienen los téminos generados por el método de
Newton. El criterio de parada del programa se basa en la diferencia entre dos
términos consecutivos de la primera columna de Q.
Programa 2.7 (Aceleracién de Steffensen). Aceleracién de la conver-
gencia de la iteracién de punto fijo para resolver la ecuacién f(z) = 0 a
partir de po; donde se supone que f y f’ son continuas y que el método de
Newton-Raphson converge lentamente (linealmente) a p.Sec. 2.5 Los MBTODOs DE AITKEN, STEFFENSEN Y MULLER. 105
Tabla 2.13 © Comparacidén de la convergencia cerca de una raiz doble.
] Método Steffensen
Método. Método de con
dela de Newton- Newton-
k secante Muller Raphson Raphson
0 1.400000000, 1.400000000 1.200000000 1.200000000
1 1.200000000 1.300000000 1.103030303 1.103030303
2 1.138461538 1.200000000 1.052356417 1.052356417
3 1.083873738 1.003076923 1.026400814 0.996890433
4 1.053093854 | 1.003838922 1.013257734 0.998446023
5 1.032853156 1.000027140 1.006643418 0.999223213
6 1.020429426 0.999997914 1,003325375, 0.999999193
7 1.012648627 | 0.999999747 1.001663607 0.999999597
8 1.007832124 1.000000000 1.000832034 0.999999798,
i 1.004844757 | 1.000416075, 0.999999999
function [p,Q]=steff(f,df,p0,delta,epsilon,maxi)
% Datos
f la funcioén, introducida como
una cadena de caracteres ’f’
af es la derivada de f, introducida como una cadena ’df’
- pO es la aproximacién inicial a un cero de f
- delta es la tolerancia para pO
- epsilon es la tolerancia para los valores de la funcién
- maxi es e] niimero m&ximo de iteraciones
Resultados
- p es la aproximacién al cero,
obtenida con el método de Steffensen
- Q es la matriz que contiene la sucesién de Steffensen
y% Inicializamos la matriz R
R=zeros(max1,3);
R(1,1)=p0;
for k=1:max1
for j=2:3
% Denominador del método de Newton-Raphson
nrdenom=feval (df ,R(k,j-1));
% Apoximacion de Newton-Raphson
if nrdenom==106 CAP. 2 RESOLUCION DE ECUACIONES NO LINEALES
*divisién entre cero en el método de Newton-Raphson’
break
else
R(k, j)=R(k, j-1)-feval (f,R(k,j-1))/nrdenom;
end
% Denominador del método de aceleracién de Aitken
aadenom=R(k,3)~2*R(k,2)+R(k,1);
% C&lculo de las aproximaciones de Aitken
if aadenom==0
*divisién entre cero en el método de Aitken’
break
else
R(k+1,1)=R(k, 1)-(R(k,2)-R(k, 1))°2/aadenom;
end
end
% Final del programa si ocurre divisién entre cero
if (nrdenom==0) | (aadenom==0)
break
end
% Criterios de parada
err=abs(R(k,1)-R(ic+1,1));
relerr=err/(abs(R(k+1,1))+delta);
y=feval(f,R(k+1,1));
if (err
También podría gustarte