Advertisement
maritzalapa

clasico gram

May 4th, 2014
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.82 KB | None | 0 0
  1. import math
  2. m = int(raw_input("Ingrese m: "))
  3. n = int(raw_input("Ingrese n: "))
  4.  
  5. a = []          # m*n
  6. A = []          # m*n
  7. b = []          # m*1
  8. U = []          # n*n
  9. E = []          # m*n
  10. Et = []         # n*m
  11. x = []          # n*1
  12.  
  13. for i in range (m):
  14.     A.append([])
  15.     a.append([])
  16.     E.append([])
  17.     for j in range (n):
  18.         A[i].append(float(raw_input()))
  19.         a[i].append(float(A[i][j]))
  20.         E[i].append(0.0)
  21. #       if i == j:
  22. #           E[i].append(1.0)
  23. #       else:
  24. #           E[i].append(0.0)
  25.  
  26. print 'matriz E:'
  27. for i in range(m):
  28.     print E[i]
  29. print'\n'
  30.  
  31.  
  32. for i in range(m):
  33.     b.append(float(raw_input()))
  34.    
  35. for i in range(n):
  36.     U.append([])
  37.     for j in range(n):
  38.         U[i].append(0.0)
  39.  
  40. for i in range(n):
  41.     Et.append([])
  42.     x.append(0.0)
  43.     for j in range(m):
  44.         Et[i].append(0.0)
  45.  
  46.  
  47. for j in range(n):
  48.     for i in range(j):
  49.         prod_int = 0.0      #producto interno de ET[][].A[][]
  50.         for k in range(m):
  51.             prod_int += E[k][i]*a[k][j]
  52.         U[i][j] = prod_int
  53.        
  54.         for k in range (m):
  55.             E[k][j] = a[k][j] - U[i][j]*E[k][i]
  56.        
  57.         suma=0.0
  58.         for k in range(m):
  59.             suma += E[k][j]*E[k][j]
  60.         U[j][j] = math.sqrt(suma)
  61.        
  62.         for k in range(m):
  63.             E[k][j] = E[k][j]/U[j][j]
  64.            
  65. for i in range(m):
  66.     for j in range(n):
  67.         Et[j][i] = E[i][j]
  68.  
  69. B = []
  70.  
  71. for i in range(n):
  72.     B.append(0.0)
  73.  
  74. for i in range(n):
  75.     for j in range(m):
  76.         B[i] = B[i]+ Et[i][j]*b[j]
  77.    
  78.  
  79. print 'matriz A:'
  80. for i in range(m):
  81.     print a[i]
  82. print'\n'
  83.  
  84. print 'matriz b:'
  85. for i in range(m):
  86.     print b[i]
  87. print'\n'
  88.  
  89. print 'matriz U:'
  90. for i in range(n):
  91.     print U[i]
  92. print'\n'
  93.  
  94. print 'matriz E:'
  95. for i in range(m):
  96.     print E[i]
  97. print'\n'
  98.  
  99. print 'matriz B:'
  100. for i in range(n):
  101.     print B[i]
  102. print'\n'  
  103.  
  104. j = n-1
  105. while j>=0:
  106.     res = B[j]
  107.     for k in range (j+1, n):
  108.         res -= U[j][k] *x[k]
  109.     res /= float(U[j][j])
  110.     x[j] = res
  111.     print j, res
  112.     j-=1
  113.  
  114. print 'matriz x:'
  115. for i in range(n):
  116.     print x[i]
  117. print'\n'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement