Advertisement
DekkerBass

ALNP4

Apr 22nd, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.12 KB | None | 0 0
  1. #1. DEF
  2.  
  3. A1=matrix(RDF, 5, [-0.960238943936,0.455472711421,-0.932352706004,0.818261532564,0.0334939638739,-0.360989451003,0.776221564231,-0.834685169725,-0.0503182064317,-0.255305378654,
  4. -0.212877475579,0.98088751552,-0.984269407259,-0.149618905993,-0.99891975969,-0.616798752504,0.518510564469,0.557800915264,-0.94449964861,-0.540931124822,0.918389729,
  5. -0.47034724669,-0.180871136883,0.605537477656,-0.756221380381]).transpose()
  6. show(A1)
  7.  
  8. print '\n============================\n'
  9. #1.1 si r>1 no converge, el menor r indica el metodo mas rapido
  10. print ' \nRadio espectral jacobi: '
  11. show(radio_espectral(matriz_jacobi(A1)))
  12. print ' \nRadio espectral gauss seidel: '
  13. show(radio_espectral(matriz_gauss_seidel(A1)))
  14. print ' \nRadio espectral relajacion: '
  15. show(radio_espectral(matriz_relajacion(A1,1.1)))
  16.  
  17. print '\n============================\n'
  18. #1.2
  19. print ' \nRadio espectral ej2: '
  20. radio_espectral(A1)
  21.  
  22. print '\n============================\n'
  23. #Si Ra >=1 no converge, en el ejemplo es 1.1, no converge
  24.  
  25. ########################################################
  26. ########################################################
  27.  
  28. #Ej2.1
  29. #Reordenamos teniendo en cuenta los elementos mayores de cada fila de coef
  30.  
  31. A2 = (matrix(QQ,5,[[20,2,3,1,4],[5,17,3,1,4],[5,2,18,1,4],[5,2,3,16,4],[5,2,3,1,19]]))
  32. show(A2)
  33. b2 = vector(QQ,[200,140,170,230,110])
  34. show(b2)
  35.  
  36. #2.2
  37. print ' \n\nEj2.2: '
  38. for i in range(21):
  39.     Lw = matriz_relajacion(A2, i/10.)
  40.     print 'parametro: %.2f; radio espectral: %s'%(i/10., radio_espectral(Lw))
  41.    
  42. print '\n\n\n'
  43.  
  44. #######################################
  45. #######################################
  46.  
  47.  
  48. valor_inicial = 0.9    ### aqui fijamos el valor previo al encontrado en la lista anterior
  49.  
  50. ### no hay que modificar el resto
  51.  
  52. for w in [valor_inicial, valor_inicial+0.01..valor_inicial+0.2]:
  53.     Lw = matriz_relajacion(A2, w)
  54.     print 'parametro: %.3f; radio espectral: %s'%(w, radio_espectral(Lw))
  55.    
  56. #######################################
  57. #######################################
  58.  
  59. #2.3
  60. print ' \nGauss Seidel: '
  61. show(metodo_descomposicion(A2, b2, tol =0.0001, metodo = 'Gauss-Seidel'))
  62. print ' \nJacobi: '
  63. show(metodo_descomposicion(A2, b2, tol =0.0001, metodo = 'Jacobi'))
  64. print ' \nRelajacion: '
  65. show(metodo_descomposicion(A2, b2, tol =0.0001, w=1.70, metodo = 'relajacion'))
  66.  
  67. #sumar las 3 cantidades de iteraciones
  68.  
  69. ########################################################
  70. ########################################################
  71.  
  72. #3
  73. A1=matrix(RDF, 5, [-0.960238943936,0.455472711421,-0.932352706004,0.818261532564,0.0334939638739,-0.360989451003,0.776221564231,-0.834685169725,-0.0503182064317,-0.255305378654,
  74. -0.212877475579,0.98088751552,-0.984269407259,-0.149618905993,-0.99891975969,-0.616798752504,0.518510564469,0.557800915264,-0.94449964861,-0.540931124822,0.918389729,
  75. -0.47034724669,-0.180871136883,0.605537477656,-0.756221380381]).transpose()
  76. show(A1)
  77.  
  78. b31 = vector(RDF,[1,0,0,0,0,0,0,0,0,2])
  79. b32 = vector(RDF,[1,0,0,0,0,0,0,0,0,2])
  80.  
  81. #3.1
  82. metodo_descomposicion(A3,b31,tol = 0, metodo = 'Gauss-Seidel')
  83. #se toma el mayor valor
  84.  
  85. #3.2
  86. #mismo vector pero cogemos el valor pedido
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement