SlideShare a Scribd company logo
1 of 16
Download to read offline
UNIVERSIDAD SAN MARTÍN 
Ingeniería de Sistemas - Distancia 
METODOS NUMERICOS 
METODO MMMEEETTTOOODDDOOO DDDDEEEE GGGGAAAAUUUUSSSSSSSS SSSSEEEEIIIIDDDDEEEELLLL 
UUUUNNNNIIIIVVVVEEEERRRRSSSSIIIIDDDDAAAADDDD SSSSAAAANNNN MMMMAAAARRRRTTTTIIIINNNN 
IIIINNNNGGGGEEEENNNNIIIIEEEERRRRIIIIAAAA DDDDEEEE SSSSIIIISSSSTTTTEEEEMMMMAAAASSSS 
MMMMEEEETTTTOOOODDDDOOOOSSSS NNNNUUUUMMMMEEEERRRRIIIICCCCOOOOSSSS 
2222000011114444
UNIVERSIDAD SAN MARTÍN 
Ingeniería de Sistemas - Distancia 
METODOS NUMERICOS 
METODO MMMEEETTTOOODDDOOO DDDDEEEE GGGGAAAAUUUUSSSSSSSS SSSSEEEEIIIIDDDDEEEELLLL 
En análisis numérico el método de Gauss-Seidel es un método iterativo utilizado para 
resolver sistemas de ecuaciones lineales. El método se llama así en honor a los matemáticos 
alemanes Carl Friedrich Gauss y Philipp Ludwig von Seidel y es similar al método de 
Jacobi. 
Aunque este método puede aplicarse a cualquier sistema de ecuaciones lineales que 
produzca una matriz (cuadrada, naturalmente pues para que exista solución única, el 
sistema debe tener tantas ecuaciones como incógnitas). 
Iremos realizando un ejemplo práctico para lograr su mejor comprensión: 
Ecuaciones Originales: 
a) 3x1 – 0,2x2 – 0,5x3 = 8 
b) 0,1x1 + 7x2 + 0,4x3 = -19,5 
c) 0,4x1 + 0,1x2 + 10x3 = 72,4 
El método de Gauss-Seidel nos dice que en primera instancia debemos despejar la variable 
x1 de la ecuación a, la variable x2 de la ecuación b y la variable x3 de la ecuación c, para 
hallar los valores aproximados de cada variable en las diferentes iteraciones. 
Ecuaciones Despejadas 
a) x1 = (0,2x2 + 0,5x3 + 8) / 3 
b) x2 = (-0,1x1 - 0,4x3 -19,5) / 7 
c) x3 = (-0,4x1 - 0,1x2 + 72,4) / 10
UNIVERSIDAD SAN MARTÍN 
Ingeniería de Sistemas - Distancia 
METODOS NUMERICOS 
Iteración Principal 
Una vez contamos con las 3 ecuaciones debidamente despejadas procederemos a hallar los 
valores iniciales (Iteración No. 1) de las variables x1, x2 y x3: 
a) En la ecuación a donde tenemos despejada la variable x1, vamos a asignarle valores 
iniciales a x2=0 y x3=0, hallando de esta forma el valor de x1. 
x1 = (0,2*(0) + 0,5*(0) + 8) / 3 donde x1 =2,6667 
b) Teniendo el valor de x1, vamos a reemplazar su valor en el ecuación b donde 
tenemos despejada la variable x2 y le asignamos valor inicial a x3=0, hallando de 
esta forma el valor de x2 
x2 = (-0,1*(2,6667) - 0,4*(0) -19,5) / 7 donde x2 =-2,8238 
c) Con el valor de x1 encontrado en el literal a y el valor de x2 encontrado en el literal 
b, reemplazamos en la ecuación c donde tenemos despejada la variable x3 y 
hallamos su valor 
x3 = (-0,4*(2,6667) - 0,1*(-2,8238) + 72,4) / 10 donde x3 = 7,1615 
Iteraciones Subsiguientes 
Una vez contamos con los resultados iniciales para x1 (2,6667), x2 (-2,8238) y x3 (7,1615) 
procederemos a hallar los valores para las iteraciones subsiguientes (Iteración No. 2) de las 
variables x1, x2 y x3: 
a) En la ecuación a donde tenemos despejada la variable x1, vamos a asignarle a x2 y x3 
los valores encontrados en la Iteración 1, hallando de esta forma el valor de x1. 
x1 = (0,2*(-2,8238) + 0,5*(7,1615) + 8) / 3 donde x1 =3,672 
b) Teniendo el valor de x1 de la segunda iteración, vamos a reemplazar su valor en el 
ecuación b donde tenemos despejada la variable x2 y le asignamos a x3 el valor 
encontrado en la Iteración 1, hallando de esta forma el valor de x2 
x2 = (-0,1*(3,672) - 0,4*(7,1615) -19,5) / 7 donde x2 =-3,2474
UNIVERSIDAD SAN MARTÍN 
Ingeniería de Sistemas - Distancia 
METODOS NUMERICOS 
c) Con el valor de x1 y x2 encontrado en el literal a y b de la Iteración No. 2, 
reemplazamos en la ecuación c donde tenemos despejada la variable x3 y hallamos 
su valor 
x3 = (-0,4*(3,672) - 0,1*(-3,2474) + 72,4) / 10 donde x3 = 7,1256 
De esta forma tenemos los siguientes resultados para las primeras dos iteraciones: 
x1 x2 x3 
Iteración No 1 2,6667 -2,8238 7,1615 
Iteración No 2 3,672 -3,2474 7,1256 
Y con los cuales calcularemos el porcentaje de error para cada una de las variables, usando 
la siguiente fórmula: 
Ea = | [(Vf - Vi) / Vf ] * 100 | 
Donde Vf hace referencia al valor de x1, x2 ó x3 de la Iteración No 2 respectivamente y Vi al 
valor de x1, x2 ó x3 de la Iteración No 1: 
Ea1 = | [(3,672 – 2,6667) / 3,672] * 100 | => Ea1 = 27,38% 
Ea2 = | [(-3,2474 – (-2,8238)) / -3,2474] * 100 | => Ea2 = 13,04% 
Ea3 = | [(7,1256 – 7,1615) / 7,1256] * 100 | => Ea3 = -0,50% 
Si el porcentaje de error de cualquiera de las 3 variables es superior a 1% se debe calcular 
una 3ra Iteración, tomando como referencia los valores de x1, x2 y x3 de la Iteración 2; que 
en el caso práctico de este ejercicio sería: 
a) En la ecuación a donde tenemos despejada la variable x1, vamos a asignarle a x2 y x3 
los valores encontrados en la Iteración 2, hallando de esta forma el valor de x1. 
x1 = (0,2*(-3,2474) + 0,5*(7,1256) + 8) / 3 donde x1 =3,6377
UNIVERSIDAD SAN MARTÍN 
Ingeniería de Sistemas - Distancia 
METODOS NUMERICOS 
b) Teniendo el valor de x1 de la tercera iteración, vamos a reemplazar su valor en el 
ecuación b donde tenemos despejada la variable x2 y le asignamos a x3 el valor 
encontrado en la Iteración 2, hallando de esta forma el valor de x2 
x2 = (-0,1*(3,6377) - 0,4*(7,1256) -19,5) / 7 donde x2 =-3,2448 
c) Con el valor de x1 y x2 encontrado en el literal a y b de la Iteración No. 3, 
reemplazamos en la ecuación c donde tenemos despejada la variable x3 y hallamos 
su valor 
x3 = (-0,4*(3,6377) - 0,1*(-3,2448) + 72,4) / 10 donde x3 = 7,1269 
De esta forma tenemos los siguientes resultados para las primeras tres iteraciones: 
x1 x2 x3 
Iteración No 1 2,6667 -2,8238 7,1615 
Iteración No 2 3,672 -3,2474 7,1256 
Iteración No 3 3,6377 -3,2448 7,1269 
Y con los cuales calcularemos el porcentaje de error para cada una de las variables, pero 
esta vez con los resultados de las Iteraciones No. 2 y 3: 
Ea = | [(Vf - Vi) / Vf ] * 100 |, 
Donde Vf hace referencia al valor de x1, x2 ó x3 de la Iteración No 3 respectivamente y Vi al 
valor de x1, x2 ó x3 de la Iteración No 2: 
Ea1 = | [(3,6377 – 3,672) / 3,6377] * 100 | => Ea1 = -0,94% 
Ea2 = | [(-3,2448 – (-3,2474)) / -3,2448] * 100 | => Ea2 = -0,07% 
Ea3 = | [(7,1269 – 7,1256) / 7,1269] * 100 | => Ea3 = 0,01% 
Como podemos observar los porcentajes de error en este punto son menores a 1% por lo 
que podemos deducir que los valores más óptimos de las variables x1, x2 y x3 son los de la
UNIVERSIDAD SAN MARTÍN 
Ingeniería de Sistemas - Distancia 
METODOS NUMERICOS 
Iteración No 3. Si alguno de los 3 porcentajes de error hubiese sido mayor a 1% deberíamos 
calcular una nueva iteración y hacer el mismo proceso iterativo. 
Con el objetivo de sistematizar este procedimiento para ecuaciones lineales de 3x3 hemos 
diseñado un sistema desarrollado en Visual Basic que implementa este método y el cuál 
explicaremos con el mismo ejemplo literal planteado durante este documento. 
Interfaz inicial del sistema: 
Al costado izquierdo de la ventana, en la sección de “Ecuaciones Originales” introducimos 
las constantes de las variables para cada una de las ecuaciones. Inicialmente el sistema 
validará que ninguno de los valores sea 0, en caso de encontrar alguno y dar clic en el botón 
Despejar, generará un mensaje de alerta como el siguiente:
UNIVERSIDAD SAN MARTÍN 
Ingeniería de Sistemas - Distancia 
METODOS NUMERICOS 
De lo contrario el sistema automáticamente despejara las variables x1, x2 y x3 para cada una 
de las ecuaciones y nos las mostrará al costado derecho en la sección “Ecuaciones 
Despejadas”, como se ve muestra a continuación, activando a su vez el botón calcular para 
iniciar el proceso iterativo: 
Al dar clic en el Botón Calcular se inicia el proceso iterativo y cálculo de los valores para 
x1, x2 y x3 en las diferentes iteraciones con su respectivo porcentaje de error, así como se 
muestra en las siguientes imágenes:
UNIVERSIDAD SAN MARTÍN 
Ingeniería de Sistemas - Distancia 
METODOS NUMERICOS 
Iteración 1 y 2 
Iteración 2 y 3
UNIVERSIDAD SAN MARTÍN 
Ingeniería de Sistemas - Distancia 
METODOS NUMERICOS 
Como el sistema detecta que el porcentaje de error para las 3 variables es menor a 1% 
muestra el mensaje con los valores óptimos. 
CÓDIGO FUENTE DEL PROGRAMA: 
-------------------------------------------------------------------------------------------------------------- 
Dim X1I1 As Single, X2I1 As Single, X3I1 As Single, X1I2 As Single, X2I2 As Single 
Dim X3I2 As Single, Ea1 As Single, Ea2 As Single, Ea3 As Single 
-------------------------------------------------------------------------------------------------------------- 
Private Sub Calcular_Click() 
cont = 1 
X2 = 0 
X3 = 0 
X1I1 = (X2 + X3 + Const1.Text) / ValEc1X1.Text 
X2I1 = ((ValEc2X1.Text * X1I1) + 0 + Const2.Text) / ValEc2X2.Text 
X3I1 = ((ValEc3X1.Text * X1I1) + (ValEc3X2.Text * X2I1) + Const3.Text) / 
ValEc3X3.Text 
X1I2 = ((ValEc1X2.Text * X2I1) + (ValEc1X3.Text * X3I1) + Const1.Text) / 
ValEc1X1.Text 
X2I2 = ((ValEc2X1.Text * X1I2) + (ValEc2X3.Text * X3I1) + Const2.Text) / 
ValEc2X2.Text 
X3I2 = ((ValEc3X1.Text * X1I2) + (ValEc3X2.Text * X2I2) + Const3.Text) / 
ValEc3X3.Text 
If (X1I1 < 0) Then 
VAbX1I1 = X1I1 * -1
UNIVERSIDAD SAN MARTÍN 
Ingeniería de Sistemas - Distancia 
METODOS NUMERICOS 
Else: VAbX1I1 = X1I1 
End If 
If (X2I1 < 0) Then 
VAbX2I1 = X2I1 * -1 
Else: VAbX2I1 = X2I1 
End If 
If (X3I1 < 0) Then 
VAbX3I1 = X3I1 * -1 
Else: VAbX3I1 = X3I1 
End If 
If (X1I2 < 0) Then 
VAbX1I2 = X1I2 * -1 
Else: VAbX1I2 = X1I2 
End If 
If (X2I2 < 0) Then 
VAbX2I2 = X2I2 * -1 
Else: VAbX2I2 = X2I2 
End If 
If (X3I2 < 0) Then 
VAbX3I2 = X3I2 * -1 
Else: VAbX3I2 = X3I2 
End If 
Ea1 = ((VAbX1I2 - VAbX1I1) / VAbX1I2) * 100 
Ea2 = ((VAbX2I2 - VAbX2I1) / VAbX2I2) * 100 
Ea3 = ((VAbX3I2 - VAbX3I1) / VAbX3I2) * 100 
MsgBox "Iteracion No. " & cont & vbNewLine & "X1 =" & X1I1 & vbNewLine & "X2 =" 
& X2I1 & vbNewLine & "X3 =" & X3I1 & vbNewLine & vbNewLine & "Iteracion No. " 
& cont + 1 & vbNewLine & "X1 =" & X1I2 & vbNewLine & "X2 =" & X2I2 & 
vbNewLine & "X3 =" & X3I2 & vbNewLine & vbNewLine & "Porcentajes de error:" & 
vbNewLine & vbNewLine & "Ea1 =" & Ea1 & "%" & vbNewLine & "Ea2 =" & Ea2 & 
"%" & vbNewLine & "Ea3 =" & Ea3 & "%", , "Resultados Iteracion" 
Do While Ea1 > 1 Or Ea2 > 1 Or Ea3 > 1 
Ea1 = 0 
Ea2 = 0 
Ea3 = 0 
cont = cont + 1 
X1I1 = X1I2 
X2I1 = X2I2 
X3I1 = X3I2
UNIVERSIDAD SAN MARTÍN 
Ingeniería de Sistemas - Distancia 
METODOS NUMERICOS 
X1I2 = ((ValEc1X2.Text * X2I1) + (ValEc1X3.Text * X3I1) + Const1.Text) / 
ValEc1X1.Text 
X2I2 = ((ValEc2X1.Text * X1I2) + (ValEc2X3.Text * X3I1) + Const2.Text) / 
ValEc2X2.Text 
X3I2 = ((ValEc3X1.Text * X1I2) + (ValEc3X2.Text * X2I2) + Const3.Text) / 
ValEc3X3.Text 
If (X1I1 < 0) Then 
VAbX1I1 = X1I1 * -1 
Else: VAbX1I1 = X1I1 
End If 
If (X2I1 < 0) Then 
VAbX2I1 = X2I1 * -1 
Else: VAbX2I1 = X2I1 
End If 
If (X3I1 < 0) Then 
VAbX3I1 = X3I1 * -1 
Else: VAbX3I1 = X3I1 
End If 
If (X1I2 < 0) Then 
VAbX1I2 = X1I2 * -1 
Else: VAbX1I2 = X1I2 
End If 
If (X2I2 < 0) Then 
VAbX2I2 = X2I2 * -1 
Else: VAbX2I2 = X2I2 
End If 
If (X3I2 < 0) Then 
VAbX3I2 = X3I2 * -1 
Else: VAbX3I2 = X3I2 
End If 
Ea1 = ((VAbX1I2 - VAbX1I1) / VAbX1I2) * 100 
Ea2 = ((VAbX2I2 - VAbX2I1) / VAbX2I2) * 100 
Ea3 = ((VAbX3I2 - VAbX3I1) / VAbX3I2) * 100 
MsgBox "Iteracion No. " & cont & vbNewLine & "X1 =" & X1I1 & vbNewLine & "X2 =" 
& X2I1 & vbNewLine & "X3 =" & X3I1 & vbNewLine & vbNewLine & "Iteracion No. " 
& cont + 1 & vbNewLine & "X1 =" & X1I2 & vbNewLine & "X2 =" & X2I2 & 
vbNewLine & "X3 =" & X3I2 & vbNewLine & vbNewLine & "Porcentajes de error:" & 
vbNewLine & vbNewLine & "Ea1 =" & Ea1 & "%" & vbNewLine & "Ea2 =" & Ea2 & 
"%" & vbNewLine & "Ea3 =" & Ea3 & "%", , "Resultados Iteracion" 
Loop
UNIVERSIDAD SAN MARTÍN 
Ingeniería de Sistemas - Distancia 
METODOS NUMERICOS 
MsgBox "Los valores más óptimos con un porcentaje de error menor a 1% son:" & 
vbNewLine & vbNewLine & "X1 =" & X1I2 & vbNewLine & "X2 =" & X2I2 & 
vbNewLine & "X3 =" & X3I2, , "Valores Optimos" 
Calcular.Enabled = False 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub C1_GotFocus() 
C1 = "" 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub C1_KeyPress(KeyAscii As Integer) 
KeyAscii = Numeros(KeyAscii) 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub C2_GotFocus() 
C2 = "" 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub C2_KeyPress(KeyAscii As Integer) 
KeyAscii = Numeros(KeyAscii) 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub C3_GotFocus() 
C3 = "" 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub C3_KeyPress(KeyAscii As Integer) 
KeyAscii = Numeros(KeyAscii) 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub Despejar_Click() 
If (Ec1X1.Text = "") Then Ec1X1.Text = 0 
If (Ec1X2.Text = "") Then Ec1X2.Text = 0 
If (Ec1X3.Text = "") Then Ec1X3.Text = 0 
If (Ec2X1.Text = "") Then Ec2X1.Text = 0 
If (Ec2X2.Text = "") Then Ec2X2.Text = 0 
If (Ec2X3.Text = "") Then Ec2X3.Text = 0 
If (Ec3X1.Text = "") Then Ec3X1.Text = 0 
If (Ec3X2.Text = "") Then Ec3X2.Text = 0
UNIVERSIDAD SAN MARTÍN 
Ingeniería de Sistemas - Distancia 
METODOS NUMERICOS 
If (Ec3X3.Text = "") Then Ec3X3.Text = 0 
If (C1.Text = "") Then C1.Text = 0 
If (C2.Text = "") Then C2.Text = 0 
If (C3.Text = "") Then C3.Text = 0 
ValEc1X1 = Ec1X1 
ValEc1X2 = Ec1X2 * -1 
ValEc1X3 = Ec1X3 * -1 
Const1 = C1 
ValEc2X1 = Ec2X1 * -1 
ValEc2X2 = Ec2X2 
ValEc2X3 = Ec2X3 * -1 
Const2 = C2 
ValEc3X1 = Ec3X1 * -1 
ValEc3X2 = Ec3X2 * -1 
ValEc3X3 = Ec3X3 
Const3 = C3 
If (Ec1X1.Text = 0 Or Ec1X2.Text = 0 Or Ec1X3.Text = 0 Or Ec2X1.Text = 0 Or 
Ec2X2.Text = 0 Or Ec2X3.Text = 0 Or Ec3X1.Text = 0 Or Ec3X2.Text = 0 Or Ec3X3.Text 
= 0 Or C1.Text = 0 Or C2.Text = 0 Or C3.Text = 0) Then 
MsgBox "Verifique los valores introducidos:" & vbNewLine & "No se puede operar con 
valores en 0", , "Alerta" 
Else 
Calcular.Enabled = True 
End If 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub Limpiar_Click() 
Ec1X1.Text = 0 
Ec1X2.Text = 0 
Ec1X3.Text = 0 
Ec2X1.Text = 0 
Ec2X2.Text = 0 
Ec2X3.Text = 0 
Ec3X1.Text = 0 
Ec3X2.Text = 0 
Ec3X3.Text = 0 
C1.Text = 0 
C2.Text = 0
UNIVERSIDAD SAN MARTÍN 
Ingeniería de Sistemas - Distancia 
METODOS NUMERICOS 
C3.Text = 0 
ValEc1X1.Text = 0 
ValEc1X2.Text = 0 
ValEc1X3.Text = 0 
ValEc2X1.Text = 0 
ValEc2X2.Text = 0 
ValEc2X3.Text = 0 
ValEc3X1.Text = 0 
ValEc3X2.Text = 0 
ValEc3X3.Text = 0 
Const1.Text = 0 
Const2.Text = 0 
Const3.Text = 0 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub Ec1X1_GotFocus() 
Ec1X1.Text = "" 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub Ec1X1_KeyPress(KeyAscii As Integer) 
KeyAscii = Numeros(KeyAscii) 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub Ec1X2_GotFocus() 
Ec1X2.Text = "" 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub Ec1X2_KeyPress(KeyAscii As Integer) 
KeyAscii = Numeros(KeyAscii) 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Public Function Numeros(Tecla As Integer) As Integer 
Dim strValido As String 
strValido = "0123456789,-" 
If Tecla > 26 Then 
If InStr(strValido, Chr(Tecla)) = 0 Then 
Tecla = 0 
End If 
End If 
Numeros = Tecla 
End Function 
--------------------------------------------------------------------------------------------------------------
UNIVERSIDAD SAN MARTÍN 
Ingeniería de Sistemas - Distancia 
METODOS NUMERICOS 
Private Sub Ec1X3_GotFocus() 
Ec1X3.Text = "" 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub Ec1X3_KeyPress(KeyAscii As Integer) 
KeyAscii = Numeros(KeyAscii) 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub Ec2X1_GotFocus() 
Ec2X1.Text = "" 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub Ec2X1_KeyPress(KeyAscii As Integer) 
KeyAscii = Numeros(KeyAscii) 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub Ec2X2_GotFocus() 
Ec2X2.Text = "" 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub Ec2X2_KeyPress(KeyAscii As Integer) 
KeyAscii = Numeros(KeyAscii) 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub Ec2X3_GotFocus() 
Ec2X3.Text = "" 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub Ec2X3_KeyPress(KeyAscii As Integer) 
KeyAscii = Numeros(KeyAscii) 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub Ec3X1_GotFocus() 
Ec3X1.Text = "" 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub Ec3X1_KeyPress(KeyAscii As Integer) 
KeyAscii = Numeros(KeyAscii) 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub Ec3X2_GotFocus() 
Ec3X2.Text = "" 
End Sub 
--------------------------------------------------------------------------------------------------------------
UNIVERSIDAD SAN MARTÍN 
Ingeniería de Sistemas - Distancia 
METODOS NUMERICOS 
Private Sub Ec3X2_KeyPress(KeyAscii As Integer) 
KeyAscii = Numeros(KeyAscii) 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub Ec3X3_GotFocus() 
Ec3X3.Text = "" 
End Sub 
-------------------------------------------------------------------------------------------------------------- 
Private Sub Ec3X3_KeyPress(KeyAscii As Integer) 
KeyAscii = Numeros(KeyAscii) 
End Sub

More Related Content

What's hot

Metodos iterativos para solucion de sistemas de ecuaciones lineales lina
Metodos iterativos para solucion de sistemas de ecuaciones lineales linaMetodos iterativos para solucion de sistemas de ecuaciones lineales lina
Metodos iterativos para solucion de sistemas de ecuaciones lineales lina
linagora1288
 
Método de gauss y gauss seidel
Método de gauss y gauss seidelMétodo de gauss y gauss seidel
Método de gauss y gauss seidel
Lilly Kwang
 
3.2.5.1 metodo de jacobi
3.2.5.1 metodo de jacobi3.2.5.1 metodo de jacobi
3.2.5.1 metodo de jacobi
Roger Burgos
 
Teoría de un método Iterativo
Teoría de un método IterativoTeoría de un método Iterativo
Teoría de un método Iterativo
Erik Orozco Valles
 
2.metodo iterativo
2.metodo iterativo2.metodo iterativo
2.metodo iterativo
rjvillon
 
Jacobi
JacobiJacobi
Jacobi
Fredy
 
Metodos iterativos
Metodos iterativosMetodos iterativos
Metodos iterativos
cyndy
 
Método de Gauss Jordan
Método de Gauss JordanMétodo de Gauss Jordan
Método de Gauss Jordan
Kike Prieto
 

What's hot (18)

Método de jacobi
Método de jacobiMétodo de jacobi
Método de jacobi
 
Resumen de la unidad iii (analisis numerico) Mirian Rodriguez
Resumen de la unidad iii (analisis numerico) Mirian RodriguezResumen de la unidad iii (analisis numerico) Mirian Rodriguez
Resumen de la unidad iii (analisis numerico) Mirian Rodriguez
 
Metodos iterativos para solucion de sistemas de ecuaciones lineales lina
Metodos iterativos para solucion de sistemas de ecuaciones lineales linaMetodos iterativos para solucion de sistemas de ecuaciones lineales lina
Metodos iterativos para solucion de sistemas de ecuaciones lineales lina
 
Método de gauss y gauss seidel
Método de gauss y gauss seidelMétodo de gauss y gauss seidel
Método de gauss y gauss seidel
 
El metodo doolittle
El metodo doolittleEl metodo doolittle
El metodo doolittle
 
Metodo Jacobiano
Metodo JacobianoMetodo Jacobiano
Metodo Jacobiano
 
3.2.5.1 metodo de jacobi
3.2.5.1 metodo de jacobi3.2.5.1 metodo de jacobi
3.2.5.1 metodo de jacobi
 
Teoría de un método Iterativo
Teoría de un método IterativoTeoría de un método Iterativo
Teoría de un método Iterativo
 
Método de jacobi Métodos Númericos
Método de jacobi Métodos NúmericosMétodo de jacobi Métodos Númericos
Método de jacobi Métodos Númericos
 
Método gauss seidel
Método gauss seidelMétodo gauss seidel
Método gauss seidel
 
2.metodo iterativo
2.metodo iterativo2.metodo iterativo
2.metodo iterativo
 
Gauss con pivoteo
Gauss con pivoteoGauss con pivoteo
Gauss con pivoteo
 
Metodos iterativos
Metodos iterativosMetodos iterativos
Metodos iterativos
 
Jacobi
JacobiJacobi
Jacobi
 
Metodos iterativos
Metodos iterativosMetodos iterativos
Metodos iterativos
 
Sistemas de Ecuaciones Lineales y Matriz Inversa por Método de Gauss-Jordan. ...
Sistemas de Ecuaciones Lineales y Matriz Inversa por Método de Gauss-Jordan. ...Sistemas de Ecuaciones Lineales y Matriz Inversa por Método de Gauss-Jordan. ...
Sistemas de Ecuaciones Lineales y Matriz Inversa por Método de Gauss-Jordan. ...
 
Ecuaciones lineales
Ecuaciones linealesEcuaciones lineales
Ecuaciones lineales
 
Método de Gauss Jordan
Método de Gauss JordanMétodo de Gauss Jordan
Método de Gauss Jordan
 

Similar to Metodo Gauss Seidel

Metodos numericos 4
Metodos numericos 4Metodos numericos 4
Metodos numericos 4
monica
 
Solucione s d einecuaciones
Solucione s d einecuacionesSolucione s d einecuaciones
Solucione s d einecuaciones
haral1
 
N cap 7 desigualdades
N cap 7 desigualdadesN cap 7 desigualdades
N cap 7 desigualdades
Student
 

Similar to Metodo Gauss Seidel (20)

SISTEMA DE ECUACIONES.
SISTEMA DE ECUACIONES.SISTEMA DE ECUACIONES.
SISTEMA DE ECUACIONES.
 
Algebra lineal Alejandro Maciel Dominguez
Algebra lineal Alejandro Maciel DominguezAlgebra lineal Alejandro Maciel Dominguez
Algebra lineal Alejandro Maciel Dominguez
 
Metodos numericos 4
Metodos numericos 4Metodos numericos 4
Metodos numericos 4
 
59563233 algoritmo-bresenham
59563233 algoritmo-bresenham59563233 algoritmo-bresenham
59563233 algoritmo-bresenham
 
NÚMEROS REALES II
NÚMEROS REALES IINÚMEROS REALES II
NÚMEROS REALES II
 
Sistema de ecuaciones de primer grado con dos varialbes
Sistema de ecuaciones de primer grado con dos varialbesSistema de ecuaciones de primer grado con dos varialbes
Sistema de ecuaciones de primer grado con dos varialbes
 
Solucione s d einecuaciones
Solucione s d einecuacionesSolucione s d einecuaciones
Solucione s d einecuaciones
 
Actividad competencias básicas
Actividad competencias básicasActividad competencias básicas
Actividad competencias básicas
 
Metodos de eliminacion
Metodos de eliminacionMetodos de eliminacion
Metodos de eliminacion
 
Inecuaciones grado2 blog
Inecuaciones grado2 blogInecuaciones grado2 blog
Inecuaciones grado2 blog
 
FICHA 02 - Sistema de Ecuaciones.doc
FICHA 02 - Sistema de Ecuaciones.docFICHA 02 - Sistema de Ecuaciones.doc
FICHA 02 - Sistema de Ecuaciones.doc
 
Funciones cuadráticas
Funciones cuadráticasFunciones cuadráticas
Funciones cuadráticas
 
Nm1 algebra + valoriación
Nm1 algebra + valoriaciónNm1 algebra + valoriación
Nm1 algebra + valoriación
 
Nm1 algebra
Nm1 algebra Nm1 algebra
Nm1 algebra
 
Termino algebraico
Termino algebraicoTermino algebraico
Termino algebraico
 
N cap 7 desigualdades
N cap 7 desigualdadesN cap 7 desigualdades
N cap 7 desigualdades
 
Cap 7 desigualdades
Cap 7 desigualdadesCap 7 desigualdades
Cap 7 desigualdades
 
Ecuaciones 001
Ecuaciones 001Ecuaciones 001
Ecuaciones 001
 
Matematica
Matematica Matematica
Matematica
 
MATEMÁTICA SEMANA 1
MATEMÁTICA SEMANA 1MATEMÁTICA SEMANA 1
MATEMÁTICA SEMANA 1
 

Recently uploaded

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
NadiaMartnez11
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 

Recently uploaded (20)

PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 

Metodo Gauss Seidel

  • 1. UNIVERSIDAD SAN MARTÍN Ingeniería de Sistemas - Distancia METODOS NUMERICOS METODO MMMEEETTTOOODDDOOO DDDDEEEE GGGGAAAAUUUUSSSSSSSS SSSSEEEEIIIIDDDDEEEELLLL UUUUNNNNIIIIVVVVEEEERRRRSSSSIIIIDDDDAAAADDDD SSSSAAAANNNN MMMMAAAARRRRTTTTIIIINNNN IIIINNNNGGGGEEEENNNNIIIIEEEERRRRIIIIAAAA DDDDEEEE SSSSIIIISSSSTTTTEEEEMMMMAAAASSSS MMMMEEEETTTTOOOODDDDOOOOSSSS NNNNUUUUMMMMEEEERRRRIIIICCCCOOOOSSSS 2222000011114444
  • 2. UNIVERSIDAD SAN MARTÍN Ingeniería de Sistemas - Distancia METODOS NUMERICOS METODO MMMEEETTTOOODDDOOO DDDDEEEE GGGGAAAAUUUUSSSSSSSS SSSSEEEEIIIIDDDDEEEELLLL En análisis numérico el método de Gauss-Seidel es un método iterativo utilizado para resolver sistemas de ecuaciones lineales. El método se llama así en honor a los matemáticos alemanes Carl Friedrich Gauss y Philipp Ludwig von Seidel y es similar al método de Jacobi. Aunque este método puede aplicarse a cualquier sistema de ecuaciones lineales que produzca una matriz (cuadrada, naturalmente pues para que exista solución única, el sistema debe tener tantas ecuaciones como incógnitas). Iremos realizando un ejemplo práctico para lograr su mejor comprensión: Ecuaciones Originales: a) 3x1 – 0,2x2 – 0,5x3 = 8 b) 0,1x1 + 7x2 + 0,4x3 = -19,5 c) 0,4x1 + 0,1x2 + 10x3 = 72,4 El método de Gauss-Seidel nos dice que en primera instancia debemos despejar la variable x1 de la ecuación a, la variable x2 de la ecuación b y la variable x3 de la ecuación c, para hallar los valores aproximados de cada variable en las diferentes iteraciones. Ecuaciones Despejadas a) x1 = (0,2x2 + 0,5x3 + 8) / 3 b) x2 = (-0,1x1 - 0,4x3 -19,5) / 7 c) x3 = (-0,4x1 - 0,1x2 + 72,4) / 10
  • 3. UNIVERSIDAD SAN MARTÍN Ingeniería de Sistemas - Distancia METODOS NUMERICOS Iteración Principal Una vez contamos con las 3 ecuaciones debidamente despejadas procederemos a hallar los valores iniciales (Iteración No. 1) de las variables x1, x2 y x3: a) En la ecuación a donde tenemos despejada la variable x1, vamos a asignarle valores iniciales a x2=0 y x3=0, hallando de esta forma el valor de x1. x1 = (0,2*(0) + 0,5*(0) + 8) / 3 donde x1 =2,6667 b) Teniendo el valor de x1, vamos a reemplazar su valor en el ecuación b donde tenemos despejada la variable x2 y le asignamos valor inicial a x3=0, hallando de esta forma el valor de x2 x2 = (-0,1*(2,6667) - 0,4*(0) -19,5) / 7 donde x2 =-2,8238 c) Con el valor de x1 encontrado en el literal a y el valor de x2 encontrado en el literal b, reemplazamos en la ecuación c donde tenemos despejada la variable x3 y hallamos su valor x3 = (-0,4*(2,6667) - 0,1*(-2,8238) + 72,4) / 10 donde x3 = 7,1615 Iteraciones Subsiguientes Una vez contamos con los resultados iniciales para x1 (2,6667), x2 (-2,8238) y x3 (7,1615) procederemos a hallar los valores para las iteraciones subsiguientes (Iteración No. 2) de las variables x1, x2 y x3: a) En la ecuación a donde tenemos despejada la variable x1, vamos a asignarle a x2 y x3 los valores encontrados en la Iteración 1, hallando de esta forma el valor de x1. x1 = (0,2*(-2,8238) + 0,5*(7,1615) + 8) / 3 donde x1 =3,672 b) Teniendo el valor de x1 de la segunda iteración, vamos a reemplazar su valor en el ecuación b donde tenemos despejada la variable x2 y le asignamos a x3 el valor encontrado en la Iteración 1, hallando de esta forma el valor de x2 x2 = (-0,1*(3,672) - 0,4*(7,1615) -19,5) / 7 donde x2 =-3,2474
  • 4. UNIVERSIDAD SAN MARTÍN Ingeniería de Sistemas - Distancia METODOS NUMERICOS c) Con el valor de x1 y x2 encontrado en el literal a y b de la Iteración No. 2, reemplazamos en la ecuación c donde tenemos despejada la variable x3 y hallamos su valor x3 = (-0,4*(3,672) - 0,1*(-3,2474) + 72,4) / 10 donde x3 = 7,1256 De esta forma tenemos los siguientes resultados para las primeras dos iteraciones: x1 x2 x3 Iteración No 1 2,6667 -2,8238 7,1615 Iteración No 2 3,672 -3,2474 7,1256 Y con los cuales calcularemos el porcentaje de error para cada una de las variables, usando la siguiente fórmula: Ea = | [(Vf - Vi) / Vf ] * 100 | Donde Vf hace referencia al valor de x1, x2 ó x3 de la Iteración No 2 respectivamente y Vi al valor de x1, x2 ó x3 de la Iteración No 1: Ea1 = | [(3,672 – 2,6667) / 3,672] * 100 | => Ea1 = 27,38% Ea2 = | [(-3,2474 – (-2,8238)) / -3,2474] * 100 | => Ea2 = 13,04% Ea3 = | [(7,1256 – 7,1615) / 7,1256] * 100 | => Ea3 = -0,50% Si el porcentaje de error de cualquiera de las 3 variables es superior a 1% se debe calcular una 3ra Iteración, tomando como referencia los valores de x1, x2 y x3 de la Iteración 2; que en el caso práctico de este ejercicio sería: a) En la ecuación a donde tenemos despejada la variable x1, vamos a asignarle a x2 y x3 los valores encontrados en la Iteración 2, hallando de esta forma el valor de x1. x1 = (0,2*(-3,2474) + 0,5*(7,1256) + 8) / 3 donde x1 =3,6377
  • 5. UNIVERSIDAD SAN MARTÍN Ingeniería de Sistemas - Distancia METODOS NUMERICOS b) Teniendo el valor de x1 de la tercera iteración, vamos a reemplazar su valor en el ecuación b donde tenemos despejada la variable x2 y le asignamos a x3 el valor encontrado en la Iteración 2, hallando de esta forma el valor de x2 x2 = (-0,1*(3,6377) - 0,4*(7,1256) -19,5) / 7 donde x2 =-3,2448 c) Con el valor de x1 y x2 encontrado en el literal a y b de la Iteración No. 3, reemplazamos en la ecuación c donde tenemos despejada la variable x3 y hallamos su valor x3 = (-0,4*(3,6377) - 0,1*(-3,2448) + 72,4) / 10 donde x3 = 7,1269 De esta forma tenemos los siguientes resultados para las primeras tres iteraciones: x1 x2 x3 Iteración No 1 2,6667 -2,8238 7,1615 Iteración No 2 3,672 -3,2474 7,1256 Iteración No 3 3,6377 -3,2448 7,1269 Y con los cuales calcularemos el porcentaje de error para cada una de las variables, pero esta vez con los resultados de las Iteraciones No. 2 y 3: Ea = | [(Vf - Vi) / Vf ] * 100 |, Donde Vf hace referencia al valor de x1, x2 ó x3 de la Iteración No 3 respectivamente y Vi al valor de x1, x2 ó x3 de la Iteración No 2: Ea1 = | [(3,6377 – 3,672) / 3,6377] * 100 | => Ea1 = -0,94% Ea2 = | [(-3,2448 – (-3,2474)) / -3,2448] * 100 | => Ea2 = -0,07% Ea3 = | [(7,1269 – 7,1256) / 7,1269] * 100 | => Ea3 = 0,01% Como podemos observar los porcentajes de error en este punto son menores a 1% por lo que podemos deducir que los valores más óptimos de las variables x1, x2 y x3 son los de la
  • 6. UNIVERSIDAD SAN MARTÍN Ingeniería de Sistemas - Distancia METODOS NUMERICOS Iteración No 3. Si alguno de los 3 porcentajes de error hubiese sido mayor a 1% deberíamos calcular una nueva iteración y hacer el mismo proceso iterativo. Con el objetivo de sistematizar este procedimiento para ecuaciones lineales de 3x3 hemos diseñado un sistema desarrollado en Visual Basic que implementa este método y el cuál explicaremos con el mismo ejemplo literal planteado durante este documento. Interfaz inicial del sistema: Al costado izquierdo de la ventana, en la sección de “Ecuaciones Originales” introducimos las constantes de las variables para cada una de las ecuaciones. Inicialmente el sistema validará que ninguno de los valores sea 0, en caso de encontrar alguno y dar clic en el botón Despejar, generará un mensaje de alerta como el siguiente:
  • 7. UNIVERSIDAD SAN MARTÍN Ingeniería de Sistemas - Distancia METODOS NUMERICOS De lo contrario el sistema automáticamente despejara las variables x1, x2 y x3 para cada una de las ecuaciones y nos las mostrará al costado derecho en la sección “Ecuaciones Despejadas”, como se ve muestra a continuación, activando a su vez el botón calcular para iniciar el proceso iterativo: Al dar clic en el Botón Calcular se inicia el proceso iterativo y cálculo de los valores para x1, x2 y x3 en las diferentes iteraciones con su respectivo porcentaje de error, así como se muestra en las siguientes imágenes:
  • 8. UNIVERSIDAD SAN MARTÍN Ingeniería de Sistemas - Distancia METODOS NUMERICOS Iteración 1 y 2 Iteración 2 y 3
  • 9. UNIVERSIDAD SAN MARTÍN Ingeniería de Sistemas - Distancia METODOS NUMERICOS Como el sistema detecta que el porcentaje de error para las 3 variables es menor a 1% muestra el mensaje con los valores óptimos. CÓDIGO FUENTE DEL PROGRAMA: -------------------------------------------------------------------------------------------------------------- Dim X1I1 As Single, X2I1 As Single, X3I1 As Single, X1I2 As Single, X2I2 As Single Dim X3I2 As Single, Ea1 As Single, Ea2 As Single, Ea3 As Single -------------------------------------------------------------------------------------------------------------- Private Sub Calcular_Click() cont = 1 X2 = 0 X3 = 0 X1I1 = (X2 + X3 + Const1.Text) / ValEc1X1.Text X2I1 = ((ValEc2X1.Text * X1I1) + 0 + Const2.Text) / ValEc2X2.Text X3I1 = ((ValEc3X1.Text * X1I1) + (ValEc3X2.Text * X2I1) + Const3.Text) / ValEc3X3.Text X1I2 = ((ValEc1X2.Text * X2I1) + (ValEc1X3.Text * X3I1) + Const1.Text) / ValEc1X1.Text X2I2 = ((ValEc2X1.Text * X1I2) + (ValEc2X3.Text * X3I1) + Const2.Text) / ValEc2X2.Text X3I2 = ((ValEc3X1.Text * X1I2) + (ValEc3X2.Text * X2I2) + Const3.Text) / ValEc3X3.Text If (X1I1 < 0) Then VAbX1I1 = X1I1 * -1
  • 10. UNIVERSIDAD SAN MARTÍN Ingeniería de Sistemas - Distancia METODOS NUMERICOS Else: VAbX1I1 = X1I1 End If If (X2I1 < 0) Then VAbX2I1 = X2I1 * -1 Else: VAbX2I1 = X2I1 End If If (X3I1 < 0) Then VAbX3I1 = X3I1 * -1 Else: VAbX3I1 = X3I1 End If If (X1I2 < 0) Then VAbX1I2 = X1I2 * -1 Else: VAbX1I2 = X1I2 End If If (X2I2 < 0) Then VAbX2I2 = X2I2 * -1 Else: VAbX2I2 = X2I2 End If If (X3I2 < 0) Then VAbX3I2 = X3I2 * -1 Else: VAbX3I2 = X3I2 End If Ea1 = ((VAbX1I2 - VAbX1I1) / VAbX1I2) * 100 Ea2 = ((VAbX2I2 - VAbX2I1) / VAbX2I2) * 100 Ea3 = ((VAbX3I2 - VAbX3I1) / VAbX3I2) * 100 MsgBox "Iteracion No. " & cont & vbNewLine & "X1 =" & X1I1 & vbNewLine & "X2 =" & X2I1 & vbNewLine & "X3 =" & X3I1 & vbNewLine & vbNewLine & "Iteracion No. " & cont + 1 & vbNewLine & "X1 =" & X1I2 & vbNewLine & "X2 =" & X2I2 & vbNewLine & "X3 =" & X3I2 & vbNewLine & vbNewLine & "Porcentajes de error:" & vbNewLine & vbNewLine & "Ea1 =" & Ea1 & "%" & vbNewLine & "Ea2 =" & Ea2 & "%" & vbNewLine & "Ea3 =" & Ea3 & "%", , "Resultados Iteracion" Do While Ea1 > 1 Or Ea2 > 1 Or Ea3 > 1 Ea1 = 0 Ea2 = 0 Ea3 = 0 cont = cont + 1 X1I1 = X1I2 X2I1 = X2I2 X3I1 = X3I2
  • 11. UNIVERSIDAD SAN MARTÍN Ingeniería de Sistemas - Distancia METODOS NUMERICOS X1I2 = ((ValEc1X2.Text * X2I1) + (ValEc1X3.Text * X3I1) + Const1.Text) / ValEc1X1.Text X2I2 = ((ValEc2X1.Text * X1I2) + (ValEc2X3.Text * X3I1) + Const2.Text) / ValEc2X2.Text X3I2 = ((ValEc3X1.Text * X1I2) + (ValEc3X2.Text * X2I2) + Const3.Text) / ValEc3X3.Text If (X1I1 < 0) Then VAbX1I1 = X1I1 * -1 Else: VAbX1I1 = X1I1 End If If (X2I1 < 0) Then VAbX2I1 = X2I1 * -1 Else: VAbX2I1 = X2I1 End If If (X3I1 < 0) Then VAbX3I1 = X3I1 * -1 Else: VAbX3I1 = X3I1 End If If (X1I2 < 0) Then VAbX1I2 = X1I2 * -1 Else: VAbX1I2 = X1I2 End If If (X2I2 < 0) Then VAbX2I2 = X2I2 * -1 Else: VAbX2I2 = X2I2 End If If (X3I2 < 0) Then VAbX3I2 = X3I2 * -1 Else: VAbX3I2 = X3I2 End If Ea1 = ((VAbX1I2 - VAbX1I1) / VAbX1I2) * 100 Ea2 = ((VAbX2I2 - VAbX2I1) / VAbX2I2) * 100 Ea3 = ((VAbX3I2 - VAbX3I1) / VAbX3I2) * 100 MsgBox "Iteracion No. " & cont & vbNewLine & "X1 =" & X1I1 & vbNewLine & "X2 =" & X2I1 & vbNewLine & "X3 =" & X3I1 & vbNewLine & vbNewLine & "Iteracion No. " & cont + 1 & vbNewLine & "X1 =" & X1I2 & vbNewLine & "X2 =" & X2I2 & vbNewLine & "X3 =" & X3I2 & vbNewLine & vbNewLine & "Porcentajes de error:" & vbNewLine & vbNewLine & "Ea1 =" & Ea1 & "%" & vbNewLine & "Ea2 =" & Ea2 & "%" & vbNewLine & "Ea3 =" & Ea3 & "%", , "Resultados Iteracion" Loop
  • 12. UNIVERSIDAD SAN MARTÍN Ingeniería de Sistemas - Distancia METODOS NUMERICOS MsgBox "Los valores más óptimos con un porcentaje de error menor a 1% son:" & vbNewLine & vbNewLine & "X1 =" & X1I2 & vbNewLine & "X2 =" & X2I2 & vbNewLine & "X3 =" & X3I2, , "Valores Optimos" Calcular.Enabled = False End Sub -------------------------------------------------------------------------------------------------------------- Private Sub C1_GotFocus() C1 = "" End Sub -------------------------------------------------------------------------------------------------------------- Private Sub C1_KeyPress(KeyAscii As Integer) KeyAscii = Numeros(KeyAscii) End Sub -------------------------------------------------------------------------------------------------------------- Private Sub C2_GotFocus() C2 = "" End Sub -------------------------------------------------------------------------------------------------------------- Private Sub C2_KeyPress(KeyAscii As Integer) KeyAscii = Numeros(KeyAscii) End Sub -------------------------------------------------------------------------------------------------------------- Private Sub C3_GotFocus() C3 = "" End Sub -------------------------------------------------------------------------------------------------------------- Private Sub C3_KeyPress(KeyAscii As Integer) KeyAscii = Numeros(KeyAscii) End Sub -------------------------------------------------------------------------------------------------------------- Private Sub Despejar_Click() If (Ec1X1.Text = "") Then Ec1X1.Text = 0 If (Ec1X2.Text = "") Then Ec1X2.Text = 0 If (Ec1X3.Text = "") Then Ec1X3.Text = 0 If (Ec2X1.Text = "") Then Ec2X1.Text = 0 If (Ec2X2.Text = "") Then Ec2X2.Text = 0 If (Ec2X3.Text = "") Then Ec2X3.Text = 0 If (Ec3X1.Text = "") Then Ec3X1.Text = 0 If (Ec3X2.Text = "") Then Ec3X2.Text = 0
  • 13. UNIVERSIDAD SAN MARTÍN Ingeniería de Sistemas - Distancia METODOS NUMERICOS If (Ec3X3.Text = "") Then Ec3X3.Text = 0 If (C1.Text = "") Then C1.Text = 0 If (C2.Text = "") Then C2.Text = 0 If (C3.Text = "") Then C3.Text = 0 ValEc1X1 = Ec1X1 ValEc1X2 = Ec1X2 * -1 ValEc1X3 = Ec1X3 * -1 Const1 = C1 ValEc2X1 = Ec2X1 * -1 ValEc2X2 = Ec2X2 ValEc2X3 = Ec2X3 * -1 Const2 = C2 ValEc3X1 = Ec3X1 * -1 ValEc3X2 = Ec3X2 * -1 ValEc3X3 = Ec3X3 Const3 = C3 If (Ec1X1.Text = 0 Or Ec1X2.Text = 0 Or Ec1X3.Text = 0 Or Ec2X1.Text = 0 Or Ec2X2.Text = 0 Or Ec2X3.Text = 0 Or Ec3X1.Text = 0 Or Ec3X2.Text = 0 Or Ec3X3.Text = 0 Or C1.Text = 0 Or C2.Text = 0 Or C3.Text = 0) Then MsgBox "Verifique los valores introducidos:" & vbNewLine & "No se puede operar con valores en 0", , "Alerta" Else Calcular.Enabled = True End If End Sub -------------------------------------------------------------------------------------------------------------- Private Sub Limpiar_Click() Ec1X1.Text = 0 Ec1X2.Text = 0 Ec1X3.Text = 0 Ec2X1.Text = 0 Ec2X2.Text = 0 Ec2X3.Text = 0 Ec3X1.Text = 0 Ec3X2.Text = 0 Ec3X3.Text = 0 C1.Text = 0 C2.Text = 0
  • 14. UNIVERSIDAD SAN MARTÍN Ingeniería de Sistemas - Distancia METODOS NUMERICOS C3.Text = 0 ValEc1X1.Text = 0 ValEc1X2.Text = 0 ValEc1X3.Text = 0 ValEc2X1.Text = 0 ValEc2X2.Text = 0 ValEc2X3.Text = 0 ValEc3X1.Text = 0 ValEc3X2.Text = 0 ValEc3X3.Text = 0 Const1.Text = 0 Const2.Text = 0 Const3.Text = 0 End Sub -------------------------------------------------------------------------------------------------------------- Private Sub Ec1X1_GotFocus() Ec1X1.Text = "" End Sub -------------------------------------------------------------------------------------------------------------- Private Sub Ec1X1_KeyPress(KeyAscii As Integer) KeyAscii = Numeros(KeyAscii) End Sub -------------------------------------------------------------------------------------------------------------- Private Sub Ec1X2_GotFocus() Ec1X2.Text = "" End Sub -------------------------------------------------------------------------------------------------------------- Private Sub Ec1X2_KeyPress(KeyAscii As Integer) KeyAscii = Numeros(KeyAscii) End Sub -------------------------------------------------------------------------------------------------------------- Public Function Numeros(Tecla As Integer) As Integer Dim strValido As String strValido = "0123456789,-" If Tecla > 26 Then If InStr(strValido, Chr(Tecla)) = 0 Then Tecla = 0 End If End If Numeros = Tecla End Function --------------------------------------------------------------------------------------------------------------
  • 15. UNIVERSIDAD SAN MARTÍN Ingeniería de Sistemas - Distancia METODOS NUMERICOS Private Sub Ec1X3_GotFocus() Ec1X3.Text = "" End Sub -------------------------------------------------------------------------------------------------------------- Private Sub Ec1X3_KeyPress(KeyAscii As Integer) KeyAscii = Numeros(KeyAscii) End Sub -------------------------------------------------------------------------------------------------------------- Private Sub Ec2X1_GotFocus() Ec2X1.Text = "" End Sub -------------------------------------------------------------------------------------------------------------- Private Sub Ec2X1_KeyPress(KeyAscii As Integer) KeyAscii = Numeros(KeyAscii) End Sub -------------------------------------------------------------------------------------------------------------- Private Sub Ec2X2_GotFocus() Ec2X2.Text = "" End Sub -------------------------------------------------------------------------------------------------------------- Private Sub Ec2X2_KeyPress(KeyAscii As Integer) KeyAscii = Numeros(KeyAscii) End Sub -------------------------------------------------------------------------------------------------------------- Private Sub Ec2X3_GotFocus() Ec2X3.Text = "" End Sub -------------------------------------------------------------------------------------------------------------- Private Sub Ec2X3_KeyPress(KeyAscii As Integer) KeyAscii = Numeros(KeyAscii) End Sub -------------------------------------------------------------------------------------------------------------- Private Sub Ec3X1_GotFocus() Ec3X1.Text = "" End Sub -------------------------------------------------------------------------------------------------------------- Private Sub Ec3X1_KeyPress(KeyAscii As Integer) KeyAscii = Numeros(KeyAscii) End Sub -------------------------------------------------------------------------------------------------------------- Private Sub Ec3X2_GotFocus() Ec3X2.Text = "" End Sub --------------------------------------------------------------------------------------------------------------
  • 16. UNIVERSIDAD SAN MARTÍN Ingeniería de Sistemas - Distancia METODOS NUMERICOS Private Sub Ec3X2_KeyPress(KeyAscii As Integer) KeyAscii = Numeros(KeyAscii) End Sub -------------------------------------------------------------------------------------------------------------- Private Sub Ec3X3_GotFocus() Ec3X3.Text = "" End Sub -------------------------------------------------------------------------------------------------------------- Private Sub Ec3X3_KeyPress(KeyAscii As Integer) KeyAscii = Numeros(KeyAscii) End Sub