Professional Documents
Culture Documents
INTRODUCCION.
METODO DE LA SECANTE.
RAICES DE POLINOMIOS.
RAICES DOBLES.
EJEMPLOS DE APLICACIÓN.
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.
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.
x0 raiz de f ( x) = 0 ⇒ f ( x) < ε
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.
Para adoptar los valores de partida adecuados, conviene tener al menos una idea aproximada de
donde pueden encontrarse las raíces o ceros buscados.
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.
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 ⋅ π ] .
¾ 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.
¾ 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.
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.
Y y=x
x1
y = g(x)
g(x 0 )
X
x0
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.
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:
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
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.
x = x + f (x ) = x 3 − x + 1
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
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
Resultado obtenido
> X:=evalf(X,10);
X := 1.
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.
x 0 + x1
f(x) x2 =
2
x2 x1
x0 X
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:
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.
es tal que estimará el cero de f (x) con un error absoluto prefijado menor de ε :
− xf < ε .
(n)
xm
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 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.
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
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.
x = −1.292695719
11
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.
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)
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.
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.
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.
X1 := -1
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.
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.
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
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.
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.
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.
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
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:
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.
17
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.
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
p ( z ) = ( z − z ) ⋅ Q1 ( z ) + R1 = R1
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
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 .
Proceso de cálculo
y := ai + y ⋅ z i = 1… n
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 :
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 )
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!
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 ′′
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.
Valores de arranque
y = a0 ; y ' = 0
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.
24
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.
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
p( x) = ( x − z1 ) 2 ⋅ Q( x)
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.
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
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.
0) Copiar: p ( x ) → q ( x ) .
4) Dividir q ( x ) por ( x − z2 ) → q ( x ) .
27
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.
p ( x ) = ( x − z ) ⋅ ( b0 ⋅ x n −1 + b1 ⋅ x n − 2 + + bn − 2 ⋅ x + bn −1 )
a0 = b0
a1 = b1 − b0 ⋅ z
a2 = b2 − b1 ⋅ z
an −1 = bn −1 − bn − 2 ⋅ z
an = − bn −1 ⋅ z
Si se empieza el proceso por b0 se llama deflación directa, si por el contrario se empieza por
Para valores de z >> 1 se recomienda deflación inversa y para valores z << 1 se utiliza en
28
RESOLUCION DE ECUACIONES NO LINEALES. CALCULO DE RAICES DE UNA ECUACION.
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
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
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
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
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.
F + E p = Ea ⇒ F = Ea − E p
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:
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.
"Intervalo Válido"
Proceso de cálculo
> 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.
b=1.75 m.
1.75 ⋅ h
R= y S = 1.75 ⋅ h
1.75 + 2 ⋅ h
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.
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
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
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
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 .
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
> 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
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.
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:
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];
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
Número de iteraciones
> Iteraciones:=Contador;
Iteraciones := 18
Resultado final
> Resultado:=evalf(TF,5);
Resultado := 0.035324
> TIR:=100*TF;
TIR := 3.532409670
38