CÁLCULO DE RAÍCES DE ECUACIONES NO LINEALES
CÁLCULO DE RAÍCES DE ECUACIONES NO LINEALES
CÁLCULO DE RAÍCES DE ECUACIONES NO LINEALES
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>CÁLCULO</strong> <strong>DE</strong> <strong>RAÍCES</strong> <strong>DE</strong><br />
<strong>ECUACIONES</strong> <strong>NO</strong> <strong>LINEALES</strong><br />
Por Frednides Guillén
MÉTODO <strong>DE</strong> BISECCIÓN<br />
• Este método consiste en hallar los ceros de una función<br />
continua f(x).<br />
• Primero se debe considerar un intervalo [x i, x s] en el que<br />
se garantice que la función tiene raíz.<br />
• Para ello f(x i) y f(x s) deben ser de diferentes signos. Por<br />
lo tanto debe cumplirse que:<br />
f(x i) • f(x s) < 0<br />
• De acuerdo con el teorema del valor intermedio, existe<br />
un numero x r en [x i, x s] tal que f(x r) = 0
f(x)<br />
MÉTODO <strong>DE</strong> BISECCIÓN<br />
x
f(x)<br />
f(x i)<br />
f(x s)<br />
MÉTODO <strong>DE</strong> BISECCIÓN<br />
x i x s x
MÉTODO <strong>DE</strong> BISECCIÓN<br />
• Si f(x i)=0 --> f(x i) es raíz.<br />
• Si f(x s)=0 --> f(x s) es raíz<br />
• El segmento [x i, x s] se bisecta, tomando el punto de<br />
bisección x r como aproximación de la raíz buscada.<br />
x<br />
r<br />
<br />
x<br />
s<br />
• Se determina el signo de f(x r) y se sustituye el extremo<br />
<br />
2<br />
cuyo signo coincida y se desecha el resto del intervalo.<br />
x<br />
i
MÉTODO <strong>DE</strong> BISECCIÓN<br />
• De esta forma se generan intervalos que encierran la<br />
raíz buscada y que son de longitud igual a la mitad de la<br />
longitud del intervalo del paso anterior.<br />
• El método divide a la mitad cada nuevo intervalo que se<br />
genere.
f(x)<br />
f(x i)<br />
f(x r)<br />
f(x s)<br />
MÉTODO <strong>DE</strong> BISECCIÓN<br />
x i<br />
x r<br />
x s<br />
x
Seudo Código:<br />
• Se define un intervalo [x 1, x 2] de la función f(x), donde la esta es continua y<br />
se verifica que f(x 1)·f(x 2) < 0. Se define la tolerancia ε y el numero máximo<br />
de iteraciones Nitera y hacer Iter=0<br />
• Repetir<br />
– Iter = Iter +1<br />
– Hacer x 3= (x 1+x 2)/2<br />
– Si f(x 3)·f(x 1) < 0<br />
• Entonces x 2 = x 3<br />
• Sino x 1 = x 3<br />
– Fin del Si<br />
• Hasta que |(x 1 - x 3)|< 2 ε o Iter == Nitera<br />
• Imprimir “La raíz es: ” x 3<br />
MÉTODO <strong>DE</strong> BISECCIÓN
• Cálculo del error:<br />
MÉTODO <strong>DE</strong> BISECCIÓN<br />
• El error exacto no se puede calcular si no conocemos la<br />
solución exacta (si se conoce, no es necesario el<br />
método iterativo). En la práctica, se estima el error<br />
mediante la distancia entre dos iteraciones<br />
consecutivas.<br />
x<br />
2<br />
Error n<br />
2<br />
<br />
x<br />
1<br />
<br />
n<br />
<br />
x2<br />
x1<br />
ln<br />
<br />
Error<br />
ln( 2)
Ejemplo:<br />
MÉTODO <strong>DE</strong> BISECCIÓN<br />
• Calcular la raíz de f(x) = x 3 + x 2 – 3x – 3 = 0, que está en<br />
el intervalo [1, 2]. Calcular con una precisión de 3<br />
decimales exactos. ¿Cuántos dígitos significativos tiene<br />
la aproximación calculada después de la cuarta<br />
iteración?<br />
• Cuántas iteraciones serán necesarias para alcanzar una<br />
precisión de 6 decimales exactos?
MÉTODO <strong>DE</strong> BISECCIÓN<br />
Iteración x 1 f(x 1 ) x 2 f(x 2 ) x 3 f(x 3 )<br />
1 1 -4 2 3 1,5 -1,875<br />
2 1,5 -1,875 2 3 1,75 0,171875<br />
3 1,5 -1,875 1,75 0,171875 1,625 -0,943359<br />
4 1,625 -0,943359 1,75 0,171875 1,6875 -0,409424<br />
5 1,6875 -0,409424 1,75 0,171875 1,71875 -0,124786<br />
6 1,71875 -0,124786 1,75 0,171875 1,734375 0,02203<br />
7 1,71875 -0,124786 1,734375 0,02203 1,726563 -0,051755<br />
8 1,726563 -0,051755 1,734375 0,02203 1,730469 -0,014957
Ventajas:<br />
• Es robusto<br />
• De fácil aplicación<br />
MÉTODO <strong>DE</strong> BISECCIÓN<br />
• No necesita calcular la derivada<br />
Desventajas<br />
• Es lento<br />
• No detecta ceros en mín. o máx. locales<br />
• No detecta un número par de ceros
MÉTODO <strong>DE</strong> REGULA-FALSI<br />
• Conocido también como método de falsa posición<br />
• Primero se selecciona un intervalo [a, b] tal que<br />
f(a)· f(b) < 0<br />
• Hallar el punto c que divide el intervalo [a, b], al trazar<br />
una recta de f(a) hasta f(b), para ello:<br />
c <br />
a <br />
f<br />
( a)<br />
b<br />
( b)<br />
a<br />
f ( a)<br />
• Elegir, entre [a, c] y [c, b], un intervalo en el que la<br />
función cambie de signo.<br />
• Repetir los pasos 2 y 3 hasta conseguir la precisión<br />
deseada.<br />
f
f(x)<br />
MÉTODO <strong>DE</strong> REGULA-FALSI<br />
x
f(x)<br />
f(a)<br />
f(b)<br />
MÉTODO <strong>DE</strong> REGULA-FALSI<br />
a b<br />
x
f(x)<br />
f(a)<br />
f(b)<br />
MÉTODO <strong>DE</strong> REGULA-FALSI<br />
a b<br />
x
f(x)<br />
f(a)<br />
f(c)<br />
f(b)<br />
MÉTODO <strong>DE</strong> REGULA-FALSI<br />
a c b<br />
Se hace b = c<br />
La solución está en el<br />
Intervalo [a, c]<br />
x
MÉTODO <strong>DE</strong> REGULA-FALSI<br />
• El método de Regula Falsi, como él de bisección, parte<br />
de un intervalo en el que la función cambia de signo y lo<br />
divide en dos partes. La diferencia es que los<br />
subintervalos ahora son proporcionales a los valores de<br />
la función en los extremos.<br />
• El método converge generalmente con más rapidez que<br />
la bisección, pero no garantiza que el intervalo de<br />
búsqueda de la raíz se haga pequeño. Típicamente, un<br />
extremo queda fijo mientras que el otro se acerca a la<br />
raíz.
MÉTODO <strong>DE</strong> REGULA-FALSI<br />
• El criterio de convergencia es diferente al método de<br />
bisección. En este caso se utiliza:<br />
| c actual – c anterior | ε<br />
• También se puede emplear:<br />
| f(c) | ε
Ventajas:<br />
MÉTODO <strong>DE</strong> REGULA-FALSI<br />
• En algunos casos es más rápido que bisección<br />
• No necesita calcular derivadas<br />
Desventajas<br />
• No detecta un número par de ceros<br />
• No detecta ceros en mínimos locales
• Ejemplo:<br />
MÉTODO <strong>DE</strong> REGULA-FALSI<br />
• Calcular la raíz de f(x) = x 3 + x 2 – 3x – 3 = 0, que está en<br />
el intervalo [1, 2]. Calcular con una precisión de 3<br />
decimales exactos.<br />
• ¿Cuántos dígitos significativos tiene la aproximación<br />
calculada después de la cuarta iteración?.
MÉTODO <strong>DE</strong> REGULA-FALSI<br />
Iteracion x1 f(x1) x2 f(x2) x3 f(x3)<br />
1 1 -4 2 3 1,5714 -1,364431<br />
2 1,5714 -1,3644 2 3 1,7054 -0,247745<br />
3 1,7054 -0,2477 2 3 1,7279 -0,039340<br />
4 1,7279 -0,0393 2 3 1,7314 -0,006111<br />
5 1,7314 -0,0061 2 3 1,7320 -0,000946<br />
6 1,7320 -0,0009 2 3 1,7320 -0,000146<br />
7 1,7320 -0,0001 2 3 1,7320 -0,000023<br />
8 1,7320 0,0000 2 3 1,7321 -0,000004
Seudo Código:<br />
MÉTODO <strong>DE</strong> REGULA-FALSI<br />
• Se define un intervalo [x 1, x 2] de la función f(x), donde la esta es continua y<br />
se verifica que f(x 1)·f(x 2) < 0. Se define la tolerancia ε y el numero máximo<br />
de iteraciones Nitera y hacer Iter=0<br />
• Repetir<br />
– Iter = Iter +1<br />
– Hacer x 3= x 1-f(x 1)(x 2-x 1)/(f(x 2)-f(x 1))<br />
– Si f(x 3)·f(x 1) < 0<br />
• Entonces x 2 = x 3<br />
• Sino x 1 = x 3<br />
– Fin del Si<br />
• Hasta que |f(x 3)|< ε o Iter == Nitera<br />
• Imprimir “La raíz es: ” x 3
MÉTODO <strong>DE</strong> NEWTON RAPHSON<br />
• El método de Newton Raphson aplica si f(x), f’(x) y f’’(x)<br />
son continuas y es uno de los algoritmos mas útiles y<br />
mejor conocido.<br />
• Se parte de una aproximación inicial x 0 la cual es mejor<br />
si está cerca de la raíz p
MÉTODO <strong>DE</strong> NEWTON RAPHSON<br />
f(x)<br />
f(x 0)<br />
x 0<br />
x
MÉTODO <strong>DE</strong> NEWTON RAPHSON<br />
• Luego se obtiene el valor de la función por ese punto y<br />
se traza una recta tangente a la función por ese punto.<br />
• El punto de intersección de esta recta con el eje de las<br />
abscisas (x 1, 0), constituye una segunda aproximación<br />
de la raíz.<br />
• El proceso se repite n veces hasta que el punto de<br />
intersección x n coincide prácticamente con el valor<br />
exacto de la raíz.
MÉTODO <strong>DE</strong> NEWTON RAPHSON<br />
f(x)<br />
f(x 0)<br />
x 0<br />
x 1<br />
x
MÉTODO <strong>DE</strong> NEWTON RAPHSON<br />
f(x)<br />
f(x 0)<br />
f(x 1)<br />
x 0<br />
x 1<br />
x
MÉTODO <strong>DE</strong> NEWTON RAPHSON<br />
f(x)<br />
f(x 0)<br />
f(x 1)<br />
x 0<br />
x 1<br />
x 2<br />
x 3<br />
x
MÉTODO <strong>DE</strong> NEWTON RAPHSON<br />
• Primero se calcula la pendiente de la recta tangente:<br />
m<br />
<br />
0 <br />
x<br />
• m es la pendiente de la recta tangente que pasa por el<br />
punto x 0; por lo tanto: m = f’(x 0)<br />
• Igualando las dos ecuaciones anteriores de m y<br />
despejando x 1 se tiene:<br />
x <br />
x <br />
1<br />
0<br />
• Se puede emplear como criterio de convergencia:<br />
1<br />
( f x<br />
x<br />
| (x 0 - x 1)/ x 1 | < ε (Error relativo)<br />
0<br />
0 )<br />
f ( x0)<br />
f '(<br />
x )<br />
0
MÉTODO <strong>DE</strong> NEWTON RAPHSON<br />
Aunque el método trabaja bien, no existe garantía de convergencia.<br />
X 3<br />
f(x)<br />
X 1<br />
X 0<br />
X 2<br />
X
MÉTODO <strong>DE</strong> NEWTON RAPHSON<br />
Seudo Código:<br />
• Se define el valor inicial x 0 de la función f(x)<br />
• Se define la tolerancia ε y el número máximo de iteraciones Nitera y se<br />
hace Iter=0<br />
• Repetir<br />
– Iter = Iter +1<br />
– Calcular x 1= x 0-f(x 0)/f’(x 0)<br />
– Calcular error = |x 1 - x 0 |<br />
– Hacer X0 = X1<br />
• Hasta que error < ε o Iter == Nitera<br />
• Imprimir “La raíz es: ” x 1
MÉTODO <strong>DE</strong> NEWTON RAPHSON<br />
Código en Scilab:<br />
x0=2; tol=1e-5; Niter=30;<br />
for Iter=0:Niter<br />
end<br />
Iter = Iter + 1;<br />
x1 = x0 - (x0^3+x0^2-3*x0-3)/(3*x0^2+2*x0-3);<br />
err = abs(x1-x0);<br />
x0 = x1;<br />
if (err
Ejemplo:<br />
MÉTODO <strong>DE</strong> NEWTON RAPHSON<br />
• Calcular la raíz de f(x) = x 3 + x 2 – 3x – 3 = 0, que está en<br />
el intervalo [1, 2], utilice x 0=2. Calcular con una precisión<br />
de 3 decimales exactos.<br />
• ¿Cuál es el error absoluto para la cuarta iteración?.
MÉTODO <strong>DE</strong> NEWTON RAPHSON<br />
Iteración x 0 f(x 0 ) f '(x 0 ) x 1 Error<br />
1 2 3 13 1,769230769 0,130434783<br />
2 1,769230769 0,360491579 9,928994083 1,73292381 0,020951272<br />
3 1,73292381 0,00826691 9,474922419 1,732051306 0,00050374<br />
4 1,732051306 4,71824E-06 9,464107793 1,732050808 2,87832E-07<br />
5 1,732050808 1,53921E-12 9,464101615 1,732050808 9,38406E-14
MÉTODO <strong>DE</strong> LAS SECANTES<br />
• Consiste en elegir dos puntos iniciales cualquiera x 0, x 1<br />
para los cuales se evalúan los valores de la función:<br />
• Se traza una recta secante a la función por esos dos<br />
puntos.<br />
• El punto de intersección de esta recta con el eje de las<br />
abscisas (x 2, 0) constituye una segunda aproximación<br />
de la raíz.<br />
• El proceso se repite n veces hasta que el punto de<br />
intersección x n coincide prácticamente con el valor<br />
exacto de la raíz.
f (x)<br />
f (x 0)<br />
f (x 1)<br />
f (x 2)<br />
f (x 3)<br />
MÉTODO <strong>DE</strong> LAS SECANTES<br />
x 0 x 1 x 2<br />
x 3<br />
x
MÉTODO <strong>DE</strong> LAS SECANTES<br />
• La pendiente de la recta se calcula como:<br />
• La intercepción con el eje x es:<br />
x<br />
x<br />
2<br />
2<br />
<br />
<br />
x<br />
x<br />
0<br />
m<br />
0<br />
<br />
<br />
<br />
f<br />
f<br />
f(x1<br />
) <br />
x <br />
( x<br />
( x<br />
1<br />
0<br />
0<br />
)<br />
)<br />
f(x<br />
x<br />
f<br />
0<br />
m<br />
0<br />
)<br />
x1<br />
( x )<br />
1<br />
<br />
<br />
x0<br />
f ( x<br />
0<br />
)
Algoritmo<br />
MÉTODO <strong>DE</strong> LAS SECANTES<br />
• Entrar los datos x 0, x 1, tol, Nitera, Iter=0<br />
• Repetir<br />
Iter = Iter +1; x 2=x 0-f (x 0)(x 1-x 0)/(f (x 1)-f (x 0))<br />
Hacer x 0=x 1 y x 1=x 2<br />
Error =│(x 0 – x 1) / x 1│*100 (Error Relativo porcentual)<br />
• Hasta que Error ≤ tol o Iter = Nitera<br />
• Imprimir x 2
Ejemplo:<br />
MÉTODO <strong>DE</strong> LAS SECANTES<br />
• Calcular la raíz de f(x) = x 3 + x 2 – 3x – 3 = 0, que está en<br />
el intervalo [1, 2], utilice x 0=3 y x 1=2. Calcular con una<br />
precisión de 3 decimales exactos.<br />
• ¿Cuál es el error absoluto para la cuarta iteración?.
MÉTODO <strong>DE</strong> LAS SECANTES<br />
Iteración x 0 x 1 x 2 Error Absoluto<br />
1 3 2 1,857142857 0,076923077<br />
2 2 1,857142857 1,750424448 0,060967161<br />
3 1,857142857 1,750424448 1,733455735 0,009788951<br />
4 1,750424448 1,733455735 1,732067544 0,000801465<br />
5 1,733455735 1,732067544 1,732050823 9,6541E-06<br />
6 1,732067544 1,732050823 1,732050808 8,88175E-09<br />
7 1,732050823 1,732050808 1,732050808 9,73019E-14
MÉTODO <strong>DE</strong>L PUNTO FIJO<br />
• Considera la descomposición de la función f(x) en una<br />
diferencia de dos funciones: una primera g(x) y la<br />
segunda, siempre la función x.<br />
f(x) = g(x) – x<br />
• La raíz de la función f(x) se da cuando f(x) = 0, es decir,<br />
cuando g(x) – x = 0, por lo que:<br />
x = g(x)<br />
• El punto de intersección de las dos funciones, da<br />
entonces el valor exacto de la raíz.
MÉTODO <strong>DE</strong>L PUNTO FIJO<br />
• El método consiste en considerar un valor inicial x 0,<br />
como aproximación a la raíz, evaluar el valor de esta<br />
función g(x 0), considerando éste como una aproximación<br />
de la raíz.<br />
• El proceso se repite n veces hasta que g(x) coincide<br />
prácticamente con x.<br />
• Se puede emplear como criterio de convergencia<br />
| (x 0 - x 1)/ x 1 | < ε (Error Relativo)
MÉTODO <strong>DE</strong>L PUNTO FIJO<br />
Algoritmo:<br />
• Se inicializan las variables x 0, tol, Nitera,<br />
Iter=0<br />
• Repetir<br />
Iter = Iter +1<br />
Hacer x 1= g(x 0)<br />
Error =│(x 0 – x 1) / x 1│ (Error Absoluto)<br />
Hacer x 0 = x 1<br />
• Hasta que Error ≤ tol o Iter = Nitera<br />
• Imprimir x 0
Ejemplo:<br />
MÉTODO <strong>DE</strong>L PUNTO FIJO<br />
• Calcular la raíz de f(x) = x 3 + x 2 – 3x – 3 = 0, que está en<br />
el intervalo [1, 2], utilice x 0=2. Calcular con una precisión<br />
de 3 decimales exactos.<br />
• ¿Cuál es el error absoluto para la cuarta iteración?.
x<br />
<br />
x <br />
g(<br />
x)<br />
3x<br />
3<br />
x<br />
3 2<br />
MÉTODO <strong>DE</strong>L PUNTO FIJO<br />
Iteración x 0 x 1 Error Absoluto<br />
1 2 1,709975947 0,169607095<br />
2 1,709975947 1,733134316 0,013362132<br />
3 1,733134316 1,731994802 0,00065792<br />
4 1,731994802 1,732053695 3,40019E-05<br />
5 1,732053695 1,732050659 1,75317E-06<br />
6 1,732050659 1,732050815 9,04059E-08<br />
7 1,732050815 1,732050807 4,66195E-09<br />
8 1,732050807 1,732050808 2,40402E-10