El enfoque de la programacin modular es organizar los clculos de manera
INDEPENDIENTE, ms fciles de CORREGIR, y ACTUALIZAR.
Subrutinas
( Usualmente usado para calcular un solo valor)
Funciones
(Calcula o retorna varios valores)
FUNCIONES:
Es un procedimiento independiente que toma unos argumentos y realiza una serie de
clculos.
Function name ([lista de argumentos])
[instrucciones de clculo]
[name= expresin]
[Exit Function]
End Function
20/09/16
Mtodos Numricos con EXCEL-VBA
Pueden integrarse Subrutinas y Funciones. El siguiente ejemplo lo muestra:
Sub Sumasimple()
' asignando valores
a = 15
b = 28
' Haciendo la suma
c = suma(a,b)
' mostrando los resultados
MsgBox c
End sub
Subrutina principal
Function suma (a,b)
Suma = a+b
End Function
Los argumentos de una Function() pueden usarse en conjunto con hojas de
EXCEL.
20/09/16
Mtodos Numricos con EXCEL-VBA
Integracin de una funcin VBA con EXCEL.
20/09/16
Mtodos Numricos con EXCEL-VBA
En la primera columna se
presenta la forma bsica, con
formula UNICA en la celda de
trabajo.
20/09/16
En la segunda columna, los
argumentos son pasados a
una funcin en VBA.
Mtodos Numricos con EXCEL-VBA
20/09/16
Mtodos Numricos con EXCEL-VBA
Declarar una variable se refiere a especificar el tipo de estas explcitamente. En algunos
lenguajes de programacin, esto es obligatorio: en VBA no lo es.
En VBA existe una tipo de variable espacial llamada: Vartype, esta funcin es como un
camalen, elige el tipo de variable automticamente, segn el contexto.
Vartype (nombre_de_variable)
Valor
Tipo
Integer ( Entero)
Long
Single
Double
String ( cadena)
11
Boolean
20/09/16
Sub BoolDemo()
x = 32767
MsgBox Vartype (x)
X = 32768
MsgBox Vartype (x)
X = I m a Student
MsgBox Vartype (x)
X = True
MsgBox Vartype (x)
End Sub
Mtodos Numricos con EXCEL-VBA
Cuando el cdigo se ejecuta, despliega los valores 2, 3,5, 8 y 11. En otras palabras,
la variable x cambia el tipo de Integer a Long,luego a Double, luego a String y por
ltimo a Boolean.
NOTA: no todo es felicidad. Esta actividad automtica, ralentiza los programas, ya
que se necesita ms memoria para pensar y tomar la decisin.
Tambin se dificulta encontrar los errores, si escribes mal una variable, por ejemplos
y usas la palabra masa para una variable y escribes massa.....
La orden Dim ( Dimensin Tamao)
Dim Nombre variable [As Tipo], Nombre variable [As Tipo],.....
Una buena practica de programacin es declarar una variable y su tipo.
20/09/16
Mtodos Numricos con EXCEL-VBA
La orden Option Explicit obliga al programador a definir todos los tipos de
variables explicitamente, esto es til para programas grandes.
Algunos editores de VBA, tienen una opcin para exigir que todas las variables
sean declaradas de manera explicita.
20/09/16
Mtodos Numricos con EXCEL-VBA
El mtodo de Newton-Raphson (conocido tambin como mtodo de Newton-Fourier) es un mtodo iterativo
que nos permite aproximar la solucin de una ecuacin del tipo f(x)=0. Partimos de una estimacin inicial
de la solucin x0 y construimos una sucesin de aproximaciones de forma recurrente mediante la frmula:
x j+1=x j
f (x j)
'
f (x j)
A diferencia de los mtodos, el mtodo de Newton-Raphson no trabaja sobre un intervalo sino que basa su
frmula en un proceso iterativo.
El mtodo de Newton es muy rpido y eficiente ya que la convergencia es de tipo cuadrtico (el nmero de
cifras significativas se duplica en cada iteracin). Sin embargo, la convergencia depende en gran medida
de la forma que adopta la funcin en las proximidades del punto de iteracin.
f ( x j)
f ( x j )=
x j+1x j
'
20/09/16
Mtodos Numricos con EXCEL-VBA
20/09/16
Mtodos Numricos con EXCEL-VBA
Para hallar una solucin aproximada de f(x) = 0, dada una aproximacin inicial x0.
Entrada: aproximacin inicial x0 ; tolerancia TOL; cantidad mxima de iteraciones N;
Salida: solucin aproximada x j+1 , f ( x j+1 ) mensaje de fracaso.
Paso 1: Tomar j = 1;
Ciclo de Clculo
Paso 2: Mientras que jN seguir pasos 3-6;
Paso 3: Tomar
x j+1=x j
f (x j)
f ( x j+1 )
(%Calculo del punto siguiente)
Paso 4: Si x j+1 x j<TOL entonces SALIDA ( x j+1 , f ( x j+1 ) );
Paso 5: Tomar j = j+1
Paso 6: Tomar
x j =x j+1
(%Actualizar contador para la siguiente iteracin)
y volver al Paso 3.
(% redefinir el nuevo valor de x )
Paso 7: SALIDA ('El mtodo fracas despus de N iteraciones'); PARAR
20/09/16
Mtodos Numricos con EXCEL-VBA