Código de Python - Metodo de Jacobi

Metodo de Jacobigráfica de visualizaciones


Python

estrellaestrellaestrellaestrellaestrella(1)
Publicado el 04 de Marzo del 2013 por Abraham
7.647 visualizaciones desde el 04 de Marzo del 2013. Una media de 42 por semana
Código que ejecuta el Método de Jacobi (para solución de sistemas de ecuaciones [éste código funciona para sistemas de 3x3]). Para garantizar la convergencia del método, hay que verificar que la matriz del sistema sea una matriz de diagonal estrictamente dominante.

Versión 1
estrellaestrellaestrellaestrellaestrella(1)

Publicado el 04 de Marzo del 2013gráfica de visualizaciones de la versión: Versión 1
7.648 visualizaciones desde el 04 de Marzo del 2013. Una media de 42 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# -*- coding: UTF-8 -*-
 
# Metodo de Jacobi
# Abraham Teran
 
# NOTA: Para garantizar la convergencia del Metodo de Jacobi
#       hay que verificar que la matriz del sistema de ecuaciones
#       sea una matriz de diagonal estrictamente dominante...
#       Este codigo funciona para sistemas de matrices de 3x3
 
import os
import decimal
 
def Xval(a1, b1, c1, d1, y, z):  #
    x = (-(b1*y)-(c1*z)+d1)/a1   #
    return x                     #
                                 #
def Yval(a2, b2, c2, d2, x, z):  # Formulas para recursividad
    y = (-(a2*x)-(c2*z)+d2)/b2   #
    return y                     #
                                 #
def Zval(a3, b3, c3, d3, x, y):  #
    z = (-(a3*x)-(b3*y)+d3)/c3   #
    return z                     #
 
def main():
    os.system("cls")
    vals = [[0.0,0.0,0.0],[1.0,1.0,1.0]]
    cons = [[0,0,0,0],[0,0,0,0],[0,0,0,0]]
    loop_val = 0
    print "\n    METODO DE JACOBI\n\nA1x + B1y + C1z = D1\n\
A2x + B2y + C2z = D2\nA3x + B3y + C3z = D3\n\n"
    cons[0][0] = input("\nIngrese A1 > ")   # Constantes para ecuacion 1
    cons[0][1] = input("Ingrese B1 > ")
    cons[0][2] = input("Ingrese C1 > ")
    cons[0][3] = input("Ingrese D1 > ")
    cons[1][0] = input("\nIngrese A2 > ")   # Constantes para ecuacion 2
    cons[1][1] = input("Ingrese B2 > ")
    cons[1][2] = input("Ingrese C2 > ")
    cons[1][3] = input("Ingrese D2 > ")
    cons[2][0] = input("\nIngrese A3 > ")   # Constantes para ecuacion 3
    cons[2][1] = input("Ingrese B3 > ")
    cons[2][2] = input("Ingrese C3 > ")
    cons[2][3] = input("Ingrese D3 > ")
    os.system("cls")
    print "Calculando..."
    while(vals[0] != vals [1]):
        print vals[0]
        vals[1][0] = Xval(cons[0][0], cons[0][1], cons[0][2], cons[0][3],\
vals[0][1], vals[0][2])
        vals[1][1] = Yval(cons[1][0], cons[1][1], cons[1][2], cons[1][3],\
vals[0][0], vals[0][2])
        vals[1][2] = Zval(cons[2][0], cons[2][1], cons[2][2], cons[2][3],\
vals[0][0], vals[0][1])
        print vals[1]
        vals[0][0] = Xval(cons[0][0], cons[0][1], cons[0][2], cons[0][3],\
vals[1][1], vals[1][2])
        vals[0][1] = Yval(cons[1][0], cons[1][1], cons[1][2], cons[1][3],\
vals[1][0], vals[1][2])
        vals[0][2] = Zval(cons[2][0], cons[2][1], cons[2][2], cons[2][3],\
vals[1][0], vals[1][1])
 
    raw_input("\n\nMetodo de Jacobi terminado...")
 
main()
exit()



Comentarios sobre la versión: Versión 1 (1)

victor
09 de Mayo del 2013
estrellaestrellaestrellaestrellaestrella
Hola amigo, oye de casualidad no tienes este mismo programa pero en dev c++ o en c. Entrare a la materia próximamente y ya quiero ir preparado. porfavor si me lo puedes mandar, te lo agradecería muchísimo.
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s2317