Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Pn ( x ) = an x n + an − 1 x n − 1 + an − 2 x n − 2 + + a 1 x + a0 = 0
con an 0 y n entero > 0 y ai R con i =0, 1, 2, 3, …, n constantes,
existen métodos para resolverlas directamente en términos de sus
coeficientes, siempre que el grado n de la ecuación sea a lo sumo 4.
▪ Las llamadas “resolventes” solo existen hasta polinomios de grado 4,
siendo las de grado 3 y 4 de elevada complejidad computacional.
Conclusiones
▪ Para las ecuaciones algebraicas no lineales (en particular para los
polinomios de grado n > 4), para las ecuaciones trascendentes y aún
para las ecuaciones polinómicas de tercer y cuarto grado (por lo
complicado de las resolventes) conviene establecer métodos generales
que nos permitan resolverlas aunque más no sea de una forma
aproximada.
▪ Paradójicamente, la solución aproximada en la mayoría de los casos es
mejor que la que suministran los métodos directos (sólo en el caso de los
polinomios).
▪ Los métodos aproximados permiten mejorar la solución por simple
repetición del mismo método hasta lograr el grado de aproximación
requerido.
Raíces de ENL
Solución numérica de ecuaciones algebraicas y trascendentes de una variable
• Sea una función de una variable f(x).
• Se busca encontrar un valor x* para el que se cumpla f(x*) = 0.
• Si existe este valor se lo denomina raíz de la ecuación.
• Pasos básicos para encontrarlo:
• Determinación de un valor aproximado de la raíz (valor de arranque
de método).
• Mejoramiento de la solución hasta un grado de precisión
establecido. tolerancia
Acotados Abiertos
Bisección Wegstein
Newton - Raphson
Métodos iterativos
▪ Solución Iterativa: Significa comenzar con una solución inicial
(aproximada ) y generar una secuencia de números (sucesión):
xn = x1 , x2 , ..., xn
tal que si existe
lím
n →
xn = x* y f ( x* ) = 0
entonces x* es una raíz de la ecuación f(x*) = 0.
f ( xn ) xn − xn − 1
e (n)
rel . =
E (n)
aprox . = xn − xn − 1 xn
Error absoluto Error relativo
si : xn → x* f ( xn ) → 0
Métodos iterativos
Orden de convergencia
▪ Sea {xn} una secuencia que converge a x*.
▪ Si existen las constantes positivas p y K tales que:
xn + 1 − x* ( n+ 1 )
Eexacto
lím = lím =K
( exacto )
p p
n →
xn − x* n →
E (n)
Aproximaciones
Lineal (p=1)
sucesivas
x + ln (x ) − 4 = 0
function y=f(x)
y=sqrt(x) + log(x) - 4;
endfunction
Método Gráfico
Para utilizar este método graficamos la ecuación y
estimamos visualmente donde se encuentra la raíz
x=linspace(0,10,1000);
plot(x,f(x),'b’)
plot(x,zeros(1:1000),'k’)
xgrid
--> xclick
ans =
3. 5.3278689 0.0072464
Método de la Bisección
Para utilizar este método necesitamos dos puntos donde
la función cambie de signo. El nuevo punto corresponde a
la mitad del intervalo y debe seleccionarse de manera de
conservar la diferencia de signo.
a
c b
Método de la Bisección
Debemos lograr que el intervalo sea lo mas pequeño posible en torno a la raíz.
¿Cómo lo achicamos?
Evaluamos el valor de la función en la mitad del intervalo
¿Cuál es el nuevo intervalo?
a c
b
Método de la Bisección
2
-2
-4
f(x)
-6
-8
-10
-12
0 1 2 3 4 5 6 7 8 9 10
x
Método de la Bisección
a y b / f (a ) f (b ) 0
a+b
c=
2
si
f (c ) tol c es raiz
no
f (a ) f (c ) 0
si
b=c
no
b − a tol También se puede medir el
a=c b−a error a partir del tamaño
tol
a del intervalo.
Método de la Bisección
x + ln (x ) − 4 = 0
Método de la Bisección
a i=0 b
b−a
i =1 b−a
2
i=2 b−a
El tamaño del intervalo se reduce a la mitad
2 2 en cada iteración.
i=3 b−a ¿Cuál es el tamaño del intervalo en la
2 2 2 iteración i ?
i=4 b−a
2 2 2 2 (b − a )
i
2
Método de la Bisección
La relación del tamaño del intervalo con el número de
iteración nos sirve para conocer de antemano cuantas
iteraciones debemos realizar.
Es decir, en la iteración N el tamaño del intervalo debe ser
igual a la tolerancia deseada.
(b − a )
tol = N
2
Método de la Bisección
Ejemplo:
Encontrar el numero de iteraciones necesarias para
obtener por el método de la bisección la raíz de la ecuación
presentada en el intervalo [5 6] adoptando una tolerancia
de tol=10-5.
(b − a ) −5 ( 6 − 5)
tol = N
10 = N
2 2
−5 = log10 ( 6 − 5 ) − N log10 2
log10 ( 6 − 5 ) + 5 N = 16.609
N=
log10 2 (17iteraciones )
Método de la Bisección (Scilab)
function out=biseccion(fun, a, b, tol)
N=ceil((log(b-a) - log(tol))/log(2));
for k=1:N
cc=(a+b)/2;
a+b
=
2
if fun(a)*fun(c)<=0
f (a ) f (c ) 0
b=c;si b = c
else
no
a=c;
a=c
end
end
out=c;
endfunction
Método de la Regla Falsa
El proceso es similar al de bisección, pero el nuevo punto no
corresponde a la mitad del intervalo sino a la intersección de la
recta que los une (secante) con el eje de las abscisas.
c
a
Nuevo intervalo!
Método de la Regla Falsa
a y b / f (a ) f (b ) 0
f (a )(a − b )
c=a−
f (a ) − f (b )
si
f (c ) tol c es raiz
no
f (a ) f (c ) 0
si
b=c
no
a=c
Método de la Regla Falsa
f ( x) = ln( x) + e 2x
Método de la Regla Falsa (Scilab)
function out=reglafalsa(fun, a, b, tol)
for k=1:100
c= a -(( fun(a)*(a-b)/(fun(a)-fun(b));
c=a−
)( )
f a a −b
) ()
f a −f b
else a=c; no
end a = c
end
if k == 100
out=[];
disp(‘aumentar iteraciones’);
end
endfunction
Método de la Regla Falsa (Punto fijo)
Para utilizar este método necesitamos dos puntos donde la
función cambie de signo. El nuevo punto surge de la
intersección de la recta que los une con el eje de las abscisas.
c
a
Método de la Regla Falsa (Punto fijo)
-2
-4
f(x)
-6
-8
-10
-12
0 1 2 3 4 5 6 7 8 9 10
x
Método de la Regla Falsa (Punto fijo)
a y b / f ( a ). f (b ) 0
f (a )(a − b )
c=a−
f (a ) − f (b )
si
f (c ) tol c es raiz
no
a=c
f ( x) = ln( x) + e 2x
Método de la Regla Falsa (Punto fijo - Scilab)
function out=reglafalsapf(fun, a, b, tol)
for k=1:100
c= a - fun(a)*(a-b)/(fun(a)-fun(b));
f (a )(a − b )
c=a−
f (a ) − f <=
if abs(fun(c)) (b ) tol
out = c;
si
(c ) tol
fbreak c es raiz
else a=c; no
end a=c
end
if k == 100
out=[];
disp('no converge’);
end
endfunction
Métodos abiertos
A los fines de su consideración en la resolución de problemas de
ingeniería, podemos agruparlos en dos categorías:
• Método de Aproximaciones Sucesivas
• Métodos de Linealización
• Newton – Raphson
• Modificado de Newton para Resolver Raíces Múltiples
• Von Mises o Cuerdas Paralelas
• Secante
• Regula falsi y métodos relacionados.
Aproximaciones Sucesivas
Para utilizar este método necesitamos un punto y redefinir
la ecuación de la siguiente manera:
f (x ) = 0
x = F (x )
Aproximaciones Sucesivas
Sea la función: y = f ( x)
Se desea hallar x* tal que y = f (x ) = 0
*
F ( x ) = x + ln ( x ) − 4 + x
f ( x ) = x + ln ( x ) − 4 F ( x ) = ( 4 − ln ( x ) )
2
( 4− x )
F ( x) = e
Aproximaciones Sucesivas
A partir de un valor inicial (punto de arranque o valor semilla) se genera un nuevo valor
utilizando F(x)
( 0)
x = 0
x( ) = F x(
1
( ) 0)
x( ) = F x( )
2
( ) 1
k = 1, 2, ..., kmax
x(
k +1)
− x(
k)
r
( )
(k )
x
( k +1) (k )
x =F x
x(
k +1)
− F x( ( ))
k +1
16
14
12
10
F(x)
0
2 4 6 8 10 12 14
x
Aproximaciones Sucesivas
( 0)
x = 0 ; k = 0
x ( k +1)
=F x ( )(k )
x(
k +1)
− x(
k)
si
x(
k +1)
(k )
r es raiz
x
no
k = k +1
Aproximaciones Sucesivas
( 4− x )
F ( x) = e
i xi F(xi) Error F ( x ) = ( 4 − ln ( x ) )
2
0 F ( x ) = x + ln ( x ) − 4 + x
6
Aproximaciones Sucesivas (scilab)
function y=F(x)
y= sqrt(x) + log(x) – 4 + x;
endfunction
function y=F(x)
y= (4 - log(x)).^2; Funciones de aproximación
endfunction
function y=F(x)
y= exp (4 – sqrt(x));
endfunction
Aproximaciones Sucesivas (scilab)
function out=aproxsuc(fun, x0, tol)
x=x0;
for k=1:100
x(k+1)=fun(x(k));
x( ) = F ( x( ) )
k +1 k
error=abs((x(k+1)-x(k))/x(k));
if error <= tol
x( ) − x( )
k +1 k
out =x( )x(k+1);
k
si
r x ( ) es raiz
k +1
break
end no
end
if k == 100
out=[];
disp('no converge’);
end
endfunction
Método de Wegstein
Mejora el proceso de sustitución directa.
A partir del valor inicial se generan un valor de manera tradicional y luego se aplica la
siguiente ley recursiva:
=
( ) ) − F ( x( ) )
F x(
k k −1
x( ) − x(
k k −1)
k = 1, 2, 3, ..., kmax
x(
k +1)
− x(
k)
q= r
−1 x (k )
x(
k +1)
= qx ( ) + (1 − q ) F x (
k
( )
k)
x(
k +1)
− F x( ( ))
k +1
x( ) = 0
0
1
( ))
x( ) = F x(
0
( ) ( )
F x( ) − F x(
1 0)
=
F x( ( ) ) − F ( x( ) )
k k −1
k = 1, 2, 3, ..., kmax
= (1) ( 0) x( ) − x(
k k −1)
x −x
x(
k +1)
− x(
k)
q= q= (k )
r
−1 −1 x
x ( ) = qx ( ) + (1 − q ) F x ( )
2 1
( )
1
x ( k +1)
= qx (k )
+ (1 − q ) F x ( )
(k ) x(
k +1)
− F x( ( )
k +1)
Interpretación Grafica
x(
El nuevo valor generado en la iteración k, o sea k +1) corresponde a la intersección de la
(
( ) k
recta que une los puntos x , F x
(
( ) ) ) y ( x(
k k −1)
(
, F x(
k −1)
) ) con la recta y=x
Método de Wegstein
x ( 0)
= 0 =
( ) ) − F ( x( ) )
F x(
k k −1
q = ( − 1)
(k ) ( k −1)
x −x
(1)
( )
( 0)
( )
x =F x
x( = qx ( ) + (1 − q ) F x (
k +1) k k)
k =1
x(
k +1)
− x(
k)
si
x(
k +1)
(k )
r es raiz
x
no
k = k +1
Método de Wegstein
i xi F(xi) q Error
0
6
Método de Wegstein (scilab)
function out=wegstein(fun, x0, tol)
x(1)=x0;
x(2)=fun(x(1));
FF=fun(x);
for k=2:100
w=(fun(x(k))-fun(x(k-1)))/(x(k)-x(k-1));
F ( x( ) ) − F ( x( ) )
k k −1
=
q=w/(w-1); q =
x( ) − x( )
k k −1 −1
x ( ) = qx ( ) + (1 − q ) F ( x ( ) )
x(k+1)=q*x(k)+(1-q)*fun(x(k));
k +1 k k
error=abs((x(k+1)-x(k))/x(k));
if error <= tol
( k +1) si(k )
outx =x − xx(k+1);
(k ) x ( ) es raiz
k +1
r
Break
no
end
end
if k == 100
out=[];
disp('no converge’);
end
endfunction
Método de la Secante
Para utilizar este método solo necesitamos dos puntos y
la recta que los une. El nuevo punto surge de su
intersección con el eje de las abscisas.
b c
a
Método de la Secante
2
-2
-4
f(x)
-6
-8
-10
-12
0 1 2 3 4 5 6 7 8 9 10
x
Método de la secante
A partir de dos valores iniciales (puntos de arranque) se genera un nuevo valor que
corresponde a la intersección de la secante a la curva con el eje de las abscisas.
x( ) = 0
0
x ( ) = 1
1
x( ) = x( ) −
2 1( ) (
f x( )
x ()1
− x ( )
) 1 0
f ( x( ) ) − f ( x( ) )
1 0
x( ) = x( ) −
3
f 2( x ( )
) ( x ( )
2
− x ()
) 2 1
f ( x( ) ) − f ( x( ) )
2 1
k = 1, 2, ..., kmax
x(
k +1)
− x(
k) Se generan valores hasta
x ( k +1)
=x (k )
−
( )( x − x )
f x (k ) (k ) ( k −1)
x (k )
r satisfacer la tolerancia del error
f ( x( ) ) − f ( x( ) )
k k −1
o alcanzar el numero máximo de
iteraciones
( ))
f x(
k +1
Método de la Secante
x ( ) = 0 ; x ( ) = 1 ; k = 1
0 1
x(
k +1)
= x( ) −
k
f x( ( ) ) ( x( ) − x( ) )
k k k −1
f ( x( ) ) − f ( x( ) )
k k −1
x(
k +1)
− x(
k) si
x(
r k +1)
(k ) es raiz
x
no
k = k +1
Método de la Secante
i xi f(xi) Error
0
6 f ( x) = ln( x) + e 2x
Método de la Secante (scilab)
function out=secante(fun, x0, x1, tol)
x(1)=x0;
x(2)=x1;
for k=2:100
x(k+1)=x(k) - fun(x(k))*(x(k)-x(k-1))/(fun(x(k))-fun(x(k-1)));
f ( x( ) ) ( x( ) − x( ) )
k k k −1
( )
k +1 k( )
x =x −
f ( x( ) ) − f ( x( ) )
error=abs((x(k+1)-x(k))/x(k)); k k −1
end no
end
if k == 100
out=[];
disp('no converge’);
end
endfunction
Método de Newton-Raphson
Para utilizar este método solo necesitamos un punto y la
derivada de la función. El nuevo punto surge de la intersección
de la recta tangente con el eje de las abscisas.
a
Método de Newton-Raphson
A partir de un valor inicial (punto de arranque o valor semilla) se genera un nuevo valor que
corresponde a la intersección de la recta tangente a la curva con el eje de las abscisas.
x( ) = 0
0
()
1 ( )
x =x −
0( )
f x(
) 0
f ' ( x( ) )
0
( )
2
x =x −()
f1( x ()
) 1
f ' ( x( ) )
1
k = 1, 2, ..., kmax
x(
k +1)
− x(
k)
x( ) ( ) ( f x ) (k )
r
Se generan valores hasta satisfacer la
x(
k +1 k
=x − k) tolerancia del error o alcanzar el numero
f ' ( x( ) )
k máximo de iteraciones
( )
f x(
k +1)
Método de Newton-Raphson
2
-2
-4
f(x)
-6
-8
-10
-12
0 1 2 3 4 5 6 7 8 9 10
x
Método de Newton-Raphson
x( ) = 0 ; k = 0
0
x(
k +1)
= x( ) −
k ( )
f x(
k)
f ' ( x( ) )
k
x(
k +1)
− x(
k) si
x(
r k +1)
(k ) es raiz
x
no
k = k +1
Método de Newton-Raphson
6
Método de Newton-Raphson (scilab)
function y=f(x)
y=sqrt(x) + log(x) - 4; Función
endfunction
function y=fp(x)
y=0.5./sqrt(x) + 1./(x); Derivada
endfunction
Método de Newton-Raphson (scilab)
function out=newtonR(fun, funp, x0, tol)
x=x0;
for k=1:100
x(k+1)=x(k) f-( xfun(x(k))/funp(x(k));
( )
)
k
( )
k +1 ( ) k
x =x −
f ' ( x( ) )
error=abs((x(k+1)-x(k))/x(k)); k
break
no
end
end
if k == 100
out=[];
disp('no converge’);
end
endfunction
Modificación de N-R
f ( x ) Ralston and Rabinowitz (1978) propusieron la función u(x) que tiene las
u ( x) =
f ' ( x ) mismas raíces que f(x)
luego,
u ( x) f ( x) f '( x)
=
u '( x) f ' ( x ) − f ( x ) f '' ( x )
2
x( )
k +1 ( )
=x −
k ( )
) f ' ( x( ) )
f x(
k k
x(
k +1)
− x(
k)
satisfacer la tolerancia del error o
alcanzar el numero máximo de
f ' ( x ( ) ) − f ( x ( ) ) f '' ( x ( ) )
k
2
k k
(k )
r iteraciones
x
( ))
f x(
k +1
Interpretación Grafica
3
2.5
1.5
1
Nuevo punto según
N-R modificado
f(x)
0.5
Nuevo punto 0
según N-R
-0.5
-1
-1.5
-2
0 0.5 1 1.5 2 2.5 3
x
Interpretación Grafica
3
2.5
1.5
1
f(x)
0.5
-0.5
-1
-1.5
-2
0 0.5 1 1.5 2 2.5 3
x
Interpretación Grafica (N-R tradicional)
1
24 iteraciones
N-R tradicional 0.5
-0.5
f(x)
-1
-1.5
-2
-2.5
-3
0 0.5 1 1.5 2 2.5 3
x
Interpretación Grafica (N-R modificado)
1
5 iteraciones
N-R modificado 0.5
-0.5
f(x)
-1
-1.5
-2
-2.5
-3
0 0.5 1 1.5 2 2.5 3
x
Método de N-R modificado
x( ) = 0 ; k = 0
0
x( )
k +1 ( )
=x −
k ( )
) f ' ( x( ) )
f x(
k k
f ' ( x ( ) ) − f ( x ( ) ) f '' ( x ( ) )
2
k k k
x(
k +1)
− x(
k) si
x(
r k +1)
(k ) es raiz
x
no
k = k +1
Método de N-R modificado
6
N-R modificado (scilab)
• Cualquier polinomio cúbico (incluida las EoS) puede expresarse de la siguiente forma:
z 3 + az 2 + bz + c = 0
• La primera raíz se encuentra utilizando la modificación de N-R modificado. Se sugiere
utilizar como valor semilla el factor de compresibilidad de los gases ideales z(0)=1
(z 3
+ az + bz + c ) z − 1
2
Q( z )
• Debido a la factorización se cumple que:
z + az + bz + c = ( z − 1 ) Q ( z )
3 2
• Ambos miembros tienen las mismas raíces por lo que las dos restante corresponden a las
del polinomio Q(z)
1 a b c
1 1 1 (1 + a ) 1 ( b + 1 ( 1 + a ) )
1 1 + a b + 1 ( 1 + a ) c + 1 ( b + 1 ( 1 + a ) )
0 (cero)
Q ( z ) = z 2 + ( 1 + a ) z + ( b + 1 (1 + a ) )
z 3 + az 2 + bz + c = 0
1. La primera raíz se encuentra utilizando la modificación de N-R modificado. Se sugiere
utilizar como valor semilla z(0)=1
z( )
k +1 ( )
=z −
k ( f z(
)
) f '( z( ) )
k k
f ' ( z ( ) ) − f ( z ( ) ) f '' ( z ( ) )
2
k k k
D = (1 + a ) − 4 ( b + 1 (1 + a ) )
2
− ( 1 + a ) + D
2 = zv = max (1 , 2 , 3 )
2
D0 zl = min (1 , 2 , 3 )
− ( 1 + a ) − D
3 =
2
bP a (Tr ) P
B' = ' =
( RT )
2
RT
vv = zv RT P