Page 65 - Chapra y Canale. Metodos Numericos para Ingenieros 5edición_Neat
P. 65
2.4 EXCEL 41
Una vez dentro del Visual Basic Editor (VBE), seleccione
Insert Module
y se abrirá una nueva ventana para código. La siguiente función en VBA se puede obte-
ner directamente del seudocódigo de la figura 2.7. Escriba la función dentro de la nueva
ventana.
Option Explicit
Function Euler(dt, ti, tf, yi, m, cd)
Dim h As Single, t As Single, y As Single, dydt As Single
t = ti
y = yi
h = dt
Do
If t + dt > tf Then
h = tf – t
End If
dydt = dy(t, y, m, cd)
y = y + dydt * h
t = t + h
If t >= tf Then Exit Do
Loop
Euler = y
End Function
Compare esta macro con el seudocódigo de la figura 2.7 y vea que son muy simila-
res. Observe también cómo la lista de argumentos de la función se hizo más larga al
incluir los parámetros necesarios para el modelo de la velocidad del paracaidista. La
velocidad obtenida, v, pasa a la hoja de cálculo mediante el nombre de la función.
Note también cómo, para calcular la derivada, hemos usado otra función. Ésta se
puede introducir en el mismo módulo tecleándola directamente debajo de la función
Euler,
Function dy(t, v, m, cd)
Const g As Single = 9.8
dy = g – (cd / m) * v
End Function
El paso final consiste en volver a la hoja de cálculo y llamar a la función introdu-
ciendo la siguiente expresión en la celda B9.
=Euler(dt,A8,A9,B8,m,cd)
El resultado de la integración numérica, 16.531, aparecerá en la celda B9.
Vamos a ver qué ha pasado aquí. Cuando usted da la función en la celda de la hoja
de cálculo, los parámetros pasan al programa VBA, donde se realizan los cálculos y,
después, el resultado regresa a la celda. En efecto, el lenguaje de macros VBA le permi-
te usar Excel como mecanismo de entradas y salidas (input/output). Esta característica
resulta de mucha utilidad.
6/12/06 13:43:44
Chapra-02.indd 41 6/12/06 13:43:44
Chapra-02.indd 41

