Está en la página 1de 0

22

3 RACES REALES DE ECUACIONES NO-LINEALES



Sea f: RR. Dada la ecuacin f(x) =0, se debe encontrar un valor real r tal que f(r) =0.
Entonces r es una raz real de la ecuacin

Si no es posible obtener la raz directamente, entonces se debe recurrir a los mtodos numricos
iterativos para calcular r en forma aproximada con alguna precisin controlada. Se han creado
muchos mtodos numricos para resolver este problema clsico, pero con el uso de
computadoras para el clculo, conviene revisar solamente algunos de estos mtodos que tengan
caractersticas significativamente diferentes.

3.1 Mtodo de la biseccin

Sea f: RR. Suponer que f es continua en [a, b], y que adems f(a) y f(b) tienen signos
diferentes. Por continuidad, el intervalo (a, b) contendr al menos una raz real.

El siguiente teorema establece la existencia de la raz r:

Teorema de Bolzano: Si una funcin f es continua en un intervalo [a, b] y f(a) tiene signo
diferente que f(b), entonces existe por lo menos un punto r en (a, b) tal que f(r)=0.
Si adems f'(x) no cambia de signo en el intervalo [a, b], entonces la solucin es nica.

El mtodo de la biseccin es un mtodo simple y convergente para calcular r. Consiste en
calcular el punto medio c=(a+b)/2 del intervalo [a, b] y sustituirlo por el intervalo [c, b] [a, c]
dependiendo de cual contiene a la raz r. Este procedimiento se repite hasta que la distancia
entre a y b sea muy pequea, entonces el ltimo valor calculado c estar muy cerca de r.

Interpretacin grfica del mtodo de la bi seccin



En la figura se puede observar que luego de haber calculado c, para la siguiente iteracin debe
sustituirse el intervalo [a, b] por [c, b] debido a que f(a) y f(c) tienen igual signo y por lo tanto la
raz estar en el intervalo [c, b]

3.1.1 Convergencia del mtodo de la bi seccin

Sean a
i
, b
i
, c
i
los valores de a, b, c en cada iteracin i =1, 2, 3, . . . respectivamente

El mtodo de la biseccin genera una sucesin de intervalos [a, b], [a
1
, b
1
], [a
2
, b
2
], , [a
i
, b
i
]
tales que a a
1
a
2
a
i
constituyen una sucesin creciente y b b
1
b
2
, b
i
una
sucesin decreciente con a
i
< b
i
. Adems por definicin del mtodo: c
i
, r [a
i
, b
i
] en cada
iteracin i
23





Sean d
i
= b
i
a
i
longitud del intervalo [a
i
, b
i
] en la iteracin i=1, 2, 3, . . .
d = b a longitud del intervalo inicial

Recorrido de las iteraciones

Iteracin Longitud del intervalo

1 d
1
= d /2
2 d
2
= d
1
/2 = d/2
2
3 d
3
= d
2
/2 = d/2
3
4 d
4
= d
3
/2 = d/2
4
. . . . . .
i d
i
= d/2
i

Entonces

< i>0
i i i i i
i
i i i
i
d
0 d 0 a b c r | c r |
2
para cualquier valor positivo

Suponer que se desea que el ltimo valor calculado c
i
tenga precisin E = 0.001, entonces si el
algoritmo termina cuando b
i
a
i
< E, se cumplir que |c
i
r| < E y c
i
ser una aproximacin
para r con un error menor que 0.0001


Ejemplo. Calcule una raz real de f(x) = x e
x
- = 0 en el intervalo [0, 2] con precisin 0.01

La funcin f es continua y adems f(0)<0, f(2)>0, por lo tanto la ecuacin f(x)=0 debe contener
alguna raz real en el intervalo [0, 2]

Clculo manual para obtener la raz con el mtodo de la Biseccin

iteracin a b c sign(f(a)) sign(f(c))
inicio 0 2 1 - -
1 1 2 1.5 - +
2 1 1.5 1.25 - +
3 1 1.25 1.125 - +
4 1 1.125 1.0625 - -
5 1.0625 1.125 1.0938 - +
6 1.0625 1.0938 1.0781 - +
7 1.0625 1.0781 1.0703 - -
8 1.0703 1.0781 1.0742

En la ltima iteracin se observa que el intervalo que contiene a la raz se ha reducido a
[1.0703, 1.0781], por lo tanto el ltimo valor calculado de c = 1.0742 debe estar cerca de r con
una distancia no mayor a 0.01



24


3.1.2 Eficiencia del mtodo de l a biseccin

Suponer el caso ms desfavorable, en el que r est muy cerca de uno de los extremos del
intervalo [a, b]:

Sean
i i
E r c = : error en la iteracin i

i 1 i 1
E r c
+ +
= : error en la iteracin i +1


En cada iteracin la magnitud del error se reduce en no ms de la mitad respecto del error en la
iteracin anterior:
i 1 i
1
E E
2
+
. Esta es una relacin lineal. Con la notacin O( ) se puede escribir:
i 1 i
E O(E )
+
= . Entonces, el mtodo de la Biseccin tiene convergencia lineal o de primer orden.

Se puede predecir el nmero de iteraciones que se deben realizar con el mtodo de la Biseccin
para obtener la respuesta con una precisin requerida E:

En la iteracin i : d
i
= d/2
i

Se desea terminar cuando: d
i
< E
Entonces se debe cumplir d/2
i
< E
De donde se obtiene:
log(d / E)
i
log(2)
>

Ejemplo. La ecuacin f(x) = x e
x
- = 0 tiene una raz real en el intervalo [0, 2]. Determine
cuantas iteraciones deben realizarse con el mtodo de la biseccin para obtener un resultado
con precisin E=0.0001.

El nmero de iteraciones que debern realizarse es:
i > log(2/0.0001)/log(2) i >14.287 15 iteraciones


3.1.3 Al goritmo del mtodo de la biseccin

Calcular una raz r real de la ecuacin f(x) = 0 con precisin E.
f es contnua en un intervalo [a, b] tal que f(a) y f(b) tienen signos diferentes

1) Elija el intervalo inicial [a, b]
2) Calcule el punto central del intervalo: c=(a+b)/2
3) Si f(c)=0, c es la raz y termine
4) Si la raz se encuentra en el intervalo [a, c], sustituya b por c
5) Si la raz se encuentra en el intervalo [c, b] sustituya a por c
6) Repita los pasos 2), 3), 4), 5) hasta que la longitud del intervalo [a,b] sea
menor que E.

El ltimo valor calculado c estar aproximadamente a una distancia E de la raz r.
25


3.1.4 Instrumentacin computacional del mtodo de l a bi seccin

Calcular una raz r real de la ecuacin f(x) = 0. f es contnua en un intervalo [a, b] tal que f(a) y
f(b) tienen signos diferentes

Para instrumentar el algoritmo de este mtodo se escribir una funcin en MATLAB. El nombre
ser biseccin. Recibir como parmetros f, a, b, y entregar c como aproximacin a la raz r.

Criterio para salir: Terminar cuando la longitud del intervalo sea menor que un valor pequeo e
especificado como otro parmetro para la funcin. Entonces el ltimo valor c estar
aproximadamente a una distancia e de la raz r.

function c = bi seccion(f, a, b, e)
while b-a >= e
c=(a+b)/2;
if f(c)==0
return
else
if sign(f(a))==sign(f(c))
a=c;
el se
b=c;
end
end
end


Ejemplo. Desde la ventana de comandos de MATLAB, use la funcin bi seccin para calcular
una raz real de la ecuacin f(x) =xe
x
- =0. Suponer que se desea que el error sea menor
que 0.0001.

Por simple inspeccin se puede observar que f es continua y adems f(0) < 0, f(2) > 0. Por lo
tanto se elije como intervalo inicial: [0, 2]. Tambin se puede previamente graficar f.

En la ventana de comandos de MATLAB se escribe:

>> syms x
>> f = x*exp(x)-pi;
>> c = biseccion(inline(f), 0, 2, 0.0001)
c =
1.073669433593750 Este es el resultado calculado
>> subs(f,x,c) Al evaluar f(c) se obtiene un valor cercano a 0
ans =
6.819373368882609e-005


En algunas versiones de MATLAB, la funcin inl ine requiere que la expresin matemtica est
definida como cadena de texto. Se puede usar la funcin char para convertir de tipo simblico
matemtico a cadena de caracteres. Ej.

>> c=biseccion(inline(char(f)), 0, 2, 0.0001)
26


Ejemplo. Encontrar las intersecciones en el primer cuadrante de los grficos de las funciones:
f(x) = 4 + cos(x+1), g(x)=e
x
sen(x).

Primero se grafican las funciones para visualizar las intersecciones:

>> syms x
>> f=4+x*cos(x+1);
>> g=exp(x)*sin(x);
>> ezplot(f,[0,3.5]),grid on,hold on
>> ezplot(g,[0,3.5])
0 0.5 1 1.5 2 2.5 3 3.5
-6
-4
-2
0
2
4
6
8
x
e p( ) s ( )

Las intersecciones son las races de la ecuacin h(x) = f(x) g(x) = 0
El clculo de las races se realiza con el mtodo de la Biseccin con un error menor a 0.0001

>> h=f-g
h =
x*cos(x + 1) - exp(x)*sin(x) + 4
>> c=biseccion(inline(h),1,1.5,0.0001)
c =
1.233726501464844
>> c=biseccion(inline(h),3,3.2,0.0001)
c =
3.040667724609375

También podría gustarte