Sie sind auf Seite 1von 14

Integrantes:

Jara Velasco , Nicole


Gallegos Vargas , Angela
Jara Paredes Jonathan

I. FUNDAMENTO:
Generalidades
Un método iterativo es un método que progresivamente va calculando
aproximaciones a la solución de un problema. En Matemáticas, en un método
iterativo se repite un mismo proceso de mejora sobre una solución aproximada: se
espera que lo obtenido sea una solución más aproximada que la inicial. El proceso se
repite sobre esta nueva solución hasta que el resultado más reciente satisfaga ciertos
requisitos. A diferencia de los métodos directos, en los cuales se debe terminar el
proceso para tener la respuesta, en los métodos iterativos se puede suspender el
proceso al termino de una iteración y se obtiene una aproximación a la solución.
Metodo de Jacobi:
El método Jacobi es el método iterativo para resolver sistemas de ecuaciones
lineales más simple y se aplica sólo a sistemas cuadrados, es decir a sistemas con
tantas incógnitas como ecuaciones.
1. Primero se determina la ecuación de recurrencia. Para ello se ordenan las
ecuaciones y las incógnitas. De la ecuación i se despeja la incógnita i. En notación
matricial se escribirse como:
x = c + Bx (1)
donde x es el vector de incógnitas.
2. Se toma una aproximación para las soluciones y a ésta se le designa por xo
3. Se itera en el ciclo que cambia la aproximación
xi+1 = c + Bxi (2)
Ejemplo
Partiendo de (x = 1, y = 2) aplique dos iteraciones del método de Jacobi para
resolver el sistema:
5 x  2 y  1
 
 x  4y  0 
Solución
Debemos primeramente despejar de la ecuación la incógnita correspondiente.
x = 0.20 − 0.40 y
y = 0.00 + 0.25 x
Aplicamos la primera iteración partiendo de x0 = 1.00 y y0 = 2.00:
x1 = 0.20 − 0.40 (2.00) = −0.60
y1 = 0.00 + 0.25 (1.00) = 0.25
Aplicamos la segunda iteración partiendo de x1 = −0.60 y y1 = 0.25:
x2 = 0.20 − 0.40 (0.25) = 0.10
y2 = 0.00 + 0.25 (−0.60) = −0.15
Aplicamos la siguiente iteración partiendo de x2 = 0.10 y y1 = −0.15:
x3 = 0.20 − 0.40 (−0.15) = 0.26
y3 = 0.00 + 0.25 (0.10) = 0.025
Aplicamos la siguiente iteración partiendo de x3 = 0.26 y y3 = 0.025:
x4 = 0.20 − 0.40 (0.025) = 0.190
y4 = 0.00 + 0.25 (0.26) = 0.065
Aplicamos la siguiente iteración partiendo de x4 = 0.190 y y4 = 0.065:
x5 = 0.20 − 0.40 (0.065) = 0.174
y5 = 0.00 + 0.25 (0.19) = 0.0475
Aplicamos la siguiente iteración partiendo de x5 = 0.174 y y5 = 0.0475:
x6 = 0.20 − 0.40 (0.0475) = 0.181
y6 = 0.00 + 0.25 (0.174) = 0.0435
Si uno dispone de una hoja de cálculo como EXCEL es fácil realizar los cálculos
anteriores:
i xi yi xi+1 yi+1 Di
0 1.000 2.000 -0.600 0.250 1.750
1 -0.600 0.250 0.100 -0.150 0.700
2 0.100 -0.150 0.260 0.025 0.175
3 0.260 0.025 0.190 0.065 0.070
4 0.190 0.065 0.174 0.048 0.018
5 0.174 0.048 0.181 0.044 0.007
6 0.181 0.044 0.183 0.045 0.002
7 0.183 0.045 0.182 0.046 0.001
8 0.182 0.046 0.182 0.045 0.000
II. OBJETIVO

 Emplear operaciones con matrices y vectores para la resolución de un


sistema de ecuaciones
 Emplear el método de jacobi para la determinación de las incógnitas en un
sistemas de ecuaciones

III. PROCEDIMIENTO

Considere el siguiente sistema de ecuaciones.


4X1 − 1X 2 + 0X3 + 0X 4 = 1
−1X1 + 4X 2 − X 3 + 0X 4 = 1
0X1 − X 2 + 4X3 − X 4 = 1
0X1 + 0X2 − X 3 + 4X4 = 1

Desarrolle una aplicación que le permita calcular los valores de x1, x2 y x3 que satisfagan dicho
sistema, aplicando el método de Jacobi

1. Diseñar la siguiente interfaz:


Haga doble clic sobre el formulario e introduzca el siguiente codigo:
1. Ejecute la aplicación
2. Asocie un procedimiento al botón de comando Btncalcular que le permita resolver el
sistema de ecuaciones por el método de Jacobi.

METODO A
A.1. Ejecute la aplicación y haga clic en el btncalcular

B. METODO B
B.1. Declare una matriz m con 4 filas y 5 columnas que albergue datos de tipo Real de
simple precision, para lo cual introduzca la siguiente instruccion en su ventana
codigo:
Dim m(4, 5) As Single
B.2. Declare un vector x con 4 filas que albergue datos de tipo Real de simple precision,
para lo cual introduzca la siguiente instruccion en su ventana codigo:
Dim x(4) As Single
B.3. Declare un vector xn con 4 filas que albergue datos de tipo Real de simple
precision, para lo cual introduzca la siguiente instruccion en su ventana codigo:
Dim xn(4) As Single

B.4. Declare una variable suma como una variable de tipo double
Dim suma as double
B.5. Llene los datos del DataGridview a en la matriz m ,asigne el siguiente procedimiento
al botron btn calcular:
B. Private Sub btncalcular_Click()
B.6. Llene los datos del control a (Data Grid View) en la matriz m y desarrolle el codigo
para que se resuelva el sistema por medio del metodo de Jacobi ,asigne el siguiente
procedimiento al botron btn calcular:

B.7. Ejecute la aplicación y haga clic en el btncalcular


ACTIVIDAD PROPUESTA:
Public Class lblx1
Dim x1, x2, x3, x4, x1n, x2n, x3n, x4n As Double
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
A.Rows.Add(4)
A.Rows(0).Cells(0).Value = "fila,columna"
A.Rows(1).Cells(0).Value = "fila 1"
A.Rows(2).Cells(0).Value = "fila 2"
A.Rows(3).Cells(0).Value = "fila 3"
A.Rows(4).Cells(0).Value = "fila 4"
A.Rows(1).Cells(1).Value = 4
A.Rows(1).Cells(2).Value = -1
A.Rows(1).Cells(3).Value = 0
A.Rows(1).Cells(4).Value = 0
A.Rows(1).Cells(5).Value = 1
A.Rows(2).Cells(1).Value = -1
A.Rows(2).Cells(2).Value = 4
A.Rows(2).Cells(3).Value = -1
A.Rows(2).Cells(4).Value = 0
A.Rows(2).Cells(5).Value = 1
A.Rows(3).Cells(1).Value = 0
A.Rows(3).Cells(2).Value = -1
A.Rows(3).Cells(3).Value = 4
A.Rows(3).Cells(4).Value = -1
A.Rows(3).Cells(5).Value = 1
A.Rows(4).Cells(1).Value = 0
A.Rows(4).Cells(2).Value = 0
A.Rows(4).Cells(3).Value = -1
A.Rows(4).Cells(4).Value = 4
A.Rows(4).Cells(5).Value = 1

End Sub

Private Sub btngauss_Click(sender As Object, e As EventArgs) Handles


btngauss.Click
x1 = 0
x2 = 0
x3 = 0
x4 = 0
x1n = (A.Rows(1).Cells(5).Value - A.Rows(1).Cells(2).Value * x2 -
A.Rows(1).Cells(3).Value * x3 - A.Rows(1).Cells(4).Value * x4) /
A.Rows(1).Cells(1).Value
x2n = (A.Rows(2).Cells(5).Value - A.Rows(2).Cells(1).Value * x1n -
A.Rows(2).Cells(3).Value * x3 - A.Rows(2).Cells(4).Value * x4) /
A.Rows(2).Cells(2).Value
x3n = (A.Rows(3).Cells(5).Value - A.Rows(3).Cells(1).Value * x1n -
A.Rows(3).Cells(2).Value * x2n - A.Rows(3).Cells(4).Value * x4) /
A.Rows(3).Cells(3).Value
x4n = (A.Rows(4).Cells(5).Value - A.Rows(4).Cells(1).Value * x1n -
A.Rows(4).Cells(2).Value * x2n - A.Rows(4).Cells(3).Value * x3n) /
A.Rows(4).Cells(4).Value
Do Until Math.Abs(x1 - x1n) < 0.00001
x1 = x1n
x2 = x2n
x3 = x3n
x4 = x4n
x1n = (A.Rows(1).Cells(5).Value - A.Rows(1).Cells(2).Value * x2 -
A.Rows(1).Cells(3).Value * x3 - A.Rows(1).Cells(4).Value * x4) /
A.Rows(1).Cells(1).Value
x2n = (A.Rows(2).Cells(5).Value - A.Rows(2).Cells(1).Value * x1n -
A.Rows(2).Cells(3).Value * x3 - A.Rows(2).Cells(4).Value * x4) /
A.Rows(2).Cells(2).Value
x3n = (A.Rows(3).Cells(5).Value - A.Rows(3).Cells(1).Value * x1n -
A.Rows(3).Cells(2).Value * x2n - A.Rows(3).Cells(4).Value * x4) /
A.Rows(3).Cells(3).Value
x4n = (A.Rows(4).Cells(5).Value - A.Rows(4).Cells(1).Value * x1n -
A.Rows(4).Cells(2).Value * x2n - A.Rows(4).Cells(3).Value * x3n) /
A.Rows(4).Cells(4).Value
Loop
txtx1.Text = FormatNumber(x1, 4)
txtx2.Text = FormatNumber(x2, 4)
txtx3.Text = FormatNumber(x3, 4)
txtx4.Text = FormatNumber(x4, 4)
End Sub
End Class
Se creo una DataGirdView , con button , label y textbox.

Das könnte Ihnen auch gefallen