Funciones algebraicas y sistema de ecuaciones 2×2 hecha en vb 6.0 en forma gráfica

Estaba  desempolvando algunos apuntes de Matemáticas y me encontré  con la tesis que realicé  para graduarme como técnico en sistemas de comunicación e informática por esos años del 2006.

Me puse a la tarea de recrear  este escenario y he sacado algunos apuntes aunque me gustaría realizarlo en otro lenguaje de programación.

 

Lo que recree de nuevo fueron algunas partes del programa como:

  • Gráficas de funciones polinomicas  y sus transformaciones:

De primer grado.

De segundo grado

De n grados

la cual pude realizar con el siguiente código:

Const XMIN = -15, XMAX = 15, YMIN = -10, YMAX = 10

Private Sub Form_Resize()
ScaleLeft = XMIN
ScaleTop = YMAX
ScaleWidth = (XMAX – XMIN)
ScaleHeight = -(YMAX – YMIN)

Refresh
End Sub

Private Sub Form_Paint()
DrawStyle = 0
Dim xcelda As Single
Dim ycelda As Single
ForeColor = vbBlue
For xcelda = -15 To 15 Step 0.5
Line (XMIN, xcelda)-(XMAX, xcelda)

Next
ForeColor = vbBlue
For ycelda = -15 To 15 Step 0.5
Line (ycelda, YMIN)-(ycelda, YMAX)

Next

ForeColor = vbGreen
Line (0, YMIN)-(0, YMAX)
ForeColor = vbWhite
For ycelda = -15 To 15 Step 1
Line (0 – 0.2, ycelda + 0.3)-(0 – 0.2, ycelda + 0.3)
Font.Size = 8
MSG = ycelda
Print MSG

Next

ForeColor = vbGreen
Line (XMIN, 0)-(XMAX, 0)
ForeColor = vbWhite
For xcelda = -15 To 15 Step 1
Line (xcelda – 0.2, 0 + 0.3)-(xcelda – 0.2, 0 + 0.3)
Font.Size = 8
MSG2 = xcelda

Print MSG2
Next

End Sub

Private Sub cmdgraficarcalculograficasdefunciones_Click()
Refresh
DrawWidth = 1
If txttransformacionpolinomicaindice1 > 0 And txttransformacionpolinomicaindice2 > 0 And txttransformacionpolinomicaindice3 > 0 And txttransformacionpolinomicaindice4 > 0 Then
For x = -20 To 20 Step 0.01
y = (txttransformacionpolinomica1 * (x ^ txttransformacionpolinomicaindice1)) + (txttransformacionpolinomica2 * (x ^ txttransformacionpolinomicaindice2)) + (txttransformacionpolinomica3 * (x ^ txttransformacionpolinomicaindice3)) + (txttransformacionpolinomica4 * (x ^ txttransformacionpolinomicaindice4)) + txttransformacionpolinomica5

PSet (x, y)
Next
End If

If txttransformacionpolinomicaindice1 < 0 Or txttransformacionpolinomicaindice2 < 0 Or txttransformacionpolinomicaindice3 < 0 Or txttransformacionpolinomicaindice4 < 0 Then
For x = -20 To -0.1 Step 0.01
y = (txttransformacionpolinomica1 * (x ^ txttransformacionpolinomicaindice1)) + (txttransformacionpolinomica2 * (x ^ txttransformacionpolinomicaindice2)) + (txttransformacionpolinomica3 * (x ^ txttransformacionpolinomicaindice3)) + (txttransformacionpolinomica4 * (x ^ txttransformacionpolinomicaindice4)) + txttransformacionpolinomica5

PSet (x, y)
Next

For x = 0.1 To 20 Step 0.01
y = (txttransformacionpolinomica1 * (x ^ txttransformacionpolinomicaindice1)) + (txttransformacionpolinomica2 * (x ^ txttransformacionpolinomicaindice2)) + (txttransformacionpolinomica3 * (x ^ txttransformacionpolinomicaindice3)) + (txttransformacionpolinomica4 * (x ^ txttransformacionpolinomicaindice4)) + txttransformacionpolinomica5

PSet (x, y)
Next
End If

End Sub

Private Sub Cmdtransformacionmenos_Click()
If txttransformacionmenos.Text = “+” Then
txttransformacionmenos.Text = “-”
Else
txttransformacionmenos.Text = “+”
End If

End Sub
Private Sub txttransformacionpolinomica_Change()
If txttransformacionpolinomica.Text = 0 Then
txttransformacionpolinomica.Text = “1”
End If
End Sub

Private Sub VSbtransformacionpolinomica_Change()
txttransformacionpolinomica.Text = VSbtransformacionpolinomica.Value

End Sub

Private Sub VSbtransformacionpolinomica1_Change()
txttransformacionpolinomica1.Text = VSbtransformacionpolinomica1.Value
End Sub

Private Sub VSbtransformacionpolinomica2_Change()
txttransformacionpolinomica2.Text = VSbtransformacionpolinomica2.Value
End Sub

Private Sub VSbtransformacionpolinomica3_Change()
txttransformacionpolinomica3.Text = VSbtransformacionpolinomica3.Value
End Sub

Private Sub VSbtransformacionpolinomica4_Change()
txttransformacionpolinomica4.Text = VSbtransformacionpolinomica4.Value
End Sub

Private Sub VSbtransformacionpolinomica5_Change()
txttransformacionpolinomica5.Text = VSbtransformacionpolinomica5.Value
End Sub
Private Sub VSbtransformacionpolinomicaindice1_Change()
txttransformacionpolinomicaindice1.Text = VSbtransformacionpolinomicaindice1.Value
End Sub

Private Sub VSbtransformacionpolinomicaindice2_Change()
txttransformacionpolinomicaindice2.Text = VSbtransformacionpolinomicaindice2.Value
End Sub

Private Sub VSbtransformacionpolinomicaindice3_Change()
txttransformacionpolinomicaindice3.Text = VSbtransformacionpolinomicaindice3.Value
End Sub

Private Sub VSbtransformacionpolinomicaindice4_Change()
txttransformacionpolinomicaindice4.Text = VSbtransformacionpolinomicaindice4.Value
End Sub

En las propiedades se modificaron algunas que venían por defecto

En los controles este es uno de ellos.

Realice también otra parte del programa:

  • Sistemas de ecuaciones 2×2.

Pero lo interesante es ver funcional lo realizado por tal se realizo una prueba con un ejercicio que encontré en un pdf.

Un ejercicio  de sistemas de ecuaciones 2×2  como se muestra en la imagen.

….   y he aquí el resultado.

 
para la realización de esta parte del programa lo hice con el siguiente código:

Private Sub cmdgraficarecuacionesconmatricez_Click()
Refresh
For x = -20 To 20 Step 0.01
y = ((-Txtgeometriaecuacionl1x(1) * x) + Txtgeometriaecuacionl1c(0)) / Txtgeometriaecuacionl1y(1)
Y2 = ((-Txtgeometriaecuacionl2x(1) * x) + Txtgeometriaecuacionl2c(0)) / Txtgeometriaecuacionl2y(1)
ForeColor = pctcolorl1.BackColor
PSet (x, y)
ForeColor = pctcolorl2.BackColor
PSet (x, Y2)
Next
If (Txtgeometriaecuacionl1x(1) * Txtgeometriaecuacionl2y(1)) – (Txtgeometriaecuacionl2x(1) * Txtgeometriaecuacionl1y(1)) = 0 Then
pctmatricez.Visible = False
lblesinvertible.Visible = True
Else
Txtinvertible.Text = (Txtgeometriaecuacionl1x(1) * Txtgeometriaecuacionl2y(1)) – (Txtgeometriaecuacionl2x(1) * Txtgeometriaecuacionl1y(1))
pctmatricez.Visible = True
lblesinvertible.Visible = False
Txtgeometriaecuacionl1x(2).Text = Txtgeometriaecuacionl2y(1).Text
Txtgeometriaecuacionl2y(2).Text = Txtgeometriaecuacionl1x(1).Text
Txtgeometriaecuacionl1y(2).Text = -Txtgeometriaecuacionl1y(1).Text
Txtgeometriaecuacionl2x(2).Text = -Txtgeometriaecuacionl2x(1).Text
Txtgeometriaecuacionl1c(1).Text = Txtgeometriaecuacionl1c(0).Text
Txtgeometriaecuacionl2c(1).Text = Txtgeometriaecuacionl2c(0).Text
Txtx = ((Txtgeometriaecuacionl1x(2) * Txtgeometriaecuacionl1c(1)) + (Txtgeometriaecuacionl1y(2) * Txtgeometriaecuacionl2c(1))) / Txtinvertible
txty = ((Txtgeometriaecuacionl2x(2) * Txtgeometriaecuacionl1c(1)) + (Txtgeometriaecuacionl2y(2) * Txtgeometriaecuacionl2c(1))) / Txtinvertible
End If

End Sub

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s