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
   60   61   62   63   64   65   66   67   68   69   70