Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #1. DEF
- A1=matrix(RDF, 5, [-0.960238943936,0.455472711421,-0.932352706004,0.818261532564,0.0334939638739,-0.360989451003,0.776221564231,-0.834685169725,-0.0503182064317,-0.255305378654,
- -0.212877475579,0.98088751552,-0.984269407259,-0.149618905993,-0.99891975969,-0.616798752504,0.518510564469,0.557800915264,-0.94449964861,-0.540931124822,0.918389729,
- -0.47034724669,-0.180871136883,0.605537477656,-0.756221380381]).transpose()
- show(A1)
- print '\n============================\n'
- #1.1 si r>1 no converge, el menor r indica el metodo mas rapido
- print ' \nRadio espectral jacobi: '
- show(radio_espectral(matriz_jacobi(A1)))
- print ' \nRadio espectral gauss seidel: '
- show(radio_espectral(matriz_gauss_seidel(A1)))
- print ' \nRadio espectral relajacion: '
- show(radio_espectral(matriz_relajacion(A1,1.1)))
- print '\n============================\n'
- #1.2
- print ' \nRadio espectral ej2: '
- radio_espectral(A1)
- print '\n============================\n'
- #Si Ra >=1 no converge, en el ejemplo es 1.1, no converge
- ########################################################
- ########################################################
- #Ej2.1
- #Reordenamos teniendo en cuenta los elementos mayores de cada fila de coef
- 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]]))
- show(A2)
- b2 = vector(QQ,[200,140,170,230,110])
- show(b2)
- #2.2
- print ' \n\nEj2.2: '
- for i in range(21):
- Lw = matriz_relajacion(A2, i/10.)
- print 'parametro: %.2f; radio espectral: %s'%(i/10., radio_espectral(Lw))
- print '\n\n\n'
- #######################################
- #######################################
- valor_inicial = 0.9 ### aqui fijamos el valor previo al encontrado en la lista anterior
- ### no hay que modificar el resto
- for w in [valor_inicial, valor_inicial+0.01..valor_inicial+0.2]:
- Lw = matriz_relajacion(A2, w)
- print 'parametro: %.3f; radio espectral: %s'%(w, radio_espectral(Lw))
- #######################################
- #######################################
- #2.3
- print ' \nGauss Seidel: '
- show(metodo_descomposicion(A2, b2, tol =0.0001, metodo = 'Gauss-Seidel'))
- print ' \nJacobi: '
- show(metodo_descomposicion(A2, b2, tol =0.0001, metodo = 'Jacobi'))
- print ' \nRelajacion: '
- show(metodo_descomposicion(A2, b2, tol =0.0001, w=1.70, metodo = 'relajacion'))
- #sumar las 3 cantidades de iteraciones
- ########################################################
- ########################################################
- #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,
- -0.212877475579,0.98088751552,-0.984269407259,-0.149618905993,-0.99891975969,-0.616798752504,0.518510564469,0.557800915264,-0.94449964861,-0.540931124822,0.918389729,
- -0.47034724669,-0.180871136883,0.605537477656,-0.756221380381]).transpose()
- show(A1)
- b31 = vector(RDF,[1,0,0,0,0,0,0,0,0,2])
- b32 = vector(RDF,[1,0,0,0,0,0,0,0,0,2])
- #3.1
- metodo_descomposicion(A3,b31,tol = 0, metodo = 'Gauss-Seidel')
- #se toma el mayor valor
- #3.2
- #mismo vector pero cogemos el valor pedido
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement