Translate

lunes, 2 de diciembre de 2013

Método de Crammer aplicado en Visual Basic 2010



Los determinantes juegan un papel de gran importancia en la resolución de sistemas de ecuaciones lineales; la regla de crammer es un teorema que permite hallar la solución de estos, en cual primero la vamos a definir para poder resolver los sistemas.

Primero empezaremos explicando en que consiste y como solucionar un sistema de ecuaciones por el método de crammer para después poder aplicarlo en visual basic.



Sea el sistema de ecuaciones:










Donde todas las ecuaciones están ordenadas de acuerdo a las variables y el término independiente se encuentra a la derecha del signo igual.

Y sean los determinantes:
Matriz identidad
Para “X”
Para “y”
Para “z”
D=  a1  b1  c1
       a2  b2  c2
       a3  b3  c3

Dx=  d1  b1  c1
        d2  b2  c2
        d3  b3  c3

Dy=  a1  d1  c1
         a2  d2  c2
         a3  d3  c3

Dy=  a1  b1  d1
         a2  b2  d2
         a3  b3  d3

D=se forma con los coeficientes numéricos de la incógnita de cada una de las ecuaciones.
Dx=se forma sustituyendo la columna de la variable x por la de términos independientes.
Dy=se forma sustituyendo la columna de la variable x por la de términos independientes.
Dz=se forma sustituyendo la columna de la variable z por la de términos independientes.


El conjunto solución de este sistema está dado por:


X=Dx/D
Y=Dy/D

Z=Dz/D

Donde D ≠ 0

Ejemplo:

Para Calcular D:










Para Calcular Dx:















Para Calcular Dy:


















Para Calcular Dz:













Solución:







Aplicando lo anterior en Visual Basic

El diseño queda de esta manera pero cada quien lo diseña a su manera esta es solo un ejemplo de cómo podría ser:

Nota: El usuario puede o no utilizar nomenclatura (En mi caso no utilicé) Si se desea utilizar 
nomenclatura es cuestión de adaptar el código.

Colocar:
·         26 label.
·         2 GrupBox para colocar los label y los TextBox.
·         3 Button.















Código en el Botón resolver:

Es necesario declararar 7 variables:






Nota: Hay que tomar en cuenta la fórmula para hallar las variables como anteriormente se mencionan para no tener errores.

matrizidentidad = ((Val(TextBox1.Text) * Val(TextBox5.Text) * Val(TextBox9.Text)) + (Val(TextBox4.Text) * Val(TextBox8.Text) * Val(TextBox3.Text)) + (Val(TextBox2.Text) * Val(TextBox6.Text) * Val(TextBox7.Text))) - ((Val(TextBox7.Text) * Val(TextBox5.Text) * Val(TextBox3.Text)) + (Val(TextBox4.Text) * Val(TextBox2.Text) * Val(TextBox9.Text)) + (Val(TextBox8.Text) * Val(TextBox6.Text) * Val(TextBox1.Text)))

 subx = ((Val(TextBox10.Text) * Val(TextBox5.Text) * Val(TextBox9.Text)) + (Val(TextBox11.Text) * Val(TextBox8.Text) * Val(TextBox3.Text)) + (Val(TextBox2.Text) * Val(TextBox6.Text) * Val(TextBox12.Text))) - ((Val(TextBox12.Text) * Val(TextBox5.Text) * Val(TextBox3.Text)) + (Val(TextBox8.Text) * Val(TextBox6.Text) * Val(TextBox10.Text)) + (Val(TextBox11.Text) * Val(TextBox2.Text) * Val(TextBox9.Text)))

suby = ((Val(TextBox1.Text) * Val(TextBox11.Text) * Val(TextBox9.Text)) + (Val(TextBox10.Text) * Val(TextBox6.Text) * Val(TextBox7.Text)) + (Val(TextBox4.Text) * Val(TextBox12.Text) * Val(TextBox3.Text))) - ((Val(TextBox7.Text) * Val(TextBox11.Text) * Val(TextBox3.Text)) + (Val(TextBox12.Text) * Val(TextBox6.Text) * Val(TextBox1.Text)) + (Val(TextBox4.Text) * Val(TextBox10.Text) * Val(TextBox9.Text)))

subz = ((Val(TextBox1.Text) * Val(TextBox5.Text) * Val(TextBox12.Text)) + (Val(TextBox2.Text) * Val(TextBox11.Text) * Val(TextBox7.Text)) + (Val(TextBox4.Text) * Val(TextBox8.Text) * Val(TextBox10.Text))) - ((Val(TextBox7.Text) * Val(TextBox5.Text) * Val(TextBox10.Text)) + (Val(TextBox4.Text) * Val(TextBox2.Text) * Val(TextBox12.Text)) + (Val(TextBox8.Text) * Val(TextBox11.Text) * Val(TextBox1.Text)))

        x = subx / matrizidentidad
        y = suby / matrizidentidad
        z = subz / matrizidentidad

        TextBox15.Text = x
        TextBox16.Text = y
        TextBox17.Text = z





Código en el botón limpiar:

















Código en el botón Salir:





Para Mejor la aplicación solo resta aplicarle la validación para que solo nos acepte números, punto y la diagonal.

Para ello se agrega un nuevo elemento y este será un módulo al cual se le puede nombrar como desee (En mi caso lo deje como viene default).












En  cada textbox dar  doble click y cambiar al evento Keypress y colocar el siguiente código:



No hay comentarios:

Publicar un comentario