05 septiembre 2007

Resolución de un sistema de ecuaciones simultaneas usando Visual Basic for Applications (2a parte)

Ahora estamos en condiciones de implementar una solución en VBA. Para este ejemplo, asumiremos que la entrada de datos se dará por medio de un formulario y la salida se dará en la hoja activa en la celda activa del libro de trabajo actual.

Primero debemos insertar un formulario, esto lo haremos desde la Ventana de aplicación de VBA

Al formulario agregaremos 6 cuadros de texto (textbox), 6 etiquetas (labels) y tres botones de comando (commamd buttons), lo que hará que nuestro formulario tenga ahora la siguiente apariencia:



Para resolver la ecuación utilizaremos la fórmula obtenida anteriormente, programemos el botón Ok.

Dentro del botón pongamos el siguiente código:


Private Sub CommandButton1_Click()


Dim a As Integer, b As Integer, c As Integer, _

d As Integer, e As Integer, f As Integer, _

X As Integer, Y As Integer, Cte As Integer

a = Me.TextBox1.Value

b = Me.TextBox2.Value

c = Me.TextBox3.Value

d = Me.TextBox4.Value

e = Me.TextBox5.Value

f = Me.TextBox6.Value

Cte = (a * e) - (b * d)

X = ((c * e) - (b * f)) / Cte

Y = ((a * f) - (d * c)) / Cte

ActiveCell.Select

With Selection

.HorizontalAlignment = xlRight

.VerticalAlignment = xlBottom

.ReadingOrder = xlContext

End With

Selection.Value = "X="

ActiveCell.Offset(0, 1).Select

Selection.Value = X

Selection.Offset(1, -1).Select

With Selection

.HorizontalAlignment = xlRight

.VerticalAlignment = xlBottom

.ReadingOrder = xlContext

End With

Selection.Value = "Y="

ActiveCell.Offset(0, 1).Select

Selection.Value = Y

End Sub
Esto código resolverá culaquier sistema de ecuaciones simultaneas

Etiquetas: , ,

Resolución de un sistema de ecuaciones simultaneas usando Visual Basic for Applications (1a parte)

Dos o más ecuaciones con dos o más incógnitas son simultáneas cuando se satisfacen los mismos valores para las incógnitas, por ejemplo, en las siguientes ecuaciones:



Son simultaneas porque:

x=3 y Y=2


Satisfacen ambas ecuaciones.


Para resolver este sistema de ecuaciones existen diferentes métodos algebraicos que pueden ser consultados en distintos libros (por ejemplo, Baldor, A. 1978, Ediciones y distribuciones códice, S.A., Madrid).
Este tipo de problemas se ha convertido en un ejercicio clásico en la enseñanza de programación. A aquellas personas que están dando sus primeros pasos en programación se les plantea la resolución de este tipo de ecuaciones. A continuación se tratará de explicar una solución utilizando Visual Basics for applications (VBA) corriendo en MS-Excel
Es importante mencionar que para resolver el ejercicio es necesario tener conocimientos básicos de álgebra, además de entender que son, para que sirven y como se declaran variables en VBA.
Para resolver un sistema de ecuaciones simultáneas en VBA hay que generar una fórmula sencilla que pueda ser implementada.


Por ejemplo si quisiéramos resolver:Es conveniente transformar este sistema en uno más general, por ejemplo:
De este modo podemos obtener una fórmula general que pueda ser implementada en VBA o cualquier otro lenguaje de programación.

A continuación se planteará el desarrollo de la fórmula para obtener el valor de “y”, el desarrollo del valor de “x” se deja al lector como ejercicio.

Sea el sistema de ecuaciones:



Si despejo “x” de la ecuación 1 obtendré:Sustituyo 3 en la ecuación 2:Resuelvo 4: Multiplico ambos miembros de la ecuación por “a”:

Reagrupo términos: Factorizo el lado izquierdo de la ecuación:
Despejo “y”Adicionalmente diremos que: De esta manera se está ahora en condiciones de implementar una solución en VBA.


Etiquetas: ,