You are on page 1of 39

RESOLUCION DE ECUACIONES NO LINEALES

CALCULO DE RAICES DE UNA ECUACION

INTRODUCCION.

DETERMINACION DE LOS VALORES INICIALES.

METODO DEL PUNTO FIJO.

METODO DE BISECCION O BIPARTICION.

METODO DE LA REGULA FALSI.

METODO DE LA SECANTE.

METODO DE NEWTON-RAPHSON O DE LA TANGENTE.

RAICES DE POLINOMIOS.

EVALUACION DE UN POLINOMIO Y DE SUS DERIVADAS.

METODO DE NEWTON PARA POLINOMIOS.

RAICES DOBLES.

OBTENCION DE TODAS LAS RAICES REALES DE UN POLINOMIO.

DEFLACION DIRECTA E INVERSA.

RAICES COMPLEJAS. METODO DE BAIRSTOW.

EJEMPLOS DE APLICACIÓN.
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

RESOLUCION DE ECUACIONES NO LINEALES


CALCULO DE RAICES DE UNA ECUACION

INTRODUCCION

De forma general una ecuación de la cual se quieren calcular sus raíces se puede escribir en la
forma f ( x) = 0 , por lo que a las raíces también se las denominan ceros de la ecuación.

Existen diversas formas de expresar el problema anterior según convenga al algoritmo que
empleemos para su resolución. Es frecuente el paso de algunos términos de f (x) al segundo
miembro quedando g ( x) = h( x) por lo que los ceros de la ecuación pasan a ser puntos de
intersección de dos funciones.

Otra forma que puede adoptarse es la u ( x) = x bien aislando la variable en el segundo miembro
o bien sumando x a ambos lados de la ecuación f ( x) = 0 :

f ( x) + x = u ( x)
 ⇒ u ( x) = x
0+ x = x 

El problema de su resolución consiste para una ecuación dada, en encontrar el valor o valores de
la variable x que satisfacen la ecuación, es decir x0 es una raíz, solución, cero de f ( x) = 0 , si y
sólo si f ( x0 ) = 0.

Salvo en el caso de ecuaciones polinómicas de grado inferior a cinco para las que existen
soluciones algebraicas o problemas muy sencillos en los que se puede despejar la variable x, no
se pueden obtener las soluciones sin recurrir a un método numérico.

En general, los métodos numéricos de resolución serán del tipo iterativo, consistiendo en obtener
una sucesión de valores x1 , x 2 , …, x n , x n +1 , … que converjan a la solución del problema.

Para la construcción de la sucesión anterior se empleará una fórmula de recurrencia o de


iteración que en general podrá expresarse como:

x n +1 = F ( x n , x n −1 ,… , x n − k +1 ) para n = k , k + 1,…

que permite obtener un nuevo valor de la sucesión en función de otros valores conocidos, por
supuesto para iniciar el proceso y calcular x k +1 es preciso conocer los k valores iniciales
x1 , x 2 ,… , x k a elegir en base a las condiciones del problema o incluso de forma arbitraria.

El número de valores iniciales y la forma de realizar las iteraciones dependen de cada uno de los
métodos particulares que describiremos a continuación.
Por otra parte, en general no podremos calcular el límite de la sucesión anterior cuando n → ∞
por lo que habremos de truncar el proceso en un determinado valor x k +i que será el valor
adoptado como solución del problema después de aplicar la fórmula de recurrencia i veces, se
dice entonces que hemos realizado un número i de iteraciones.

1
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

Desde un punto de vista numérico, es casi imposible conseguir la igualación a cero de la


ecuación f ( x) = 0 al trabajar con números reales redondeados a un determinado número de
cifras. Por este motivo la caracterización de los ceros de la ecuación f ( x) = 0 o cualquiera de
sus otras formas equivalentes, se reduce a la comprobación de la condición:

x0 raiz de f ( x) = 0 ⇒ f ( x) < ε

en donde ε es la cota de error fijada de antemano y tan pequeña como queramos.

Obsérvese que la implicación no es cierta en sentido contrario, pues si consideramos una cota de
error ε = 10 −4 para la resolución de la ecuación x 2 − 2 ⋅ x + 1.00001 = 0 :

f ( x) = ( x − 1) 2 + 10 −5 = x 2 − 2 ⋅ x + 1.00001 > 0 ∀x ∈ ℜ

estaríamos introduciendo valores como x = 1 en los que f (1) = 10 −5 < 10 −4 = ε y que por tanto
serian considerados soluciones del problema.

Por razonamientos análogos a los anteriores llegaríamos a que la ecuación e x = 0 resuelta con
una calculadora de ocho dígitos en notación científica tiene un cero en x = −228 (en realidad
cualquier valor menor que el anterior cumple la condición), cosa que no es cierta pues se verifica
que e x > 0 ∀x ∈ ℜ.

Otra forma de caracterizar los ceros, aplicable a la condición de finalización de los procesos
iterativos, es la de determinar el intervalo comprendido entre dos valores sucesivos de la variable
x donde necesariamente ha de encontrarse la raíz, indicado mediante:

xi +1 − xi < ξ

que es válida si se puede interpretar como que la solución se encuentra entre xi y xi +1 con una
cota de error, precisión o amplitud del intervalo ξ . En otros casos puede llevar a resultados
confusos como los indicados anteriormente.

Por último comentar que si bien la estimación del error relativo puede ser de gran interés y
precisión, también plantea problemas cuando existen raíces distintas pero muy próximas entre si.

xi +1 − xi

xi

2
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

DETERMINACION DE LOS VALORES INICIALES

Para adoptar los valores de partida adecuados, conviene tener al menos una idea aproximada de
donde pueden encontrarse las raíces o ceros buscados.

A tal fin conviene:

o Representar las gráficas de las funciones.

Esto nos proporcionará el número de raíces reales (que en general son las que queremos
calcular) y su localización aproximada, siendo entonces nuestro objetivo determinarlas
con una precisión adecuada.

o Aplicar ideas básicas del Cálculo.

Teorema de Bolzano.- Si f (x) es continua en el intervalo cerrado [a, b] y se verifica que


f (a) ⋅ f (b) < 0 existe al menos un x0 ∈ (a, b ) / f ( x0 ) = 0.

Por otra parte también es interesante tener en cuenta que si f ( x) = g 1 ( x) − g 2 ( x) y los


ceros de f ( x) = 0 son las soluciones de g1 ( x) = g 2 ( x) siendo ambas derivables, una raíz
x0 de f ( x) = 0 es simple si y sólo si g1′ ( x0 ) ≠ g 2′ ( x0 ) . Es decir, si las gráficas de g1 ( x)
y g 2 ( x) no son tangentes en el punto x0 .

Consideremos la ecuación cos( x) = α ⋅ x con α > 0 , como cos( x) ≤ 1 , existe un número finito
de raíces y todas ellas son de módulo menor de α −1 . En concreto puede observarse a partir de la
gráfica que si α = 0.07958 hay nueve raíces simples en el intervalo [− 4 ⋅ π ,4 ⋅ π ] .

Raices de la ecuación cos(x)= α x

¾ alpha:=0.07958;Xmax:=1/alpha;

α := 0.07958
Xmax := 12.56597135

Representación gráfica

¾ plot([cos(x),alpha*x],
¾ x=-5*Pi..5*Pi,
¾ colour=[blue,red]);

3
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

Representación de detalle en extremo superior

¾ plot([cos(x),alpha*x],
¾ x=3.9*Pi..4.1*Pi,
¾ colour=[blue,red]);

4
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

x
Por otra parte 1 − e − x = tiene dos raíces simples, una en x = 0 como es fácil de comprobar y
5
otra en las proximidades de x = 5 como se puede observar en la representación gráfica adjunta.
Además a partir del análisis de la gráfica y de consideraciones analíticas puede deducirse que
ninguna de las raíces es múltiple.

METODO DEL PUNTO FIJO

Si en la ecuación f ( x) = 0 procedemos a aislar la variable x, podemos escribirla en la forma


x = g (x) , se tratará de obtener un valor de x que sea invariante, es decir un punto fijo.

La operación anterior se puede realizar de muchas formas, sirva como ejemplo que en la
ecuación x 2 − 5 ⋅ x + 6 = 0 se pueden efectuar las siguientes transformaciones:

x = 5⋅ x − 6

x2 + 6
x=
5

x = x + (x 2 − 5 ⋅ x + 6) = x 2 − 4 ⋅ x + 6

x2 − 5 ⋅ x + 6
x= x−
2⋅ x −5

f ( x)
en donde la última transformación proviene de la igualdad x = x − .
f ′( x)
Es importante advertir que según la forma de aislar x, el método iterativo puede converger más o
menos rápidamente o bien ser divergente.
5
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

Desde un punto de vista geométrico la resolución de x = g (x) se puede interpretar como la


búsqueda del punto de intersección de la recta y = x con la curva y = g ( x) .

El procedimiento se inicia con un valor de y = x0 con este valor se calcula


g ( x0 ) → x1 = g ( x0 ) procediendo así de forma reiterada obteniendo x 2 = g ( x1 ) y en general
x n +1 = g ( x n ) .

Y y=x

x1
y = g(x)
g(x 0 )

X
x0

La condición de finalización será x n +1 − x n = g ( x n ) − x n < δ , siendo δ la cota de error


admitida.

Si la sucesión {x n } es tal que Lim x n = ε entonces se verifica que ε = g (ε ) y ε será una raíz de
n →∞
la ecuación dada.

Se puede comprobar que si g ′(ε ) > 1 el método es inestable y divergente, mientras que cuanto
menor sea g ′(ε ) más rápida será la convergencia.

Ejemplo 1.- Consideremos la ecuación representada gráficamente con anterioridad y ordenada


adecuadamente para su resolución por el método del punto fijo:

Y1 := x
x = g (x ) → x = 5 ⋅ 1 − e − x ( ) ⇒ 
( −x
)
Y 2 := 5 ⋅ 1 − e

Se puede comprobar que esta tiene un valor bajo de g ′(ε ) en las proximidades del posible punto
fijo estimado a partir de la gráfica:

g ′( x ) = 5 ⋅ e − x ⇒ ε ≅ 5 → g ′(ε ) ≅ 0.034 < 1

A continuación se adjunta un algoritmo en MAPLE para resolver por el método del punto fijo la
( )
ecuación x = 5 ⋅ 1 − e − x .

6
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

Funciones a evaluar

> Y1:=x;Y2:=5*(1-exp(-x));
Y1 := x
( −x )
Y2 := 5 − 5 e
Valor de arranque y número de dígitos

> Digits:=10;X[0]:=0.01;
Digits := 10
X0 := 0.01

Resolución

> for k from 1 to 20 do


> X[k]:=evalf(subs(x=X[k-1],Y2));
> if abs(X[k]-X[k-1])<1*10^(-10) then X:=X[k];k:=21 fi;
> od;
X1 := 0.049750832

X2 := 0.242667650

X3 := 1.077338952

X4 := 3.297497954

X5 := 4.815122168

X6 := 4.959468842

X7 := 4.964916731

X8 := 4.965107341

X9 := 4.965113991

X10 := 4.965114223

X11 := 4.965114231

X12 := 4.965114232

X13 := 4.965114232

Resultado obtenido

> X:=evalf(X,10);
X := 4.965114232

7
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

Ejemplo 2.- El cálculo de las raíces de f ( x) = x 3 − 2 ⋅ x + 1 es inestable en las proximidades de


ε = 1 si consideramos la ecuación en la forma:

x = x + f (x ) = x 3 − x + 1

pues en este caso g ( x ) = x 3 − x + 1 ⇒ g ′( x) = 3 ⋅ x 2 − 1 → g ′(1) = 2 > 1.

Sin embargo es estable el problema planteado en la forma equivalente:

f ( x) x3 − 2 ⋅ x + 1
x= x− = x− = x − x3 + 2 ⋅ x −1 = −x3 + 3 ⋅ x −1
f ′(1) [3 ⋅ x − 2] x =1
2

para el que g ( x ) = − x 3 + 3 ⋅ x − 1 ⇒ g ′( x) = −3 ⋅ x 2 + 3 → g ′(1) = 0 < 1.

En el algoritmo siguiente se observa que si el valor inicial está comprendido entre cero y uno
siempre se aproxima a la raíz 0.6180339888, para valores iniciales mayores de uno diverge y
para valores iniciales exactamente iguales a cero o a uno el algoritmo converge a la otra raíz
1.0000000000.

> Y1:=x;Y2:=x+(x^3-2*x+1);
Y1 := x
Y2 := −x + x 3 + 1
Valor de arranque y número de dígitos

Digits:=10;X[0]:=0;
Digits := 10
X0 := 0

Resolución

> for k from 1 to 20 do


> X[k]:=evalf(subs(x=X[k-1],Y2));
> if abs(X[k]-X[k-1])<1*10^(-10) then X:=X[k];k:=21 fi;
> od:

Resultado obtenido

> X:=evalf(X,10);
X := 1.

Como conclusión de lo expuesto anteriormente se deduce la conveniencia de estimar a priori


g ′(ε ) a través de f ′(ε ) adoptando la transformación:

1
x = g ( x) = x − λ ⋅ f ( x) siendo λ ≅
f ′(ε )

8
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

de este modo g ′(ε ) < 1 y se asegura la convergencia. Lo anterior sólo plantea problemas en el
caso de que f ′(ε ) ≅ 0 o incluso f ′(ε ) = 0 como es el caso de las raíces múltiples.

METODO DE BISECCION O BIPARTICION

Se basa en la aplicación reiterada del Teorema de Bolzano y es siempre convergente.

x 0 + x1
f(x) x2 =
2

x2 x1
x0 X

Si f (x) es una función continua en el intervalo [x0 , x1 ] y verifica que f ( x0 ) ⋅ f ( x1 ) < 0 ,


podemos partir el intervalo por la mitad considerando:

x0 + x1
x2 =
2

puede ocurrir que exactamente f ( x 2 ) = 0 de manera que habremos obtenido una raíz de forma
directa, en caso contrario los intervalos [x 0 , x 2 ] y [x 2 , x1 ] son de una amplitud mitad de la
inicial y en uno de ellos que pasaremos a denominar [x min , x max ] se verifica que
(1)

f ( x min ) ⋅ f ( x max ) < 0 por lo que podremos volver a aplicar el Teorema de Bolzano obteniendo
un:

(1) x min + x max


xm =
2

de manera que en cada iteración i sustituiremos el extremo superior o inferior del intervalo por el
(i )
correspondiente valor de x m en base a las condiciones anteriormente expuestas.

La aplicación reiterada (n – veces) del procedimiento anterior nos conduce bien a un cero, bien a
un intervalo [x min , x max ] , en donde el superíndice indica el número de iteraciones, que será de
(n)

amplitud 2 ⋅ ε tan pequeña como se desee y en cuyo interior debe existir una raíz x f de
f ( x) = 0 .

9
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

El punto medio de este intervalo:

(n) x min + x max


xm =
2

es tal que estimará el cero de f (x) con un error absoluto prefijado menor de ε :

− xf < ε .
(n)
xm

Ejemplo.- Obtener las raíces positivas de la función f ( x) = x x − 2 con una precisión ε = 10 −9


utilizando el método de bipartición.

El algoritmo adjunto permite efectuar lo cálculos tomando como intervalo inicial de búsqueda el
[1,2] obteniendo el valor de x f = 1.559610470 después de 31 iteraciones.

Número de dígitos. Definición de la función


> Digits:=10;f:=x->x^x-2;
Digits := 10
f := x → x x − 2
Intervalo de búsqueda
> Xmin:=1;Xmax:=2;
Xmin := 1
Xmax := 2
Comprobación de la validez del intervalo de búsqueda por BOLZANO.
> if evalf(f(Xmin)*f(Xmax))<0 then "Intervalo Válido" else
"Modifique el intervalo de búsqueda" fi;
"Intervalo Válido"
Proceso de cálculo

> for k from 1 to 100 do


> Xm:=evalf((Xmin+Xmax)/2);
> if abs(Xmax-Xmin)<2*10^(-9) or evalf(f(Xm))=0 then
Xf:=Xm;Contador:=k;k:=101 fi;
> if evalf(f(Xm)*f(Xmax))<0 then Xmin:=Xm else Xmax:=Xm fi;
> od:

Número de iteraciones
> Iteraciones:=Contador;
Iteraciones := 31
Resultado final
> Resultado:=evalf(Xf,10);
Resultado := 1.559610470

10
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

METODO DE LA REGULA FALSI

En esencia es similar al anterior pero se cambia la elección del punto medio por el punto de
intersección con el eje X de la recta secante o cuerda correspondiente a los extremos del
intervalo en cada iteración.

Recta secante
f(x)

xk X
xi x

La obtención de nuevos valores x se realiza mediante la expresión de la recta que pasa por (x,0)
y tiene la pendiente proporcionada por los extremos del intervalo, es decir:

f ( x k ) − f ( xi )
0 − f ( xi ) = ⋅ ( x − xi )
x k − xi

De donde despejando x se obtiene:

x k − xi
x = xi − ⋅ f ( xi )
f ( x k ) − f ( xi )

Debiendo verificarse en alguno de los nuevos intervalos [xi , x ] o [x, x k ] las condiciones del
Teorema de Bolzano.

Para funciones f (x) prácticamente lineales f ′′( x) ≅ 0 , este método aventajará al de bipartición
en efectividad. Para valores de f ′′(x) elevados, la convergencia puede ser lenta. Por otra parte si
f ′′(x) tiene su signo constante en todo el intervalo de búsqueda (caso de la gráfica superior),
uno de los extremos (xi) permanecerá fijo a lo largo del proceso iterativo.

Ejemplo.- Obtener las raíz de la función f ( x) = e x − cos( x) situada en el intervalo [− 2,−1] con
un error absoluto menor de ε = 10 −9 , utilizando la regula falsi.

Mediante el algoritmo adjunto y tras un total de 13 iteraciones, se obtiene la raíz:

x = −1.292695719

Indicar que por el método de bipartición son necesarias 31 iteraciones.

11
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

Número de dígitos. Definición de la función


> Digits:=11;f:=x->exp(x)-cos(x);
Digits := 11
f := x → e x − cos( x )
Intervalo de búsqueda
> Xmin:=-2;Xmax:=-1;
Xmin := -2
Xmax := -1
Comprobación de la validez del intervalo de búsqueda por BOLZANO.
> if evalf(f(Xmin)*f(Xmax))<0 then "Intervalo Válido" else
"Modifique el intervalo de búsqueda" fi;
"Intervalo Válido"
Proceso de cálculo

> for k from 1 to 100 do


> X:=evalf(Xmin-((Xmax-Xmin)*f(Xmin)/(f(Xmax)-f(Xmin))));
> if abs(Xmax-Xmin)<10^(-9) or evalf(f(X))=0 then
XF:=X;Contador:=k;k:=101 fi;
> if evalf(f(X)*f(Xmax))<0 then Xmin:=X else Xmax:=X fi;
> od:

Número de iteraciones
> Iteraciones:=Contador;
Iteraciones := 13
Resultado final
> Resultado:=evalf(XF,10);
Resultado := -1.292695719

Es importante en este algoritmo considerar Digits:=11, dado que en caso contrario reralizará mas
iteraciones de las necesarias.

De igual forma se realizarán más iteraciones de las necesarias cuando f ′′(x) sea de signo
constante en el intervalo de búsqueda. Esto es debido a la condición de finalización adoptada:

abs(Xmax-Xmin)<10^(-9)

que puede ser sustituida por:

abs(f(X))<10^(-9)

o bien reprogramar el algoritmo para considerar la diferencia entre dos iteraciones consecutivas
en la forma que es la más aconsejable.

abs(X[n]-X[n-1])<10^(-9)

12
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

METODO DE LA SECANTE

El proceso iterativo se puede considerar como una variante de la regula falsi, pero en este caso
la comprobación del Teorema de Bolzano sólo se realiza en el intervalo inicial. Por este motivo
es posible, como en el gráfico adjunto, que la secante proporcione puntos situados fuera del
intervalo inicial de búsqueda y el proceso puede llegar a ser divergente.

f(x)

x n-2 x n-1 xn
X
a b

El proceso iterativo se inicia por la elección de un intervalo [a,b], en el cual la función f(x) es
contínua y verifica que f (a ) ⋅ f (b) < 0 . A partir de ese momento cada nuevo punto se obtiene en
función de los dos anteriores por la intersección de la recta secante con el eje X, según el
esquema adjunto.

xn −1 − xn −2
x0 = a x1 = b → xn = xn −1 − ⋅ f ( xn −1 )
f ( xn −1 ) − f ( xn −2 )

siendo n ≥ 2.

La condición de finalización será la correspondiente a una sucesión de valores debiendo


verificarse que xn − xn −1 < ε . Aunque puede tomarse f ( xn ) − 0 < δ esta plantea problemas en
algunos casos como ya se comentó.

Ejemplo.- Obtener las raíz de la función f ( x) = e x − cos( x) situada en el intervalo [− 2,−1] con
un error absoluto menor de ε = 10 −9 , utilizando el método de la secante.

Mediante el algoritmo adjunto y tras un total de 7 iteraciones, se obtiene la raíz:

x = −1.292695719

Indicar que por el método de bipartición son necesarias 31 iteraciones y según hemos visto en el
de la regula falsi son necesarias 13 iteraciones.

13
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

Número de dígitos. Definición de la función


> Digits:=10;f:=x->exp(x)-cos(x);
Digits := 10
f := x → e x − cos( x )
Intervalo de búsqueda
> X[0]:=-2;X[1]:=-1;
X0 := -2

X1 := -1

Comprobación de la validez del intervalo de búsqueda por BOLZANO.


> if evalf(f(X[0])*f(X[1]))<0 then "Intervalo Válido" else
"Modifique el intervalo de búsqueda" fi;
"Intervalo Válido"
Proceso de cálculo
> for n from 2 to 100 do
> X[n]:=evalf(X[n-1]-((X[n-1]-X[n-2])*f(X[n-1])/(f(X[n-1])-f(X[n-
2]))));
> if abs(X[n]-X[n-1])<10^(-9) or evalf(f(X[n]))=0 then
XF:=X[n];Contador:=n;n:=101 fi;
> od;
X2 := -1.238184387

X3 := -1.302373885

X4 := -1.292473675

X5 := -1.292694870

X6 := -1.292695719

X7 := -1.292695719

Número de iteraciones
> Iteraciones:=Contador;
Iteraciones := 7
Resultado final
> Resultado:=evalf(XF,10);
Resultado := -1.292695719

Nota.- La comprobación de la validez del intervalo de búsqueda, sólo tiene relación con el hecho
de que podamos asegurar la existencia de una raíz. Los dos puntos de partida necesarios para el
inicio del proceso iterativo pueden ser tomados distintos de los anteriores. Hay casos como en
los que la curva es tangente al eje X, como x10 , en los que no se pueden encontrar dos puntos que
verifiquen Bolzano y sin embargo la función se anula en x = 0.

14
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

METODO DE NEWTON-RAPHSON O DE LA TANGENTE

Se trata posiblemente del método más utilizado para el cálculo de raices, aunque presenta el
inconveniente de tener que conocer y evaluar la derivada en cada punto proporcionado por el
proceso iterativo.

La idea consiste en reemplazar la función f ( x ) por una aproximación lineal de la misma


proporcionada por la recta tangente, lo que equivale sencillamente a aproximar la función
mediante el desarrollo de la serie de Taylor hasta la primera derivada.

f ′( x ) f ′′¨( x ) 2 f ′( x )
f ( x + h) = f ( x ) + ⋅h + ⋅ h + … ≅ f ( x) + ⋅h
1! 2! 1!

f ( x)
en donde para obtener un punto en donde f ( x + h ) = 0 → h ≅ − .
f ′( x )

A partir de dicha recta tangente, cada nuevo punto se obtiene por intersección de la misma con el
eje X, según el gráfico adjunto. Si en concreto consideramos un punto inicial de coordenadas
( x0 , f ( x0 ) ) se tiene la recta tangente:

y − f ( x0 ) = f ′( x0 ) ⋅ ( x − x0 )

f ( x0 )
que corta al eje X ( y = 0 ) en el punto x1 = x0 − .
f ′( x0 )

f(x)
X
xi
x i+1

Repitiendo el proceso con las correspondientes tangentes se tiene el esquema iterativo:

f ( xn −1 )
xn = xn −1 − n ≥ 1.
f ′( xn −1 )

El método converge con gran rapidez en general, aunque plantea problemas de elección del valor
inicial x0 , sobre todo si en dicho punto la derivada f ′( x0 ) se anula. De igual forma podemos
tener problemas de convergencia si a lo largo del proceso iterativo obtenemos puntos con
derivadas muy pequeñas o nulas.

La condición de finalización será la correspondiente a una sucesión de valores debiendo


verificarse que xn − xn −1 < ε . Aunque puede simplificarse tomando f ( xn ) − 0 < δ .

15
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

Ejemplo.- Obtener las raíz de la función f ( x) = e x − cos( x) situada en el intervalo [− 2,−1] con
un error absoluto menor de ε = 10 −9 , utilizando el método de la secante.

Mediante el algoritmo adjunto y tras un total de 3 iteraciones, se obtiene la raíz:

x = −1.292695720

Indicar que por el método de bipartición son necesarias 31 iteraciones y según hemos visto en el
de la regula falsi son necesarias 13 iteraciones y en el de la secante 7 iteraciones.

Definición de la función y su derivada.


> F:=x->exp(x)-cos(x);DF:=D(F);
F := x → e x − cos( x )
DF := x → e x + sin( x )
Valor inicial y precisión.
> X[0]:=-2;
X0 := -2

Proceso de cálculo.
> for n from 1 to 100 do
> X[n]:=evalf(X[n-1]-(F(X[n-1])/DF(X[n-1])));
> if abs(F(X[n]))<10^(-9) then XF:=X[n];Contador:=n;n:=101 fi;
> od;
X1 := -1.287455951

X2 := -1.292706823

X3 := -1.292695720

Resultados.
> Iteraciones:=Contador;
Iteraciones := 3
> Resultado:=XF;
Resultado := -1.292695720
> Error:=evalf(F(XF));
Error := 0.4 10 -9

16
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

RAICES DE POLINOMIOS

Un caso particular del problema de resolver ecuaciones no lineales, es el de la obtención de


raíces de un polinomio.

El problema consiste en dado un polinomio p(x) de grado n , encontrar raíces del mismo, es
decir valores que anulan el polinomio p( x) = 0 . Esta cuestión plantea un cierto interés desde el
punto de vista matemático, sirvan como ejemplo el Teorema Fundamental del Algebra de
D’Alembert-Gauss, o los resultados obtenidos por Galois que caracterizó los polinomios que son
resolubles por radicales y demostró la imposibilidad genérica de hacerlo para n ≥ 5 .

Además los polinomios tienen una serie de peculiaridades como son las siguientes:

o Todo polinomio de grado n tiene n raíces reales o complejas.

o Si un polinomio de coeficientes reales tiene una raíz compleja a + b ⋅ i , entonces


también tiene la conjugada a − b ⋅ i .

o Una consecuencia de lo anterior es la de que si un polinomio de coeficientes


reales es de grado impar tendrá al menos una raíz real.

Otra peculiaridad del problema consiste en que al tratarse de una función polinómica es
relativamente sencillo evaluarla así como evaluar sus derivadas sucesivas. Téngase en cuenta
que se trata de funciones continuas e infinitas veces derivables, aunque a partir de la derivada de
orden n+1, todas son idénticamente nulas como es fácil de comprobar.

Normalmente se desean calcular todas las raíces del polinomio, lo cual es un problema en sí,
puesto que además de raíces complejas, puede haber raíces múltiples y entonces es necesario
conocer el orden de multiplicidad de las mismas.

En resumen, los métodos generales de resolución de ecuaciones no lineales son aplicables a


polinomios adaptándolos para evaluar el polinomio y sus derivadas, no obstante, continuación se
desarrollan métodos específicos.

17
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

EVALUACION DE UN POLINOMIO Y DE SUS DERIVADAS

Sea un polinomio p ( x ) de grado n que escribiremos en la forma:

p ( x ) = a0 ⋅ x n + a1 ⋅ x n −1 + + an −1 ⋅ x + an

si se desea calcular el valor del polinomio en x = z , obviamente no hay más que sustituir y
efectuar las operaciones:
( n −1 productos ) ( n − 2 productos )
p ( z ) = a 0 ⋅ [z ⋅ z z ⋅ z ]+ a1 ⋅ [z ⋅ z z ⋅ z ]+ … + a n −1 ⋅ [z ] + a n

pero como es sabido ésta no es la forma más económica de evaluar el polinomio. Es más
conveniente hacer la siguiente consideración:
p ( x ) = ( x − z ) ⋅ Q1 ( x ) + R1

donde Q1 ( x ) y R1 son respectivamente el cociente y el resto de la división del polinomio por el

factor ( x − z ) . Al sustituir x = z , se tiene:

p ( z ) = ( z − z ) ⋅ Q1 ( z ) + R1 = R1

Por lo tanto una forma alternativa de evaluar un polinomio en un punto x = z consiste en


efectuar la división por el factor ( x − z ) (división sintética o esquema de Horner):

a0 ⋅ x n + a1 ⋅ x n −1 + + an −1 ⋅ x + an = ( b0 ⋅ x n −1 + b1 ⋅ x n − 2 + + bn − 2 ⋅ x + bn −1 ) ⋅ ( x − z ) + R1

identificando coeficientes en la igualdad anterior se tiene:


a 0 = b0  b0 = a 0
a1 = b1 − b0 ⋅ z  b = a + b ⋅ z
  1 1 0

a 2 = b2 − b1 ⋅ z  b2 = a 2 + b1 ⋅ z
 
⇒
a n − 2 = bn − 2 − bn −3 ⋅ z  bn − 2 = a n − 2 + bn −3 ⋅ z
 
a n −1 = bn −1 − bn − 2 ⋅ z  bn −1 = a n −1 + bn − 2 ⋅ z
a n = R1 − bn −1 ⋅ z   R1 = a n + bn −1 ⋅ z

fórmulas que permiten obtener los coeficientes del polinomio cociente Q1 ( x ) y el valor del resto

R1 :
b0 = a0

bi = ai + bi −1 ⋅ z , i = 1, 2,… , n − 1

R1 = an + bn −1 ⋅ z

18
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

no obstante si solamente nos interesa el valor del polinomio en x = z , no hace falta almacenar
los bi , aunque si es preciso obtenerlos, ya que el valor será p ( z ) = R1 .

Punto de evaluación del polinomio


x := z
Valor de arranque
y := a 0

Proceso de cálculo
y := ai + y ⋅ z i = 1… n

Resultado de la evaluación del polinomio en x = z


[ p( z ) = R1 ] := y

Desde un punto de vista matemático la expresión y := ai + y ⋅ z , para i = 1… n , puede que


carezca de sentido. No obstante desde un punto de vista algorítmico, se trata de una sentencia de
asignación que va tomando los siguientes valores:

Valor de arranque y := a0
i =1 y := a1 + a 0 ⋅ z
i=2 y := a 2 + ( a1 + a 0 ⋅ z ) ⋅ z = a 2 + a1 ⋅ z + a 0 ⋅ z 2
i=3 y := a 3 + ( a 2 + ( a1 + a 0 ⋅ z ) ⋅ z ) ⋅ z = a 3 + a 2 ⋅ z + a1 ⋅ z 2 + a 0 ⋅ z 3

i=n y := a n + a n −1 ⋅ z + … + a 2 ⋅ z n − 2 + a1 ⋅ z n −1 + a 0 ⋅ z n = R1 = p ( z )

Para evaluar las derivadas sucesivas del polinomio se sigue un esquema similar, consideremos el
desarrollo de Taylor de p ( x ) en x = z :

p '( z ) p '' ( z ) pn) ( z )


p ( x) = p ( z ) + ⋅( x − z) + ⋅( x − z) + ⋅( x − z)
2 n
+
1! 2! n!

no hay término de error pues las derivadas de orden superior a n son idénticamente
nulas p n +1) ( x ) = 0 , etc.

19
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

Por lo tanto se puede poner, sacando factor común ( x − z ) de los términos correspondientes, que:

 p ' ( z ) p '' ( z ) p n) ( z ) n −1 
p ( x) = p ( z) + ( x − z) ⋅  + ⋅( x − z) + + ⋅( x − z) 
 1! 2! n! 
Denominando:
p ' ( z ) p '' ( z ) p n) ( z )
Q1 ( x ) = ⋅( x − z) + ⋅( x − z)
n −1
+ +
1! 2! n!
se obtiene:
p ( x ) = p ( z ) + ( x − z ) ⋅ Q1 ( x )

A su vez tendremos que:

p '( z )  p '' ( z ) p ''' ( z ) pn) ( z ) n−2 


Q1 ( x ) = + ( x − z)⋅  + ⋅( x − z) + + ⋅( x − z) 
1!  2! 3! n! 

Llamando
p '' ( z ) p ''' ( z ) pn) ( z )
Q2 ( x ) = ⋅( x − z) + ⋅( x − z)
n−2
+ +
2! 3! n!
se obtiene
p '( z )
Q1 ( x ) = + ( x − z ) ⋅ Q2 ( x )
1!
De manera que repitiendo el proceso n veces:

p ( x ) = p ( z ) + ( x − z ) ⋅ Q1 ( x )

p '( z )
Q1 ( x ) = + ( x − z ) ⋅ Q2 ( x )
1!

p '' ( z )
Q2 ( x ) = + ( x − z ) ⋅ Q3 ( x )
2!

p n −1) ( z ) p n) ( z )
Qn −1 ( x ) = + ( x − z ) ⋅ Qn ( x ) ; Qn ( x ) =
( n − 1) ! n!

donde Q1 ( x ) , Q2 ( x ) ,… , Qn ( x ) son los cocientes de dividir sucesivamente por ( x − z ) :

p ( x ) = R1 + ( x − z ) ⋅ Q1 ( x ) ; Q1 ( x ) = R2 + ( x − z ) ⋅ Q2 ( x ) ; …
20
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

y por tanto los restos de las divisiones sucesivas permiten obtener las derivadas en x = z a través
de las relaciones:

p ( z ) = R1 ; p ' ( z ) = 1 ! ⋅ R2 ; p '' ( z ) = 2 ! ⋅ R3 ; …

Para efectuar cada uno de los cocientes se utiliza el esquema de división sintética expuesto
anteriormente.

Supongamos que se quiere calcular el polinomio y sus dos primeras derivadas en un punto
x=z:

a0 ⋅ x n + a1 ⋅ x n −1 + + an −1 ⋅ x + an = ( b0 ⋅ x n −1 + b1 ⋅ x n − 2 + + bn − 2 ⋅ x + bn −1 ) ⋅ ( x − z ) + R1

b0 ⋅ x n −1 + b1 ⋅ x n − 2 + + bn − 2 ⋅ x + bn −1 = ( c0 ⋅ x n − 2 + c1 ⋅ x n −3 + + cn −3 ⋅ x + cn − 2 ) ⋅ ( x − z ) + R2

c0 ⋅ x n − 2 + c1 ⋅ x n −3 + + cn −3 ⋅ x + cn − 2 = ( d 0 ⋅ x n −3 + d1 ⋅ x n − 4 + + d n − 4 ⋅ x + d n −3 ) ⋅ ( x − z ) + R3

Las fórmulas de recurrencia para calcular los bi , ci y d i se pueden expresar de la forma vista

anteriormente, calculando primero todos los bi , después todos los ci y finalmente todos los d i ,
aunque se puede optimizar su obtención de la siguiente forma:

b0 = a0 
c0 = b0 

b1 = a1 + b0 ⋅ z 


d 0 = c0 

c1 = b1 + c0 ⋅ z 

b2 = a2 + b1 ⋅ z 


d1 = c1 + d 0 ⋅ z 

c1 = b2 + c1 ⋅ z 
b3 = a3 + b2 ⋅ z 




21
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

Punto de evaluación
x := z
Valores de arranque
y := a 0
y ′ := 0
y ′′ := 0
Proceso de cálculo
y ′′ := y ′ + y ′′ ⋅ z 

y ′ := y + y ′ ⋅ z  i = 1… n
y := ai + y ⋅ z 

Valores finales
p ( z ) = R1 = y
p ′( z ) = 1!⋅R2 = y ′
p ′′( z ) = 2!⋅R3 = 2 ⋅ y ′′

IMPLEMENTACION DEL ALGORITMO

Definición del polinomio


> POL:=x^4-2*x^3+5*x^2-x+6;
POL := x 4 − 2 x 3 + 5 x 2 − x + 6
Grado del polinomio
> n:=degree(POL);
n := 4
Coeficientes del polinomio

> for i from 0 to n do


> a[n-i]:=coeff(POL,x,i);
> od;
a4 := 6

a3 := -1

a2 := 5

a1 := -2

a0 := 1

Punto de evaluación
> z:=2;
z := 2

22
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

Valores de arranque
> y2P:=0;yP:=0;y:=a[0];
y2P := 0
yP := 0
y := 1
Proceso de cálculo
> for i from 1 to n do
> y2P:=yP+y2P*z;
> yP:=y+yP*z;
> y:=a[i]+y*z;
> od;
y2P := 0
yP := 1
y := 0
y2P := 1
yP := 2
y := 5
y2P := 4
yP := 9
y := 9
y2P := 17
yP := 27
y := 24
Valores finales
> z:=z;
> P:=y;
> PP:=yP;
> P2P:=2*y2P;
z := 2
P := 24
PP := 27
P2P := 34

Si se desea obtener todas las derivadas del polinomio, conviene almacenar sus valores de forma
ordenada en un vector.

23
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

METODO DE NEWTON PARA POLINOMIOS

Como ya se ha comentado anteriormente, el método de Newton es aplicable a polinomios, la


única particularidad consiste en evaluar el polinomio y su derivada como se ha indicado en el
punto anterior, con la finalidad de reducir el número de operaciones. A partir de un valor inicial
para z se sigue el siguiente procedimiento:

Valores de arranque
y = a0 ; y ' = 0

Evaluación de la función y de su derivada


y ' = y + y '⋅ z 
 i = 1, 2,… , n
y = ai + y ⋅ z 

Incremento de z
y
∆z =
y'
Nuevo valor a considerar para z método de Newton
z = z − ∆z

Se repite el proceso hasta alcanzar la convergencia ∆z < ξ o bien superar el número máximo de

iteraciones permitidas.

Hay dos excepciones:


Si y = 0 → se ha encontrado la raíz.

Si y ' = 0 → hay un máximo/mínimo, no hay intersección de la tangente con el eje,


conviene salir del máximo/mínimo desplazando el valor de z
levemente. Puede que simultáneamente sea y = 0 en cuyo caso existe
al menos una raíz doble.

Se incluye a continuación un algoritmo de cálculo en MAPLE basado en la metodología


anteriormente expuesta.

24
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

Definición del polinomio


> POL:=x^5-10*x^4+23*x^3-12*x^2-18*x+29;
POL := x 5 − 10 x 4 + 23 x 3 − 12 x 2 − 18 x + 29
Grado del polinomio
> n:=degree(POL);
n := 5
Coeficientes del polinomio
> for i from 0 to n do
> a[n-i]:=coeff(POL,x,i);
> od;
a5 := 29

a4 := -18

a3 := -12

a2 := 23

a1 := -10

a0 := 1

Valor inicial de z
> z:=0;
z := 0
Proceso de cálculo para k obtenciones de z
> for k from 1 to 100 do
Valores de arranque de la función y, y de la derivada yp
> y:=a[0];yp:=0;
Evaluación de y, yp en un punto
> for i from 1 to n do
> yp:=y+yp*z;
> y:=a[i]+y*z;
> od;
Obtención del incremento Dz a considerar en el método de Newton
> Dz:=evalf(y/yp);
Control de terminación
> if abs(Dz)<10^(-6) then k:=101 fi;
Nuevo valor de z a considerar
> z:=z-Dz;
> od:
Solución obtenida
> z;
2.032143546
Para el valor inicial z = -2 se obtiene la raiz -1.008247400.
Para el valor inicial z = 0 se obtiene la raiz 2.032143546.
Para el valor inicial z = 6 se obtiene la raiz 6.999324029.
Las otras dos raices son complejas.

25
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

RAICES DOBLES

Si z1 es una raíz doble, el polinomio p ( x ) admite la siguiente descomposición factorial:

p( x) = ( x − z1 ) 2 ⋅ Q( x)

donde el exponente dos indica el orden de multiplicidad.

Como se puede comprobar fácilmente en este caso z1 es también una raíz de la derivada, por
tanto para valores próximos a la raíz, también y ' tendrá un valor próximo a cero por tanto el
y
cociente ya no se hace tan rápidamente cero en el proceso iterativo de localización de una
y'
raíz.

Como consecuencia el método de Newton para raíces múltiples no converge con la velocidad
que lo hace en raíces simples, además los errores de redondeo al calcular y e y ' hacen que el
método sea fuertemente inestable siendo en la práctica difícil de obtener convergencia.

A continuación se exponen dos fórmulas de iteración que tienen en cuenta la derivada segunda y
que se comportan razonablemente bien para raíces dobles pero no para raíces de mayor orden de
multiplicidad:

 y 1 y 2 ⋅ y '' 
xi +1 = xi −  i + i
3 
i

y
 i ' 2 ( yi ') 

 yi ⋅ yi '' 
xi +1 = xi −  
 ( yi ') − yi ⋅ yi '' 
2

26
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

OBTENCION DE TODAS LAS RAICES REALES DE UN POLINOMIO

Como es sabido la raíz real obtenida por el método de Newton depende del valor inicial elegido
en el proceso iterativo. Si a priori se conocen aproximaciones a las raíces reales de un polinomio,
como por ejemplo a través de la gráfica del mismo, tomando estas aproximaciones como valor
inicial, es fácil obtener todas las raíces reales de un polinomio.

Cuando no se conocen aproximaciones a las raíces, no hay más remedio que utilizar la deflación
polinómica, que consiste en dividir el polinomio dado por el factor ( x − z ) siendo z la raíz

obtenida y seguir obteniendo raíces del polinomio cociente.

Las raíces así obtenidas, son teóricamente las mismas que las del polinomio dado, pero en la
práctica, al obtenerse de forma aproximada los coeficientes de los distintos polinomios cocientes
tienen errores de truncamiento y redondeo por lo tanto los valores obtenidos deben considerarse
como aproximaciones que se deben mejorar utilizando el polinomio inicial, a este proceso se le
llama refinado de las raíces y es particularmente importante en el caso de raíces múltiples del
polinomio.

El proceso completo puede quedar de la siguiente manera:

0) Copiar: p ( x ) → q ( x ) .

1) Tomar un valor inicial arbitrario z0 .

2) Encontrar una raíz de q ( x ) → z1 .

3) Encontrar una raíz de p ( x ) , con z1 como valor inicial → z2 .

4) Dividir q ( x ) por ( x − z2 ) → q ( x ) .

Repetir los apartados de 1) a 4) hasta obtener un polinomio de grado 1.

27
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

DEFLACION DIRECTA E INVERSA

Sea p ( x ) = a0 ⋅ x n + a1 ⋅ x n −1 + + an −1 ⋅ x + an . Si ( x − z) es un factor de p ( x ) , el polinomio

cociente se obtiene (como se vio) por división sintética:

p ( x ) = ( x − z ) ⋅ ( b0 ⋅ x n −1 + b1 ⋅ x n − 2 + + bn − 2 ⋅ x + bn −1 )

los coeficientes bi vienen dados por las ecuaciones:

a0 = b0

a1 = b1 − b0 ⋅ z

a2 = b2 − b1 ⋅ z

an −1 = bn −1 − bn − 2 ⋅ z

an = − bn −1 ⋅ z

que se resuelven por sustituciones sucesivas.

Si se empieza el proceso por b0 se llama deflación directa, si por el contrario se empieza por

bn −1 se denomina deflación inversa.

Para valores de z >> 1 se recomienda deflación inversa y para valores z << 1 se utiliza en

general deflación directa.

28
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

RAÍCES COMPLEJAS. MÉTODO DE BAIRSTOW

La utilización del método de Newton para polinomios seguido de deflación permite obtener
todas las raíces reales de un polinomio. No siendo posible sin embargo obtener raíces complejas.

Para resolver este problema se pueden modificar los algoritmos estudiados de modo que se
utilice aritmética compleja, permitiendo así obtener raíces complejas.
Otro método consiste en obtener factores cuadráticos, cuyas raíces también lo son del polinomio
dado y se obtienen algebraicamente:
p ( x ) = ( x2 + p ⋅ x + q ) ⋅ Q ( x )

2
−p  p
Siendo las raíces de x 2 + p ⋅ x + q Æ x = ±   −q .
2 2
2
 p
En cuanto a la tipología de las mismas, dependerá del valor de ∆ =   − q. Siendo reales y
2
distintas si ∆ > 0 , reales dobles si ∆ = 0 y complejas si ∆ < 0 .

Este método denominado de Bairstow, tiene la ventaja de que no necesita utilizar aritmética
compleja y funciona bien para raíces reales dobles, pudiendo generalizarse para obtener factores
de orden superior.
Método de Bairstow

Sea p ( x ) un polinomio de grado n y un factor cuadrático arbitrario, entonces se tiene:

p ( x ) = a0 ⋅ x n + + an −1 ⋅ x + an = ( x 2 + p ⋅ x + q ) ⋅ ( b0 ⋅ x n − 2 + + bn −3 ⋅ x + bn − 2 ) + R ⋅ x + S

Cuya identificación de coeficientes nos conduce a la resolución de un sistema se n + 1


ecuaciones con n + 1 incógnitas:
b0 , b1 ,… , bn − 2 , R, S
pudiendo expresarse el valor de R y S en función de p y q :
R = R ( p, q ) ; S = S ( p, q )
si se resuelve el sistema de ecuaciones:

R ( p, q ) = 0  Sistema de dos ecuaciones no lineales



S ( p, q ) = 0  con dos incógnitas p, q

Se tiene que el polinomio x 2 + p ⋅ x + q es un factor del polinomio dado, pues en este caso el
resto de la división vale cero.
29
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

EJEMPLOS DE APLICACION

1.- Dada la pantalla de hormigón armado de la figura adjunta, que debe contener una altura H
de tierras en una excavación, calcular la longitud h y la fuerza en el puntal F por metro lineal
de pantalla, utilizando el método del extremo libre.

Ea
h
Ep

Fp Fa

Altura de la excavación H = 6.00 m, ángulo de rozamiento interno del terreno ϕ = 30º ,


densidad del terreno γ = 1.80 T/m3, ángulo de rozamiento tierra-pantalla δ = 0º .

En base a los parámetros del terreno se tienen los siguientes valores para los coeficientes de
empuje activo y pasivo:

1 − sen(30º ) 1 1 + sen(30º )
λa = = λp = =3
1 + sen(30º ) 3 1 − sen(30º )

Los valores de las fuerzas en función de la altura son por metro lineal de pantalla:

1
Fa = ⋅ 1.80 ⋅ (6 + h) = 0.60 ⋅ (6 + h) F p = 3 ⋅ 1.80 ⋅ h = 5.40 ⋅ h
3

En cuanto a los empujes activo y pasivo y sus distancias a la coronación de la pantalla son los
siguientes:

1 2
Ea = ⋅ (6 + h) ⋅ 0.60 ⋅ (6 + h) = 0.30 ⋅ (6 + h) 2 da = ⋅ (6 + h)
2 3

1 2
Ep = ⋅ h ⋅ 5.40 ⋅ h = 2.70 ⋅ h 2 d p = 6.00 + ⋅h
2 3

Tomando momentos respecto a la parte superior de la pantalla, de manera que eliminamos la


incógnita F , se obtiene la ecuación:

2 2
0.30 ⋅ (6 + h) 2 ⋅ ⋅ (6 + h) = 2.70 ⋅ h 2 ⋅ (6.00 + ⋅ h)
3 3

30
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

Lo anterior se reduce operando a la ecuación poli nómica:

h 3 + 7.875 ⋅ h 2 − 13.50 ⋅ h − 27.00 = 0

De la representación gráfica de la función f (h) = h 3 + 7.875 ⋅ h 2 − 13.50 ⋅ h − 27.00 se deduce


que la única raíz positiva y por tanto válida para nuestro caso es la situada en las proximidades
de h ≅ 2.00 .

El algoritmo adjunto proporciona una longitud de pantalla de h = 2.405 m, de donde se deduce


por equilibrio de fuerzas horizontales, que la fuerza en el puntal es de:

F + E p = Ea ⇒ F = Ea − E p

Obteniéndose un valor para la misma por metro lineal de pantalla:

E a = 0.30 ⋅ (6 + 2.405) 2 = 21.193 T/m.

E p = 2.70 ⋅ 2.405 2 = 15.617 T/m.

F = 21.193 − 15.617 = 5.576 T/m.

Finalmente indicar que habitualmente se admite que la longitud de pantalla que debe empotrarse
en el terreno viene dada por he = 1.20 ⋅ h lo que en nuestro caso proporciona un valor para la
misma de:

he = 1.20 ⋅ 2.405 = 2.886 ≅ 2.89 m.

31
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

Digitos a utilizar
> Digits:=10;
Digits := 10
Función

> f:=(h)->h^3+7.875*h^2-13.50*h-27;

f := h → h 3 + 7.875 h 2 − 13.50 h − 27
Intervalo de búsqueda

> hmin:=0;hmax:=5;
hmin := 0
hmax := 5
Comprobación de la validez del intervalo inicial de búsqueda por BOLZANO.

> if evalf(f(hmin)*f(hmax))<0 then "Intervalo Válido" else


"Modifique el intervalo de búsqueda" fi;

"Intervalo Válido"
Proceso de cálculo

> for k from 1 to 100 do


> h:=evalf((hmin+hmax)/2);
> if abs(hmax-hmin)<2*10^(-4) or evalf(f(h))=0 then
hF:=h;Contador:=k;k:=101 fi;
> if evalf(f(h)*f(hmax))<0 then hmin:=h else hmax:=h fi;
> od:
Número de iteraciones

> Iteraciones:=Contador;
Iteraciones := 16
Resultado final

> Resultado:=evalf(hF,4);
Resultado := 2.405

32
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

2.- En el canal rectangular adjunto de características suficientemente uniformes para poder


aplicar la fórmula de Manning se pide calcular la altura normal hn para un caudal
Q = 6.00 m 3 / sg .

b=1.75 m.

Se consideran para el canal paredes de hormigón con encofrado metálico n = 0.0133 y


pendiente unitaria uniforme en un tramo de suficiente longitud j = 0.002 .

Para una altura de agua dada h el caudal Q viene dado por:

 1 12 2 3 Area mojada b⋅h


v = n ⋅ j ⋅ R con R = =
Perímetro mojado b + 2 ⋅ h

Q = v ⋅ S m / sg .
3
⇒ 
 S = b⋅h


Definiéndose la altura normal hn como aquella altura correspondiente a un caudal dado en la
fórmula anterior.

En base a los datos proporcionados se tiene:

1.75 ⋅ h
R= y S = 1.75 ⋅ h
1.75 + 2 ⋅ h

De donde se obtiene la ecuación:

2
1  1.75 ⋅ h 
6.00 = ⋅ 0.002 ⋅ 3   ⋅ 1.75 ⋅ h
0.0133  1.75 + 2 ⋅ h 

Cuya resolución mediante el algoritmo adjunto proporciona un valor de hn = 1.511 m, con una
sencilla comprobación se tiene para la altura normal que:

Q(hn ) = 5.999894797 m 3 / sg .

Q
Otro dato de fácil obtención es v = = 2.2687 m / sg.
S

33
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

Digitos a utilizar

> Digits:=10;
Digits := 10
Función

> f:=(h)->6-
(1/0.0133)*sqrt(0.002)*((1.75*h/(1.75+2*h))^2)^(1/3)*1.75*h;
( 1/3 )
2 2
 1.75 h 
1 0.002  
2
1.75 h
 ( 1.75 + 2 h ) 
f := h → 6 −
0.0133
Intervalo de búsqueda

> hmin:=0;hmax:=5;
hmin := 0
hmax := 5
Comprobación de la validez del intervalo inicial de búsqueda por BOLZANO.

> if evalf(f(hmin)*f(hmax))<0 then "Intervalo Válido" else


"Modifique el intervalo de búsqueda" fi;
"Intervalo Válido"
Proceso de cálculo

> for k from 1 to 100 do


> h:=evalf((hmin+hmax)/2);
> if abs(hmax-hmin)<2*10^(-4) or evalf(f(h))=0 then
hF:=h;Contador:=k;k:=101 fi;
> if evalf(f(h)*f(hmax))<0 then hmin:=h else hmax:=h fi;
> od:

Número de iteraciones

> Iteraciones:=Contador;
Iteraciones := 16
Resultado final

> Resultado:=evalf(hF,4);
Resultado := 1.511
Caudal
>
Q:=evalf((1/0.0133)*sqrt(0.002)*((1.75*h/(1.75+2*h))^2)^(1/3)*1.
75*h);
Q := 5.999894797

34
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

3.- Un cable uniforme de w=3 kg/m de peso está suspendido entre dos puntos A y B situados a la
misma altura y separados 50 m.

A B
10 m

50 m

Determinar la ecuación del cable suponiendo que viene dada por la catenaria:

x x

x x e +e c c
y = c ⋅ cosh en donde cosh( )=
c c 2

según el gráfico adjunto:

Y
A B

C yB
c
O X
xB

Obtener a partir de la misma, la tensión máxima y mínima en el cable y la longitud del mismo,
en base a las expresiones siguientes:

T = T = w ⋅ c
 min C

T
 max = T B = w ⋅ yB

 L AB = 2 ⋅ LCB siendo LCB = y B2 − c 2

Las coordenadas del punto B son en el sistema de referencia:

x x x x
− −
xB = 25 m.  e +e c c
10 e + e c c
 ⇒ c + 10 = c ⋅ → 1+ =
yB = c + 10 m. 2 c 2

Lo anterior reduce el problema al cálculo de las raíces de:


x x

10 e c + e c
f (c ) = 1 + −
c 2

35
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

La resolución del problema anterior con el algoritmo adjunto proporciona un valor para el
parámetro c = 32.793 .

De forma inmediata se deducen el resto de valores al aplicar las fórmulas correspondientes:

 y B = 32.793 + 10 = 42.793
T = T = w ⋅ c = 3 ⋅ 32.793 = 98.379 Kg .
 min C
T = T = w ⋅ y = 3 ⋅ 42.793 = 128.379 Kg .
 max B B

 L = 2 ⋅ L = 2 ⋅ 27.493 = 54.986 siendo L = y B2 − c 2 = 42.793 2 − 32.793 2 = 27.493 m.


 AB CB CB

Número de dígitos. Definición de la función

> Digits:=10;f:=c->(10/c)+1-(exp(25/c)+exp(-25/c))/2;
Digits := 10
 25   25 
10 1  
c  1  − 
c 
f := c → +1− e − e
c 2 2
Intervalo de búsqueda

> Cmin:=1;Cmax:=200;
Cmin := 1
Cmax := 200
Comprobación de la validez del intervalo de búsqueda por BOLZANO.
> if evalf(f(Cmin)*f(Cmax))<0 then "Intervalo Válido" else
"Modifique el intervalo de búsqueda" fi;
"Intervalo Válido"
Proceso de cálculo

> for k from 1 to 100 do


> C:=evalf((Cmin+Cmax)/2);
> if abs(Cmax-Cmin)<2*10^(-4) or evalf(f(C))=0 then
CF:=C;Contador:=k;k:=101 fi;
> if evalf(f(C)*f(Cmax))<0 then Cmin:=C else Cmax:=C fi;
> od:

Número de iteraciones

> Iteraciones:=Contador;
Iteraciones := 21
Resultado final

> Resultado:=evalf(CF,5);
Resultado := 32.793

36
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

4.- Calcular la Tasa Interna de Retorno (T.I.R.) correspondiente a la explotación de un Parking


en base a los siguiente ingresos producidos en los diez años siguientes, siendo el coste de
construcción de 2.000.000 de euros.

AÑO INGRESOS
1 100.000
2 100.000
3 100.000
4 250.000
5 250.000
6 350.000
7 400.000
8 300.000
9 300.000
10 350.000

Para el cálculo de la T.I.R. y al objeto de reducir al año de construcción todos los ingresos se
utiliza la fórmula:

n
Bi B1 B2 Bn
C=∑ = + + … +
i =1 (1 + T ) i (1 + T ) (1 + T ) 2 (1 + T ) n
En donde:

C = Coste de construcción o Aportación inicial del año 0.


T = Tasa interna de retorno a calcular.
n = Número de años para los que se calcula T.
i = Variable que corresponde a los años. Varia de 1 a n.
Bi = Beneficios obtenidos en el Año i.

En realidad el problema anterior se reduce en nuestro caso concreto a calcular las raíces de la
ecuación:

10
Bi B1 B2 B10
f (T ) = ∑ − C = + + … + −C
i =1 (1 + T ) i (1 + T ) (1 + T ) 2 (1 + T )10
La aplicación del algoritmo adjunto nos proporciona un valor de la variable T:

T = 0.035324 → 3.5324 %

37
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.

> Digits:=10;
Digits := 10
> C:=2000000;
C := 2000000
>
B:=[100000,100000,100000,250000,250000,350000,400000,300000,3000
00,350000];

B := [ 100000 , 100000 , 100000 , 250000 , 250000 , 350000 , 400000 , 300000 , 300000 ,


350000 ]
> f:=T->sum(B[i]/(1+T)^i,i=1..10)-C;

 10 Bi 
f := T →  ∑
 −C
 i = 1 ( 1 + T ) i 
 
Intervalo de búsqueda
> Tmin:=0;Tmax:=20;
Tmin := 0
Tmax := 20
Comprobación de la validez del intervalo de búsqueda por BOLZANO.
> if evalf(f(Tmin)*f(Tmax))<0 then "Intervalo Válido" else
"Modifique el intervalo de búsqueda" fi;
"Intervalo Válido"
Proceso de cálculo

> for k from 1 to 100 do


> T:=evalf((Tmin+Tmax)/2);
> if abs(Tmax-Tmin)<2*10^(-4) or evalf(f(T))=0 then
TF:=T;Contador:=k;k:=101 fi;
> if evalf(f(T)*f(Tmax))<0 then Tmin:=T else Tmax:=T fi;
> od:

Número de iteraciones
> Iteraciones:=Contador;
Iteraciones := 18
Resultado final
> Resultado:=evalf(TF,5);
Resultado := 0.035324
> TIR:=100*TF;
TIR := 3.532409670

38