You are on page 1of 46

Solucin

de Ecuaciones no Lineales

Grupo DESOFMAT
Departamento de Matem<cas

Pereira, 4 de Sep,embre de 2015

Solucin de Ecuaciones no Lineales


Mtodos cerrados:
Mtodos grcos
Mtodo de biseccin
Mtodo de la posicin falsa
Mtodos abiertos
Iteracin simple de punto jo
Mtodo de Newton-Raphson
Mtodo de la secante
Races de polinomios
Mtodo de Mller
Mtodo de Bairstow

Mtodos Grcos
Los mtodos grcos consisten en gracar la funcin f(x) y observar donde la funcin
cruza el eje x.

Encontrar la raz de:

40

x
f(x)
4 34.11488938
8 17.65345264
12 6.066949963
16 -2.268754208
20 -8.400624408

35
30
25
20
15
10
5
0
-5 0
-10
-15

10

15

20

25

Mtodos Grcos
Taller No 1



1. Determine las races reales de: f(x) = 0.5x2 + 2.5x + 4.5 Grcamente. Conrme
u,lizando la frmula cuadr,ca.

2. Determine las races reales de: f(x) = 5x3 5x2 + 6x 2 Grcamente.

Mtodo de Biseccin
Se trata de encontrar los ceros de

f(x) = 0

Donde f es una funcin con,nua en [a,b] con f(a) y f(b) con signos diferentes.

y
f(a)
y = f(x)
bx
a

f(b)

Mtodo de Biseccin
Teorema de Bolzano
Si una funcin f(x) es con,nua en un intervalo cerrado [a,b] y f(a) y f(b) son de signos
contrarios, existe por lo menos un punto entre a y b para el cual f(c)=0.

Teorema de Valor Intermedio
Sea f una funcin con,nua en un intervalo [a,b] . Entonces para cada u tal que
f(a) < u < f(b), existe al menos un c dentro de (a,b) tal que f(c) = u.

Denicin
El mtodo consiste en dividir a la mitad el intervalo y localizar la mitad que con,ene a
p. El procesos se repite hasta la lograr la precisin deseada.

Mtodo de Biseccin
Primera iteracin del algoritmo
y

Mitad del intervalo que


contiene a p

f(a)
y = f(x)
f(p1)
a
p
p1=(a+b)/2

bx
f(b)

Mtodo de Biseccin
y

Mitad del intervalo que


contiene a p

y = f(x)
f(a)
a =p1
f(p2)
p
p2=(a+b)/2

bx
f(b)

Mtodo de Biseccin
Algoritmo biseccin
Entradas: extremos a,b; nmero de iteraciones ni; tolerancia
tol
1. p=a; i=1; eps=1;
2. mientras f(p)0 y i<= ni eps>tol
2.1. pa = p;
2.2. p = (a+b)/2
2.3. si f(p)*f(a)>0 entonces a=p;
2.4. sino
2.5.
si f(p)*f(b)>0 entonces b=p;
2.6. i = i + 1; eps = |p-pa|/p;

Mtodo de Biseccin
double biseccion(double a, double b, double error, int ni){
double p,pa,eps;
int i;
p = a;
i = 1;
eps = 1;
while(f(p) != 0 && i<ni && eps > error){
pa = p;
p = (a+b)/2;
if(f(p)*f(a)>0)
a = p;
else
if(f(p)*f(b)>0)
b = p;
i++;
eps = fabs(p-pa)/p;
}
return p;
}

Mtodo de Biseccin
Ejemplo
2

x + 1 tan(x)
Funcin en C:
double f(x){
return sqrt(x*x + 1) - tan(x);
}

Mtodo de Biseccin
Taller No 2

Realizar funciones en C para encontrar la solucin de las
siguientes ecuaciones u,lizando la funcin biseccion():
1. ex x2 + 3x 2 = 0 para 0 <= x <= 1
667.38
0.146843 x
(
)
f
x
=
1

e
40 = 0
2.
x

Error Mtodo de Biseccin


Para el mtodo de biseccin se sabe que la raz esta dentro del intervalo, la
raz debe situarse dentro de x / 2, donde x = xb xa.
La solucin en este caso es igual al punto medio del intervalo
xr = (xb + xa) / 2
Deber expresarse por
xr = (xb + xa) / 2 x / 2

a =

xrnuevo xranterior

sustituyedo

nuevo
r

100%

a =

xrnuevo xranterior =
xb xa
100%
xb + xa

xb xa
2

xrnuevo =

xb + xa
2

Nmero Iteraciones Mtodo


de Biseccin
El error absoluto en la primera iteracin es:
Ea0 = xb0 xa0 = x 0

El error absoluto en la iteracin n-sima es:


x 0
E = n
2
n
a

Si el error deseado es Ead, El nmero de iteraciones


ser:

x 0
log x 0 / Ead

n=
= log 2
log 2
Ead

Conclusiones Mtodo de
Biseccin
1. Es un mtodo itera<vo , generando una sucesin de aproximaciones.
2. El error de aproximacin disminuye en forma regular, con factor 1/ 2 en cada
paso.
3. El mtodo es robusto , slo requiere la con,nuidad de f y localizar la solucin en
un intervalo donde la funcin cambia de signo.
4, Requiere una evaluacin de f en cada paso.
5. Es rela,vamente lento: se requieren aproximadamente tres pasos para mejorar
la precisin en un dgito decimal.
6. No puede aproximar soluciones donde no hay cambia el signo.
7. En su intervalo de aplicacin puede haber ms de una solucin y no se puede
denir de antemano a qu solucion converge.
8. Es un buen mtodo para una primera aproximacin o como auxiliar de otros ms
potentes.
9. No es aplicable en ecuaciones vectoriales o a valores complejos.

Mtodo de Regula Falsi o


Falsa Posicin
Este mtodo considera cual lmite del intervalo
est ms prximo a la raz. Ahora, necesitamos
saber la ecuacin de la lnea recta que une esos
dos puntos. Para ello nos ayudamos de la
ecuacin punto-pendiente, por eso, hallamos la
pendiente:

m=

f(xu)

f ( x u ) f ( xl )
x u xl


Ahora sus,tuimos en la ecuacin de la recta:

y f xl = m x xl

Pero recordamos que la recta en cues,n corta
el eje x, as que hacemos y=0:

( )

x r = xl

f ( xl ) ( x u xl )
f ( x u ) f ( xl )

xl

xr
xu

f(xl)

f(xr)

Este mtodo esta basado en una visualizacin grca

Mtodo de Regula Falsi o


Falsa Posicin c
oat Regla_falsa (double a,double b, double tol, int iter)
{

double c = a - ((b-a)/(f(b)-f(a)))*f(a);
int i=1;

while ( (f(c) != 0) && ( fabs(b-a) > tol ) && i<=iter ) {

if (f(a) * f(c) < 0.0)
b=c;
else
a=c;

c = a - ((b-a)/(f(b)-f(a)))*f(a);
i++;
}

return c;
}

Mtodo de Regula Falsi o


Falsa Posicin
667.38
0.146843 x
(
)
f
x
=
1

e
40 = 0
Ejemplo Encontrar la raz de:
x

xl
xu
xr
f(xl)
f(xu)
f(xr)
12.0000000 16.0000000 14.9113077 6.0669500 -2.2687542 -0.2542775
12.0000000 14.9113077 14.7941976 6.0669500 -0.2542775 -0.0272572
12.0000000 14.7941976 14.7817001 6.0669500 -0.0272572 -0.0029076
12.0000000 14.7817001 14.7803676 6.0669500 -0.0029076 -0.0003100
12.0000000 14.7803676 14.7802255 6.0669500 -0.0003100 -0.0000330

Mtodo de Regula Falsi o


Falsa Posicin
Taller No 3

Encuentre la raz real de f(x) = (0.8 0.3x)/x, por el mtodo de


falsa posicin. U,lice valores iniciales de 1 y 3, calcule el error
porcentual verdadero en cada iteracin. Encuentre la raz
anali,camente.

Mtodo de Regula Falsi o


Falsa Posicin
Ventajas frente al mtodo de Biseccin

1.

Converge ms rapidamente a la solucin

2.

Un extremo suele permanecer jo

3.

El otro extremo converge a la raz

Inconvenientes frenta al mtodo de Biseccin



1. Para es,mar el error debemos hacerlo con dos aproximaciones consecu,vas
del mismo
2. No hay formula para acotan el orden

Mtodos Abiertos

Los mtodos abiertos se basan


en frmulas que requieren
nicamente de un solo valor de
inicio x o que empiecen con un
par de ellos, pero que no
necesariamente encierran la raz.

Mtodo de Punto Fijo


El Mtodo de Punto Fijo (tambin conocido como iteracin de punto
fijo), es otro mtodo para hallar los ceros de f(x). Para resolver
f(x) = 0, se reordena en una forma equivalente:
f(x) = 0
x - g(x) = 0
x = g(x)
Observe que si c es un cero de f(x), f(c)=0 y c=g(c). (Siempre que
se tenga c=g(c) se dice que c es un punto fijo de la funcin g). Para
aproximar un cero de f se utiliza la iteracin de punto fijo xn+1 =
g(xn) , n = 0, 1, 2, 3, . . .
donde x0 es una aproximacin inicial del cero de f.

Convergencia mtodo de
Punto Fijo
Los conceptos de convergencia y divergencia
se pueden ilustrar grcamente. Si se aplica
dicho mtodo para la funcin f (x)=e
x
x
En la grca parte a) se ilustra dicho caso

Un mtodo grco alterna,vo (mtodo de las
dos curvas) consiste en separar la ecuacin en
dos partes, de esta manera:
f1 (x)= f2 (x)

Entonces las dos ecuaciones

y1 = f1 (x) y y2 = f2 (x)

se gracan por separado grca parte b). As,
los valores de x correspondientes a las
intersecciones de estas dos funciones
representan las races de f (x)=0

Convergencia mtodo de
Punto Fijo
El mtodo de las dos curvas tambin se u,liza
para ilustrar la convergencia y divergencia de
la iteracin de punto jo. En primer lugar, la
ecuacin x=g(x)
se expresa como un par de
ecuaciones y 1 =
x y y2 =g(x)
Estas dos ecuaciones se gracan por separado.

f (x)=0 corresponden
Entonces, las races de
al valor de la abscisa para la interseccin de las
dos curvas. En la grca se ilustran : y1 = x

y cuatro formas diferentes de la funcin

y2 =g(x)

Mtodo de Punto Fijo


Teorema. Unicidad Raz : Si g es con,nua [a, b] y g(x) [a, b] para toda x [a, b],
entonces g ,ene un punto jo en [a, b]. Si adems g(x) existe en (a, b) y una
constante posi,va k < 1 existe con |g(x)| <= k, pata toda x (a, b), Entonces el punto
jo en [a, b] es nico.

|g(x)|<=1
y=x

b
p=g(p)

y = g(x)

|g(x)|>1
y=x

b
p=g(p)

y = g(x)

a
a

Algoritmo de Punto Fijo


Obtener una solucin
aproxiamcin inicial p0.

g(p)

dada

un

ENTRADA aproximacin inicial p0; tolerancia TOL;


nmero mximo de iteraciones N0.
1. Tome i = 1.
2. Mientras i <= N0 hacer
3.
p = g(p0)
4.
Si |p p0| < TOL entonces
5.
Regresar p
6.
i = i +1
7.
p0 = p
8. Fin mientras
9. Imprime El procedimiento fracas despus de N0
iteraciones

Casos de no convergencia
del algoritmo de Punto Fijo
y

y=x

y=x

y = g(x)

y = g(x)
x

Ejemplo del algoritmo de


Punto Fijo
Sea la funcin: x3 + 4x2 10 = 0 ,ene una raz en [1, 2]
Puede despejarse en:
a. x = g1(x) = x x3 4x2 +10
b. x = g2(x) = (10 x3)
c. x = g3(x) = (10/(4 + x))
d. x = g4(x) = x (x3 + 4x2 10)/(3x2 + 8x)

Iteraciones ejemplo
(a)

(b)

(c)

(d)

1 1.5
2 -0.875
3 6.732421875
4 -469.72001200
5 1.02754555E8
6 -1.084933870E24
7 1.277055591E72
8 -2.082712908E216
9 NaN
10
11
12
13
14
15
20
25
30

1.5
1.286953767
1.402540803
1.345458374
1.375170252
1.360094192
1.367846967
1.363887003
1.365916733
1.364878217
1.365410061
1.365137820
1.365277208
1.365205850
1.365242383
1.365229578
1.365230028
1.365230012

1.5
1.348399724
1.367376371
1.364957015
1.365264748
1.365225594
1.365230575
1.365229941
1.365230022
1.365230012
1.365230013
1.365230013

1.5
1.373333333
1.365262014
1.365230013
1.365230013

Grcas en Geogebra

Anlisis del ejemplo


Caso (a)

Caso (b)

g1(x) = x x3 4x2 +10

g2(x) = (10 x3)

g1(x) = 1 3x2 8x

g2(x) = 3/4x2(10 x3)

g1(1) = 11, g1(2) = 28

g2(1) = 0.25, g1(2) = 2.1213

No se cumple |g1(x)| <1

No se cumple |g1(x)| <1

Caso (c)
g3(x) = (10/(4 + x))
g3(x) = ( 5/3.16)(4 + x)1.5
<= ( 5/3.16)(5)1.5 <= 0.15
Para toda x en [1, 2]

Caso (d)

g4(x) = x (x3 + 4x2 10)/(3x2 + 8x)


Se cumple |g4(x)| es an menor que
en el caso (c) para toda x en [1, 2]

Algoritmo punto jo en C
double PuntoFijo(double p0, double tol, int ni){
int i = 1;
double p;
while(i<=ni){
p = f(p0);
if(fabs((p0-p)/p)<tol)
return p;
i++;
p0 = p;
}
std::cout << "NO solucion en :" << ni << iteraciones.\n";
return p;
}

Taller 4
Encontrar la raz ms grande de

f(x) = 2x3 11.7x2 + 17.7x 5

Resolver por el mtodo del punto jo par,endo de x = 3.

Mtodo de Newton - Raphson


Par,mos de una es,macin inicial de la solucin xn y construimos una sucesin
de aproximaciones de forma recurrente para determinar xn+1.

El mtodo de Newton-Raphson es un mtodo abierto, en el sen,do de que no
est garan,zada su convergencia global. La nica manera de alcanzar la
convergencia es seleccionar un valor inicial lo sucientemente cercano a la raz
buscada.
La rela,va cercana del punto inicial a la raz depende mucho de la naturaleza
de la propia funcin; si est presenta ml,ples puntos de inexin o
pendientes grandes en el entorno de la raz, entonces las probabilidades de
que el algoritmo diverja aumentan, lo cual exige seleccionar un valor supuesto
cercano a la raz.

Mtodo de Newton - Raphson


La ecuacin de la recta
tangente es:

f(x)

y f(xn) = f (xn)(x xn)


Cuando y = 0, x = xn+1 o sea
0 f(xn) = f (xn)(xn+1 xn)
o

Pendiente = f (xn)

f (xn)

f ( xn )
xn +1 = xn
f '( x n )

xn+1

xn

Observaciones Mtodo de
Newton - Raphson
Es veloz
Requiere la evaluacin de f y f
f (xn) 0
Elegir xn puede ser delicado
La acotacin del error es complicada
El criterio de parada ms usual es la repe,cin de cifras
Este mtodo se puede generalizar a ecuaciones vectoriales
Si la derivada se anula cerca de la solucin es posible que el
mtodo diverja
El mtodo no es robusto y requiere de condiciones especiales para
asegurar la convergencia

Algoritmo de Newton - Raphson


Para obtener una
aproximacin p0.

solucin

f(x)

ENTRADA aproximacin inicial p0;


nmero mximo de iteraciones N0.

dada

tolerancia

una
tol;

1. i = 1
2. Mientras i<=N0 hacer
2.1. p = p0 f(p0)/f(p0)
2.2. Si |p p0|< tol entonces regrese p
2.3. i = i + 1
2.4. p0 = p
3. fracaso en encontrar la raz en N0 iteraciones

Casos de convergencia deciente


del mtodo de Newton - Raphson

f(x)

f(x)

x1

x0
x2

x0

x2

x1

mnimo local
raz cerca de punto de inflexin
f(x)

f(x)

x1
x0 x

varias races

x0

x1

la iteracin en un mnimo

Ejemplo del mtodo de


Newton - Raphson
f(x) = x cos(x)

f(x) = 1 + sen(x)

pn+1 = pn (pn cos(pn))/(1 + sen(pn))


Tomando p0 = 0, se obtiene
pn
0
1
0.7503639
0.7391128
0.7390851

f(pn)
-1
0.459698
0.0189
0.00005
3E-10

f(pn)
1
1.8414
1.6819
1.6736
1.6736

pn+1
1
0.7503639
0.7391128
0.7390851
0.7390851

Cdigo del mtodo de


Newton Raphson en C
double Newton(double x0, double ee, int ni){
int i = 0;
double x,fx,dfx;
while(i<ni){
fx = f(x0);
dfx = df(x0);
x = x0-fx/dfx;
if(fabs((x-x0)/x)<ee)
return x;
i++;
x0 = x;
}
std::cout << "No solucin en "<< i << " pasos\n";
return x;
}

Taller No 5
Encontrar la solucin de

x3 + 4x2 10 = 0

En el intervalo [1, 2] con el mtodo de Newton

Mtodo de la Secante
Es una variacin del mtodo de Newton-Raphson donde en vez de
calcular la derivada de la funcin en el punto de estudio, teniendo en
mente la denicin de derivada, se aproxima la pendiente a la recta
que une la funcin evaluada en el punto de estudio y en el punto de la
iteracin anterior.

Este mtodo es de especial inters cuando el coste computacional de
derivar la funcin de estudio y evaluarla es demasiado elevado, por lo
que el mtodo de Newton no resulta atrac,vo.

Mtodo de la Secante

El mtodo se dene por la relacin de recurrencia:


xn+1 = xn

xn xn1
f ( xn )
f ( xn ) f ( xn1 )

Taller No 6
Implementacin en C del mtodo de la secante

Informacin de contacto

Luis Fernando Alvarez Velasquez


lfalvare@utp.edu.co

You might also like