Upload
vodang
View
227
Download
2
Embed Size (px)
Citation preview
2014
Alejandro González Vásquez
Juan Jacobo Lozano Osorio
Mateo Maya Uparela
Manuela Yepes Gómez
Universidad EAFIT
22-9-2014
Métodos numéricos para ingenieros
MÉTODOS NUMÉRICOS PARA INGENIEROS
ALEJANDRO GONZÁLEZ VÁSQUEZ 201310040014
JUAN JACOBO LOZANO OSORIO 201117000014
MATEO MAYA UPARELA 201310040014
MANUELA YEPES GÓMEZ 201110025012
Trabajo escrito
Solución de ecuaciones no lineales
Procesos numéricos ST0241
Docente: Gabriel Jaime Castaño Chica
Septiembre 22
UNIVERSIDAD EAFIT
FALCULTAD DE INGENIERÍA
MEDELLÍN
2014
TABLA DE CONTENIDO
1. INTRODUCCIÓN .............................................................................................. 3
2 OBJETIVOS ...................................................................................................... 4
2.1 OBJETIVO GENERAL ............................................................................... 4
2.2 OBJETIVOS ESPECÍFICOS ...................................................................... 4
3 MARCO TEÓRICO............................................................................................ 5
3.1 OCTAVE 3.2.4 ............................................................................................ 5 3.1.1 Justificación del uso del software y medición del error .................................................... 5 3.1.2 Entradas: Criterios de parada......................................................................................... 6 3.1.3 ....................................................................................................................................... 7
3.2 BÚSQUEDAS INCREMENTALES ............................................................. 7 3.2.1 Procedimiento en Excel. ................................................................................................ 8 3.2.2 Código de Búsquedas en Octave. .................................................................................. 9
3.3 MÉTODOS DE SOLUCIÓN DE ECUACIONES NO LINEALES DE UNA
SOLA VARIABLE .............................................................................................. 10 3.3.1 Bisección. .................................................................................................................... 11 3.3.2 Regla falsa................................................................................................................... 15 3.3.3 Punto fijo. .................................................................................................................... 19 3.3.5 Newton Modificado. ..................................................................................................... 27 3.3.6 Secante. ...................................................................................................................... 30
3.4 ANÁLISIS SOBRE RAPIDEZ DE CONVERGENCIA, LIMITACIONES Y
VENTAJAS ........................................................................................................ 34
3.5 DEFLACIÓN ........................................................................................... 380
3.6 ANEXOS ................................................................................................. 391 3.6.1 ANEXO A ............................................................................................................ 391 3.6.2 ANEXO B ............................................................................................................ 391 3.6.3 ANEXO C ............................................................................................................ 402 3.6.4 ANEXO D ............................................................................................................ 402
3.7 CONCLUSIONES ................................................................................... 413
3.8 BIBLIOGRAFÍA ...................................................................................... 424
1. INTRODUCCIÓN
El arte de la ingeniería consiste en la capacidad de plantear modelos matemáticos
que expliquen realidades complejas, sin embargo, el ingeniero se ve en la
necesidad de simular hipótesis, evaluarlas y, generalmente, redefinirlas hasta
verificar que la solución final obtenida corresponde a una aproximación de lo
esperado.
Las herramientas de cálculo agilizan considerablemente este proceso, según
(Zabala, 2011): La computación provee el software y el hardware que garantizan la
calidad y eficiencia de la solución, pero es el análisis numérico el que sustenta y
selecciona el método de solución adecuado. Los métodos numéricos permiten
resolver problemas a partir de aproximaciones usando operaciones aritméticas de
forma eficiente. Por lo tanto, sin los métodos numéricos y los sistemas de cómputo
no se hubiesen alcanzado los altos niveles de ciencia y tecnología que hoy
existen.
En este informe se presentarán diferentes métodos para la solución de modelos
matemáticos con ecuaciones no lineales de una variable y se desarrollarán los
códigos de programación con la herramienta de cómputo Octave 3.2.4.
Inicialmente, se describirá el fundamento y la metodología de cada proceso; Luego
se realizará un análisis comparativo de las diferentes técnicas con sus ventajas,
desventajas y limitaciones; Y finalmente se llegarán a una serie de conclusiones y
sugerencias con el propósito de dar pautas a los ingenieros para efectuar y
ejecutar la correcta selección e implementación de un método numérico para
construir, verificar o resolver un modelo matemático.
2 OBJETIVOS
2.1 OBJETIVO GENERAL
Aplicar de forma eficiente y asertiva los diferentes métodos de solución vistos en la
asignatura procesos numéricos, para la solución de ecuaciones no lineales de una
variable.
2.2 OBJETIVOS ESPECÍFICOS
Entender la metodología, el fundamento matemático y geométrico de cada
método de solución e identificar la estructura de los algoritmos en el
lenguaje de Octave 3.2.4.
Programar en Octave los códigos de cada una de las técnicas de solución,
utilizando el esquema de funciones.
Identificar la importancia de los métodos numéricos en la formulación y
evaluación de modelos matemáticos.
Reconocer las ventajas y limitaciones de cada estrategia de solución con el
propósito de generar pautas y sugerencias para la correcta selección e
implementación de los mismos.
3 MARCO TEÓRICO
A continuación se presenta la fundamentación teórica de los métodos de solución
de ecuaciones no lineales.
3.1 OCTAVE 3.2.4
3.1.1 Justificación del uso del software y medición del error. GNU Octave es un
lenguaje de alto nivel de libre distribución, destinado principalmente para cálculos
numéricos. Tiene una interfaz sencilla e interactiva para resolver problemas
lineales y no lineales y realizar otros experimentos numéricos usando un lenguaje
compatible con Matlab1. Cabe resaltar que Octave no es un sistema de álgebra
computacional, sino un sistema orientado al análisis numérico2.
Los métodos de solución de ecuaciones no lineales requieren de un alto número
de operaciones y por ello esta herramienta es indispensable para garantizar la
calidad de los resultados y la eficiencia del proceso. Sin embargo, Octave, como
todas las máquinas, tiene restricciones de capacidad de almacenamiento y por lo
tanto se ve obligado a redondear números que posteriormente son usados en
otras operaciones, lo que genera una propagación de error. Por lo anterior, el
ingeniero debe cuantificar ese desfase.
En el proceso de solución de problemas es evidente que no se tiene el valor
exacto, en consecuencia la medición del error se debe hacer en relación a la
precisión, es decir, a la dispersión de los datos. El error absoluto se calculará
1 About GNU Octave. [En línea] [Citado el: 11 de Septiembre de 2014.]
http://www.gnu.org/software/octave/about.html. 2 El Blog de la FRCU. [En línea] 15 de Mayo de 2009. [Citado el: 11 de Septiembre de 2014.]
http://utn-blog.blogspot.com/2009/05/software-open-source-para-calculos.html.
como la distancia entre el valor más reciente y el inmediatamente anterior
| |
3.1.2 Entradas: Criterios de parada. Los métodos de solución de problemas de
ecuaciones no lineales son métodos iterativos y por lo tanto el usuario establecer
unos criterios de parada que le indiquen a la máquina que ha encontrado la
solución que el usuario desea. Cuando por lo menos uno de los criterios se
cumple el proceso se detiene y el sistema arroja un resultado.
Número máximo de iteraciones [ ]: El usuario determina un número
de iteraciones que está dispuesto a hacer. Cabe resaltar que no siempre
son necesarias todas las iteraciones escogidas por el usuario.
Delta [ ] El usuario debe seleccionar un número δ lo suficientemente
pequeño para que el proceso se detenga cuando | | . Delta es el
valor límite para el cual la variable tiene sentido en el contexto del
problema.
Tolerancia [ ]: El usuario debe seleccionar un número lo suficientemente
pequeño para que el proceso se detenga cuando
Otras restricciones: Cada método puede presentar restricciones
adicionales para impedir operaciones prohibidas, como por ejemplo
divisiones por cero, raíces de números negativos, entre otros.
3.1.3. Presentación de resultados en Octave. La salida de todos los métodos de
solución de ecuaciones no lineales tendrá la forma de una matriz ( ; donde
es el número de iteraciones. Ésta proporcionará información acerca de los
cálculos realizados y almacenados en cada aproximación. (Ver Figura 1.)
# Iteración Aproximación
El último registro es la solución
Es el valor de la función evaluada en x
Error absoluto Error relativo
Rapidez de convergencia
3
Figura 1. Matriz de salida
Fuente: Construcción propia
3.2 BÚSQUEDAS INCREMENTALES
Se tiene que . Ambas son funciones definidas en el conjunto de los
reales y por lo menos una de ellas no es lineal.
La expresión se transforma a
Luego, la solución es el conjunto de valores que evaluados en dan cero.
Dichos valores se conocen como raíces.
¿Dónde se encuentran las raíces? Antes de seleccionar un método de solución, el
ingeniero debe realizar una búsqueda que le permita identificar al menos un
intervalo [ ] tal que: sea continua y , es decir, que la función
pueda ser dibujada sin levantar el lápiz y exista cambio de signo para garantizar
que el eje es cortado en algún momento. Para ello, se requiere una herramienta
de cómputo que agilice el proceso.
3 Que tan rápido el error se hace cero. Este concepto se ampliará en la sección 3.5.
3.2.1 Procedimiento en Excel. A continuación se describirán cada uno de los
pasos necesarios para realizar el proceso de búsqueda utilizando la herramienta
Excel.
Seleccionar un intervalo de valores [ ] a evaluar en la función
Seleccionar el incremento, de tal forma que:
Evaluar cada uno de los puntos.
Identificar al menos un intervalo donde la función cambia de signo.
Seleccionar uno de los intervalos encontrados. Tenga en cuenta que éste debe tener sentido en el contexto del problema estudiado.
Concluir. La solución al problema se encuentra en el intervalo [ ]
seleccionado, dado que en él la función es continua y cambia de
signo, por lo tanto, en algún momento se hace cero. Los métodos de
solución se deben enfocar en encontrar la raíz dentro de ese rango.
La Figura 2 ilustra un ejemplo de la construcción de la hoja de cálculo en Excel
para realizar el procedimiento anteriormente expuesto.
Figura 2. Ejemplo de Búsquedas incrementales en Excel.
Fuente: Construcción propia
3.2.2 Código de Búsquedas en Octave. Generalmente el ingeniero debe realizar
múltiples búsquedas y por lo tanto la construcción de una hoja de cálculo en Excel
para cada caso resulta laborioso, toma tiempo y da lugar a errores. Por lo anterior,
Octave es la herramienta apropiada para garantizar una mayor eficiencia y calidad
de la información. A continuación se presenta el código en este lenguaje.
function [ matriz ] = busqueda(a,b,incremento)
%Este programa se usa para encontrar los intervalos en
los que se localizan las raíces de una función, es
decir, la coordenada en x en la cual f(x) es cero.
format long %Este comando muestra todos los
resultados con la mayor cantidad de
decimales posible.
i=0; %Se inicializa el contador en cero.
while (a+incremento)<=b %Esta condición garantiza que se haga
la búsqueda en el dominio que el
usuario seleccione
x=funcion(a); %Se evalúa la función en a (f(a))
y=funcion(a+incremento); %Se evalúa la función en a+incremento
(f(a+incremento))
if x*y<=0 %Condición que verifica que haya
cambio de signo entre los dos puntos
del intervalo.
i=i+1; %Aumenta el contador para ubicar
acertadamente los intervalos en la
matriz.
matriz(i,1)=a; %Muestra el valor de a en la posición
i,1
matriz(i,2)=a+incremento;%Muestra el valor de a+incremento en
la posición i,2
a=a+incremento; %Se continua incrementando el valor de
'a' para buscar otros intervalos donde
haya cambio de signo
else
a=a+incremento; %En caso de que no haya cambio de
signo en el intervalo, se incrementa
'a' para continuar con la búsqueda.
endif
endwhile
endfunction
3.3 MÉTODOS DE SOLUCIÓN DE ECUACIONES NO LINEALES DE UNA
SOLA VARIABLE
Antes de seleccionar un método de solución es indispensable haber realizar el
proceso de búsquedas, dado que todas las técnicas requieren de un intervalo
[ ] tal que:
sea continua en [ ]
Teniendo lo anterior presente, se procederá a exponer el fundamento matemático
de cada técnica, su metodología y su respectivo código en Octave.
3.3.1 Bisección. Este método consiste en dividir el intervalo [ ] en dos partes de
igual tamaño tantas veces como sea necesario hasta encontrar la raíz de la
función. “En cada iteración, se genera un intervalo cada vez más pequeño que
contiene la raíz que se está buscando”. (Zabala, 2011)
3.3.1.1 Metodología
Paso 1. Calcular el valor promedio del intervalo, el cual se llamará . Luego
se forman dos intervalos: [ ] y [ ] (Ver Gráfica 1)
Gráfica 1. Bisección metodología paso 1.
Fuente: Construcción propia
Paso 2. Seleccionar el intervalo donde hay cambio de signo, es decir,
toma la posición del extremo del intervalo que tenga una imagen de igual
signo debido a que es de signo diferente al otro extremo del intervalo.
(Ver Gráfica 2)
Gráfica 2. Bisección metodología paso 2.
Fuente: Construcción propia
Paso 3. A ese nuevo intervalo, más pequeño, se le calcula el valor medio y
se repite el proceso anteriormente expuesto.(Ver Gráfica 3)
4
Gráfica 3. Bisección metodología paso 3.
Fuente: Construcción propia
4 En este caso la función cambia de signo en el intervalo [ ] y por ende toma el lugar de
Este procedimiento termina cuando al evaluar en la función se obtiene el
valor de cero, dado que indica que la raíz de la función ha sido encontrada.
En Octave el proceso de iteración acaba cuando al menos uno de los
criterios de parada se cumple.
3.3.1.2 Código de bisección en Octave.
function [ matriz ] = biseccion (a,b,nmax,delta,tolerancia)
format long %Esta herramienta muestra todos los resultados con la
mayor cantidad de decimales posible.
% a,b es el intervalo en el que se va a trabajar luego
de realizar la búsqueda.
%Se utilizan los criterios de parada de número máximo
de iteraciones, delta y tolerancia. El que primero se
cumpla, detiene el programa.
%Inicializadores
i=0;
m=delta+1;
error=tolerancia+1;
erroranterior=1;
q=a; %Se hace solo para la primera vez que el programa haga
un ciclo; esto garantiza que el error no sea cero y el
programa termine por el criterio de parada tolerancia.
while i<nmax & m>delta & error>tolerancia
%Se utilizan los criterios para que el programa
continúe
i=i+1; %Aumenta el contador de las iteraciones.
matriz(i,1)=i;
x=(a+b)/2; %Se divide el intervalo a la mitad.
matriz(i,2)=x;
y=funcion(x); %Se evalúa f(x)
matriz(i,3)=y;
m=abs(y); %Se nombra f(x) con 'm' para que sea evaluado
por el criterio de parada delta.
error=abs(x-q); %Se halla el error absoluto de las x
matriz(i,4)=error;
alpha=error/erroranterior; %Se halla la rapidez de convergencia.
matriz(i,5)=alpha;
%MOSTRANDO LA MATRIZ, EL ÚLTIMO VALOR DE X ES LA SOLUCIÓN
if funcion(a)*funcion(x)<0 %Condicionales para verificar que haya
cambio de signo entre los dos extremos
del intervalo en estudio.
b=x;
else
a=x;
endif
erroranterior=error;
q=x;
endwhile
endfunction
METODO COMPLEMENTARIO:VER ANEXO A
3.3.2 Regla falsa. Este método conserva la misma metodología de bisección,
excepto por la forma en la que parte el intervalo en dos. Para encontrar este punto
se debe calcular el intercepto con el eje de la recta que pasa por los puntos
y En cada iteración se genera un intervalo cada vez más
pequeño y similar a una recta que contiene la raíz que se está buscando. (Clase
magistral, 2014)
3.3.2.1Metodología
Paso 1.Trazar la línea recta que pasa por los puntos y
Paso 2.Calcular el intercepto de esta línea con el eje x con la expresión
punto pendiente de una recta. (Ver Gráfica 4)
Gráfica 4. Regla falsa metodología paso 2.
Fuente: Construcción propia
Paso 3. Seleccionar el intervalo donde hay cambio de signo, es decir,
toma la posición del extremo del intervalo que tenga una imagen de igual
signo.(ver Gráfica 5)
Gráfica 5. Regla falsa metodología paso 3.
Fuente: Construcción propia
Paso 4. A este nuevo intervalo, más pequeño y semejante a una línea
recta, se le aplica el mismo procedimiento.(ver Gráfica 6)
5
Gráfica 6. Regla falsa metodología paso 4.
Fuente: Construcción propia
Este proceso se termina cuando al evaluar “x” en la función se obtiene el
valor de cero, pues indica que la raíz de la función ha sido encontrada. En
Octave el proceso de iteración acaba cuando al menos uno de los criterios
de parada se cumple.
3.3.2.2. Código de Regla falsa en Octave
function [ matriz ] = rfalsa (a,b,nmax,delta,tolerancia)
format long %Esta herramienta muestra todos los resultados con la
mayor cantidad de decimales posible.
% a,b es el intervalo en el que se va a trabajar luego
de haber realizado la búsqueda.
%Se utilizan los criterios de parada de número máximo
de iteraciones, delta y tolerancia. El que primero se
cumpla, detiene el programa.
5 En este caso la función cambia de signo en el intervalo [ ], en consecuencia “ ” toma el lugar
de “b”.
%Inicializadores
i=0;
m=delta+1;
error=tolerancia+1;
erroranterior=1;
q=a; %Se hace solo para la primera vez que el programa haga
un ciclo; esto garantiza que el error no sea cero y el
programa no termine por el criterio de parada
tolerancia.
while i<nmax & m>delta & error>tolerancia
%Se utilizan los criterios para que el
programa continúe.
i=i+1; %Aumenta el contador de las iteraciones
matriz(i,1)=i;
x=b-(funcion(b)*(b-a))/(funcion(b)-funcion(a));
matriz(i,2)=x; %Se divide el intervalo en el punto
donde la recta que une a y b
intersecta el eje x
y=funcion(x); %Se evalúa f(x)
matriz(i,3)=y;
m=abs(y); %Se nombra f(x) con 'm' para que sea
evaluado por el criterio de parada
delta.
error=abs(x-q); %Se halla el error absoluto de las x
matriz(i,4)=error;
alpha=error/erroranterior; %Se halla la rapidez de convergencia.
matriz(i,5)=alpha;
%MOSTRANDO LA MATRIZ, EL ÚLTIMO VALOR DE X ES LA SOLUCION.
if funcion(a)*funcion(x)<0 %Condicionales para verificar que haya
cambio de signo entre los dos extremos
del nuevo intervalo en estudio.
b=x;
else
a=x;
endif
erroranterior=error;
q=x;
endwhile
endfunction
METODO COMPLEMENTARIO:(VER ANEXO A)
3.3.3 Punto fijo. A diferencia de los métodos de bisección y regla falsa, el método
de punto fijo genera una sucesión de valores que se espera converjan en la raíz
sin la necesidad de obtener intervalos que la contengan.
En los métodos anteriores, se buscaba el intercepto con el eje de la función
en el intervalo [ ] En esta técnica se indagará por el intercepto de la
curva con la recta [ ], dado que en este lugar .
Este punto se conoce como Punto fijo.
Para encontrar la función se debe despejar de una de las incógnitas, de
tal forma que El punto fijo satisface entonces la función dado que al
ser igual a , se cumple la igualdad , indicando
que la raíz de la función ha sido encontrada.
La función debe cumplir las siguientes dos condiciones para garantizar la
existencia y unicidad del punto fijo.
El punto fijo existe si: es continua en [ ] y [ ] [ ]
El punto fijo es único si: | | [ ]
67
3.3.3.1Metodología
Realizar la búsqueda para encontrar un intervalo [a,b] tal que:
f(x) es continua en [a,b]
f(a) . f(b) < 0
Despejar una incógnita de la función para obtener una función
Es importante resaltar que no toda función sirve, dado que puede
permitir operaciones prohibidas o arrojar resultados por fuera del intervalo
[ ] En ese caso se debe buscar otra función.
Elegir un [ ]
Evaluar en para obtener el punto siguiente de la sucesión;
En general evaluar en para calcular .(ver Gráfica 7)
6 Si la pendiente de la función siempre es menor a 1 (pendiente de ), entonces existirá
solo un intercepto y por lo tanto el punto fijo es único. 7 Toda función continua que se dibuje en el intervalo [ ] sin salirse del recuadro debe cortar la
recta y por lo tanto existe un punto fijo.
El proceso de iteración termina al encontrar un tal que al evaluarlo en la
función arroje el mismo valor, es decir, dado que indica
que el punto fijo ha sido encontrado. En Octave el proceso de iteración
acaba cuando al menos uno de los criterios de parada se cumple.
Gráfica 7. Punto fijo metodología.
Fuente: Construcción propia
3.3.3.2 Código Punto fijo en Octave
function [matriz] = puntofijo (a,nmax,delta,tolerancia)
format long %Esta herramienta muestra todos los
resultados con la mayor cantidad de
decimales posible.
% a es un punto cualquiera dentro del
intervalo en el que se va a trabajar. (Este
intervalo se halló en la búsqueda).
%Se utilizan los criterios de parada de
número máximo de iteraciones, delta y
tolerancia. El que primero se cumpla,
detiene el programa.
%Inicializadores
i=0;
m=delta+1;
error=tolerancia+1;
erroranterior=1;
while i<nmax & m>delta & error>tolerancia %Se utilizan los criterios
para que el programa
continúe
i=i+1; %Aumenta el contador de las iteraciones
matriz(i,1)=i;
x=guncion(a); %Se evalúa la 'a' en la función g(x) para
encontrar la nueva x que se evaluara
posteriormente en la misma función g(x)
matriz(i,2)=x;
y=funcion(x); %Se evalúa la x en la función f(x) hasta que
dé cero o algún criterio de parada
interrumpa el programa.
matriz(i,3)=y;
m=abs(y); %Se nombra f(x) con 'm' para que sea
evaluado por el criterio de parada delta.
error=abs(x-a); %Se halla el error absoluto entre 'a' y 'x'
matriz(i,4)=error;
alpha=error/erroranterior; %Se halla la rapidez de convergencia.
matriz(i,5)=alpha;
erroranterior=error;
a=x; %Se nombra x con 'a' para realizar
nuevamente el ciclo
%MOSTRANDO LA MATRIZ, EL ÚLTIMO VALOR DE X ES LA SOLUCIÓN.
endwhile
endfunction
METODO COMPLEMENTARIO:(VER ANEXO A Y ANEXO B)
3.3.4 Newton-Raphson. El método de Newton-Raphson es un caso particular de
punto fijo al utilizar la forma para encontrar la raíz de la función Esta
técnica también genera una sucesión de valores que convergen a la raíz de
sin embargo el método de aproximación se realiza a partir del trazado de
tangentes; De allí el otro nombre que recibe esta estrategia, “el método de
tangentes”.
En este caso, la función se calcula a partir de la expresión punto pendiente
de la tangente de que pasa por los puntos y ( ,0). (Ver
Gráfica 8)
Gráfica 8. Construcción de la tangente
Fuente: Construcción propia
( )
3.3.4.1 Metodología
Encontrar la función única con la expresión
Elegir un [ ]
Evaluar en para obtener el punto siguiente de la sucesión;
En general evaluar en para calcular
El proceso de iteración termina al encontrar un tal que al evaluarlo en la
función arroje , dado que indica que la raíz de ha sido
encontrada.
Es importante resaltar que este método puede presentar problemas cuando la
derivada se aproxima a cero. A continuación se presenta la Gráfica 9, ilustrando la
metodología anteriormente expuesta.
Gráfica 9. Newton Raphson metodología.
Fuente: Construcción propia
3.3.4.2Código Newton-Raphson en Octave
function [matriz] = nraphson (a,nmax,delta,tolerancia)
format long %Esta herramienta muestra todos los
resultados con la mayor cantidad de
decimales posible.
% a es un punto cualquiera dentro del
intervalo en el que se va a trabajar. Este
intervalo se halló en la búsqueda.
%Se utilizan los criterios de parada de
número máximo de iteraciones, delta y
tolerancia. El que primero se cumpla,
detiene el programa.
%Inicializadores
i=0;
m=delta+1;
error=tolerancia+1;
erroranterior=1;
while i<nmax & m>delta & error>tolerancia & dfuncion(a)~=0
%Se utilizan los criterios para que el
programa continúe
i=i+1; %Aumenta el contador de las iteraciones
matriz(i,1)=i;
x=a-(funcion(a)/dfuncion(a)); %Se selecciona la nueva x. Esta
'x' es el punto de intersección
entre la línea tangente al punto
a y el eje x.
matriz(i,2)=x;
y=funcion(x); %Se evalúa la x en la función f(x) hasta que
dé cero o algún criterio de parada
interrumpa el programa.
matriz(i,3)=y;
m=abs(y); %Se nombra f(x) con 'm' para que sea
evaluado por el criterio de parada delta.
error=abs(x-a); %Se halla el error absoluto de las x
matriz(i,4)=error;
alpha=error/erroranterior^2; %Se halla la rapidez de convergencia.
matriz(i,5)=alpha;
erroranterior=error;
a=x; %Se nombra x con 'a' para realizar
nuevamente el ciclo
%MOSTRANDO LA MATRIZ, EL ÚLTIMO VALOR DE X ES LA SOLUCION.
endwhile
endfunction
METODOS COMPLEMENTARIOS:(VER ANEXO A Y ANEXO C)
3.3.5 Newton Modificado. Este método es una corrección a la técnica de Newton-
Raphson, dado a que éste último solo garantiza la convergencia en la raíz si y solo
si la derivada de la función nunca se hace cero.
Gráfica 10. Newton Raphson modificado metodología.
Fuente: Construcción propia
El método de Newton Raphson modificado permite resolver funciones no lineales que
contengan raíces críticas (máximos, mínimos o puntos de inflexión que corten el eje
), es decir, lugares donde simultáneamente la función y su primera derivada se
hagan cero. En estos puntos la raíz se repite y por ello recibe el nombre de raíz
múltiple.
Cuando la raíz es un punto de inflexión, la raíz se repite un número impar de
veces.
Cuando la raíz es un máximo o un mínimo, la raíz se repite un número par de
veces.
Código de Newton modificado en Octave
function [matriz] = newtonmod (a,nmax,delta,tolerancia)
format long %Esta herramienta muestra todos los
resultados con la mayor cantidad de
decimales posible.
% a es un punto cualquiera dentro del
intervalo en el que se va a trabajar. Este
intervalo se halló en la búsqueda.
%Se utilizan los criterios de parada de
número máximo de iteraciones, delta y
tolerancia. El que primero se cumpla,
detiene el programa.
%Inicializadores
i=0;
m=delta+1;
error=tolerancia+1;
erroranterior=1;
while i<nmax & m>delta & error>tolerancia & dfuncion(a)~=0
%Se utilizan los criterios para que el
programa continúe
i=i+1; %Aumenta el contador de las iteraciones
matriz(i,1)=i;
x=a-((funcion(a)*dfuncion(a))/(dfuncion(a) 2̂-funcion(a)*d2funcion(a)));
%Se selecciona la nueva x. Esta 'x' es el
punto de intersección entre la línea
tangente al punto a y el eje x. Ahora no
importa si la pendiente es cero. El programa
seguirá funcionando.
matriz(i,2)=x;
y=funcion(x); %Se evalúa la x en la función f(x) hasta que
dé cero o algún criterio de parada
interrumpa el programa.
matriz(i,3)=y;
m=abs(y); %Se nombra f(x) con 'm' para que sea
evaluado por el criterio de parada delta.
error=abs(x-a); %Se halla el error absoluto de las x
matriz(i,4)=error;
alpha=error/erroranterior^2; %Se halla la rapidez de convergencia.
matriz(i,5)=alpha;
erroranterior=error;
a=x; %Se nombra x con 'a' para realizar
nuevamente el ciclo
%MOSTRANDO LA MATRIZ, EL ÚLTIMO VALOR DE X ES LA SOLUCION.
endwhile
endfunction
MÉTODOS COMPLEMENTARIOS:(VER ANEXO A, ANEXO C Y ANEXO D)
3.3.6 Secante. El método de la secante es otra alternativa de corrección al
método de Newton-Raphson. Este método genera una sucesión de valores que
convergen en la raíz de a partir del trazado de rectas secantes entre dos
puntos de la función. No es requisito que entre dichos puntos se presente cambio
de signo y tampoco que correspondan a los extremos del intervalo previamente
encontrado.
Es importante resaltar que esta función es similar a la de regla falsa, sin embargo,
el método de la secante es mucho más rápido al no tener que preocuparse por
encontrar un intervalo donde la función cambie de signo.
3.3.6.1Metodología
Seleccionar dos puntos cualquiera dentro del intervalo [ ] los cuales se
llamarán
Evaluar ambos puntos en la función y unir sus imágenes con una recta
hasta que el eje x sea cortado.
Para calcular el punto que corta el eje x, aplicar la fórmula anteriormente
expuesta.
Evaluar en la función y unir su imagen con la del punto
Repetir el procedimiento, hasta encontrar un valor tal que al evaluarlo en
la función de cero, o lo que es lo mismo, hasta que .
Gráfica 11. Secante metodología.
Fuente: Construcción propia
3.3.6.2 Código de la secante en Octave
function [ matriz ] = secante (a,b,nmax,delta,tolerancia)
format long %Esta herramienta muestra todos los
resultados con la mayor cantidad de
decimales posible.
% a,b son dos puntos dentro del intervalo en
el que se va a trabajar para formar la linea
secante. Este intervalo se halló en la
búsqueda.
%Se utilizan los criterios de parada de
número máximo de iteraciones, delta y
tolerancia. El que primero se cumpla,
detiene el programa.
%Inicializadores
i=0;
m=delta+1;
error=tolerancia+1;
erroranterior=1;
while i<nmax & m>delta & error>tolerancia & funcion(b)~=funcion(a)
%Se utilizan los criterios para que el
programa continúe
i=i+1; %Aumenta el contador de las iteraciones
matriz(i,1)=i;
x=b-((funcion(b)*(b-a))/(funcion(b)-funcion(a)));
%Se consigue el nuevo punto con la
intersección entre la línea secante y el eje
x.
matriz(i,2)=x;
y=funcion(x); %Se evalúa la x en la función f(x) hasta que
dé cero o algún criterio de parada
interrumpa el programa.
matriz(i,3)=y;
m=abs(y); %Se nombra f(x) con 'm' para que sea
evaluado por el criterio de parada delta.
error=abs(x-b); %Se halla el error absoluto de las x
matriz(i,4)=error;
alpha=error/erroranterior^((1+sqrt(5))/2);
%Se halla la rapidez de convergencia.
matriz(i,5)=alpha;
erroranterior=error;
a=b; %'b' se convierte en 'a'
b=x; %'x' se convierte en 'b'
%MOSTRANDO LA MATRIZ, EL ÚLTIMO VALOR DE X ES LA SOLUCION.
endwhile
endfunction
MÉTODO COMPLEMENTARIO:(VER ANEXO A)
3.4 ANÁLISIS SOBRE RAPIDEZ DE CONVERGENCIA, LIMITACIONES Y
VENTAJAS
Luego haber comprendido el fundamento teórico y la metodología de cada
estrategia de solución, se analizarán aspectos como la rapidez de convergencia,
limitaciones y ventajas de cada técnica, con el propósito construir conclusiones,
sugerencias y recomendaciones que sirvan como herramientas para la correcta
selección y aplicación de los métodos.
A continuación se presenta la Tabla1, la cual expone a modo de cuadro
comparativo las características de las diferentes metodologías.
Rapidez de convergencia Limitaciones Ventajas
Bisección
En cada iteración el error se reduce a la
mitad.
-El número máximo de divisiones
depende de la capacidad de
almacenamiento de la máquina.
-Generalmente es más lento.
-Solo sirve para raíces simples.
-Mientras se tenga un intervalo
que contenga una raíz, él
siempre converge.
-Es útil cuando no se sabe nada
acerca de la función
Regla falsa
Más rápido que bisección
ó
Más lento que bisección
-Debe preguntar por un intervalo
donde la función cambie de signo.
-Solo sirve para raíces simples.
-Entre se asemeje más a
una recta, el método funciona
mejor.
Punto fijo
-Hay funciones que no tiene punto
fijo como
-Hay funciones que tienen infinitos
puntos fijos como
-La función se obtiene a ensayo
y error, en ocasiones la solución
diverge.
-Solo sirve para raíces simples.
-Es útil para verificar la
convergencia de una serie o
sucesión.
Newton-Raphson
Son los métodos más rápidos
La sucesión no converge si la
primera derivada se hace cero. Por lo
tanto, no es recomendable aplicar
este método para funciones con
muchos máximos, mínimos y picos.
-Solo sirve para raíces simples.
-Se requiere derivar.
-No siempre converge.
La velocidad de convergencia
es alta.
Tiene menos operaciones que
Newton modificado.
Newton modificado
Son los métodos más rápidos
-Hay que derivar dos veces.
Cuando
-Es recomendable para
funciones con muchos valores
críticos (máximos, mínimos y
puntos de inflexión), dado que
converge aún si
-Sirve para raíces múltiples.
-La velocidad de convergencia
es alta
Secante
√
Es mejor que la convergencia lineal, pero no
tanto como la convergencia cuadrática.
-No hay que derivar. Sólo se debe
ingresar la función .
-No debe preguntar por un intervalo
donde la función cambie de signo.
-No siempre converge.
Solo sirve para raíces simples.
-No es necesario un intervalo
que contenga la raíz.
-Entre más se parezca la
función a una recta, mejor
funciona este método.
Tabla 1. Análisis de rapidez de convergencia, limitaciones y ventajas.
3.5 DEFLACIÓN
Deflación es un procedimiento utilizado especialmente en polinomios el cual es basa
en encontrar tantas soluciones como grados tenga el polinomio, es decir,
dependiendo del grado del polinomio se encuentra cierta cantidad de raíces.
Un caso ideal sería cuando, después de realizar la búsqueda, se encuentren la
misma cantidad de intervalos como raíces que tiene la función; pero son escazas las
situaciones que ocurre. Para esto se realiza el siguiente procedimiento suponiendo
que, en un polinomio de grado mayor a dos, solo tenemos un intervalo donde f(x) se
hace cero:
Se realiza división sintética por la raíz obtenida en el intervalo encontrado.
Como el grado del polinomio se redujo, vuelvo a realizar la búsqueda en el
nuevo polinomio, encuentro la raíz y realizo división sintética por la raíz
encontrada.
Una vez el polinomio sea de grado 2, se utiliza la ecuación general
√
para encontrar las últimas dos raíces.
NOTA: Puede darse el caso en que, luego de realizar la división sintética, el
intervalo arrojado en la búsqueda del nuevo polinomio sea igual al intervalo
anterior y que, a la vez, encontremos la misma raíz. Esto quiere decir que la raíz
se repite y puedo continuar con el procedimiento.
Se debe tener en cuenta que, en algunos polinomios, se pueden encontrar raíces
reales, repetidas y/o imaginarias.
3.6 ANEXOS
3.6.1 ANEXO A
function [ y ] = funcion (x)
%En este programa puedo tener muchas funciones distintas pero
solamente una activa. Para activarla o desactivarla, utilizo el
símbolo de porcentaje (%)
%La función activa es la que no tiene símbolo de porcentaje, es
decir, la que no está como comentario.
y=exp(x)-x^2-3*x^3-14*cos(x);
%y=(log(x^2+1)-3*x)/tan(x);
Endfunction
3.6.2 ANEXO B
function [ y ] = guncion (x)
%En este programa se ubican las x despejadas de la función en la
que se está trabajando. Puedo tener muchas funciones distintas
pero una sola activa. Para activarla o desactivarla, utilizo el
símbolo de porcentaje (%)
%La función activa es la que no tiene símbolo de porcentaje, es
decir, la que no está como comentario.
% En este caso, esta es la función en la que se está trabajando
y posteriormente se encuentran ecuaciones de las x despejadas.
[y=exp(x)-x^2-3*x^3-14*cos(x)]
%Despejando x^2,
y=(exp(x)-3*x^3-14*cos(x))/x;
%Despejando x^2,
%y=(exp(x)-3*x^3-14*cos(x))^(1/2)
%Despejando 3*x^3
%y=((exp(x)-x^2-14*cos(x))/3)^(1/3);
Endfunction
3.6.3 ANEXO C
function [ y ] = dfuncion (x)
%En este programa se tienen las derivadas de las funciones en
los programas que necesitan de éstas.
% Derivada de (exp(x)-x^2-3*x^3-14*cos(x))
y=(exp(x)-2*x-9*x^2+14*sin(x));
endfunction
3.6.4 ANEXO D
function [ y ] = d2funcion (x)
%En este programa se tienen las segundas derivadas de las
funciones en los programas que necesitan de éstas.
% Segunda Derivada de (exp(x)-x^2-3*x^3-14*cos(x))
y=(exp(x)-2-18*x+14*cos(x));
endfunction
3.7 CONCLUSIONES
Se comprendió que los métodos de solución propuestos por el análisis
numérico facilitan el trabajo del ingeniero, dado a que en general los modelos
matemáticos que se deben resolver son complejos y sin una herramienta de
cómputo, que de forma rápida ejecute dichos métodos de aproximaciones, no
se podrían obtener soluciones con alta eficiencia y calidad.
Se evidenció que Octave es una herramienta de cómputo, que a pesar de
tener limitaciones de almacenamiento, realiza las aproximaciones teniendo en
cuenta el grado el calidad solicitado por el usuario y que además brinda la
información suficiente para que éste realice el análisis respectivo para la toma
de decisiones.
Se comprendió el fundamento, la metodología y la estructura de programación
de los diferentes métodos de solución y por lo tanto, se está en capacidad de
resolver cualquier modelo matemático que involucre ecuaciones no lineales de
una sola variable.
Se identificaron ventajas y limitaciones de cada una de las estrategias de
solución y en base a ello se llegó a las siguientes recomendaciones:
Si es usuario desea seleccionar un método de solución que tenga
pocas iteraciones, debe tener en cuenta que los métodos de
convergencia lineal son los más lentos (Bisección, regla falsa y punto
fijo), mientras que los métodos de convergencia cuadrática son los más
rápidos (Newton y raíces múltiples)
Antes de seleccionar un método de solución resulta útil utilizar una
herramienta de graficación como GeoGebra, dado que permite
identificar la naturaleza de la función para determinar que fundamento
geométrico se ajusta más para su solución.
Es indispensable que el usuario establezca correctamente el grado de
calidad de los resultados deseados.
3.8 BIBLIOGRAFÍA
ZABALA, Francisco Jose Correa. Solución Numérica de ecuaciones de una variable.
En: Métodos Numéricos. 1 ed. Medellín. Fondo editorial Universidad EAFIT, 2011. p.
91-140
CLASE MAGISTRAL PROCESOS NUMÉRICOS. (25, 27 Octubre; 1,3,8,12,15
Septiembre, 2014: Medellín, Colombia). Notas de clase. Universidad EAFIT.
About GNU Octave. [En línea] [Citado el: 11 de Septiembre de 2014.]
http://www.gnu.org/software/octave/about.html.
El Blog de la FRCU. [En línea] 15 de Mayo de 2009. [Citado el: 11 de Septiembre de
2014.] http://utn-blog.blogspot.com/2009/05/software-open-source-para-calculos.html.
The Importance of Team Roles In Teamwork. [En línea] 12 de Abril de 2012. [Citado
el: 10 de Septiembre de 2014.] http://blog.valerisys.com/tlt/the-importance-of-team-
roles-in-teamwork/.