universidad industrial de santander methods/apuntes... · 2020. 6. 15. · - interpolación; asi...

24
MÉTODOS NUMÉRICOS Y CÁLCULO DE PROBABILIDADES UNIVERSIDAD INDUSTRIAL DE SANTANDER FACULTAD DE CIENCIAS Escuela de Física NOMBRE DE LA ASIGNATURA: Métodos numéricos y cálculo de probabilidades CÓDIGO: SEMESTRE: IV REQUISITOS: Cálculo II, Mecánica I, Programación INTENSIDAD HORARIA SEMANAL TAD: 4 TI: 8 C: 4 PROPÓSITOS DEL CURSO: Proporcionar habilidades en la aplicación de los métodos computacionales de tratamiento numérico aplicados a fenómenos físicos. Profundizar habilidades en generar y procesar datos que correspondan a sistemas físicos, donde estos datos corresponden a una medición o una simulación. El curso apoya las siguientes competencias del perfil del egresado en Física: - Maneja herramientas computacionales que le permiten solucionar problemas fundamentales de física, numéricamente; particularmente algoritmos de soluciones de ecuaciones no lineales, sistemas de ecuaciones lineales, - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales de primer y segundo orden. - Calcula probabilidades y maneja algunas funciones de densidad de probabilidad. - Hace cálculo de diferentes estimadores para una población de datos aleatorios CONTENIDO: 1. Operaciones Básicas Matemáticas (12 horas) 1.1. Algoritmo, diagrama de flujo y programa 1.2. Raíces de ecuaciones algebraicas 1.3. Interpolación y derivación numérica 1.4. Problema de ajuste (opcional) 1.5. Integración numérica Proyecto I (Puntos de retorno de trayectorias clásicas, Trayectorias de Poincare simples, Trayectorias de cuasi-clásicas de Bohr-Zommerfeld, Dispersión clásica, Fórmula de Rutherford Transiciones de fase, Representación gráfica de Patrones de Difracción e Interferencia, de Campos Eléctricos y Magnéticos estacionarios, etc.) 2. Ecuaciones diferenciales y Modelamiento de sistemas determinísticos (20horas) 2.1. Problema de Cauchy para sistemas de ecuaciones diferenciales 2.2. Métodos de un paso (Euler, Runge-Kutta) 2.3. Métodos de multipasos explícitos e implícitos 2.4. Predictor-corrector 2.5. Problema de contorno para ecuación diferencial de segunda orden. es parciales. Proyecto II (Oscilaciones no-lineales, modelo clásico de átomo helio, problemas de uno y dos cuerpos, sistemas mini-solares, osciladores acoplados, trayectorias de Poincare y caos, partículas cargadas en campos externos, ondas estacionarias en 1D, difusión y transferencia de energía en 1D, etc.) 3. Modelamiento de sistemas estocásticos (20 horas) 3.1. Sucesos aleatorios. Frecuencia y Probabilidad 3.2. Teoremas de la adición y multiplicación Pruebas independientes. Formula de Bernoulli 3.3. Teoremas de hipótesis y de Bayes 3.4. Variables aleatorias discretas y continuas 3.5. Función y densidad de distribución y características numéricas 3.6. Distribución normal y relacionadas con ella 3.7. Teoremascentral de límite y de los números grandes 3.8. Generadores de números aleatorios. Caminos aleatorios y cadenas de Markov 3.9. Métodos de Monte Carlo Proyecto III (Distribuciones de Gauss, Botzmann, Maxwell, Planck, Fermi, Bose. Distribuciones en Mecánica Cuántica. Caminos aleatorios. Decaimiento de núcleos y distribución de Poisson, Crecimiento de Polímeros, Umbral de Percolación, Formación de “clusters”, etc.) 4. Elementos de estadística Matemática (12 horas) 4.1. Estimaciones e intervalos de Confianza 4.2. Estadística inferencial. Contraste de hipótesis 4.3. Regresión y Ajuste de Curvas Proyecto IV (Intervalos de confianza a) para los promedios de las muestras grandes, b) muestras pequeñas, c) probabilidades. Contraste de hipótesis sobre los promedios de dos conjuntos, Correlación. Verificación de hipótesis sobre existencia de correlación entre dos conjuntos. Regresión lineal y no lineal. BIBLIOGRAFÍA BÁSICA Y COMPLEMENTARIA: Nakamura, Sh. Métodos numéricos aplicados con software, Prentice Hall, México, 1992. H. Gould y J. Tobochnik. An Introduction to Computer Simulation Methods Applications to Physical Systems, Addison -Wesley Publishing Company, 1989 T. Pang. Introduction to computational physics , Cambridge University Press, 2006 Koonin, S.E, Computational Physics, Addisson-Wesley, Publishing Company, Inc. 1986 J. D. Faires, R. L. Burden, Métodos numéricos. Thompson. 2004 Mathews, J. y Fink, K. Métodos numéricos con Matlab. Tercera edición. Prentice Hall, Madrid- 2000.

Upload: others

Post on 17-Mar-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

MÉTODOS NUMÉRICOS Y CÁLCULO DE PROBABILIDADES

UNIVERSIDAD INDUSTRIAL DE SANTANDER

FACULTAD DE CIENCIAS

Escuela de Física

NOMBRE DE LA ASIGNATURA: Métodos numéricos y cálculo

de probabilidades CÓDIGO: SEMESTRE: IV

REQUISITOS: Cálculo II, Mecánica I, Programación INTENSIDAD HORARIA SEMANAL

TAD: 4 TI: 8 C: 4

PROPÓSITOS DEL CURSO:

• Proporcionar habilidades en la aplicación de los métodos computacionales de tratamiento numérico

aplicados a fenómenos físicos.

• Profundizar habilidades en generar y procesar datos que correspondan a sistemas físicos, donde estos datos

corresponden a una medición o una simulación.

• El curso apoya las siguientes competencias del perfil del egresado en Física:

- Maneja herramientas computacionales que le permiten solucionar problemas fundamentales de física,

numéricamente; particularmente algoritmos de soluciones de ecuaciones no lineales, sistemas de

ecuaciones lineales,

- interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones

diferenciales de primer y segundo orden.

- Calcula probabilidades y maneja algunas funciones de densidad de probabilidad.

- Hace cálculo de diferentes estimadores para una población de datos aleatorios

CONTENIDO:

1. Operaciones Básicas Matemáticas (12 horas)

1.1. Algoritmo, diagrama de flujo y programa

1.2. Raíces de ecuaciones algebraicas

1.3. Interpolación y derivación numérica

1.4. Problema de ajuste (opcional)

1.5. Integración numérica

Proyecto I (Puntos de retorno de trayectorias clásicas,

Trayectorias de Poincare simples, Trayectorias de

cuasi-clásicas de Bohr-Zommerfeld, Dispersión

clásica, Fórmula de Rutherford Transiciones de fase,

Representación gráfica de Patrones de Difracción e

Interferencia, de Campos Eléctricos y Magnéticos

estacionarios, etc.)

2. Ecuaciones diferenciales y Modelamiento de

sistemas determinísticos (20horas)

2.1. Problema de Cauchy para sistemas de ecuaciones

diferenciales

2.2. Métodos de un paso (Euler, Runge-Kutta)

2.3. Métodos de multipasos explícitos e implícitos

2.4. Predictor-corrector

2.5. Problema de contorno para ecuación diferencial

de segunda orden. es parciales.

Proyecto II (Oscilaciones no-lineales, modelo clásico

de átomo helio, problemas de uno y dos cuerpos, sistemas

mini-solares, osciladores acoplados, trayectorias de

Poincare y caos, partículas cargadas en campos externos,

ondas estacionarias en 1D, difusión y transferencia de

energía en 1D, etc.)

3. Modelamiento de sistemas estocásticos (20 horas)

3.1. Sucesos aleatorios. Frecuencia y Probabilidad

3.2. Teoremas de la adición y multiplicación Pruebas

independientes. Formula de Bernoulli

3.3. Teoremas de hipótesis y de Bayes

3.4. Variables aleatorias discretas y continuas

3.5. Función y densidad de distribución y

características numéricas

3.6. Distribución normal y relacionadas con ella

3.7. Teoremascentral de límite y de los números

grandes

3.8. Generadores de números aleatorios. Caminos

aleatorios y cadenas de Markov

3.9. Métodos de Monte Carlo

Proyecto III (Distribuciones de Gauss, Botzmann,

Maxwell, Planck, Fermi, Bose. Distribuciones en

Mecánica Cuántica. Caminos aleatorios. Decaimiento de

núcleos y distribución de Poisson, Crecimiento de

Polímeros, Umbral de Percolación, Formación de

“clusters”, etc.)

4. Elementos de estadística Matemática (12 horas)

4.1. Estimaciones e intervalos de Confianza

4.2. Estadística inferencial. Contraste de hipótesis

4.3. Regresión y Ajuste de Curvas

Proyecto IV

(Intervalos de confianza a) para los promedios de las

muestras grandes, b) muestras pequeñas, c)

probabilidades. Contraste de hipótesis sobre los

promedios de dos conjuntos, Correlación.

Verificación de hipótesis sobre existencia de

correlación entre dos conjuntos. Regresión lineal y no

lineal.

BIBLIOGRAFÍA BÁSICA Y COMPLEMENTARIA:

Nakamura, Sh. Métodos numéricos aplicados con software, Prentice Hall, México, 1992.

H. Gould y J. Tobochnik. An Introduction to Computer Simulation Methods Applications to Physical Systems,

Addison -Wesley Publishing Company, 1989

T. Pang. Introduction to computational physics , Cambridge University Press, 2006

Koonin, S.E, Computational Physics, Addisson-Wesley, Publishing Company, Inc. 1986

J. D. Faires, R. L. Burden, Métodos numéricos. Thompson. 2004

Mathews, J. y Fink, K. Métodos numéricos con Matlab. Tercera edición. Prentice Hall, Madrid- 2000.

Page 2: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

INTRODUCCIÓN

La eficiencia de ciencias básicas en la solución de problemas en el diseño, la investigación y el desarrollo ha

incrementado considerablemente como resultado del uso extenso de computadoras de alta velocidad. Por lo tanto, es necesario que

los estudiantes tomen cursos especializado de métodos computacionales relacionada con el ´rea de su interés.

La Física estudia las leyes fundamentales de la naturaleza usando los modelos matemáticos. La belleza de la naturaleza

está en su detalle y en la mayoría de los casos para entenderla se sugiere la elaboración de correspondientes los modelos

matemáticos. Comúnmente, estos modelos no tienen soluciones exactos y solo pueden resolverse aproximadamente mediante

unos cálculos tediosos. Los métodos computacionales permiten simular en computador diferentes procesos y visualizarlos en un

régimen interactivo a partir los modelos matemáticos de dos tipos, determinísticos o estocásticos.

Los modelos determinísticos se usan, por ejemplo para describir las partículas interactuantes en la base de las ecuaciones

diferenciales ordinarias (Dinámica Molecular), los procesos de transferencia de la masa, de la carga eléctrica o de la energía

(difusión, conductividad), o de la propagación de ondas (acústicas, electromagnéticos o De Broglie.) en la base de ecuaciones en

derivadas parciales. En estos modelos las condiciones iniciales determinen uniformemente los resultados de cálculo.

Los modelos determinísticos tienen sus limitaciones debido al crecimiento exponencial del número de operaciones con el

aumento de la dimensión del espacio o el número de partículas que se consideran en el modelo. En diferencia, la exactitud y

complejidad de los métodos probabilísticos dependen mucho menos del número de las partículas y esta es una de las razones

porque estas técnicas últimamente están reemplazando las técnicas deterministas en las ciencias

computacionales.

Conjunto de estas técnicas estocásticas, llamadas métodos de Monte Carlo permiten encontrar una

solución aproximada para una amplia variedad de los problemas matemáticos mediante unos experimentos

estadísticos en la computadora. Es interesante, que este método es aplicable tanto a los problemas que no

tienen absolutamente ninguno contenido probabilístico, como a los que por su naturaleza tienen una

estructura probabilística interna.

De esta manera, cualquier especialista quien piensa utilizar en futuro el computador para resolver

problemas relacionadas con el tratamiento de los modelos matemáticos debe conocer, al menos

superficialmente, los fundamentos de los métodos computacionales y los elementos de la teoría de

probabilidades. Esta es la razón, porque en este curso introductorio están incluidos dos temas los cuales a

la primera vista no tienen entre si nada en común. Además, este conocimiento les ayudará en el estudio y el

mejor entendimiento de los cursos de la Mecánica Cuántica, la Física Estadística y la Física del Estado Sólido.

Cualquier proceso de simulación en computador incluye los siguientes pasos:

1) Elaboración del modelo matemático para simular un proceso o un fenómeno;

2) Definición de una secuencia de métodos numéricos necesarios para analizar el modelo matemático;

3) Elaboración de un algoritmo el cual permite a partir de los parámetros del modelo simular un proceso o un fenómeno

4) Confección un programa en un lenguaje de programación

5) Chequeo y optimización del algoritmo y del programa

En nuestro curso, el cual es en realidad un curso introductorio y muy breve solo analizaremos algunos elementos de los

pasos 2 y 3. El modelo matemático correctamente definido permite reducir un problema actual a una serie de acciones

consecutivas y estrictamente definidas en la teoría de métodos numéricos, como por ejemplo, resolver ecuación o sistema de

ecuaciones algebraicas o diferenciales, integración, interpolación, etc. Con esta fin se utiliza el principio “divide et impera”

según el cual el modelo matemático se parte en una serie sub-problemas cada uno de los cuales se resuelve por medio de uno de

los métodos numéricos conocidos. “Un elefante de tamaño inmenso se come por una serie de divisiones en las partes pequeñas”.

Page 3: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

Una vez son definidos los métodos numéricos para cada de las partes se construye un algoritmo en una forma de un diagrama de

flujo o un pseudocódigo.

Hay que anotar que la mayor parte de los métodos numéricos se reducen a un proceso iterativo, en el cual para un resultado

exacto R (desconocido) se busca un valor aproximado AR con una tolerancia tol sugerida suficientemente pequeña que satisface

la condición AR R tol− . Para iniciar un proceso iterativo hay que definir a) unos valores iniciales para aproximar el resultado

1 2, , , mR R R supuestamente cercanos al valor exacto; b) una regla para generar la aproximación siguiente 1nR + a partir de las

aproximaciones anteriores; c) una fórmula para estimar el error de la aproximación 1 1n nR R + += − . El proceso iterativo se

llama de un paso si 1m = , de dos pasos si 2m = , etc.

Un proceso iterativo debe ser convergente, es decir el error de la aproximación debe tenderse a cero con el crecimiento del

número de iteraciones, es decir 0nn

→ . En un proceso iterativo se organiza un ciclo en el cual se encuentran sucesivamente

los valores 1 2, ,m mR R+ + y en cada paso del ciclo se estima el valor del error 1 1n nR R + += − y el proceso se interrumpe cuando

se logra el cumplimiento de la condición 1n tol + y se asume que 1A nR R += . Cualquier proceso iterativo es muy fácil

representar en una forma de un diagrama de flujo o un pseudocódigo. Como los algoritmos que vamos a estudiar en nuestro curso

serán representados mediante una de estas dos herramientas es necesario acordar algunas notaciones comunes que se usan en ellas.

1 ALGORITMOS DE ALGUNOS OPERACIONES MATEMÁTICAS DE MÉTODOS NUMÉRICOS (12 horas)

1.1 Algoritmo → Diagrama de Flujo → Pseudocódigo → Programa

1.1.1 Algoritmo

Un algoritmo se puede definir como una secuencia de instrucciones que representan un modelo de solución para un

determinado tipo de problemas. O bien, también como un conjunto de instrucciones que realizadas en orden conducen a obtener

la solución de un problema. Por lo tanto podemos decir que es un conjunto ordenado y finito de pasos que nos permite solucionar

un problema. Los algoritmos son independientes de los lenguajes de programación. En cada problema el algoritmo puede

escribirse y luego ejecutarse en un lenguaje diferente.

Un programa es una serie de instrucciones ordenadas, codificadas en lenguaje de programación que expresa un algoritmo

y que puede ser ejecutado en un computador

Características de un algoritmo Todos los algoritmos deben tener las siguientes características. Debe ser preciso, porque

cada uno de sus pasos debe indicar de manera precisa e inequívoca que se debe hacer. Debe ser finito, porque un algoritmo debe

tener un número limitado de pasos. Debe ser definido, porque debe producir los

mismos resultados para las mismas condiciones de entrada. Puede tener cero o más

elementos de entrada. Debe producir un o varios resultados. Los datos de salida

serán los resultados de efectuar las instrucciones.

Partes de un algoritmo: Todo Algoritmo debe tener las siguientes partes:

Entrada de datos, son los datos necesarios que el algoritmo necesita para ser ejecutado. Proceso (o instrucciones) que presenta

una secuencia de pasos para ejecutar el algoritmo. Salida de resultados, son los datos obtenidos después de la ejecución del

algoritmo.

Técnicas de representación: Para la representación de un algoritmo, antes de ser convertido a lenguaje de programación,

se utilizan algunos métodos de representación escrita, gráfica o matemática. Los métodos más conocidos son:

• Diagramación libre (Diagramas de flujo).

• Pseudocódigo.

Page 4: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

• Lenguaje natural (español, inglés, etc.).

• Fórmulas matemáticas.

1.1.2 Diagrama de flujo

Diagrama de flujo es una representación gráfica de un proceso. Cada paso del proceso es representado por un símbolo

diferente que contiene una breve descripción de la etapa de proceso. Los diagramas de flujo tienen como objetivos:

- Ofrecer una descripción visual de las actividades implicadas en un proceso mostrando la relación secuencial ente

ellas.

- Facilitar la rápida comprensión de cada actividad y su relación con las demás, el flujo de la información, las ramas en

el proceso, el número de pasos del proceso, etc.

- Facilitar la selección de indicadores de proceso.

- Estimula el pensamiento analítico en el momento de estudiar un proceso, haciendo más

factible generar alternativas útiles.

- Un diagrama de flujo ayuda a establecer el valor agregado de cada una de las actividades

que componen el proceso.

Un ejemplo de diagrama de flujo correspondiente al algoritmo para un problema trivial solucionar la

ecuación lineal AX=B se muestra en Fig.1. El algoritmo debe tener en cuenta que la ecuación tiene

solución solo cuando el coeficiente A no es igual a cero. Se utilizan los símbolos estándares para los

diagramas de flujo. A continuación presentamos una lista de algunos símbolos que se utilizan

comúnmente para construir los diagramas de flujo y sus significados correspondientes.

- Óvalo o Elipse: Inicio y Final (Abre y cierra el diagrama.

- Rectángulo: Actividad (Representa la ejecución de una o más actividades o procedimientos).

- Rombo: Decisión (Formula una pregunta o cuestión).

- Trapezoide: Carga de datos al sistema (entrad o salida)

- Círculo: Conector (Representa el enlace de actividades con otra dentro de un procedimiento).

- Paralelogramo: Entrada o salida de datos o información

Consideremos como un ejemplo un poco más complicado el diagrama de flujo para un algoritmo que permite encontrar la raíz

cuadrada de un número real, utilizando el método de Horner.

Ejemplo 1 Algoritmos para calcular raíz cuadrada y x=

Usando las manipulaciones algebraicas se puede establecer entre dos

parámetros, y y x las siguientes relaciones identicas

2 2 2 12

2

xy x y x y y x y y

y

= = = + = +

La última identidad nos permite organizar el siguiente proceso iterativo de un paso

llamado esquema de Horner

1 1

1; ; 1,2,3,

2n n

n

xy y y x n

y+

= + = =

(1)

Para entender mejor el proceso iterativo definido por las formulas (1) calcularemos la

raíz cuadrada de 2, es decir para el caso con la tolerancia, 0.001

Page 5: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

2, 2; 0.001x y tol= = = , partiendo desde el valor inicial 1 1 11, 2 1.41421 ; 0.414y y y y= = = = − . Sustituyendo estos

valores en (1) se obtiene ( ) ( )2 1 1

1 11 2 1 1.5;

2 2y y x y= + = + =

2 2 1.5 1.414 0.084y y = − − = (¡no es tan malo!). En el segundo paso iterativo,

( ) ( )3 2 2 2 2

1 11.5 2 1.5 1.417; 1.417 1.414 0.003

2 2y y x y y y= + = + = − − = (¡excelente!). En el tercer paso iterativo,

( ) ( )4 3 3 4 4

1 11.417 2 1.417 1.4142; 0

2 2y y x y y y= + = + = − (¡excelente!).

En este ejemplo nosotros pudimos estimar el error en cada paso del proceso iterativo, porque hemos conocido el resultado exacto.

Pero en el caso general este resultado es incognito y se necesita un criterio para el estimar el error. Se puede demostrar (¡no

queremos despistarnos de nuestro tema sobre los algoritmos y la demostración se encuentra en la literatura!) que para el proceso

iterativo (2) se cumple la siguiente estimación

1 1 1n n n ny x y y + + += − − (2)

En el diagrama de flujo presentado se describe el proceso iterativo en el método de Horner para calcular la raíz cuadrada.

Los parámetros de entrada son valores de x y tol. Dentro de un bucle el parámetro k es un contador del número de iteraciones

realizadas, ya- el valor aproximado de la raíz en la iteración anterior, yn –el valor de la iteración siguiente (“next”) y err – la

estimación del error. En el cuadro de la definición se verifica si el error calculada usando la fórmula (2) ya es menor que la

tolerancia sugerida o no. En el caso de la respuesta positiva se publican los valores del argumento x, el valor aproximado de la

raíz cuadrada y el número de iteraciones cumplidos. En el caso contrario al valor anterior se asigna el valor siguiente ( )ya yn , y

el proceso iterativo se repite.

1.1.3 Pseudocódigo

Como ejemplo consideremos un pseudocódigo correspondiente al diagramo de flujo anterior

( )

( , )

1; ; ( / ) / 2; ;

1; ;

( / ) / 2; ;

function raiz x tol

k ya x yn ya x ta err yn ya

while err tol do k k ya yn

yn ya x ta err yn ya

raiz yn

+ −

+

+ −

Como se puede ver esta forma de representación de un algoritmo es mucho más parecida a un programa, por ejemplo en el

lenguaje C. Flechas , por arriba corresponde a los parámetros de entrada ,x tol

y salida raiz

, respectivamente y la flecha

a una instrucción de asignación.

En un Lenguaje Natural este algoritmo se lee de la siguiente manera

- Para calcular una raíz para dados valores x y tol procede:

- Para inicializar el proceso asigne al contador k el valor 1 y a las aproximaciones de la raíz anterior ya x y

posterior (next) ( / ) / 2yn ya x ta + y al error inicial err yn ya −

Page 6: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

- Hasta que se cumpla la condición err tol proceda en bucle las siguientes instrucciones: proceda las asignaciones:

1k k + (se lee así: saca de su celda el valor del contador k , adicione uno y vuelve a la misma celda el nuevo valor

de k); y otras dos instrucciones que se leen de una manera similar ( / ) / 2;yn ya x ta err yn ya + −

- Al salir del bucle para finalizar asignar a la variable raiz de la salida el último valor yn

Ejemplo 2 Algoritmo para calcular la función exponencial usando serie de Taylor

Tanto las funciones elementales como especiales se puede calcular en computador usando las series de Taylor truncadas.

( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )0 1

; 0 ! ; 1 !N

kN NN k Nk kA A

k k N

f x f x x f x f x k x x k

= = +

= + = = − (1)

Aquí ( ) ( )N

Af x es una aproximación de la función mediante el uso de la serie de Taylor truncada con los primeros N términos, y

( ) ( )Nx es el error de la aproximación. Aplicaremos estas fórmulas para calcular la función exponencial ( ) ( )expf x x= − .

Para este caso particular

( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )0 1

exp ; 1 !; 1 !N

k kN NN Nk kA A

k k N

x S x x S x x k x x k

= = +

− = + = − = −

Método 1 (Primitivo, Algoritmo interactivo, el usuario define el número N)

Escogeremos un número N suficientemente grande y la suma de la

serie truncado con este número de términos aceptaremos como el valor

aproximado de la función ( )expy x= −

( ) ( ) ( ) ( ) ( )0 0

exp 1 ! ; 1 !F FN N

k kN k kk kA

k k

x S x x k a a x k= =

− = − = = − (2)

Teniendo en cuenta la relación de recurrencia entre los términos de la serie

( )1 01 : 1k ka a x k a+ = − + = , (3)

ya que

( ) ( ) ( ) ( )

( )

1 11 1 1 ! 1 1 !

1

k

k kk kk

a

k

a x k x k x k

a x k

+ ++ = − + = − + − =

= − +

El diagrama de flujo muestra un algoritmo que permite aproximar la función

exponencial ( )expy x= − por una serie de Taylor truncada con un número de

términos N dado. Esta vez no presentamos una explicación detallada de cada elemento de este diagrama y dejamos para Ustedes

esta tarea.

Sin embargo, a continuación, presentamos dos diferentes seudocódigos correspondiente a este diagrama de flujo. Como

se puede ver el algoritmo contiene un bucle el cual en este caso (igual como en muchos otros casos) organizar en diferentes

maneras.

a) Usando el operador tipo “while (condición) do”, que se lee como “hasta que cumpla la condición procede lo siguiente…

Page 7: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

( )

exp_1( , )

(* Se calcula la suma dela seriede Taylor truncada para exp(-x)con N términos*)

0; 1; ;

1; ; ;

exp_1

function x N

k a S a

while k N do k k a a x k S S a

S

+ − +

¿Qué pseudocódigo tan compacto? Trate de explicar cada paso de este pseudocódigo. ¡Recuerda!, no es posible aprender de

hablar en cualquier lenguaje (incluyendo algorítmico) sin tratar de hacerlo!

b) Usando el operador tipo “for (contador desde 1 hasta N) do”

( )

exp_ 2( , )

0; 1; ;

1, ; ;

exp_ 2

function x N

k a S a

for k N do a a x k S S a

S

= − +

Método 2 (Automático, el número N se encuentra automáticamente para garantizar la tolerancia sugerida)

Para organizar este algoritmo utilizaremos un teorema conocido desde el curso de Cálculos, el cual afirma que el error en

la estación de la serie con los signos alternantes (¡como en nuestro caso!) a través de las sumas truncadas satisface la condición

( ) ( ) ( ) ( ) ( ) ( )11 N NNA Ax S x S x

++ − (4)

Usando esta relación se puede proponer el siguiente pseudocódigo para un programa de cálculo de la función ( )expy x= −

exp_ 3( , )

(* Se calcula la función y=exp(-x) con la tolerancia sugerida*)

0; 1; ; 1; /1; : ;

function x tol

tol

k a Sa a k a x Sn Sa a err Sa Sn

− + = −

( )

1; ; ; ; ;

exp_3

while err tol do k k Sa Sn a a x k Sn Sa a err Sa Sn

Sn

+ − + = −

Ejemplo 3 Algoritmo para calcular la función y=sin(x) usando serie de Taylor (Tarea)

Usando las siguientes relaciones para la serie de Taylor para función y=sin(x) encuéntrese el diagrama de flujo para un

programa de cálculo de esta función, similares a los dados en el Ejemplo 2

( ) ( ) ( ) ( ) ( ) ( ) ( )2 1 2 1

0 1

sin 1 2 1 ! ; 1 2 1 !N

k kk k

k k N

x x k N N x k

+ +

= = +

= − + + = − +

( ) ( ) ( )( )

( ) ( ) ( ) ( )

( ) ( )( ) ( )( ) ( )( )

2 1 20 1

0 0

12 1 2 31

2 1 2 21

1 2 1 ! 2 2 2 3

1 2 1 ! 1 2 3 !

2 1 ! 2 2 2 3 2 2 2 3 2 2 2 3

FNNk k

k k kk k

k kk kk k

kk k k

S x k S a a x a a x k k

a x k a x k

x k x k k a x k k a a x k k

++

= =

++ ++

++

= − + = = = − + +

= − + = − + =

− + + + = − + + = − + +

-------------------------------------------------------------

( ) ( )( )

2

( , )

0; ; ;

1, 2 2 1 ; ;

function sen x N

k a x S a

for k N do a a x k k S S a

sen S

= − + +

Page 8: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

1.1.4 Un ejemplo de aplicación del principio “divide et impera”

En Física Computacional (la parte de Física que analiza los fenómenos por los métodos

computacionales) surge con frecuencia como una parte del análisis el problema de búsqueda de raíces de unas

ecuaciones algebraicas. Como un ejemplo relativamente sencillo analizaremos el movimiento de un cohete

lanzado en la dirección vertical con la velocidad inicial cero, impulsado por una fuerza reactiva debida a la

expulsión de gases a gran velocidad que está definida como una función de tiempo ( )F t . La variación de la

masa de cohete debido a la expulsión de gases como una función de tiempo ( )m t también está dada. La pregunta

es: ¿Cuánto tiempo se demora el vuelo del cohete hacia arriba y hasta que altura máxima sube el cohete?

El análisis como siempre empieza desde la formulación del modelo matemático, el cual para este

problema se basa en la II Ley de Newton

( ) ( ) ( ) ( )( )

( ) ( ); 0 0; ; 0 0dx td

m t V F t m t g V V t xdt dt

= − = = = (1)

Aquí g es la constante de gravedad que es de aproximadamente 9.8 m/s2. Las relaciones (1) presentan dos ecuaciones

diferenciales independientes de primera orden, las cuales se resuelven analíticamente dando las dependencias de la velocidad y de

la coordenada en función de tiempo en una forma analítica (¡demuéstrelo!):

( )( )

( )( )

( ) ( ) ( )0 0 0

1;

t t tg

V t F t dt m t dt x t V t dtm t m t

= − = (2)

Las fórmulas (1) y (2) presentan un modelo matemático para este problema. Para construir un algoritmo que permite encontrar el

tiempo de vuelo y la altura máxima, primero, hay que tener en cuenta que en computador no es posible hallar las soluciones (2) en

una forma continua (es decir para todos momentos del tiempo) sino sobre una malla de tiempo discreta. Por eso el algoritmo a

continuación (¡igual como cualquier algoritmo computacional!) tiene en cuenta esta circunstancia.

Algoritmo

1) Definir el tiempo máximo maxT , el paso h para una malla sobre la coordenada de tiempo y el número total N de los nodos

de la malla ( )max 1h T N= − y las coordenadas de los nodos ( ) ( )max1 , 1,2,3, , ; 1it h i i N h T N= − = = −

2) En los nodos de la malla ( )1 2 3 4, , , ,t t t t calcular las integrales

( )( )

( )( )

( )0 0

1i it t

ii i

gV t F t dt m t dt

m t m t= −

3) Con estos valores definir la función ( )V t con el argumento continuo t, usando interpolación polinomial

4) Hallar maxT como una raíz de la ecuación algebraica ( )max 0V T =

5) Hallar maxH calculando la integral ( ) ( )max

max max

0

T

H x T V t dt= =

La específica de este algoritmo (igual que de la mayoría de algoritmos computacionales) consiste en el uso de las funciones

con los valores definidos no en una forma analítica sino solamente sobre una malla discreta como en nuestro caso esto se ocurre

con los datos experimentales de las funciones ( )F t y ( )m t o los valores de velocidades calculados ( )iV t . Por eso, una de las

operaciones básicas importantes en los métodos computacionales es la interpolación que permite aproximar una función definida

sobre una malla discreta por una función interpolante definida sobre un intervalo continuo. Otra operación básica importante

como se ve desde el ejemplo es la integración numérica la cual permite realizar el cálculo correspondiente tanto para las

Page 9: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

funciones subintegral definidas tanto en una forma analítica como en una forma de una tabla sobre una malla discreta.

Finalmente, otra operación básica que aparece en el ejemplo anterior es la solución de ecuaciones algebraicas. En la primera

parte de nuestro curso estudiaremos estas tres operaciones básicas las cuales formarán las tres partes del Proyecto I.

1.2 Raíces de ecuaciones algebraicas

La mayoría de las ecuaciones algebraicas y trascendentes no pueden ser

resueltas en una forma exacta y solamente por medio de los métodos numéricos.

Cualquiera de estas ecuaciones puede ser reducida a la forma.

( ) ( )0; ,f x x a b= (1.2.1)

Aquí y en adelante se asume que la función ( )f x dentro del intervalo ( ),a b , donde

se buscan las raíces, es continua. Los valores , 1,2, ,i i n = para los cuales se

cumplen condiciones ( ) 0, 1,2, ,if i n = = se llaman las raíces de la ecuación (1). El procedimiento para resolver la ecuación

(1) por métodos numéricos, generalmente consiste en dos etapas:

1) El proceso de la separación de las raíces, que consiste en la fragmentación del intervalo ( ),a b en los segmentos ( )1,i i + con

1,2, , 1i n= + y 1 1, na b += = dentro de los cuales comprende una y solo una raíz i de la ecuación (1), así como muestra

Fig.1.

2) El proceso iterativo del aumento de la precisión hasta lograr la tolerancia sugerida que cosiste generalmente en el

estrechamiento del intervalo, donde se halla la raíz de la ecuación (1).

Para estos dos procesos son útiles dos teoremas siguientes:

Teorema 1: Si una función continúa f(x) adquiere valores de distintos signos en los extremos del segmento ,a b , es decir

( ) ( ) 0f a f b , entonces dentro del segmento ,a b existe por lo menos una raíz de la ecuación ( ) ( )0; ,f x x a b= .

Teorema 2: Si y x son dos valores correspondientes a la raíz exacta y la raíz aproximada, respectivamente, de una raíz de la

ecuación ( ) ( )0; ,f x x a b= , entonces

( )( )

( ),

minx a b

x f x f x

− (1.2.2)

El teorema 1 puede utilizarse para la separación de las raíces y la formula (2) para estimar el error de una solución aproximada

encontrada en un proceso iterativo.

Hay que hacer algunas aclaraciones sobre el teorema 1 en una forma de dos corolarios evidentes.

Corolario 1 Si una función ( )f x continua tiene en los extremos del intervalo ( ),a b los signos diferentes, i.e.

( ) ( ) 0f a f b entonces la ecuación ( ) ( )0; ,f x x a b= tiene un número de raíces impar (uno, tres, cinco, etc.)

Corolario 2 Si una función ( )f x continua tiene en los extremos del intervalo ( ),a b los signos iguales, i.e.

( ) ( ) 0f a f b entonces la ecuación ( ) ( )0; ,f x x a b= o no tiene raíces o tiene un número de raíces par (dos, cuatro, seis,

etc.).

Estos dos corolarios muestran que el proceso de separación de las raíces tiene una ambigüedad, si los signos de la función

en los extremos son diferentes no se puede afirmar con la certeza que este intervalo contiene solo una raíz (¡posiblemente tres,

Page 10: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

cinco o siete!). En el caso contrario si los signos de la función en los extremos son iguales no se puede afirmar con la certeza que

este intervalo no contiene raíces (¡posiblemente tiene dos, cuatro o seis!). No existe un algoritmo universal para este

procedimiento. Para cada problema concreto hay que buscar un criterio especial.

A continuación consideremos un ejemplo de realización del proceso de separación de rases de la ecuación

( ) ( )3 29 23 15 0; 0,6f x x x x x= − + − =

Solución

Para separa las raíces construimos el gráfico de esta función. Con este fin

calcularemos su derivada y encontraremos sus puntos de máximo y mínimo donde la

derivada se anula, es decir ( ) 23 18 23 0f x x x = − + = . Esta última ecuación tiene dos

raíces, uno 1 3 2 3 3 1.845 (max)x = − (que corresponde al punto de máximo y otro

2 3 2 3 3 4.155 (min)x = + al punto de mínimo. El gráfico correspondiente se presenta en la figura. Se puede ver que la

ecuación tiene tres raíces, uno 10 1.845 , el segundo 21.845 4.155 y el tercero 34.155 6.0 . La primera idea que

viene en la cabeza que ¿posiblemente las raíces están ubicados en los mitades de estos tres intervalos? Es

decir, ( ) ( ) ( )1 2 20 1.845 2 0.923; 1.845 4.155 2 3.0; 4.155 6.0 2 5.077 + + + . Teniendo en cuenta que valores

exactos de las raíces son 1 2 31.0; 3.0; 5.0 = = = se puede ver una coincidencia casi extraña. ¡Con un esfuerzo tan significativo

se logra una coincidencia sorprendente! Esta idea es la base de uno de los algoritmos más simples y más estables para encontrar

raíces de ecuaciones algebraicas, llamado el método de bisección

Page 11: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

El diagrama de flujo correspondiente a este algoritmo tiene la forma

Figura Diagrama de flujo del método de bisección

Page 12: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales
Page 13: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

c Soñucion de la ecuacion de Van der Vaals que exprersa el volumen V en funcion de la presion P (np puntos) c para mp

c diferentes temperaturas T

implicit real*8 (a-h,o-z)

parameter (np=400,mp=2)

dimension Tp(mp),xraiz (3)

real tb(np,mp+1),tab(np,3*mp+1)

common /T_P/ Temp, Pemp external funP,funV

data TP /3.5,5/

Vmin=0.1

Vmax=20.0

h=(Vmax-Vmin)/(np-1)

open(1,file='vn.dat')

do i=1,np

V=Vmin+h*(i-1) tb(i,1)=V

do j=1,mp Temp=TP(j)

tb(i,j+1)=FunP(V)

end do

end do

do i=1,np

write(1,11) (tb(i,j),j=1,mp+1)

end do

11 format(2x,f8.4,20f10.4)

close(1)

open(1,file='vndvls.dat')

do i=1,np

Page 14: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

do j=2,3*mp+1 tab(i,j)=0.

end do

end do

Pmin=0.1

Pmax=4.0

h=(Pmax-Pmin)/(np-1)

do i=1,np

P=Pmin+h*(i-1)

Pemp=P

tab(i,1)=P

do j=1,mp

Temp=TP(j)

eps=1.0d-8 hraiz=0.05

Call allraiz(Vmin,Vmax,funV,eps,hraiz,nraiz,xraiz)

do k=1,nraiz

tab(i,3*j-2+k)=xraiz(k) end do

end do

end do

do i=1,np

write(1,11) (tab(i,j),j=1,3*mp+1)

end do

close(1)

stop

end

c--La funci¢n externa

function funP(V)

implicit real*8 (a-h,o-z)

common /T_P/ Temp, Pemp

T=Temp

P=PempfunP=T/(V-1)-3.95*T/V**2

funP=T/V-1/V**2

return

end

c- La funci¢n externa

function funV(V)

implicit real*8 (a-h,o-z)

common /T_P/ Temp, Pemp

T=Temp

P=Pemp

funV=(P*V**2+3.95*T)*(V-1)-T*V**2

return

end

a) -------------------------------------------------

Subroutine allraiz(a,b,fun,eps,hraiz,nraiz,xraiz)

parameter (n=1000)

implicit real*8 (a-h,o-z)

dimension xraiz(n)

external fun

h=hraiz

xl=a

xr=a+h

fl=fun(xl)

fr=fun(xr)

nraiz=0

10 if(fl*fr.lt.0.0) then

nraiz=nraiz+1

xraiz(nraiz)=Raiz1(fun,xl,xr,eps)

end if

xl=xr

fl=fr

xr=xl+h

fr=fun(xr)

Page 15: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

if(xr.lt.b) go to 10

return

end

c------------------------------------------

c El subprograma Raiz1 busca la solución de la ecuación func(x)=0

c dentro del intervalo (a,b) con la precisión eps,

c usando el método de bisección

real*8 function Raiz1(func,a,b,eps)

implicit real*8 (a-h,o-z)

c los parámetros del extremo izquierda

xl=a

fl=func(xl)

c los parámetros del extremo derecho

xr=b

fr=func(xr)

c comparación de los signos de la función en los extremos

if(fl*fr.ge.0.0) then

c si los signos de la función son iguales puede ser que no hay raíces

write(*,*) 'En los extremos del intervalo la función'

write(*,*) 'tiene el mismo signo. Cambie el intervalo'

c salida de emergencia del subprogrograma

Return

End if

c inicialización del proceso de bisección

10 x=(xl+xr)/2.0d0

c si la distancia entre los extremos es menor que eps

c entonces ya el centro del intervalo x define la raíz

c con la precisión sugerida

if((xr-xl).le. eps) go to 40

c definición el valor de la función en el centro del intervalo f=func(x)

c comparación de los signos de la función en el centro del c intervalo y

en el extremo izquierda

if(f*fl) 20,40,30

c si signos son diferentes se escoge el subintervalo izquierda

xr=x

fr=f

c volver al siguiente paso del proceso bisección

go to 10

c si signos son iguales se escoge el subintervalo derecha

30 xl=x

fl=f

c volver al siguiente paso del proceso bisecci¢n

go to 10

40 Raiz1=x

C salir de subprograma

return

end

1.2.2 EL METODO DE LA SECANTE

Existen otros métodos para resolver la ecuación f(x) = 0, que tienen, por lo general, la convergencia más rápida que el

método de bisección. Uno de ellos es el método de la secante que tiene interpretación geométrica representada esquemáticamente

en la Fig. 1.3. Se supone que la función f(x) tiene solo una raíz y los signos son diferentes en los extremos del intervalo. El

proceso iterativo consiste en un reemplazo sucesivo de la curva por la secante que unen los extremos de la curva y sus

intersecciones con el eje X paulatinamente se acercan al punto de la intersección de la curva con este eje.

Page 16: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

Fig. 1.2.3 Representación esquemática del proceso

iterativo del método de la secante para los casos

cuando el punto fijo está ubicado al lado izquierda (1)

y (3) y al lado derecha (2) y (4)

Al inicio se escoge uno de los extremos (izquierda o derecha) como la

aproximación nula x0 .En el primer paso del proceso de iteración se

traza la secante que une los extremos de la curva inicial. El punto de

intersección de esta secante con el eje OX es la primera aproximación

de la solución x1. Después el extremo escogido se desplaza en el punto

x1 y el proceso se repite para la parte de curva entre el extremo fijo y el

punto x1, etc. Cuando el extremo fijo es de la izquierda (el Caso a) en

la figura 1.3 entre dos aproximaciones sucesivas 1nx + y nx existe la

siguiente relación

En las formulas 1.2.6 y 1.2.7 se difieren las posiciones de las aproximaciones nulas 0x El proceso iterativo además de estas

fórmulas debe completarse con dos condiciones, que definen el inicio y la finalización del proceso. Para iniciar el proceso hay que

definir el punto de partida. Para escoger correctamente el punto inicial del proceso iterativo, correspondiente a la posición de la

aproximación nula, existe siguiente criterio: En el extremo fijo los signos de la función f (x) y de la segunda

derivada f“(x) deben coincidir, y el extremo contrario corresponde a la aproximación nula, es decir:

Page 17: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

Al inicio se escoge uno de los extremos (izquierda o derecha) como la aproximación nula x0 .En el primer paso del proceso de

iteración se traza la secante que une los extremos de la curva inicial. El punto de intersección de esta secante con el eje OX es la

primera aproximación de la solución x1. Después el extremo escogido se desplaza en el punto x1 y el proceso se repite para la

parte de curva entre el extremo fijo y el punto x1, etc. Cuando el extremo fijo es de la izquierda (el Caso a) en la figura 1.3 entre

dos aproximaciones sucesivas 1nx + y nx existe la siguiente relación

1.2.3 EL METODO DE NEWTON

El método de Newton (a veces lo llaman como el método de Tangentes) que consideremos a continuación tiene una

convergencia más rápida en comparación con los métodos anteriores. La interpretación geométrica del método se presenta

esquemáticamente en la Fig. 1.2.4, donde es el valor exacto de la raíz de la ecuación ( ) 0f x = y los puntos 0 1 2, , ,x x x son las

soluciones aproximadas encontradas en el proceso iterativo. Si 0 1 2, , , , son los ángulos que forman las tangentes de la

curva en los puntos de las aproximaciones correspondientes 0 1 2, , ,x x x , entonces ( )tan n nf x = . El proceso iterativo se inicia

en el punto 0x b= . El punto de intersección de la tangente a la curva en este punto con el eje X se escoge como la primera

aproximación x1. Después en el punto x1 de nuevo se construye la tangente y el punto de intersección de la nueva tangente con el

eje X se escoge como la segunda aproximación x2, etc.

Fig. 1.2.4 Representación esquemática del proceso iterativo del método de Newton

.

Analizando las relaciones geométricas entre las aproximaciones sucesivas se puede

encontrar la fórmula siguiente

( ) ( )( )1 0; ; 0,1,2,3,

tan

n nn n n

n n

f x f xx x x x b n

f x+ = − = − = =

(1.2.10)

La relación 1.2.10 se llama formula de Newton y se define un proceso iterativo que

converge muy rápido hacia la raíz exacta x = . Comúnmente, este proceso se converge

muy rápidamente, en 10 iteraciones se consigue una precisión de orden de una

millonésima.

Page 18: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

c------------------------------

function raiz_newton(x,p,nit)

c calcula x**(1/p) usando esquema de

Horner

c con nit iteraciones

integer p

a=1.0-1.0/p

y=x

do i=1,nit

y=a*y+x/(p*y**(p-1))

end do

raiz_newton=y

return

end

En el diagrama de flujo presentamos un ejemplo de algoritmo de Newton interactivo en el cual el usuario debe definir el

número iteraciones N y el punto inicial x0 del proceso iterativo. Este algoritmo primitivo tiene única ventaja que es muy simple y

fácilmente entendible, pero no garantiza ni estabilidad ni convergencia ni cumplimiento de la tolerancia sugerida.

Para transformar este algoritmo en un pseudocódigo automático que garantice la estabilidad y convergencia del proceso

iterativo se necesita completarlo por unas instrucciones adicionales que permitan escoger de manera correcta el punto inicial del

proceso y de manera automática definir el número de iteraciones necesarias para encontrar la raíz con la precisión sugerida. El

punto inicial de este proceso debe satisfacer la condición (1.2.8) y el proceso iterativo se finaliza cuando se cumple la condición

(1.2.9). A continuación presentamos un ejemplo de pseudocódigo correspondiente a un algoritmo automático.

Ejemplo ¡Demuéstrese que usando algoritmo de Newton se puede calcular el valor ; 2,3,4,p

x a p= = mediante el siguiente iterativo

( )1 1

11n n p

n

ax p x

p x+ −

= − +

y presente el seudocódigo del algoritmo. Ayuda: Considere la ecuación ( ) 0pf x x a= − = y analícese el

programa y tabla que siguen a continuación

parameter (np=11,mp=6)

real xp(np),yp(np,mp)

integer p

f(x,s)=x**s

nit=8

open(1, file='tab.dat')

h=10.0/(np-1)

do i=2,np

x=h*(i-1)

xp(i)=x

j=0

do p =2,4,1

j=j+1

s=1.0/p

rz=raiz_newton(x,p,nit)

yp(i,j)=rz

j=j+1

yp(i,j)=abs(rz-f(x,s))

end do

end do

do i=2,np

write(1,3) xp(i), (yp(i,j),j=1,6)

3 format(3x,f6.1,3(f10.4,e10.2))

end do

Page 19: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

close(1)

stop

end

Todos algoritmos anteriores "generalmente funcionan" bien, pero no garantizan la recepción de resultados adecuados en

algunos casos especiales, que surgen al describir procesos no-estacionarios, como, por ejemplo, las transiciones de fase. En estos

casos es preferible usar los programas profesionales los cuales son bien “pulidos” y se tienen en cuenta todas situaciones cuando

anuncian pueden aparecer una inestabilidades y anuncian cualquiera dificultad que puede aparecer en la realización de un

algoritmo. Si un programa en la base de los algoritmos anteriores un estudiante puede confeccionar (¡esto es su primera tarea ¡)

durante media hora, una hora o un día, el programa profesional se elabora durante más que un año, buscando y analizando todas

dificultades que puede tener un algoritmo usado. En nuestro curso el estudio de todos métodos numéricos vamos a finalizar con

una descripción de un programa profesional para que el estudiante pueda comprobar los resultados de sus propios programas

confeccionados con los que arroja el programa profesional. Entre todos programas profesionales que permiten hallar las raíces de

una ecuación algebraica recomendaremos el programa ZEROIN el cual se usa en las paquetes comunes MATEMATICA,

MATLAB, etc.

1.2.4 PROGRAMA ZEROIN

El programa Zeroin busca permite buscar las raíces de la ecuación ( ) 0f x = entre los valores dados x=b y x=c. El

método utilizado es una combinación eficiente de bisección y la regla secante. Para asegurar que el proceso iterativo en Zeroin

convergerá los valores de la función en los puntos b y c deben tener los signos diferentes.

El pseudocódigo del algoritmo de Zeroin (los programas correspondientes en todos lenguajes de programación se encuentran

fácilmente en Internet) tiene el siguiente encabezado:

, , , , , function zeroin fun b c re ae iflag

Parámetros:

fun -- nombre de la función externa con valor real que define la parte izquierda de la ecuación ( ) 0fun x = .

b – en la entrada, es un extremo izquierda del intervalo (b, c) y en la salida es el valor devuelto para b

generalmente es la mejor aproximación a una raíz menor de la ecuación ( ) 0fun x = .

c – es un parámetro de entrada que define el extremo derecha del intervalo (b, c)

re, ae – son los parámetros de entrada que definen las tolerancias para los errores relativo y absoluto, respectivamente.

iflag- es un parámetro de salida correspondiente a un código que permite verificar el nivel de confianza en el resultado

obtenido. El usuario puede verificar iflag después de cada llamada, chequeando el valor de iflag.

iflag =1 (en la salida la raíz aproximada b satisface la tolerancia sugerida )

iflag=2, 3, 4 (en el proceso iterativo hay algunos problemas relacionadas con la estabilidad )

iflag=5 (el número de iteraciones es demasiado alto (>500)

Presentamos un pseudocódigo que permite encontrar el número de raíces y todas raíces de una ecuación ( ) 0fun x = dentro del

intervalo (0, 20)

Page 20: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

( )

( )

( )

 

0.0; 20.0; 1.0 8; 1.0 8; 0;

, , , , , ;

( 1) print"algomal";

1; ( )

1, pri

function main fun

b c re e ae e nraiz

while b c ae do

call zeroin fun b c re ae iflag

if iflag then return

else nraiz nraiz xraiz nraiz b

for ï nraiz do

− −

+

= nt( , ( )i xraiz i

En este programa la búsqueda de la raíz inicia desde el punto el extremo inferior b=0, subiendo hacia arriba y cada vez cuando se

encuentra la siguiente raíz este extremo se desplaza hacia esta raíz y el proceso de la búsqueda sigue hasta que no llega hasta el

extremo superior, mientras que el contador del número de las raíces nraiz se incrementa cada vez a uno.

Más detalles sobre el algoritmo, la estructura de este programa y unos ejemplos de su aplicación se puede encontrar en el

libro G. E. Forsythe, M. A. Malcolm, C. B. Moler, Computer Methods for Mathematical Computations, Prentice-Hall, 1977

Problemas:

1) Para la ecuación algebraica 3 9 0x x k− − = encuéntrese el número de las raíces dentro del

intervalo ( )4,4− para diferentes valores de k usando el método gráfico (1.2pto).

Solución:

31 2 1 2

31 1 2 3

21 max min

3 3max max min inin min min

9

9 0 3 0 3

3 9 0 3 1.73 3 1.73

9 6 3 10.4; 9 6 3 10.4

y x x y k y y

y x x x x x

y x x x

y x x y x x

= − = =

= − = = − = =

= − = = − − =

= − = = − = − −

Respuesta

1) Si 6 3 10.4k − − existe 1 solo raíz 3x −

2) si 6 3 0k− existe 3 raíces 1 3x − , 2 20 3, 3 3x x

3) si 0 6 3 10.4k existe 3 raíces 1 23 0, 3 3x x− − − ; 3 3x −

4) 6 3 10.4k existe 1 solo raíz 3x

2) Para la ecuación algebraica sin 1x x = a) con el paso 1.0h = separe las raíces y encuéntrese el número de las raíces dentro del

intervalo ( )0,10 . b) Con la precisión 0.1 = encuéntrese el valor de la menor raíz dentro del intervalo ( )0,10 usando el método

de bisección (1.5pto).

Solución: a) ( ) ( ) ( )1.0, 1 1.0 1 , ; 1,11i i i

h x h i i y f x i= = − = − = =

(Valores de la función ( ) 1 sin 0f x x x= − = calculados en 11 nodos están dados en la tabla)

Dentro del intervalo ( )0,10 la ecuación sin 1x x = tiene 4 raíces, dentro de los intervalos ( ) ( ) ( ) ( )1,2 ; 2,3 ; 6,7 ; 9,10

b) El menor ( )1, 2, 2 1.5, 1 0.1,xl xr x xr xl error xr xl = = = + = − = =

i 1 2 3 4 5 6 7 8 9 10 11

ix 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0

( )f x 1.0 0.16 -0,82 0.58 4.03 5.80 2.68 -3.60 -6.91 -2.71 6.44

-5 -4 -3 -2 -1 0 1 2 3 4 5

-10

0

10

raiz3

raiz3

raiz 2

raiz 2

raiz1

raiz1

raiz1

raiz1

X X

XX

xmax=-1.73

ymax=10.4

Y=x3-9x

X

ymin=-10.4

xmin=1.73

X

X

X

Page 21: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

xl fl=f(xl) xr fr=f(xr) x=(xl+xr)/2 fx=f(x) Error=(xr-xl)/2

1 0.16 2 -0.81 1.5 -0.50 0.5

1 0.16 1.5 -0.50 1.25 -0.19 0.25

1 0.16 1.25 -0.19 1.125 -0.015 0.125

1 0.16 1.125 -0.015 1.0625 +0.071 0.035

1.0625 +0.074 1.125 -0.015 1.09 +0.03 0.02

3) Usando el método de Newton encuéntrese la raíz de la ecuación algebraica ln 1x x = dentro del intervalo (1,2) con la

precisión 0.001 = . Justifíquese la selección del punto de arranque del proceso iterativo y encuéntrese la fórmula para

estimación del error del cálculo en cada paso del proceso de iteración. (1.5ptos)

Solución

( ) ( ) ( )ln 1; ln 1; 1/f x x x f x x f x x = − = + =

Estimación del error

( )( ) ( )

1,2min 1 1

xf x f

= =

Selección del punto de arranque del proceso iterativo:

En el extremo de la izquierda ( ) ( ) ( ) ( )1 1 1 0; 1 2 0; 1 2 2ln 1 0; 2 2 0x f f x f f = = − = = = − =

( ) ( )2 2 0f f Por eso 0 2x =

El proceso iterativo:

( ) ( )

( )( )

( ) ( )

( )( ) ( )

1

1,2

1,2

ln 1

ln 1

0,1,2, / min 0.001

min 1 1

n nn n n n n

n

n n nx

x

x xx x f x f x x

x

n hasta que error f x f x f x

f x f

+

−= − = −

+

= = =

= =

n nx ln nx ( ) ln 1n n nf x x x= − ( ) ln 1n nf x x = + ( ) ( )1n n n nx x f x f x+ = − ( )n nf x =

0 2 0.693 0.386 1.693 1.772 0.4

1 1.772 0.572 0.0138 1,572 1.763 0.0138

2 1.763 0.567 -0.0002 0.0002

4) Para la ecuación algebraica 4 3 29 3 47 27 14 0x x x x+ − − + = a) con el paso 1.0h = separe y encuéntrese el número de las

raíces dentro del intervalo ( )0,4 . Con la precisión 0.1 = encuéntrese el valor de la menor raíz dentro del intervalo ( )0,4

usando el método de bisección (1.5pto).

Solución: a) ( ) ( ) ( ), 1.0, 1 1.0 1 , ; 1,2,3,4,5i i i

n h x h i i y f x i= = = − = − = =

(Valores de la función 4 3 2( ) 9 3 47 27 14 0f x x x x x= + − − + = en 5 nodos están dados en la tabla)

Dentro del intervalo ( )0,4 la ecuación 4 3 29 3 47 27 14 0x x x x+ − − + = tiene 2 raíces, uno

dentro del intervalo ( )0,1 y otro del intervalo ( )2,3

i ix ( )f x

1 0.0 14.0

2 1.0 -48.0

3 2.0 -60.0

4 3.0 320.0

5 4.0 1650.0

Page 22: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

b) ( )0, 1, 2, 1 0.1,xl xr x xr xl error xr xl = = = + − = =

5) Usando el método de Newton encuéntrese la raíz de la ecuación algebraica 3 3 36 0x x+ − = dentro del intervalo (1,5)

con la precisión 0.001 = . Justifíquese la selección del punto de arranque del proceso iterativo y encuéntrese la fórmula para

estimación del error del cálculo en cada paso del proceso de iteración.

(1.5ptos)

Solución

( ) ( ) ( )3 23 36; 3 3; 6f x x x f x x f x x = + − = + =

Estimación del error

( )( ) ( ) ( )

1,5min 1 6 6n

xf x f f x

= =

Selección del punto de arranque del proceso iterativo:

En el extremo de la izquierda ( ) ( )31 1 1 3 36 0; 1 6 0x f f = = + − = No sirve

En el extremo de la derecha ( ) ( )35 5 5 15 36 0; 5 6 0x f f = = + − = Sirve 0 5x =

El proceso iterativo:

( ) ( ) ( ) ( ) ( ) ( )( ) ( )( ) ( )( ) ( ) ( ) ( )( ) ( ) ( ) ( )( ) ( )

( )

3 2 21

2 2 21

3 36 3 3 1 3 1 2 36 1

1 3 1 3 2 36 1 2 3 1 3 2 36 1 2 3 1 3 2 36 1 ;

0,1,2, / 6 0.001

n n n n n n n n n n n n n

n n n n n n n n n n n

n

x x f x f x x x x x x x x x x

x x x x x x x x x x x

n hasta que error f x

+

+

= − = − + − + = − + + − + =

= − − − + = − − + = − − +

= =

6) Para la ecuación trigonométrica ( ) ( )0; con 2sin 1f x f x x= = − encuéntrese: (a) usando el método gráfico, el número de las

raíces dentro del intervalo ( )0,10 y el paso conveniente para separar las raíces. (0.5pto); Con la precisión 0.1 = encuéntrese el

valor de la menor raíz dentro del intervalo usando el método de bisección y compárese el resultado con la raíz exacta

6 0.5236x = (1pto).

Solución: a) 1 2 1 2

2sin 1 0 sin 1 2; sin 1 2x x y x y y y− = = = = =

Respuesta hay 4 raíces y el paso conveniente para separar las raíces es 2 1.57h .

b) ( )0, 1, 2, 1 0.1,

( ) 2sin( ) 1 ( ) 2sin( ) 1

xl xr x xr xl error xr xl

fl f xl xl fl f xr xr

= = = + − = =

= = − = = −

0 2 4 6 8 10

-1,0

-0,5

0,0

0,5

1,0

x4

x3

x2x

1

y2

y1

Y

X

Page 23: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

Solución aproximada es

0.53125; 6 0.5236 0.08x x x x= = −

7) Usando el método de Newton encuéntrese la raíz de la ecuación 2sin 1 0x − = dentro del intervalo (0, 1) con la

precisión 0.001 = . Justifíquese la selección del punto de arranque del proceso iterativo y encuéntrese la fórmula para

estimación del error del cálculo en cada paso del proceso de iteración. (1pto)

Solución

( ) ( ) ( )2sin 1; 2cos ; 2sinf x x f x x f x x = − = = −

Estimación del error

( ) ( ) ( ) ( )0 1min 1 2cos1 1.08 1.08n n n

xf x f f x f x

= = =

Selección del punto de arranque del proceso iterativo:

( ) ( )

( ) ( )

0.1 0.1 2sin 0.1 1 0.8 0; 0.1 2sin 0.1 0.2 0

0.1 0.1 0

x f f

f f

= = − = − = − = −

Por eso el extremo de la izquierda sirve como un punto de arranque para el proceso ityerativo

En el extremo de la derecha ( ) ( )35 5 5 15 36 0; 5 6 0x f f = = + − = Sirve 0 5x =

El proceso iterativo:

( ) ( ) ( ) ( ) ( )

( )

( )

( ) ( )

1

1 1

1 2 2

2

2sin 1 2cos tan 1 2cos

tan 1 2cos , 0.1

1,2, 2sin 1 0.001

1, 0.1, 0.1 tan 0.1 1 2cos0.1 0.1 0.1 1 1.99 0.5025; 2sin0.5025 1 0.04

2, 0.502

n n n n n n n n n n

n n n n

n n

x x f x f x x x x x x x

x x x x x

n hasta que f x x

n x x

n x

+

+

= − = − − = − +

= − + =

= = −

= = = − + = − + = −

= = ( ) ( )3

3

5, 0.5025 tan0.5025 1 2cos0.5025 0.5025 0.5496 1 1.753 0.5234;

2sin0.5234 1 0.0003

x

= − + = − + =

Problemas para Proyecto1 (raíces de ecuaciones)

Considere la ecuación ( ), 0f x p = dentro del intervalo ( ,  )a b con un parámetro p que se varía dentro del intervalo

0 fp p p . Las funciones ( ,  )f x p y parámetros

0, , ,

fa b p p están dados en la tabla. Denotaremos las raíces de esta ecuación

( ),  1, 2, 3,  , x i i n= , donde n es el número total de las raíces.

a) Presente análisis gráfico para separar las raíces

b) Utilizando el método de bisección encuéntrese el número n de las raíces y valores de todas raíces con la precisión

para valores del parámetro 0

p p= y f

p p= .

c) Presente el gráfico del número de las raíces n en función del parámetro p para dentro del intervalo 0 f

p p p .

c) Para valores del parámetro 0

p p= y f

p p= encuéntrese la primera raíz utilizando los métodos de bisección y de Newton con

la misma precisión8

10−

= y compárese la cantidad de iteraciones que requieren estos dos métodos para lograr la precisión

Page 24: UNIVERSIDAD INDUSTRIAL DE SANTANDER Methods/APUNTES... · 2020. 6. 15. · - interpolación; asi mismo calcular numéricamente integrales, derivadas y solución de ecuaciones diferenciales

sugerida

1. ( )2

01 cos ,  0,  10,  1,  20.0

ff x x px a b p p= − = = = =

2. ( )2 2

0tan ,  0,  ,  1,  20.0

ff x x p x a b p p p= − − = = = =

3. ( ) ( )2

0ln cos ,  1,  20,  1,  10.0

ff x x x px a b p p= − = = = =

4. ( )2 2

0cot ,  0,  ,  1,  20.0

ff x x p x a b p p p= − − = = = =

5. ( ) 0sin ,  0,  10,  1.0,  5.0

x p

ff x x x pe a b p p

−= − = = = =

6. ( )2 2

0tan ,  0,  10,  1,  10.0

ff x px b x a b p p= − − = = = =

7. ( ) ( ) 0,  0,  20,  0.5,  5.0

px

ff x e sen px a b p p

−= − = = = =

8. ( )2 2

0cot ,  0,  10,  1,  10.0

ff x px b x a b p p= − − = = = =

9. ( ) ( ) 0ln(1 ) cos ,  0,  10,  0.5,  10.0

ff x x p px a b p p= + − = = = =

10. ( ) ( )2 2

01 1 sin ,  0,  20,  0.5,  25.0

ff x x px a b p p= + − = = = =

11. ( ) 0cos ,  0,  20,  0.5,  2.0

x

ff x xe p x a b p p

−= − = = = =