Sie sind auf Seite 1von 42

CAPÍTULO 2

Métodos numéricos para ingenieros.


Steven C. Chapra, Raymod P. Canale. Quinta
Edición.

Herrera García Michell


Guatemala Vera Hiram
Gamboa Morales Melissa
Programación y software
Paquetes y programación
• Existen 2 formas de usar
un software (Excel y
MATLAB), la primer
forma estándar con un
mínimo esfuerzo y la
segunda es usar
herramientas que
permiten ampliar la
capacidad como Excel
VBA o archivos M(M-files.
Programas computacionales
Son un conjunto de instrucciones que dirigen a la
computadora para realizar una cierta tarea.
Tópicos de programación:
• Representación de información sencilla.
• Representación de información mas compleja.
• Fórmulas matemáticas.
• Entrada/Salida.
• Representación lógica.
• Programación modular .
Programación estructurada
• En los comienzos de la computación, no era
prioridad que crear programas que fueran claros
y fáciles de entender.
• Actualmente para desarrollar, probar y
actualizar un programa de manera más
eficiente, se requiere escribir programas bien
organizados y estructurados. Así también definir
algoritmos que pueda perfeccionarse y probarse
más fácil.
¿Qué es la programación estructurada?
Es el conjunto de reglas y restricciones necesarias
que permite:
▫ Obtener un software de alta calidad, elegante y
fácil de entender.
▫ Bastante flexibilidad para que el desarrollador
pueda emplear su creatividad y su expresión
personal.
“Cualquier algoritmo numérico requiere de tres
estructuras de control fundamentales:

Secuencia Selección Repetición

Así el programa será claro y fácil de seguir.”


Diagrama de flujo:
• Representación visual o gráfica de un algoritmo.

• Emplea bloques, cada uno representa un


determinado paso u operación del algoritmo.

• Utiliza flechas que representan el orden en el


que se realizan las operaciones.
Ventajas de utilizarlos
• Son capaces de expresar y comunicar
algoritmos.

• Son útiles para planear, aclarar o comunicar la


lógica de un programa.

• Son ideales para visualizar las estructuras de


control fundamentales que se emplean en la
programación.
Seudocódigo
• Es el puente entre los diagramas de flujo y el
código de computadora.
• Sustituye los símbolos gráficos (del diagrama de
flujo) con palabras clave como:
IF, DO, INPUT, etc..
• Los pasos del proceso y tareas van en
minúsculas y con sangría.
• Es fácil de modificar, lo utilizaremos como
medio principal para comunicar algoritmos.
Diagrama de flujo
Símbolo Nombre Función/Representación

Terminal El inicio o el final de un programa.

Flujo de la lógica. Los arcos en la


flecha indican que ésta pasa sobre
Líneas de flujo
las líneas de flujo verticales y no se
conecta con ellas.

Proceso Cálculos o manipulación de datos.

Entrada o salida de datos e


Entrada/Salida
información.
Diagrama de flujo
Símbolo Nombre Función/Representación
Hace una comparación, una
pregunta o una decisión que
Decisión
determina los caminos
alternativos a seguir.

Unión La confluencia de líneas de flujo.

Conexión de Una interrupción que continúa en


fin de página otra página.

Ciclo de Marca ciclos que repiten un


cuenta número predeterminado de
controlada iteraciones.
2.2.1 Representación lógica
SECUENCIA:
▫ El código debe realizarse instrucción por instrucción.

Diagrama de flujo Seudocódigo

Instrucción 1
Instrucción 1
Instrucción 2
Instrucción 3
Instrucción 2

Instrucción 3
SECUENCIA: utilizando las estructuras IF, THEN
y ELSE.
Diagrama de flujo Seudocódigo

IF condition THEN
Bloque verdadero
Condición
ENDIF
?

Bloque
verdadero
SECUENCIA: Para dos alternativas

Diagrama de flujo Seudocódigo

IF condition THEN
Condición
?
Bloque verdadero
ELSE
Bloque falso
Bloque Bloque
ENDIF
falso verdadero
Diagrama de flujo
Falso Condición 1 Verdadero
?

Falso Condición 2 Verdadero


Bloque 1
?

Falso Condición 3 Verdadero


Bloque 2
?

Bloque 4 Bloque 3
Seudocódigo

IF condition1 THEN
Bloque1
ELSEIF condition2
Bloque2
ELSEIF condition3 Ambas estructuras para
Bloque3 múltiples alternativas
ELSE
Bloque4
ENDIF
Para la estructura CASE (SELECCIONA
o DESVÍA
• Dependen de una sola expresión de prueba.
▫ Seudocódigo
SELECT CASE Expresión de prueba
CASE Valor1
Bloque1
CASE Valor2
Bloque2
CASE Valor3
Bloque3
CASE ELSE
Bloque4
END SELECT
Diagrama de flujo

Expresión
de prueba

Valor1 Valor2 Valor3 Valor4


Bloque 1 Bloque 2 Bloque 3 Bloque 4

• Estructura CASE
Repetición
• Proporciona la manera de llevar a cabo
instrucciones repetidamente.
• Por medio de loops o ciclos.
Pueden ser:
• Loop de decisión: se basa en el resultado de una
condición lógica.
• Loop de interrupción(DOEXIT): hasta que la
condición sea verdadera. En Matlab o lenguaje
en C se utiliza WHILE.
• Loop de prueba: se omite un bloque porque la
prueba se realiza antes de que ocurra algo.

• Loop de posprueba: se omite el segundo bloque.

• Loop de prueba intermedia (midtest): se


incluyen dos bloques.

• Loop lógico: Causa una condición lógica.

• Loop controlado por contador (DOFOR): Realiza


determinadas iteraciones.
Loop DOEXIT (De interrupción)
• Diagrama de flujo Seudocódigo

DO
Bloque 1
Bloque1
IF condición EXIT
Verdadero Bloque2
Condición? ENDDO

Falso

Bloque 2
DOFOR (Construcción controlada por conteo)
• Diagrama de flujo Seudocódigo

i = inicio
Verdadero i > fin DOFOR i = inicio, fin, incremento
? ENDDO
i = i + incr.

Falso

Bloque
Programación modular
• Los programas de computación se dividen en sub
programas o módulos que se desarrollan y prueban
por separado.
• Los módulos son independientes y autosuficientes.
• Diseñados para una función especifica y definida
con punto de entrada y salida.
• Los módulos son procedimientos de tipo función
que dan un resultado y subrutinas que dan varios.
• Las ventajas son: fácil de seguir y entender, fácil
desarrollo, se encuentran errores con facilidad,
sencillo mantenimiento y modificación del
programa.
Ejemplo
• Seudocódigo para una función que resuelve una
ecuación diferencial usando el método de Euler.
EXCEL
• Nombres a los valores
de los parámetros (m,
problema del paracaidista cd, dt).
m 68.1 kg • Introducir formula y se
copia celda.
cd 12.5 kg/s
dt 0.1 s

t vnum (m/s) vanal (m/s) • Formula:9.8*m/cd*(1-


0
2 16.4049808
0
exp(-cd/m*A8))
4 27.7692915
6 35.6417516
8 41.0952832
10 44.8731376
12 47.4901909
Macros de VBA • Abrir VBA
• Insertar modulo
• Escribir funciones.
• Volver a hoja de excel
e introducir el
nombre de la función
en la celda y arrastrar.
Resultado.
problema del paracaidista

m 68.1 kg
cd 12.5 kg/s
dt 0.1 s

t vnum (m/s) vanal (m/s)


0 0 0
2 16.53092 16.4049808
4 27.9434929 27.7692915
6 35.8224602 35.6417516
8 41.2619095 41.0952832
10 45.0171585 44.8731376
12 47.6096992 47.4901909
Matlab
• Software fundado por los analistas numéricos Cleve Moler y John N.
Little desarrollado como un Laboratorio para Matrices, hoy el
elemento principal para Matlab sigue siendo la matriz.
• Matlab agrega varias funciones numéricas, cálculos simbólicos y
herramientas para visualización.

• El uso de Matlab está estrechamente relacionado con la


programación.
Ejemplo
• Supongamos por ejemplo que queremos
solucionar el problema del paracaidista lo cual
haríamos con los siguientes comandos
• >> g=9.8;
• >> m=68.1;
• >> cd=12.5;
• >> tf=2;
• >> v=g*m/cd*(1-exp(-cd/m*tf))
• La secuencia de comandos es importante pero
¿Qué ocurre si queremos desviarnos de la
estructura secuancial?
• Lo mejor es crear un documento en Matlab al
que se le llama archivo-m(m-file)
Guarde el programa con el mismo nombre,
analpara.m
Ahora debemos regresar al modo Command
Window y observar que al correr el programa
directamente nos da el resultado.
Ahora suponga que desea evaluar el efecto de la
masa a los 2s. Para eso el archivo Analpara.m
podría reescribirse como:
Guardar el cambio anterior como Analpara2.m.
Al escribir Analpara2 en Command Window
obtenemos algo como (masa(kg):) y si le damos
un valor, por ejemplo 100…
Lenguaje de programación en Matlab
Escriba lo siguiente en el Editor,
posteriormente guarde el archivo como
numpara.m y córralo:
Obtendrá la siguiente salida:
• La combinación del ambiente Matlab con el
lenguaje de programación nos abre un mundo de
posibilidades para la solución de problemas de
ingeniería.

Das könnte Ihnen auch gefallen