1. 1
ANÁLISIS NUMÉRICO
Un enfoque algorítmico con el soporte de MATLAB
1 INTRODUCCIÓN
El Análisis Numérico es una rama de la matemática cuyo objetivo principal es el estudio de
métodos para resolver problemas numéricos complejos. El estudio de estos métodos no es
reciente, pero actualmente con el apoyo de la computación se los puede usar con mucha
eficiencia en la resolución de problemas que antes no era posible.
En este curso se proporciona a los estudiantes el conocimiento matemático básico para proveer
soporte y formalidad a cada uno de los métodos estudiados. Se desarrolla la forma algorítmica
de los métodos y finalmente se instrumenta su forma computacional usando la capacidad de
cálculo, visualización y programación de MATLAB. Este componente práctico del curso es
desarrollado en un laboratorio de computación.
El estudio de cada método se complementa con el desarrollo de ejemplos y ejercicios que
pueden resolverse con la ayuda de una calculadora. Sin embargo, el objetivo principal del curso
es la aplicación de los métodos para obtener respuestas con precisión controlada en la
resolución de algunos problemas de ingeniería que por su complejidad requieren usar el
computador.
1.1 Resolución de problemas con el computador
Suponer un problema que debemos resolver y que está en nuestro ámbito de conocimiento.
En la etapa de Análisis es necesario estudiar y entender el problema. Sus características, las
variables y los procesos que intervienen. Asimismo, debemos conocer los datos requeridos y el
objetivo esperado. En el caso de problemas de tipo numérico, el resultado de esta etapa será un
modelo matemático que caracteriza al problema. Por ejemplo, un sistema de ecuaciones
lineales.
En la etapa de Diseño procedemos a elegir el método numérico apropiado para resolver el
modelo matemático. Debe suponerse que no se puede, o que sería muy laborioso, obtener la
solución exacta mediante métodos analíticos. Los métodos numéricos permiten obtener
soluciones aproximadas con simplicidad. El resultado de esta etapa es la formulación
matemática del método numérico y la elaboración de un algoritmo para usarlo.
En la etapa de Instrumentación elegimos el dispositivo de cálculo para la obtención de
resultados. En problemas simples, basta una calculadora. Para problemas complejos,
requerimos el computador mediante funciones predefinidas y en algunos casos, desarrollando
programas y funciones. Esta última opción es importante para la comprensión de los métodos.
Este proceso debe complementarse con una revisión y retroalimentación. Es preferible invertir
más tiempo en las primeras etapas, antes de llegar a la instrumentación.
2. 2
1.2 Fuentes de error en la resolución de un problema numérico
En el Análisis pueden introducirse errores debido a suposiciones inadecuadas, simplificaciones
y omisión al construir el modelo matemático. Estos errores se denominan errores inherentes.
En el Diseño se pueden introducir errores en los métodos numéricos utilizados los cuales se
construyen mediante fórmulas y procedimientos simplificados para obtener una aproximación a
la respuesta. También se pueden introducir errores al usar algoritmos iterativos. Este tipo de
error se denomina error de truncamiento.
En la Instrumentación se pueden introducir errores en la representación finita de los números
reales en los dispositivos de almacenamiento y en los resultados de las operaciones aritméticas.
Este tipo de error se denomina error de redondeo. También se pueden introducir errores de
redondeo al usar datos imprecisos.
Los errores son independientes y su efecto puede acumularse. En el caso del error de redondeo
el efecto puede incrementarse si los valores que se obtienen son usados en forma consecutiva
en una secuencia de cálculos.
Debido a que los métodos numéricos en general, permiten obtener únicamente aproximaciones
para la respuesta de un problema, es necesario definir alguna medida para cuantificar el error en
el resultado obtenido. En general, no es posible determinar exactamente este valor por lo que al
menos debe establecerse algún criterio para estimarlo o acotarlo. Esta información es útil para
conocer la precisión de los resultados calculados.
1.3 Algoritmos numéricos
Un algoritmo es una descripción ordenada de los pasos necesarios para resolver un problema.
Para crear un algoritmo para resolver un problema numérico es necesario conocer en detalle la
formulación matemática, las restricciones de su aplicación, los datos y algún criterio para validar
y aceptar los resultados obtenidos.
Esta descripción facilita la instrumentación computacional del método numérico. En problemas
simples puede omitirse la elaboración del algoritmo e ir directamente a la codificación
computacional.
1.4 Instrumentación computacional
En este curso se usará MATLAB para instrumentar los algoritmos correspondientes a los
métodos numéricos estudiados. La aplicación computacional puede realizarse usando
directamente la funcionalidad disponible en el lenguaje. Sin embargo, es preferible instrumentar
el algoritmo mediante una función en el lenguaje de MATLAB tratando de que sea independiente
de los datos específicos de un problema particular para facilitar su reutilización. Estas funciones
pueden llamarse desde la ventana de comandos o mediante un programa que contendrá los
datos del problema que se desea resolver.
Se supondrá que los estudiantes tienen el conocimiento básico del lenguaje y del entorno de
MATLAB. En este curso se suministra un tutorial para uso de este programa.
3. 3
1.5 Elementos de MATLAB
MATLAB es un instrumento computacional simple de usar, versátil y de gran poder para
aplicaciones numéricas, simbólicas y gráficas. Contiene una gran cantidad de funciones
predefinidas para aplicaciones en áreas de las ciencias e ingeniería. Este instrumento puede
usarse en forma interactiva mediante comandos o mediante instrucciones creando programas
y funciones con las que se puede agregar poder computacional a la plataforma MATLAB.
1.5.1 Uso interactivo de MATLAB
Al ingresar al programa MATLAB se tiene acceso a la Ventana de Comandos. Los comandos
son las instrucciones que se escriben para obtener resultados en forma inmediata.
Ejemplo. Para calcular
= cos(2π) + 5 + 27
y
Digite en la ventana de comandos de MATLAB
y = cos(2*pi)+sqrt(5)+2^7
Obtendrá inmediatamente la respuesta Ventana de
y= comandos de
131.2361 MATLAB
Escribir el comando
Se obtiene la respuesta
1.5.2 Programación en MATLAB
Junto a este curso se suministra un tutorial de MATLAB. Se sugiere usarlo como referencia y
adquirir familiaridad con la sintaxis y operatividad de este lenguaje.
Para usar el componente programable de MATLAB debe abrir una ventana de edición
presionando el botón New M-File o New Script en la barra del menú de opciones de MATLAB.
Escriba el programa en la ventana de edición y almacénelo con algún nombre. Finalmente, active
el programa escribiendo el nombre en la ventana de comandos. Ingrese los datos y obtenga los
resultados.
4. 4
Ejemplo. Escribir y probar un programa en MATLAB un algoritmo para obtener la suma de las
dos mejores calificaciones de las tres obtenidas en un curso.
1) Presionar este botón para 2) Escribir el programa en
abrir la ventana de edición la ventana de edición
4) Activar el programa,
ingresar los datos y
obtener el resultado
3) Presionar este botón
para almacenar el
programa con algún
nombre
1.6 El modelo matemático
Al resolver un problema con el computador, la parte más laboriosa normalmente es el análisis del
problema y la obtención del modelo matemático que finalmente se usa para obtener la solución.
La obtención del modelo matemático requiere conocer el ámbito del problema y los instrumentos
matemáticos para su formulación.
A continuación un ejemplo para obtener el modelo matemático y su solución con MATLAB
Problema. Un empresario desea producir recipientes cilíndricos de aluminio de un litro de
capacidad. Cada recipiente debe tener un borde de 0.5 cm. adicionales para sellarlo. Determine
las dimensiones del recipiente para que la cantidad de material utilizado en la fabricación sea
mínima.
5. 5
Análisis
Para entender el problema, es conveniente desarrollarlo para visualizar sus componentes:
Sean: x, h: radio y altura del cilindro, respectivamente
2 2
Área total: s = 2π(x+0.5) + (2πx+0.5)h cm (1)
v = πx h = 1000
2 3
Dato del volumen requerido: cm (2)
De (2) obtenemos h:
1000
h=
πx 2
Sustituimos en (1):
1000(2πx + 0.5)
s(x) = 2π(x + 0.5)2 +
πx 2
Se obtiene una función para la que debe determinarse el valor de la variable x que minimice s
El Cálculo Diferencial nos proporciona un procedimiento para obtener la respuesta. Se debe
resolver la ecuación: s'(x) = 0. Este es el modelo matemático del cual se obtendrá la solución.
Algoritmo
1) Obtener s'(x)
2) Resolver la ecuación s'(x) = 0
3) Elegir y validar la respuesta
Instrumentación
Se realizará utilizando funciones existentes en el programa MATLAB
6. 6
Es útil visualizar la función s mediante un gráfico
>> s='2*pi*(x+0.5)^2+1000*(2*pi*x+0.5)/(pi*x^2)';
>> ezplot(s,[0,20]),grid on
2 π (x+0.5)2+1000 (2 π x+0.5)/(π x 2)
4000
3500
3000
2500
2000
1500
1000
500
0 2 4 6 8 10 12 14 16 18 20
x
Se observa que hay un valor real positivo que minimiza la función s(x)
Obtener la derivada de s(x)
>> ds=diff(s)
ds =
2*pi*(2*x + 1.0) + 2000/x^2 - (2*(2000*pi*x + 500.0))/(pi*x^3)
Resolver la ecuación s'(x)=0
>> x=eval(solve(ds))
x=
5.3112
-0.1592
-2.8260 + 4.6881i
-2.8260 - 4.6881i
Por la naturaleza del problema, solamente la primera respuesta x(1) es aceptable
>> h=1000/(pi*x(1)^2)
h=
11.2842
Solución
Radio: x=5.3112
Altura: h=11.2842
7. 7
1.7 Preguntas
1. ¿Cual etapa del proceso de resolución de un problema numérico requiere mayor atención?
2. ¿Qué conocimientos son necesarios para formular un modelo matemático?
3. En el ejemplo del recipiente, ¿Cual sería la desventaja de intentar obtener experimentalmente
la solución mediante prueba y error en lugar de analizar el modelo matemático?
4. ¿Que es más crítico: el error de truncamiento o el error de redondeo?