Código de Python - Metodo de Jacobi

sin imagen de perfil

Metodo de Jacobigráfica de visualizaciones


Python

estrellaestrellaestrellaestrellaestrella(1)
Publicado el 4 de Marzo del 2013 por Abraham (21 códigos)
13.757 visualizaciones desde el 4 de Marzo del 2013
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 4 de Marzo del 2013gráfica de visualizaciones de la versión: Versión 1
13.758 visualizaciones desde el 4 de Marzo del 2013
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)

9 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
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s2317