You are on page 1of 2

Option Explicit

Dim X(100) As Single


Dim Y(100) As Single
Dim AA(10, 10) As Single
Dim GG(100) As Single
Dim Linea As String

Private Sub Lagrange_Click()


Dim Xt(4) As Single
Dim Ft(4) As Single
Dim YRES As Single
Dim I As Byte
Dim J As Byte
Dim Z As Single
Dim XA As Single

For I = 0 To 3
Xt(I) = Val(Xp(I).Text)
Ft(I) = Val(Yp(I).Text)
Next I
XA = Val(Orden.Text)
If XA < Xt(0) Or XA > Xt(3) Then YRES = 0
For I = 0 To 3
Z = 1
For J = 0 To 3
If I <> J Then
Z = Z * (XA - Xt(J)) / (Xt(I) - Xt(J))
End If
Next J
YRES = YRES + Z * Ft(I)
Next I
Respuesta.Text = YRES
YRES = 0
End Sub

Private Sub Polinomio_Click()

Dim NORD As Integer


Dim I As Integer
Dim J As Integer
Dim K As Integer
Dim M As Integer
Dim N As Integer
Dim JJ As Integer
Dim YY As Single
Dim INN As Integer
Dim JEX As Integer
Dim A As Double

Linea = Chr$(13) + Chr$(10)

Respuesta.Text = ""

Respuesta.Text = Respuesta.Text + "Orden del polinomio" + Linea


M = 3 'NORD + 1
INN = 4
Erase AA()
'For K = 1 To M
'For J = 1 To M + 1
'AA(K, J) = 0
'Next J
'Next K
For J = 1 To INN
X(J) = Val(Xp(J - 1).Text)
Y(J) = Val(Yp(J - 1).Text)
Next J
For K = 1 To M
For I = 1 To INN
For J = 1 To M
JJ = K - 1 + J - 1
YY = 1
If JJ <> 0 Then YY = X(I) ^ JJ
AA(K, J) = AA(K, J) + YY
Next J
JEX = K - 1
YY = 1
If JEX <> 0 Then YY = X(I) ^ JEX
AA(K, M + 1) = AA(K, M + 1) + Y(I) * YY
Next I
Next K
For I = 1 To M
For J = 1 To M + 1
Respuesta.Text = Respuesta.Text + Format(AA(I, J), "fixed") + " "

Pgina 1
Next J
Respuesta.Text = Respuesta.Text + Linea
Next I
'N = M
Call Gauss(M) '(M, A)
Respuesta.Text = Respuesta.Text + "Determinacin de Coeficientes" + Linea
Respuesta.Text = Respuesta.Text + " Potencia Coeficiente" + Linea
For I = 1 To M
Respuesta.Text = Respuesta.Text + Space(12) + Str(I - 1) + Space(20) +
Format(AA(I, M + 1), "####.######") + Linea
Next I
For I = 1 To INN
GG(I) = 0
For K = 1 To M
GG(I) = GG(I) + AA(K, M + 1) * X(I) ^ (K - 1)
Next K
Next I
Respuesta.Text = Respuesta.Text + "Evaluacin del error" + Linea
Respuesta.Text = Respuesta.Text + " I X(I) Y(I) Polinomio Desviacin"
+ Linea
For I = 1 To INN
Respuesta.Text = Respuesta.Text + Str(I) + " " + Format(X(I), "fixed") + " " +
Format(Y(I), "fixed") + " " + Str(GG(I)) + " " + Str(Y(I) - GG(I)) + Linea
Next I

End Sub

Sub Gauss(N) '(N, A)

Dim TM As Double
Dim VA As Double
Dim R As Double
Dim IPV As Single
Dim JC As Single
Dim JR As Single
Dim KC As Single
Dim NV As Single
Dim I As Single
Dim J As Single
Dim K As Single

'----------------Eliminacin de Guss----------------
For I = 1 To N - 1
IPV = I
For J = I + 1 To N
If Abs(AA(IPV, I)) < Abs(AA(J, I)) Then IPV = J
Next J
If IPV <> I Then
For JC = 1 To N + 1
TM = AA(I, JC)
AA(I, JC) = AA(IPV, JC)
AA(IPV, JC) = TM
Next JC
End If
For JR = I + 1 To N
If AA(JR, I) <> 0 Then
If AA(I, I) = 0 Then Respuesta.Text = "Matriz Singular": End
R = AA(JR, I) / AA(I, I)
For KC = I + 1 To N + 1
AA(JR, KC) = AA(JR, KC) - R * AA(I, KC)
Next KC
End If
Next JR
Next I
If AA(N, N) = 0 Then Respuesta.Text = "Matriz Singular": End
AA(N, N + 1) = AA(N, N + 1) / AA(N, N)
For NV = N - 1 To 1 Step -1
VA = AA(NV, N + 1)
For K = NV + 1 To N
VA = VA - AA(NV, K) * AA(K, N + 1)
Next K
AA(NV, N + 1) = VA / AA(NV, NV)
Next NV
'------------Fin de eliminacin de Gauss------------------

End Sub

Pgina 2

You might also like