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.
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”.
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.
• 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
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 −
- 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…
( )
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
= − + +
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
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,
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
El diagrama de flujo correspondiente a este algoritmo tiene la forma
Figura Diagrama de flujo del método de bisección
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
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)
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.
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:
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.
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
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)
( )
( )
( )
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
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
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
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
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
−= − = = = =