practicas aln

Upload: germarbus

Post on 14-Oct-2015

29 views

Category:

Documents


0 download

TRANSCRIPT

  • ALN con SAGEESCUELA DE INGENIERA INFORMTICA

    UNIVERSIDAD DE SEVILLA

    LGEBRA LINEAL Y NUMRICA

    Descripcin de las funciones creadas con SAGE para trabajar en laasignatura

    A continuacin se proporciona una descripcin de todas las funciones y atributos que a lo largo de lasprcticas de ALN se han utilizado para trabajar con la asignatura. El listado est clasificado porprcticas (desde la 1 a la 6) y se corresponde con los siguientes bloques temticos:

    PRCTICA 1 - Representacin en coma flotante, eliminacin gaussiana y mtodo de Gauss-Jordan.PRCTICA 2 - Resolucin de sistemas lineales: eliminacin, pivoteo parcial,descomposiciones LU y de Cholesky.PRCTICA 3 - Resolucin de sistemas lineales mediante mtodos iterativos: Jacobi, Gauss-Seidel y SOR.PRCTICA 4 - Descomposiciones QR y SVD de una matriz.PRCTICA 5 - Resolucin de problemas de mnimos cuadrados mediante factorizacin QR y SVD.PRCTICA 6 - Clculo de autovalores y autovectores.

    La siguiente instruccin carga en memoria todas las funciones definidas.

    #autoload DATA+'codigoALN.sage'

    PRCTICA 1

    Herramientas para el anlisis de nmeros reales en punto flotante

    puntoflotante(x,prec)

    Genera un script que permite analizar detalles sobre la representacin mediante ordenador de nmeros enpunto flotante. Puedes experimentar con diferentes nmeros y modificar la precisin empleada, donde x es elnmero estudiado y prec indica la cantidad de bits de precisin para la mantisa.

    192.168.190.128/home/admin/35/print 1/8

  • Eliminacin gaussiana

    F,U=forma_escalonada(A, canonica?,transformaciones?)

    La funcin forma_escalonada( A) nos permite obtener tanto las matrices F y U como la secuencia detransformaciones elementales por filas que reproducen el proceso seguido para escalonar la matriz A.Admite las siguientes opciones y parmetros

    canonica? puede ser True para forma escalonada cannica y False para forma escalonada simple transformaciones? puede ser True para que se proporcione la lista de transformaciones elementalesfilas que se han realizado y False para que se omitan.

    Transformaciones elementales

    Las siguientes funciones, aplicadas sobre una matriz, producen transformaciones elementales:

    Fij(A,i,j) equivale a la transformacin elemental fila F aplicada sobre la matriz A

    Fia(A,i,a) equivale a la transformacin elemental fila F (a) aplicada sobre la matriz A

    Fija(A,i,j,a) equivale a la transformacin elemental fila F (a) aplicada sobre la matriz A

    Existe la versin equivalente para transformaciones elementales por columnas cambiando la F inicial por C:

    Cij(A,i,j), Cia(A,i,a), Cija(A,i,j,a)

    Algoritmo de Gauss-Jordan

    Para poder aplicar dicho algoritmo a una matriz A es preciso previamente construir una nueva matriz Mampliada, resultado de colocar junto a la matriz A la matriz unidad del mismo orden. Este efecto puedeconseguirse con la siguiente instruccin:

    M=A.augment(identity_matrix(base_ring(A),A.nrows()))

    PRCTICA 2Resolucin de sistemas lineales

    Para construir la matriz ampliada del sistema Ax podemos emplear la siguiente instruccin

    M = A.augment(matrix(b).transpose())

    donde A es una matriz en SAGE y b un vector en SAGE.

    sustre()

    aplicada sobre la matriz ampliada y escalonada de un sistema de ecuaciones, devuelve su solucin mediantesustitucin regresiva.

    i,j

    i

    i,j

    = b

    192.168.190.128/home/admin/35/print 2/8

  • Mtodo de escalonamiento con pivoteo parcial

    F,U=forma_escalonada_piv(A, canonica?,transformaciones?)

    Similar a la funcin forma_escalonada(), esta versin aplica tcnica de escalonamiento con pivoteoparcial. Utiliza los mismos parmetros y opciones que la versin inicial..

    Mtodo de escalonamiento con pivoteo parcial escalado

    F,U=forma_escalonada_piv_esc(A, canonica?,transformaciones?)

    Una nueva tcnica de eleccin de pivote consistente en modificar el pivoteo parcial, tomando como nuevopivote en la parte de columna correspondiente aquel que resulte mayor al dividir su valor absoluto por elmayor valor absoluto de los elementos de la fila que lo contiene. Con los mismos parmetros y opciones quelas anteriores.

    Descomposicin LU de una matriz

    A continuacin se definen varias funciones que actan sobre una matriz:

    L,U=descompLU(A)

    proporciona la descomposicin LU de una matriz A en caso de que exista, informando en caso contrario.Nos devuelve la secuencia de las dos matrices de la descomposicin: L, U.

    P,L,U=descompPLU(A)

    proporciona la descomposicin PLU de una matriz A resultante de la eliminacin gaussiana con pivoteoparcial. Nos devuelve una secuencia de las tres matrices de la descomposicin: P, L, U.

    P,L,U=descompPLUppe(A)

    proporciona la descomposicin PLU de una matriz A resultante de la eliminacin gaussiana con pivoteoparcial escalado. Nos devuelve una secuencia de las tres matrices de la descomposicin: P, L, U.

    Aplicacin de la descomposicin LU a la resolucin de sistemas lineales

    Dado el sistema lineal A x y la descomposicin L , obtenemos las siguientes relaciones:

    U x y

    El primer sistema es triangular superior y se resuelve por sustitucin regresiva de las variables del vector x.

    El segundo sistema, triangular inferior, aunque tambin se podra resolver de forma similar, podemosinterpretarlo y resolverlo a travs de los multiplicadores que se han empleado durante el escalonamiento, yaque en realidad g es el resultado de aplicar sobre (vector b permutado segn P ) las transformaciones delproceso de escalonamiento.

    La funcin modld(L,b) modifica el vector b del lado derecho, obteniendo el vector g.

    La funcin sustre2(U,g) devuelve la solucin x del sistema. Esta funcin es similar a sustre(U) con la nicadiferencia de que toma 2 parmetros por separado: la matriz U y el trmino de la derecha, el vector g,

    = b U = P A

    = g L g = b

    b

    192.168.190.128/home/admin/35/print 3/8

  • mientras que en la versin inicial se tomaba la matriz ampliada .

    Descomposicin de Cholesky

    T=Cholesky(A)

    proporciona la matriz T de la descomposicin de Cholesky A T , para una matriz A simtrica y definidapositiva.

    sustpr2(M,b)

    resuelve un sistema lineal Mx con matriz M triangular inferior mediante sustitucin progresiva.

    PRCTICA 3Normas matriciales y radio espectral

    En SAGE podemos obtener las principales normas matriciales asociadas a una matriz A con el atributo A.norm(p). Tenemos

    A.norm(1)

    A.norm( 2) norma eucldea

    A.norm(Infinity)

    A.norm('frob') norma de Frobenius

    radio_espectral(A)

    proporciona el radio espectral de la matriz A.

    Mtodos matriciales de descomposicin

    Todos los mtodos de descomposicin estudiados parten de una descomposicin inicial de la forma

    donde D es matriz diagonal, E triangular inferior y F triangular superior.

    D,E,F=descomposicion(A)

    proporciona las tres matrices D, E y F de la descomposicin anterior.

    J=matriz_jacobi(A)

    proporciona, en caso de que exista, la matriz de Jacobi J asociada a una matriz A

    (U g)

    = T t

    = b

    A 1 = A 2 (A A)t

    A A F

    A = D E F

    192.168.190.128/home/admin/35/print 4/8

  • metodo_jacobi(A,b,tol,iter,ver?)

    dicha funcin intenta resolver un sistema Ax utilizando el mtodo iterativo de Jacobi, donde tol es unparmetro opcional que indica el nivel de tolerancia para detener el proceso iterativo; ste se detiene si lanorma eucldea . Su valor por defecto es tol=10 . Por otra parte, iter es otro parmetroopcional que fija el nmero mximo de iteraciones a realizar. Por defecto iter=1000. Finalmente, ver?es otroparmetro opcional que indica si se quieren visualizar las sucesivas aproximaciones (True) o no (False). Pordefecto se usa el valor False.

    L =matriz_gauss_seidel(A)

    proporciona, en caso de que exista, la matriz de Gauss-Seidel L asociada a una matriz A

    metodo_gauss_seidel(A,b,tol,iter,ver?)

    dicha funcin intenta resolver un sistema Ax utilizando el mtodo iterativo de Gauss-Seidel. Contiene losmismos parmetros y valores por defecto que metodo_jacobi( )

    En el mtodo iterativo de relajacin SOR, tenemos:

    x x

    La matriz L recibe el nombre de matriz de relajacin.

    L =matriz_relajacion(A, )

    proporciona, en caso de que exista, la matriz de relajacin L asociada a una matriz A

    metodo_relajacion(A,b,,tol,iter,ver?)

    Dicha funcin intenta resolver un sistema Ax utilizando el mtodo iterativo de relajacin SOR. Contienelos mismos parmetros y valores por defecto que metodo_jacobi( ), adems del parmetro de relajacin .

    PRCTICA 4

    Factorizacin QR por Gram-Schmidt

    Q,R=factorizacion_QR(A)

    proporciona la descomposicin A R, siguiendo la interpretacin matricial del mtodo de Gram-Schmidt.

    Nmero de condicin

    numero_condicion(A, p)

    = b

    x ol A b t 14

    1

    1

    = b

    k+1 = L k + c

    { L D E) (1 )D F = ( 1 ( + )c (D E) b = 1

    = b

    = Q

    192.168.190.128/home/admin/35/print 5/8

  • proporciona el nmero de condicin de una matriz A regular, para la norma especificada, donde p=1 serefiere a la norma-1, p=2 para la norma eucldea (valor por defecto) y p=Infinity para la norma infinito.

    Descomposicin en valores singulares

    U,D,V=descomposicion_SVD(A )

    calcula la descomposicin en valores singulares de una matriz A, resultando A DV .

    rango_SVD(A, tol)

    calcula el rango de una matriz a partir de su descomposicin en valores singulares, con un nivel de

    tolerancia , dado, esto es . El parmetro tol es opcional y su valor por defecto es

    tol= 0 .

    PRCTICA 5

    Factorizacin QR mediante rotaciones de Givens

    Q,R=factorizacion_QR_Givens(A, ver?)

    proporciona la factorizacin QR de una matriz A mediante rotaciones de Givens. El parmetro ver? esopcional y para valor True proporciona el resultado de cada iteracin o rotacin.

    Factorizacin QR mediante transformaciones de Householder

    H=Householder (v)

    devuelve la matriz de Householder asociada al vector v. Podemos especificar un tamao m para la matriz H mayor que el del vector v, con

    H=Householder2 (v,m)

    Q,R=factorizacion_QR_Householder(A,ver?)

    calcula la factorizacin QR de una matriz A mediante transformaciones de Householder. Elparmetro ver? es opcional y para valor True proporciona el resultado de cada iteracin o transformacin.

    Descomposicin en valores singulares reducida

    Dada una matriz , de rango n, su descomposicin en valores singulares reducida es de la formaA DV , donde verifica que U U , verifica que es una matriz ortogonal,V V , y es una matriz diagonal con los valores principales no nulos ordenados de mayor amenor a lo largo de la diagonal principal.

    = U t

    2r+1 + . . . + 2n 1 14

    A Rmn= U t U Rmn t = I V Rnnt = I D Rnn

    192.168.190.128/home/admin/35/print 6/8

  • U,D,V=descomposicion_SVD_reducida(A, tol)

    proporciona la descomposicin en valores singulares reducida de una matriz A DV . El parmetro toles opcional y por defecto vale tol=10 ; mide el nivel de tolerancia para calcular el rango efectivo de Amediante la descomposicin SVD.

    Ap=pseudoinversa(A, tol)

    calcula la pseudoinversa de Penrose de una matriz A. El parmetro tol es opcional y por defecto valetol=10 ; mide el nivel de tolerancia para calcular el rango efectivo de A mediante la descomposicin SVD.

    PRCTICA 6Matriz de compaa de un polinomio mnico

    A=matriz_compania(p(x))

    genera la matriz de compaa asociada a un polinomio mnico p(x).

    Mtodo de la potencia simple y variantes

    , =potencia_simple(A,ver=False,iter=1000,tol=10^(-12),z0)

    esta funcin aplica el mtodo de la potencia simple (con escalado) a una matriz A para obtener su autovalordominante y un autovector dominante. El parmetro ver es opcional y para valor ver=True, proporciona elvalor en cada iteracin. El parmetro iter es opcional y marca el nmero mximo de iteraciones a realizar. Elparmetro tol es opcional y marca un criterio de parada cuando . Podemos especificarun vector inicial z0, que por defecto es el vector lleno de unos. El error de aproximacin se define como

    .

    , =potencia_inversa(A,ver=False,iter=1000,tol=10^(-12),z0)

    esta funcin aplica el mtodo de la potencia inversa a una matriz A para obtener su autovalor de menormdulo y un autovector asociado. Los parmetros, opcionales, son iguales a la funcin anterior.

    , =potencia_inversa_desp(A,, ver=False,iter=1000,tol=10^(-12),z0)

    esta funcin aplica el mtodo de la potencia inversa con desplazamiento a una matriz A. Los demsparmetros son opcionales, iguales a las funciones anteriores.

    Mtodo QR de Francis

    lista=QR_Francis(A, ver=False,tol=10^(-15),iter=5000)

    esta funcin aplica el mtodo QR de Francis a una matriz A y devuelve la lista de autovaloresaproximados. El parmetro ver es opcional y para valor ver=True, proporciona la matriz T en cadaiteracin. El parmetro iter es opcional y marca el nmero mximo de iteraciones a realizar. El

    = U t14

    14

    v

    w ol k+1 wk 2 < t Av

    v

    v

    k

    192.168.190.128/home/admin/35/print 7/8

  • parmetro tol es opcional y marca un criterio de parada. Un elemento de T se considera nulo si su mduloes menor al valor tol. La matriz T se considera triangular si todos los elementos por debajo de la diagonaltienen mdulo menor al valor tol.

    FINAL DEL DOCUMENTO

    kk

    192.168.190.128/home/admin/35/print 8/8