Sunteți pe pagina 1din 33

MATLAB MATFUN Funciones matriciales Algebra lineal numrica. Anlisis matricial.

norm Matriz o norma vectorial.

Para matrices norm(X) es la 2-norm de X. norm(X,2) es la misma que norm(X). norm(X,1) es la 1-norm de X. norm(X,inf) es el norm infinito de X. norm(X,'fro') es la Frobenius norm de X. norm(X,P) est disponible para la matriz X slo si P es 1, 2, inf o 'fro'. Para vectores norm(V,P) = sum(abs(V).^P)^(1/P). norm(V) = norm(V,2). norm(V,inf) = max(abs(V)). norm(V,-inf) = min(abs(V)).

normest

Calcular la mtriz 2-norm.

normest(S) es una estimacin de la 2-norm de la mtriz S. normest(S,tol) utiliza el error relativo tol en lugar de 1.e-6. [nrm,cnt] = normest(..) tambin proporciona el nmero de iteraciones utilizadas.

Esta funcin est pensada principalmente para matrices dispersas, aunque funciona correctamente y puede ser til para matrices grandes y completas tambin. Utilice normest cuando su problema es lo suficientemente grande que NORM toma demasiado tiempo para calcular y un norm aproximado es aceptable. Clase de soporte para la entrada S: float: dobles, individuales.

rank

Rango de la mtriz.

rank(A) proporciona una estimacin del nmero de filas linealmente independientes o columnas de una matriz A. rank(A,tol) es el nmero de valores singulares de A que son mayores que tol. rank(A) utiliza el valor por defecto tol = max(size(A)) * eps(norm(A)). Clase de soporte para la entrada A: float: dobles, individuales.

det

Determinante.

det(X) es el determinante de la matriz cuadrada X. Utilizar COND en lugar de det para la prueba de singularidad de la matriz.

trace

Suma de elementos de la diagonal.

trace(A) es la suma de los elementos diagonales de A, que tambin es la suma de los valores propios de A. Clase de soporte para la entrada A: float: dobles, individuales.

null

Espacio nulo.

Z = null(A) es una base ortonormal para el espacio nulo de A obtenida de la descomposicin de valor singular. Es decir, A*Z tiene elementos insignificantes, size(Z,2) es la nulidad de A, y Z'*Z = I. Z = null(A,'r') es una base "racional" para el espacio nulo obtenido de la forma escalonada reducida por filas. A*Z es cero, size(Z,2) es una estimacin de la nulidad de A, y, si A es una pequea matriz con elementos enteros, los elementos de R son cocientes de enteros pequeos. La base ortonormal es preferible numricamente, mientras que la racional puede ser pedaggicamente preferible. Ejemplo:

A = 1 1 1 Z = null(A); Calculando tolerancia la 1-norm de la mtriz A*Z ser dentro de una pequea 2 2 2 3 3 3

norm(A*Z,1)< 1e-12 ans = 1 null(A,'r') = -2 1 0 -3 0 1

Clase de soporte para la entrada A: float: dobles, individuales.

orth

Ortogonalizacin.

Q = orth(A) es una base ortonormal para el rango de A. Es decir, Q'*Q = I, las columnas de Q abarcan el mismo espacio que las columnas de A, y el nmero de columnas de Q es el rango de A. Clase de soporte para la entrada A: float: dobles, individuales.

rref

Forma escalonada reducida.

R = rref(A) produce la forma escalonada reducida de A. [R,jb] = rref(A) tambin retorna un vector, jb, de modo que: r = length(jb) es la idea de este algoritmo del rango de A, x(jb) son las variables enlazadas en un sistema lineal, Ax = b, A(:,jb) es una base para el rango de A, R(1:r,jb) es el r-by-r matriz identidad. [R,jb] = rref(A,TOL) utiliza la tolerancia dada en las pruebas de rango.

Los errores de redondeo pueden causar este algoritmo para calcular un valor diferente para el rango de RANK, ORTH and NULL.

Clase de soporte para la entrada A: float: dobles, individuales.


Subspace ngulo entre subespacios.

subspace(A,B) encuentra el ngulo entre dos subespacios especificados por las columnas de A y B. Si el ngulo dependientes. es pequeo, los dos espacios son casi linealmente

En un experimento fsico descrito por algunas observaciones A, y una segunda realizacin del experimento descrito por B, subespacio (A, B) da una medida de la cantidad de nueva informacin proporcionada por el segundo experimento no asociado con errores estadsticos de las fluctuaciones.

Clase de soporte para las entradas A, B: float: dobles, individuales.

Ecuaciones lineales.
/ and / Solucin de la ecuacin lineal, utilizar "help slash".

& Logical (Lgico) AND. A & B representa un lgico and de matrices A y B and retorna una matriz que contiene elementos colocando un 1 lgico (VERDADERO) 0 lgico (FALSO). Un elemento de la matriz de salida se establece en 1 si ambas matrices de entrada contienen un elemento distinto de cero en ese mismo lugar de la matriz. De lo contrario, ese elemento se establece en 0. A y B deben tener las mismas dimensiones que un escalar. C = and(A,B) es llamado en la sintaxis 'A & B' cuando A o B es un objeto. Tenga en cuenta que hay dos lgicas y operadores en MATLAB. El operador & acta elemento por elemento y entre matrices, mientras el operador && acta como un corto circuito y entre valores escalares. Estas operaciones se explican en la documentacin de programacin de MATLAB en operadores lgicos, bajo el tema de Componentes bsicos del programa.

linsolve

Resuelver el sistema lineal A*X=B.

X = linsolve(A,B) resuelve el sistema lineal A*X=B usando factorizacin LU con un giro parcial cuando A es cuadrada, y la factorizacin QR con giro columna contraria. La advertencia se da si A est mal condicionada para matrices cuadradas y rango deficientes para matrices rectangulares. [X, R] = linsolve(A,B) suprime estas advertencias y declaraciones de R el recproco del nmero de condicin de A para matrices cuadradas, y el rango de A si A es rectangular. X = linsolve(A,B,OPTS) resuelve el sistema lineal A*X=B, con un programa de solucin apropiada determinada por las propiedades de la matriz A como se ha descrito por la estructura OPTS. Los campos de OPTS deben contener valores lgicos. Todos los valores de los campos son por defecto falsos. Ninguna prueba se realiza para verificar si A posee propiedades semejantes. A continuacin se muestra la lista de todos los posibles nombres de los campos y sus propiedades de la matriz correspondientes. Nombre del Campo: Propiedad de la Mtriz -----------------------------------------------LT : Lower Triangular (Triangular inferior) UT : Upper Triangular (Triangular superior) UHESS : Upper Hessenberg (Hessenberg superior) SYM : Real Symmetric or Complex Hermitian (Simetrico real o Hermitian Complejo) POSDEF : Positive Definite (Definido Positivo) RECT : General Rectangular TRANSA : (Conjugate) Transpose of A ((Conjugar) Transpuesta de A) Aqu hay una tabla que contiene todas las posibles combinaciones de las opciones:
LT UT UHESS SYM POSDEF RECT TRANSA ---------------------------------------T F F F F T/F T/F F T F F F T/F T/F F F T F F F T/F F F F T T/F F T/F F F F F F T/F T/F

Ejemplo:
A = triu(rand(5,3)); x = [1 1 1 0 0]'; b = A'*x; y1 = (A')\b opts.UT = true; opts.TRANSA = true; y2 = linsolve(A,b,opts)

inv

Mtriz inversa.

inv(X) es la inversa de la mtriz cuadrada X. Un mensaje de advertencia se imprimir si X est mal escalado o casi singular.

rcond

LAPACK reciprocal condition estimator. (Condicin estimador recproco).

rcond(X) es una estimacin para el recproco de la condicin de X en la 1-norm obtenida por la LAPACK condicin estimador. Si X est bien condicionado, rcond(X) est cerca de 1.0. Si X est mal condicionado, rcond(X) est cerca de EPS. cond Condicin nmero respecto de la inversin.

cond(X) returna la 2-norm condicin nmero (el radio de el valor singular ms grande de X a el ms pequeo). Nmeros largos de condicin indican una mtriz casi singular. cond(X,P) retorna la condicin nmero de X en P-norm:
NORM(X,P) * NORM(INV(X),P). donde P = 1, 2, inf, or 'fro'.

Clase de soporte para la entrada X: float: dobles, individuales. condest 1-norm condicin nmero estimado.

C = condest(A) calcula una cota inferior C para la 1-norm condicin nmero de una matriz cuadrada A. C = condest(A,T) cambia T, un parmetro entero positivo igual al nmero de columnas en una matriz de iteracin subyacente. Aumentar el nmero de columnas por lo general da una mejor condicin de estimacin, pero aumenta el coste. El valor por defecto es T = 2, lo que casi siempre da una estimacin correcta dentro de un factor 2. [C,V] = condest(A) tambin calcula un vector V, que es un vector nulo aproximada si C es grande. V satisface NORM(A*V,1) = NORM(A,1)*NORM(V,1)/C. Nota: condest invoca RAND. Si se requieren resultados repetibles la invocacin RAND('STATE',J), para algun J, antes de llamar a esta funcin. condest est basado en la 1-norm condicin estimador de Hager [1] y un bloque orientado a la generalizacin del estimador de Hager dada por Higham y Tisseur [2]. El corazn del algoritmo implica una bsqueda iterativa para estimar ||A^{-1}||_1 sin calcular A^{-1}. Esto est planteado como la parte convexa, pero no diferenciable, problema de optimizacin: max ||A^{-1}x||_1 sujeto a ||x||_1 = 1. normest1 de poder. Estimacin de 1-norm estimacin de la matriz por bloques 1-norm mtodo

C = normest1(A) retorna una estimacin C de norm(A,1), donde A es N-by-N.

A puede ser una matriz explcita o una funcin AFUN tal que FEVAL(@AFUN,FLAG,X) para los siguientes valores de FLAG 'dim' 'real' 'notransp' 'transp' retorna N 1 si A es real, 0 para lo dems A*X A'*X

C = normest1(A,T) cambia el nmero de columnas de la matriz de iteracin del valor predeterminado 2. Escogiendo T <= N/4 is recomendado, para los dems debera ser ms fcil para formar la norma exactamente a partir de los elementos de A, como se hace cuando N <= 4 o T == N. Si T < 0 cuando las columnas ABS(T) son usadas y la informacin de seguimiento se imprime. Si T es dado como la matriz vaca ([ ]) cuando por defecto T es usado. C = normest1(A,T,X0) especifica una matriz X0 empezando por las columnas de la unidad 1-norma y por defecto es aleatorio para T> 1. Si X0 es dada como la matriz vacia ([ ]) entonces por defecto X0 es usada. C=normest1(AFUN,T,X0,P1,P2,...) FEVAL(@AFUN,FLAG,X,P1,P2,...). pasa entradas extras P1,P2,... por

[C,V] = normest1(A,...) and [C,V,W] = normest1(A,...) tambin retorna vectores V y W tal que W=A*V y NORM(W,1) = C*NORM(V,1). [C,V,W,IT] = normest1(A,...) tambin retorna un vector IT tal que IT(1) es el nmero de iteraciones, IT(2) es el nmero de productos de matrices N-por-N por N-por-T. En promedio, IT(2)=4. Nota: normest1 se llama RAND. Si resultados repetibles son requeridos entonces invocan RAND('STATE',J), para algn J, antes de llamar a esta funcin.

Chol

Factorizacin Cholesky.

chol(A) utiliza slo el tringulo diagonal y superior de A. El tringulo inferior se supone que es la (complejo conjugado) transpuesta del tringulo superior. Si A es definida positiva, entonces R = chol(A) produce un triangular superior R de manera que R'*R = A. Si A no es definida positiva, un mensaje de error se imprime. L = chol(A,'lower') utiliza slo la diagonal y el tringulo inferior de A para producir un L triangular inferior de manera que L*L' = A. Si A no es definida positiva, un mensaje de error se imprime. Cuando A es escasa, esta sintaxis de chol es ms rpida.

[R,p] = chol(A), con dos argumentos de salida, nunca se produce un mensaje de error. Si A es definida positiva, entonces p es 0 y R es el mismo que el anterior. Pero si A no es definida positiva, entonces p es un nmero entero positivo. Cuando A est completa, R es una matriz triangular superior de orden q=p-1 tal que R'*R=A(1:q,1:q). Cuando A est escasa, R es una matriz triangular superior de tamao q-por-n de manera que la regin en forma de L de las primeras q filas y primeras q columnas R'*R de acuerdo con los de A. [L,p] = chol(A,'lower'), funciones como las descritas anteriormente, solo una matriz triangular inferior L es producido. Es decir, cuando A es completa, L es una matriz triangular inferior de orden q = p-1 tal que L*L' = A(1:q,1:q). Cuando A est escasa, L es una matriz triangular inferior de tamao n-por-q de manera que la regin en forma de L de las primeras q filas y primeras q columnas de L*L' de acuerdo con los de A. [R,p,S] = chol(A), cuando A es escasa, devuelve una matriz de permutacin S, que es un preorden de A obtenida por AMD. Cuando p = 0, R es una matriz triangular superior de tal forma que R'*R=S'*A*S. Cuando p no es cero, R es una matriz triangular superior de tamao q-por-n de manera que la regin en forma de L de las primeras q filas y primeras q columnas de R'*R acuerdo con los de S'*A*S. El factor de S'*A*S tiende a ser ms escasa que el factor de A. [R,p,s] = chol(A,'vector') devuelve la informacin de permutacin como un vector s tal que A(s,s)=R'*R, cuando p = 0. El indicador 'matriz' se puede utilizar en lugar de 'vector' para obtener el comportamiento predeterminado. [L,p,s] = chol(A,'lower','vector') utiliza slo la diagonal y el tringulo inferior de A y devuelve una matriz triangular inferior L y un vector de permutacin s tal que A(s,s) = L*L', when p = 0. Como el anterior, 'matriz' se puede utilizar en lugar de 'vector' para obtener una matriz de permutacin. Para A escasa, CHOLMOD se utiliza para calcular el factor Cholesky. cholinc Sparse Incomplete Cholesky and Cholesky-Infinity factorizations.

cholinc produce dos tipos diferentes de incompletas factorizaciones Cholesky. -- la gota de tolerancia y el nivel 0 de factorizaciones de relleno. Estos factores pueden ser tiles como preacondicionadores para un sistema simtrico definido positivo de ecuaciones lineales que se resuelve mediante un mtodo iterativo como el PCG (Preconditioned Conjugate Gradients). R = cholinc(X,DROPTOL) realiza la factorizacin incompleta Cholesky de X, con una gota de tolerancia DROPTOL. R = cholinc(X,OPTS) permite opciones adicionales a la factorizacin incompleta Cholesky. OPTS es una estructura con hasta tres campos: DROPTOL --- la gota de tolerancia de la factorizacin incompleta MICHOL --- modificado incompleto Cholesky RDIAG --- sustituir los ceros en la diagonal de R Slo los campos de inters deben establecerse.

DROPTOL es un escalar no negativo utilizado como la gota de tolerancia para la factorizacin incompleta de Cholesky. Esta factorizacin se calcula mediante la realizacin de la factorizacin LU incompleta con la opcin de umbral de pivote establece en 0 (lo que obliga a pivotamiento en diagonal) y luego escalar las filas de el factor triangular superior incompleta, U, por la raz cuadrada de los elementos de la diagonal en esa columna. Dado que las entradas no nulas U(I,J) estn acotadas debajo por DROPTOL*NORM(X(:,J)) (see LUINC), las entradas no nulas R(I,J) estn acotadas debajo por DROPTOL*NORM(X(:,J))/R(I,I). Colocando DROPTOL = 0 produce la factorizacin completa Cholesky, la cual es predeterminada. MICHOL pone para la factorizacin modificada incompleta Cholesky. Su valor es 0 (sin modificar, el valor por defecto) o 1 (modificada). Esto realiza la factorizacin LU incompleta modificada de X y, entonces las escalas devolvieron el factor triangular superior como se describi anteriormente. RDIAG es ya sea 0 o 1. Si es 1, todas las entradas de la diagonal cero del factor R triangular superior se reemplazan por la raz cuadrada de la tolerancia estacin local en un intento de evitar un factor singular. El valor predeterminado es 0. Ejemplo: A = delsq(numgrid('C',25)); nnz(A) nnz(chol(A)) nnz(cholinc(A,1e-3)) Esto demuestra que A tiene 2063 no ceros, su completa factorizacin de Cholesky tiene 8513 no ceros, y su incompleta factorizacin de Cholesky con una gota de tolerancia de 1e-3 tiene 4835 no ceros. R = cholinc(X,'0') produce el factor de Cholesky incompleto de una verdadera matriz dispersa simtrica definida positiva con nivel 0 de relleno (es decir, sin relleno). El triangular superior R tiene el mismo patrn de escasez como triu(X), si bien R puede ser cero en algunas posiciones en las que X es distinto de cero debido a la cancelacin. El tringulo inferior de X se supone que es la transpuesta de la parte superior. Tenga en cuenta que lo definitivo positivo de X no garantiza la existencia de un factor con la escasez necesaria. Un mensaje de error se produce si la factorizacin no es posible. R'*R t de acuerdo con X sobre su patrn de escasez. [R,p] = cholinc(X,'0'), con dos argumentos de salida, nunca se produce un mensaje de error. Si R existe, entonces p es 0. Pero si el factor incompleto no existe, entonces p es un nmero entero positivo y R es una matriz triangular superior de tamao q-por-n donde q = p-1 de manera que el patrn de escasez de R es la de la q-por-n tringulo superior de X. R'*R est de acuerdo con X sobre el patrn de escasez de sus primeras q filas y primeras q columnas. Ejemplo: A = delsq(numgrid('N',10)); R = cholinc(A,'0'); isequal(spones(R), spones(triu(A)))

A(8,8) = 0; [R2,p] = cholinc(A,'0'); isequal(spones(R2), spones(triu(A(1:p-1,:)))) D = (R'*R) .* spones(A) - A; D has entries of the order of eps. R = cholinc(X,'inf') produce la factorizacin Cholesky-Infinity. Esta factorizacin se basa en la factorizacin de Cholesky, y se ocupa de las matrices semi-definidas reales positivos. Puede ser til para encontrar algn tipo de solucin a los sistemas que surgen en el mtodo de problemas punto-interior primal-dual. Cuando se encuentra un pivote cero en la factorizacin de Cholesky ordinaria, la diagonal del factor de Cholesky-Infinity se establece en Inf y el resto de esa fila se establece en 0. Esto est diseado para forzar un 0 en la entrada correspondiente del vector solucin en el sistema asociado de ecuaciones lineales. En la prctica, X se supone que es positivo semi-definido por lo que incluso pivotes negativos se sustituyen por Inf. Ejemplo: Esta matriz dispersa simtrica es singular, por lo que la factorizacin de Cholesky falla en el pivote cero en la tercera fila. Pero cholinc logra calculando todas las filas de la factorizacin de Cholesky-Infinity. S = sparse([ 1 0 3 0 25 0 3 0 9 0 30 0 [R,p] = chol(S); Rinf = cholinc(S,'inf'); 0; 30; 0; 661 ]);

cholinc slo funciona para matrices dispersas.

ldl

Block ldl' factorization for Hermitian indefinite matrices.

Asumiendo que A es una mtriz Hermitian (that is, A == A'), [L,D] = ldl(A) almacena un bloque de matriz diagonal D y una "matriz triangular inferior psicolgicamente" (es decir, un producto de la unidad inferior triangular y matrices de permutacin) en L para que A = L*D*L'. El bloque de matriz diagonal D tiene bloques de 1x1 y 2x2 en su diagonal. Esta sintaxis no es vlida para escasa A. [L,D,P] = ldl(A) retorna una matriz triangular inferior unitaria L, bloque diagonal D, y la permutacin P asi que P'*A*P = L*D*L'. Esto es equivalente a [L,D,P] = ldl(A,'matrix'). [L,D,p] = ldl(A,'vector') devuelve la informacin de permutacin como un vector en vez de una matriz. Es decir, p es un vector fila de tal manera que A(p,p) = L*D*L'.

L = ldl(A) devuelve slo la "matriz triangular inferior psicolgicamente" L como en la forma de salida dos. La informacin de permutacin se pierde, ya que es el factor de bloque diagonal D. Esta sintaxis no es vlida para escasa A. Por defecto, ldl se refiere slo al tringulo diagonal e inferior de A, y se supone que el tringulo superior es la transpuesta conjugada compleja del tringulo inferior. Por lo tanto [L,D,P]=ldl(TRIL(A)) y [L,D,P] = ldl(A) ambos devuelven los mismos factores exactos. [U,D,P] = ldl(A,'upper') se refiere slo el tringulo diagonal y superior de A y se supone que el tringulo inferior es la transpuesta conjugada compleja del tringulo superior. Esta llamada devuelve una unidad de matriz U superior triangulares de tal forma que P'*A*P = U'*D*U (suponiendo que A es hermitiana, y no slo superior triangular). Similarmente, [L,D,P]=ldl(A,'lower') da el comportamiento predeterminado. [U,D,p] = ldl(A,'upper','vector') devuelve la informacin de permutacin como un vector, como lo hace [L,D,p]=ldl(A,'lower','vector'). [L,D,P,S] = ldl(A) devuelve una unidad inferior triangular L, bloque diagonal D, permutacin matriz P, y la ampliacin de la matriz S tal que P'*S*A*S*P=L*D*L'. Esta sintaxis slo est disponible para matrices dispersas reales, y slo el tringulo inferior de A se hace referencia. ldl utiliza MA57 para real sparse A. [L,D,P,S] = ldl(A,THRESH) utiliza THRESH como la tolerancia de pivote en MA57. THRESH debe haber un doble escalar situado en el intervalo [0, 0.5]. El valor predeterminado para THRESH es 0.01. El uso de valores ms pequeos de THRESH puede dar tiempos de factorizacin ms rpidos y menos entradas, pero tambin puede resultar en una factorizacin menos estable. Esta sintaxis slo est disponible para matrices dispersas reales. [U,D,p,S] = ldl(A,THRESH,'upper','vector') define la tolerancia de pivote y devuelve triangular superior U y el vector de permutacin p como se describe anteriormente.

lu

lu factorizacin.

[L,U] = lu(A) guarda una matriz triangular superior en U y una "matriz triangular inferior psicolgicamente" (es decir, un producto de menor triangular y las matrices de permutacin) en L, de manera que A = L*U. A puede ser rectangular. [L,U,P] = lu(A) retorna una unidad de matriz triangular inferior L, matriz triangular superior U, y la matriz de permutacin P tal que P*A = L*U. [L,U,p] = lu(A,'vector') devuelve la informacin de permutacin como un vector en vez de una matriz. Es decir, p es un vector fila de tal manera que A(p,:)=L*U. Del mismo modo, [L,U,P]=lu(A,'matriz') devuelve una matriz de permutacin P. Este es el comportamiento predeterminado.

Y = lu(A) devuelve la salida de LAPACK DE DGETRF o rutina ZGETRF si A est llena. Si A es escasa, Y contiene la estricta tringulo inferior de la L incrustado en la misma matriz que el tringulo superior de U. En ambos casos completos y escasos, la informacin de permutacin se pierde. [L,U,P,Q] = lu(A) devuelve la unidad de matriz triangular inferior L, matriz triangular superior U, una matriz de permutacin P y una columna reordenando la matriz Q tal que P*A*Q = L*U para escasa no vacia A. Esto utiliza UMFPACK y est significativamente ms tiempo y la memoria eficiente que las otras sintaxis, incluso cuando se utiliza con COLAMD. [L,U,p,q] = lu(A,'vector') devuelve dos filas vectores p y q de modo que A(p, q) = L*U. El uso de 'matriz' en lugar de 'vector' devuelve matrices de permutacin. [L,U,P,Q,R] = lu(A) devuelve la unidad de matriz triangular inferior L, matriz triangular superior U, unas matrices de permutacin P y Q, y una escala diagonal de la matriz R de modo que P*(R\A)*Q= L*U para escasa no vacia A. Este utiliza UMFPACK as. Tpicamente, pero no siempre, la fila-escala conduce a una factorizacin ms escaso y ms estable. Tenga en cuenta que esta factorizacin es el mismo que el utilizado por escasa MLDIVIDE cuando se utiliza UMFPACK. [L,U,p,q,R] = lu(A,'vector') devuelve la informacin de la permutacin de dos hileras de vectores p y q tal que R(:,p)\A(:,q) = L*U. El uso de 'matriz' en lugar de 'vector' devuelve matrices de permutacin. [L,U,P] = lu(A,THRESH) controla pivoting en matrices dispersas, cuando THRESH es un umbral de pivote en [0,1]. Pivotante se produce cuando la entrada en diagonal en una columna tiene magnitud menor que los tiempos trillar la magnitud de cualquier entrada de sub-diagonal en esa columna. THRESH= 0 fuerzas de pivoting en diagonal. THRESH=1 es el valor predeterminado. [L,U,P,Q,R] = lu(A,THRESH) controla pivoting en UMFPACK. THRESH es un uno o dos elementos de vectores que por defecto es [0.1 0.001]. Si UMFPACK selecciona su estrategia pivotante asimtrico, THRESH (2) no se utiliza. Utiliza su estrategia pivotante simtrica si A es cuadrada, con una estructura diferente de cero mayormente simtrica y una diagonal sobre todo distinto de cero. Para su estrategia asimtrica, la fila ms escasa i que cumpla el requisito A(i,j) >= THRESH(1) * max(abs(A(j:m,j))) es seleccionado. Un valor de 1,0 da como resultado pivoteo parcial convencional. Las entradas en L tienen valor absoluto de 1/THRESH (1) o menos. Para su estrategia simtrica, se selecciona la diagonal utilizando la misma prueba pero con THRESH (2) en su lugar. Si la entrada diagonal no pasa esta prueba, se selecciona una entrada de pivote por debajo de la diagonal, utilizando THRESH (1). En este caso, L tiene entradas con 1/min valor absoluto (THRESH) o menos. Los valores ms bajos de UMBRAL (1) y trilla (2) tienden a conducir a factores lu dispersas, pero la solucin puede llegar a ser inexacta. Los valores ms altos pueden conducir a una solucin ms exacta (pero no siempre), y por lo general un aumento en el uso total de trabajo y la memoria.

[L,U,p] = lu(A,THRESH,'vector') y [L,U,p,q,R] = lu(A,THRESH,'vector') Tambin son vlidos para matrices dispersas y vectores de retorno de permutacin. El uso de 'matriz' en lugar de 'vector' devuelve matrices de permutacin.

luinc

Sparse Incomplete LU factorization.

luinc produce dos tipos diferentes de factorizaciones LU incompletos - la gota de tolerancia y el nivel 0 de factorizaciones de relleno. Estos factores pueden ser tiles como preacondicionadores para un sistema de ecuaciones lineales se resuelven por mtodos iterativos como BICG (BiConjugate Gradients), GMRES (Generalized Minimum Residual Method) o PCG (Preconditioned Conjugate Gradients). luinc(A,DROPTOL) lleva a cabo la factorizacin LU incompleta de A con una gota de tolerancia DROPTOL. luinc(A,OPTS) permite opciones adicionales para la factorizacin LU incompleta. OPTS es una estructura con un mximo de cuatro campos: droptol --milu --udiag --thresh --the drop tolerance of incomplete LU modified incomplete LU replace zeros on the diagonal of U the pivot umbral (ver tambien LU)

Slo los campos de inters son necesarios de establecer. droptol es un escalar no negativo utilizado como la tolerancia de la gota para la factorizacin LU incompleta. Esta factorizacin se calcula de la misma manera (columna-orientado) como la factorizacin LU excepto despus de cada columna de L y U se ha calculado, todas las entradas en la columna que son ms pequeos en magnitud que la tolerancia de estacin local, que es droptol*NORM de la columna de A, son "dropped" para L o U. La nica excepcin a esta regla de dropping es la diagonal del factor triangular superior U, que se mantiene incluso si es demasiado pequeo. Tenga en cuenta que las entradas del factor inferior L triangular son probados antes de ser reducido por el pivote. Poniendo droptol = 0 produce la factorizacin LU completa, que es el valor predeterminado. milu representa factorizacin modificada LU incompleta. Su valor es 0 (sin modificar, el valor por defecto) o 1 (modificada). En lugar de descartar las entradas de la columna recin formado de los factores, que se restan de la diagonal del factor triangular superior, U. udiag es o bien 0 o 1. Si es 1, ningn cero entradas diagonales del factor triangular superior U estn reemplazados por la tolerancia gota local en un intento de evitar un factor singular. El valor predeterminado es 0.

thresh es un pivot umbral en [0,1]. Pivoting se produce cuando la entrada en diagonal en una columna tiene magnitud menor que thresh veces la magnitud de cualquier entrada sub-diagonal en esa columna. thresh = 0 fuerzas de giro diagonal. thresh = 1 es el valor predeterminado. [L,U,p] = luinc(A,OPTS,'vector') devuelve la informacin de permutacin como un vector fila en lugar de como una matriz de permutacin de manera que L y U son los factores incompleta de un (p, :). [L, U, P]=luinc(A, OPTA, "matriz") se puede utilizar para obtener una matriz de permutacin. Este es el comportamiento predeterminado. Ejemplo: load west0479 A = west0479; nnz(A) nnz(lu(A)) nnz(luinc(A,1e-6))

Esto demuestra que A tiene 1887 no ceros, su completa factorizacin LU 16777 no tiene ceros, y su factorizacin LU incompleta con una gota de tolerancia de 1e-6 tiene 10.311 no ceros. [L,U,P] = luinc(A,'0') produce los factores LU incompletos de una matriz dispersa con 0 nivel de relleno (es decir, sin relleno). L es la unidad triangular inferior, U es triangular superior y P es una matriz de permutacin. U tiene el mismo patrn de escasez como triu(P * A). L tiene el mismo patrn de escasez como tril(P * A), a excepcin de 1 de en la diagonal de la L en la que P * A puede ser cero. Tanto la L y U pueden tener un cero a causa de la cancelacin que P * A es distinto de cero. L * U difiere de P * A slo fuera del patrn de escasez de P * A. [L,U,p] = luinc(A,'0','vector') Devuelve un vector de permutacin en lugar de una matriz de permutacin. El indicador "matriz" se puede utilizar en lugar de 'vector' para obtener una matriz de permutacin. [L,U] = luinc(A,'0') produce triangular superior U y L es una permutacin de matriz triangular unidad inferior. Por lo tanto no hay comparacin se puede hacer entre los patrones de escasez de L, U y A, aunque nnz(L)+nnz(u)=nnz(A)+n. L * U difiere de un slo fuera de su patrn de escasez. LU = luinc(A,'0') retorna "L+U-I", donde L es una unidad triangular inferior, U es triangular superior y la informacin de permutacin se pierde. Ejemplo: load west0479 A = west0479; [L,U,P] = luinc(A,'0'); isequal(spones(U),spones(triu(P*A))) spones(L) ~= spones(tril(P*A)) D = (L*U) .* spones(P*A) - P*A

spones(L) difiere de spones(tril (P * A)) en algunas posiciones en la diagonal y en una posicin en donde L cancelacin llevado a cero un elemento distinto de cero de P * A. Las entradas de D son del orden de los eps. luinc slo funciona para matrices dispersas.

qr

Orthogonal-triangular decomposition.

[Q,R] = qr(A), donde A es m-by-n, realiza un m-by-n matriz triangular superior R y un m-by-m matriz unitaria Q tal que A = Q*R. [Q,R] = qr(A,0) produce el "ahorro de tamao" descomposicin. Si m>n, solo las primeras n columnas de Q y las primeras n filas de R son calculadas. Si m<=n, sto es lo mismo que [Q,R]=qr(A). Si A esta llena: [Q,R,E] = qr(A) produce Q unitario, triangular superior R y una permutacin matriz E de manera que A*E=Q*R. La columna de permutacin E se elige de manera que el ABS(DIAG(R)) est disminuyendo. [Q,R,E] = qr(A,0) produce un "ahorro de tamao" decomposicin en la cual E es un vector de permutacin, tal que A(:,E) = Q*R. X = qr(A) and X = qr(A,0) retorna la salida de LAPACK's *GEQRF routine. TRIU(X) es el factor triangulas superior R. Si A esta esparcida: R = qr(A) calcula una "Q-less qr decomposition" y retorna el factor triangular superior R. Tenga en cuenta que R = CHOL(A'*A). Puesto que Q esta a menudo casi llena, esta se prefiere [Q,R] = qr(A). R = qr(A,0) produce "ahorro de tamao" R. Si m>n, R solo tiene n filas. If m<=n, esto es lo mismo que R = qr(A). [Q,R,E] = qr(A) produce Q unitario, triangular superior R y una matriz de permutacin E tal que A*E=Q*R. La columna de permutacin E se elige para reducir temporalmente en R. [Q,R,E] = qr(A,0) produce un "ahorro de tamao" decomposicin en el cual E es un vector de permutacin, tal que A(:,E) = Q*R. [C,R] = qr(A,B), donde B tiene tantas filas como A, retorna C = Q'*B. La solucin por mnimos cuadrados para A*X = B is X = R\C.

[C,R,E] = qr(A,B), tambin devuelve un ordenamiento llenar-reducir. La solucin por mnimos cuadrados para A*X = B is X = E*(R\C). [C,R] = qr(A,B,0) produce "ahorro de tamao" resultados. Si m>n, C y R solo tienen n filas. Si m<=n, esto es lo mismo que [C,R] = qr(A,B). [C,R,E] = qr(A,B,0) adems, produce una permutacin vector de la llenar-reduccin E. En este caso, la solucin de mnimos cuadrados para A*X = B is X(E,:) = R\C. Ejemplo: La solucin aproximada mnimos cuadrados para A * x = b se puede encontrar con la descomposicin Q-less qr y y un paso de refinamiento iterativo: Si es sparse(A), R = qr(A); ms R = triu(qr(A)); y x = R\(R'\(A'*b)); r = b - A*x; e = R\(R'\(A'*r)); x = x + e;

lsqnonneg Linear least squares with nonnegativity constraints - Lineales de cuadrados mnimos con restricciones de no negatividad.

X = lsqnonneg(C,d) devuelve el vector X que minimiza NORM (d-C*X) sujeta a X>=0. C y D deben ser reales. X = lsqnonneg(C,d,OPTIONS) minimiza con los parmetros de optimizacin por defecto reemplazados por los valores en la estructura OPTIONS, un argumento creado con la funcin OPTIMSET. Ver OPTIMSET para ms detalles. Las opciones usadas son Display and TolX. (Una tolerancia predeterminada TolX of 10*MAX(SIZE(C))*NORM(C,1)*EPS es usado.) X = lsqnonneg(PROBLEM) encuentra el mnimo para PROBLEM. PROBLEM es una estructura con la matriz 'C' en PROBLEM.C, el vector 'd' en PROBLEM.d, la estructura de opciones en PROBLEM.options, y el nombre del solver 'lsqnonneg' en PROBLEM.solver. La estructura PROBLEM debe tener todos los campos. [X,RESNORM] = lsqnonneg(...)Tambin devuelve el valor del cuadrado 2-norm del residuo: norm(dC*X)^2. [X,RESNORM,RESIDUAL] = lsqnonneg(...)Tambin devuelve el valor de la residual: d-C*X. [X,RESNORM,RESIDUAL,EXITFLAG] = lsqnonneg(...) retorna un EXITFLAG que describe la condicin de salida de LSQNONNEG. Posibles valores de EXITFLAG y las condiciones de salida correspondientes son 1 lsqnonneg convergido con una solucin X. 0 Cuenta de iteracin se ha superado. El aumento de la tolerancia (OPTIONS.TolX) puede conducir a una solucin.

[X,RESNORM,RESIDUAL,EXITFLAG,OUTPUT] = lsqnonneg(...) retorna una estructura OUTPUT con el nmero de pasos dados en OUTPUT.iterations, el tipo de algoritmo utilizado en OUTPUT.algorithm, y el mensaje de salida en OUTPUT.message. [X,RESNORM,RESIDUAL,EXITFLAG,OUTPUT,LAMBDA] = lsqnonneg(...) retorna el vector doble LAMBDA donde LAMBDA(i) <= 0 cuando X(i) es (aproximadamente) 0 y LAMBDA(i) es (aproximadamente) 0 cuando X(i) > 0.

pinv

Pseudoinverse.

X = pinv(A) produce una matriz X de las mismas dimensiones como A 'de manera que A*X*A = A, X*A*X = X y A*X y X*A son Hermitian. El clculo se basa en SVD(A) y los valores singulares de menos de una tolerancia se tratan como cero. La tolerancia por defecto es MAX(SIZE(A))*NORM(A)*EPS(class(A)). pinv(A,TOL) utiliza la tolerancia TOL en lugar del predeterminado. Clase de soporte para la entrada A: float: dobles, individuales.

Lscov Least squares with known covariance - Mnimos cuadrados con covarianza conocida

X = lscov(A,B) devuelve la solucin de mnimos cuadrados ordinaria para el sistema lineal de ecuaciones A * X = B, es decir, X es el vector de N-por-1 que minimiza la suma de errores cuadrticos (B-A*X)'*(B-A*X), donde A es M-por-N, y B es M-por-1. B tambin puede ser una matriz de M-por-K, y lscov devuelve una solucin para cada columna de B. Cuando rango (A) <N, lscov establece el nmero mximo posible de elementos de X a cero para obtener una "solucin bsica". X = lscov(A,B,W), donde W es un vector de longitud M de positivos reales relevantes, devuelve la solucin de mnimos cuadrados ponderada para el sistema lineal A * X = B, es decir, X minimiza (BA*X)'*diag(W)*(B-A*X). W contiene tpicamente ya sea recuentos o variaciones inversas. X = lscov(A,B,V), donde V es una M-por-M matriz simtrica (o hermitian) definida positiva, devuelve la solucin de mnimos cuadrados generalizado al sistema lineal A*X=B con matriz de covarianza proporcionales a V, es decir, X minima (B - A*X)'*inv(V)*(B - A*X). De manera ms general, si V est lleno, puede ser positivo semidefinido y lscov retorna X que es una solucin para el problema de minimizacin contenido minimo E'* E sujetas a A*X + T*E = B E,X donde T*T' = V. Cuando V es semidefinida, este problema tendr una solucin slo si B es consistente con A y V (es decir, en el espacio de la columna de [AT]), de lo contrario lscov devuelve un error.

Por defecto, lscov calcula la descomposicin de Cholesky de V y, en efecto, invierte ese factor a transformar el problema en mnimos cuadrados ordinarios. Sin embargo, si lscov determina que V es semidefinida, se utiliza un algoritmo de descomposicin ortogonal que evita la inversin de V. X = lscov(A,B,V,ALG) le permite elegir de forma explcita el algoritmo utilizado para calcular X cuando V es una matriz. lscov (A, B, V, 'chol') utiliza la descomposicin de Cholesky de V. lscov (A, B, V, 'orth') utiliza descomposiciones ortogonales, y es ms apropiado cuando V es mal condicionado o singular, sino que es computacionalmente ms caro. 'orth' no se permite cuando cualquiera de las entradas son escasos. [X,STDX] = lscov(...) devuelve los errores estndares estimados de X. Cuando A es rango deficiente, STDX contiene ceros en los elementos correspondientes a los elementos necesariamente cero de X. [X,STDX,MSE] = lscov(...) devuelve el error cuadrtico medio. [X,STDX,MSE,S] = lscov(...)devuelve la matriz de covarianza estimada de X. Cuando A es rango deficiente, S contiene ceros en las filas y las columnas correspondientes a las necesariamente cero elementos de X. lscov no pueden regresar S si se llama con mltiples lados derechos (es decir, el tamao (B, 2)> 1). Las frmulas estndar para estas cantidades, cuando A y V son de rango completo, son los siguientes: X = inv(A'*inv(V)*A)*A'*inv(V)*B MSE = B'*(inv(V) - inv(V)*A*inv(A'*inv(V)*A)*A'*inv(V))*B./(M-N) S = inv(A'*inv(V)*A)*MSE STDX = sqrt(diag(S)) Sin embargo, lscov utiliza mtodos que son ms rpidos y ms estables, y son aplicables para clasificar los casos deficientes. lscov asume que la matriz de covarianza de B es conocida slo hasta un factor de escala. MSE es una estimacin de que el factor de escala desconocida, y lscov escala las salidas S y STDX adecuadamente. Sin embargo, si V es conocido por ser exactamente la matriz de covarianza de B, despus de que la escala es innecesaria. Para obtener las estimaciones correspondientes en este caso, usted debe cambiar la escala de S y STDX por 1/MSE y sqrt (1/MSE), respectivamente. Clase de soporte para las entradas A,B,V,W: float: dobles, indivduales.

Valores propios y valores singulars


eig Valores propios y vectores propios.

E = eig(X) es un vector que contiene los valores propios de una matriz cuadrada X.

[V,D] = eig(X) produce una matriz diagonal D de valores propios y una matriz completa V cuyas columnas son los vectores propios correspondientes a fin de que X*V=V*D. [V,D] = eig(X,'nobalance') realiza el clculo con balanceo deshabilitado, lo que a veces da resultados ms precisos para ciertos problemas con la escala inusual. Si X es simtrica, eig (X, 'nobalance') es ignorado ya que X ya est equilibrada. E = eig(A,B) es un vector que contiene los valores propios generalizados de matrices cuadradas A y B. [V,D] = eig(A,B) produce una matriz diagonal D de autovalores generalizados y una matriz completa V cuyas columnas son los vectores propios correspondientes a fin de que A*V=B*V*D. eig(A,B,'chol') es el mismo que eig(A, B) para A simtrica y B simtrica definida positiva. Calcula los valores propios generalizados de A y B usando la factorizacin de Cholesky de B. eig(A,B,'qz') ignora la simetra de A y B y utiliza el algoritmo QZ. En general, los dos algoritmos devuelven el mismo resultado, sin embargo utilizando el algoritmo QZ puede ser ms estable para ciertos problemas. El indicador se ignora cuando A y B no son simtricos.

svd

Singular value decomposition - La descomposicin de valor singular.

[U,S,V] = svd(X) produce una matriz diagonal S, de la misma dimensin que X y con elementos de la diagonal no negativos en orden decreciente, y matrices unitarias U y V de modo que X=U*S*V'. S = svd(X) retorna un vector que contiene los valores singulares. [U,S,V] = svd(X,0) produce el "ahorro de tamao" descomposicin. Si X es m-por-n con m> n, entonces slo los primeros n columnas de U se calculan y S es n-por-n. Para m <= n, svd (X, 0) es equivalente a svd (X). [U,S,V] = svd(X,'econ') tambin produce el "ahorro de tamao" descomposicin. Si X es m-por-n con m> = n, entonces es equivalente a svd(X, 0). Para m <n, slo las primeras m columnas de V se calculan y S es m-por-m.

gsvd

Generalizada descomposicin en valores singulares.

[U,V,X,C,S] = gsvd(A,B) devuelve matrices unitarias U y V, a (generalmente) matriz cuadrada X, y no negativa matrices diagonales C y S de manera que

A = U*C*X' B = V*S*X' C'*C + S'*S = I A y B deben tener el mismo nmero de columnas, pero pueden tener diferentes nmeros de filas. Si A es m-por-p y B es n-por-p, entonces U es m-por-m, V es n-por-n y X es p-por-q donde q=min(m+n,p). SIGMA=gsvd(A,B) retorna sqrt(diag(C'*C)./diag(S'*S)). el vector de valores singulares generalizados,

Los elementos no nulos de S estn siempre en la diagonal principal. Si m>=p los elementos no nulos de C tambin estn en la diagonal principal. Pero si m<p, la diagonal no nulo de C es diag(C,p-m). Esto permite que los elementos de la diagonal sean ordenados de manera que los valores singulares generalizadas se no decreciente. gsvd(A,B,0), con tres argumentos de entrada y m o n>=p, produce la descomposicin "ahorro de tamao", donde la U y V resultan tener como mximo columnas P, y C y S tienen en la mayora de las filas p. Los valores singulares generalizados son diag(C)./diag(S). Cuando I=eye(size(A)), Los valores singulares generalizadis, gsvd(A, I), son iguales a los valores singulares ordinarios, svd(A), sino que se ordenan en el orden inverso. Sus recprocos son gsvd(I,A). En esta formulacin del gsvd, no se hacen suposiciones acerca de los rangos individuales de A o B. La matriz X tiene rango completo si y slo si la matriz [A; B] tiene rango completo. De hecho, svd(X) y cond(X) son son iguales a svd([A; B]) y cond([A; B]). Otras formulaciones, por ejemplo. G. Golub y C. Van Loan, "Matrix Computations", requieren que null(A) y null(B) no se superponen y reemplaza X por inv(X) o inv(X'). Tenga en cuenta, sin embargo, que cuando null(A) y null(B) se superponen, los elementos no nulos de C y S no son unicamente determinados. Clase de apoyo para las entradas A, B: float: doble, individual

eigs Encontrar un par de valores propios y vectores propios de una matriz utilizando ARPACK.

D = eigs(A) retorna un vector de 6 A's valores propios de magnitudes superiores. A debe ser cuadrada y ser grande y dispersa. [V,D] = eigs(A) retorna una matriz diagonal D de 6 A's valores propios de magnitudes superiores y una matriz V cuyas columnas son los vectores propios correspondientes.

[V,D,FLAG] = eigs(A) tambin devuelve una convergencia flag. Si FLAG es 0, entonces todos los valores propios convergieron, de lo contrario no todos convergieron. eigs(A,B) resuelve el problema de valores propios generalizado A * V == B * V * D. B debe ser simtrica (o hermitian) definida positiva y el mismo tamao que A. eigs(A,[ ],...) indica el problema de valor propio estndar A*V == V*D. eigs(A,K) y eigs(A,B,K) retorna los valores propios K de magnitud superior. eigs(A,K,SIGMA) y eigs(A,B,K,SIGMA) retorna valores propios K. Si SIGMA es: 'LM' o 'SM' -- Mayor o menor magnitud. Para los problemas reales simtricos, SIGMA tambin puede ser: 'LA' o 'SA' Algebraico mayor o menor. 'BE' - Both Ends, una ms de gama alta si K es impar Para los problemas no simtricos y complejos, SIGMA tambin puede ser: 'LR' o 'SR' - Ms grande o ms pequea parte real 'LI' o 'SI' - Ms grande o ms pequeo Parte imaginaria Si SIGMA es un escalar real o complejo incluyendo el 0, eigs encuentra la generacin de valores ms cercanos a SIGMA. Para escalar SIGMA, y cuando SIGMA = 'SM', B slo necesita ser simtrica (o hermitian) positivo semi-definida ya que no es Cholesky factorizado como en los otros casos. eigs(A,K,SIGMA,OPTS) y eigs(A,B,K,SIGMA,OPTS) opciones especificas: OPTS.issym: simetria de A or A-SIGMA*B representado por AFUN [{false} | true] OPTS.isreal: complejidad de A or A-SIGMA*B representado por AFUN [false | {true}] OPTS.tol: convergencia: Ritz estimacin residual <= tol*NORM(A) [scalar | {eps}] OPTS.maxit: nmero mximo de iteraciones [integer | {300}] OPTS.p: nmero de vectores Lanczos: K+1<p<=N [integer | {2K}] OPTS.v0: a partir de vectores [N-by-1 vector | {randomly generated}] OPTS.disp: diagnstico del nivel de visualizacin de informacin [{0} | 1 | 2] OPTS.cholB: B es en realidad su factor de Cholesky CHOL(B) [{false} | true] OPTS.permB: sparse B es en realidad CHOL(B(permB,permB)) [permB | {1:N}] Utilice CHOL(B) en lugar de B cuando SIGMA es una cadena que no sea 'SM'. eigs(AFUN,N) acepta la funcin AFUN en lugar de la matriz A. AFUN es una funcin handle y Y=AFUN(X) debe retornar A*X si SIGMA es no especificado, o una cadena que no sea 'SM' A\X si SIGMA es 0 o 'SM' (A-SIGMA*I)\X si SIGMA es un escalar distinto de cero (problema estndar) (A-SIGMA*B)\X si SIGMA es un escalar distinto de cero (problema generalizado) N es el tamao de A. La matriz A, A-SIGMA*I o A-SIGMA*B representado por AFUN se supone que es real y no simtrica menos que se especifique lo contrario OPTS.isreal y OPTS.issym. En todas estas sintaxis eigs, eigs(A,...) podrn ser sustituidos por eigs(AFUN,N,...).

Ejemplo:

A = delsq(numgrid('C',15)); d1 = eigs(A,5,'SM'); De manera equivalente, si dnRk es la siguiente funcin de una lnea: %----------------------------% funcin y = dnRk(x,R,k) y = (delsq(numgrid(R,k))) \ x; %----------------------------% n = size(A,1); opts.issym = 1; d2 = eigs(@(x)dnRk(x,'C',15),n,5,'SM',opts);

svds

Encontrar unos valores singulares y vectores.

Si A es M-por-N, svds(A,...) manipula unos valores propios y vectores devueltos por EIGS(B,...), donde B = [SPARSE(M,M) A; A' SPARSE(N,N)], para encontrar unos valores singulares y vectores de A. los valores propios positivos de la matriz simtrica B son los mismos que los valores singulares de A. S = svds(A) devuelve los 6 mayores valores singulares de A. S = svds(A,K) Calcula los K valores mayores singulares de A. S = svds(A,K,SIGMA) calcula los K valores singulares cercanos al turno de escalar SIGMA. Por ejemplo, S = svds(A,K,0) Calcula los k valores menores singulares. S = svds(A,K,'L') Calcula los K valores mayores singulares (por defecto). S = svds(A,K,SIGMA,OPTIONS) establece algunos parmetros (ver EIGS):

Nombre del Campo OPTIONS.tol OPTIONS.maxit OPTIONS.disp

Parmetro

Predeterminado

Convergence tolerance: 1e-10 NORM(A*V-U*S,1) <= tol * NORM(A,1). Nmero maximo de iteraciones. 300 Nmero de valores de visualizacin de cada iteracin. 0

[U,S,V] = svds(A,...) calcula los vectores singulares tambin. Si A es M-por-N y K valores singulares se calculan, entonces U es M-por-K con columnas ortonormales, S es K-por-K en diagonal, y V es Npor-K con columnas ortonormales. [U,S,V,FLAG] = svds(A,...) tambien retorna un indicador de convergencia. Si EIGS convergio entonces NORM(A*V-U*S,1) <= TOL * NORM(A,1) y FLAG is 0. Si EIGS no convergio, entonces FLAG es 1.

Nota: svds es la mejor opcin para encontrar unos valores singulares de una matriz grande, dispersa. Para encontrar todos los valores singulares de una matriz tal, SVD (FULL (A)) por lo general se obtienen mejores resultados que svds(A,MIN(SIZE(A))). Ejemplo: load west0479 sf = svd(full(west0479)) sl = svds(west0479,10) ss = svds(west0479,10,0) s2 = svds(west0479,10,2)

sl ser un vector de los 10 mayores valores singulares, SS ser un vector de los 10 ms pequeos valores singulares y s2 ser un vector de los 10 valores singulares de west0479 que estn ms prximas a 2. poly Convertir races de polinomio

poly(A), cuando A es una matriz N por N, es un vector fila con N+1 elementos que son los coeficientes del polinomio caracterstico, DET(lambda*EYE(SIZE(A)) - A) . poly(V), cuando V es un vector, es un vector cuyos elementos son los coeficientes del polinomio cuyas races son los elementos de V. Para los vectores, ROOTS y poly son funciones inversas una de la otra, hasta el pedido, descamacin, y error de redondeo. ROOTS(poly(1:20)) genera el famoso ejemplo de Wilkinson. Clase de apoyo para las entradas A, V: float: doble, individual

polyeig

Problema de valores propios polinmicos.

[X,E] = polyeig(A0,A1,..,Ap) resuelve el problema de valor propio polinomio de grado p: (A0 + lambda*A1 + ... + lambda^p*Ap)*x = 0. La entrada es p+1 matrices cuadradas, A0, A1, ..., Ap, todas del mismo orden, n. La salida es una matriz n-por-n * p, X, cuyas columnas son los vectores propios, y un vector de longitud n*p, E, cuyos elementos son los valores propios. for j = 1:n*p lambda = E(j) x = X(:,j) (A0 + lambda*A1 + ... + lambda^p*Ap)*x is approximately 0. end

E = polyeig(A0,A1,..,Ap) es un vector de longitud n * p cuyos elementos son los valores propios del problema de valor propio polinomio. Casos especiales: p = 0, polyeig(A), el problema de valor propio estndar, eig(A). p = 1, polyeig(A,B), el problema de valores propios generalizado, eig(A,-B). n = 1, polyeig(a0,a1,..,ap), para escalares a0, ..., ap, es el problema polinomio estndar, roots([ap .. a1 a0])

Si tanto A0 y Ap son singulares el problema es potencialmente mal planteado. En teora, puede que no existen las soluciones o podran no ser nicos. Computacionalmente, las soluciones calculadas pueden ser inexactas. Si uno, pero no ambos, de A0 y AP es singular, el problema es bien planteado, pero algunos de los valores propios pueden ser cero o "infinita". [X,E,S] = polyeig(A0,A1,..,AP) tambin retorna un P*N longitud del vector S de nmeros de condicin de los valores propios. Al menos uno de A0 y AP deben ser no singular. Nmeros de condicin grandes implican que el problema es cerca de uno con mltiples valores propios. condeig Nmero de condicin con respecto a los valores propios.

condeig(A) es un vector de nmeros de condicin para los valores propios de A. Estos nmeros de condicin son los inversos de los cosenos de los ngulos entre los vectores propios derecho e izquierdo. [V,D,s] = condeig(A) es equivalente a: [V,D] = EIG(A); s = condeig(A);

Grandes nmeros de condicin implica que A es cerca de una matriz con mltiples valores propios. Clase de apoyo para la entrada A: float: doble, individual

hess

Forma Hessenberg.

H = hess(A) es la forma Hessenberg de la matriz A. La forma Hessenberg de una matriz es igual a cero por debajo de la primera subdiagonal y tiene los mismos valores propios como A. Si la matriz es simtrica o hermitian, la forma es tridiagonal. [P,H] = hess(A) produce una matriz unitaria P y una matriz Hessenberg H tal que A = P*H*P' y P'*P=EYE(SIZE(P)). [AA,BB,Q,Z] = hess(A,B) para matrices cuadradas A y B, produce una matriz de AA Hessenberg superior, una matriz triangular superior BB, y matrices unitarias Q y Z de tal manera que

Q*A*Z = AA, Q*B*Z = BB.

schur

Schur decomposition.

[U,T] = schur(X) produce una matriz quasitriangular Schur de T y una matriz unitaria U de manera que X=U*T*U' y U'*U = EYE(SIZE(U)). X debe ser cuadrada. T = schur(X) retorna solo la matriz Schur T. Si X es complejo, la forma Schur complejo se devuelve en matriz T. La forma Schur complejo es triangular superior con los valores propios de X en la diagonal. Si X es real, dos descomposiciones diferentes estn disponibles. Schur (X, 'real') tiene los valores propios reales en la diagonal y los valores propios complejos en 2 por 2 bloques en la diagonal. schur(X,'complex') es triangular y es complejo si X tiene valores propios complejos. schur(X,'real') es el valor predeterminado. Ver RSF2CSF convertir de real a la forma Schur Compleja.

qz

qz factorizacin de valores propios generalizados.

[AA, BB, Q, Z] = qz(A,B) para matrices cuadradas A y B, produce las matrices superior quasitriangular AA y BB y matrices unitarias Q y Z de tal manera que Q*A*Z = AA, Q*B*Z = BB. [AA, BB, Q, Z, V, W] = qz(A,B) tambin produce matrices V y W cuyas columnas son los vectores propios generalizados. Para matrices complejas, AA y BB son triangulares. Para matrices reales, qz(A,B,'real') produce una descomposicin real con un AA quasitriangular contiene bloques diagonales de 1 por 1 y 2-por-2, mientras que qz(A,B,'complex') produce una descomposicin posiblemente complejo con una AA triangular. Para la compatibilidad con versiones anteriores, "complejo" es el valor predeterminado. Si AA es triangular, los elementos de la diagonal de AA y BB, alpha = diag(AA), beta = diag(BB), son los valores propios generalizados que satisfagan A*V*diag(beta) = B*V*diag(alpha) diag(beta)*W'*A = diag(alpha)*W'*B Los valores propios producidos por

lambda = eig(A,B) son los radios de los alfas y betas. lambda = alpha./beta Si AA no es triangular, es necesario reducir an ms los bloques de 2-por-2 para obtener los valores propios del sistema completo.

ordschur

Reordenar valores propios en factorizacin Schur.

[US,TS] = ordschur(U,T,SELECT) reordena la factorizacin de Schur X = U*T*U' de una matriz X de manera que un grupo seleccionado de valores propios aparece en el extremo inicial (parte superior izquierda) bloques diagonales de la matriz T quasitriangular de Schur, y el correspondiente subespacio invariante es atravesado por el lder columnas de U. El vector lgico SELECT especifica el grupo seleccionado como E(SELECT) donde E es el vector de valores propios, tal como aparecen a lo largo de Ts de diagonal. Usar E = ORDEIG(T) para extraer E a partir de T. ordschur toma las matrices U, T producidas por el comando SCHUR y retorna la matriz de Schur reordenado TS y la transformacin ortogonal acumulada US such tal que X = US*TS*US'. Establecer U=[ ] para obtener la transformacin gradual T = US*TS*US'. [US,TS] = ordschur(U,T,KEYWORD) establece el grupo seleccionado para incluir todos los valores propios en una de las siguientes regiones: KEYWORD 'lhp' 'rhp' 'udi' 'udo' Selected Region parte izquierda del plano (real(E)<0) parte derecha del plano (real(E)>0) interior del disco unitario (abs(E)<1) exterior del disco unitario (abs(E)>1)

ordschur Tambin puede cambiar el orden de varios clsteres a la vez. Dado un vector CLUSTERS de ndices de cluster, acorde con E = EIG(T y tales que todos los valores propios con el mismo valor CLUSTERS forma un cluster, [US,TS] = ordschur(U,T,CLUSTERS) ordenar los grupos especificados en orden descendente a lo largo de la diagonal de TS, el grupo con mayor ndice que aparece en la esquina superior izquierda.

ordqz

Reordenar valores propios en la factorizacin QZ.

[AAS,BBS,QS,ZS] = ordqz(AA,BB,Q,Z,SELECT) reordenar la QZ factorizacin Q*A*Z = AA, Q*B*Z = BB de una matriz par (A,B) de manera que un grupo seleccionado de valores propios aparece en el extremo inicial (parte superior izquierda) bloques diagonales del quasitriangular par (AA, BB), y el

correspondiente subespacio invariante es atravesado por las principales columnas de Z. El vector lgico SELECT especifica el clster seleccionado como E(SELECT) donde E es el vector de valores propios como aparecen a lo largo de la diagonal de AA-t*BB. Usar E = ORDEIG(AA,BB) para extraer E para AA y BB. ordqz toma las matrices AA, BB, Q, Z producido por el comando QZ y devuelve el par reordenado (AAS, BBS) y las transformaciones ortogonales acumulativas QS y ZS de tal manera que QS*A*ZS = AAS, QS*B*ZS = BBS. Establece Q=[ ] o Z=[ ] para conseguir el incremento de transformacin QS,ZS (AA,BB) en (AAS,BBS). [AAS,BBS,...] = ordqz(AA,BB,Q,Z,KEYWORD) establece el grupo seleccionado para incluir todos los valores propios en una de las siguientes regiones: KEYWORD 'lhp' 'rhp' 'udi' 'udo' Selected Region parte izquierda del plano (real(E)<0) parte derecha del plano (real(E)>0) interior del disco unitario (abs(E)<1) exterior del disco unitario (abs(E)>1)

ordqz Tambin puede cambiar el orden de varios clsteres a la vez. Dado un vector CLUSTERS de ndices de cluster, acorde con E = EIG(AA,BB), y de tal manera que todos los valores propios con el mismo valor CLUSTERS forma un clster, [...] = ordqz(AA,BB,Q,Z,CLUSTERS) ordenar los clusters especificados por orden decreciente a lo largo de la diagonal de (AAS,BBS), el cluster con mayor ndice que aparece en la esquina superior izquierda.

ordeig Valores propios de matrices quasitriangular.

E = ordeig(T) Tomando la matriz quasitriangular T Schur (producido tpicamente por SCHUR) y retorna el vector E de valores propios en su orden de aparicin bajo la diagonal de T. E = ordeig(AA,BB) toma un par quasitriangular matriz de AA, BB (producido tpicamente por QZ) y retorna los valores propios generalizados en su orden de aparicin bajo la diagonal de AA-t*BB. ordeig es una version orden-preservada de EIG para uso con ORDSCHUR y ORDQZ. Tambin es ms rpido que EIG para matrices quasitriangular. Ejemplo: a = rand(10); [u,t] = schur(a); e = ordeig(t) % Mueva valores propios con magnitud <0,5 para la

% esquina izquierda superior de T [u,t] = ordschur(u,t,abs(e)<0.5); abs(ordeig(t))

Funciones matriciales.
expm Matriz exponencial.

expm(X) Matrix exponentialis. La matriz exponencial de X. expm se calcula utilizando una escala y la cuadratura algoritmo con una aproximacin Pade. Aunque no est calculado de esta manera, si X tiene un conjunto completo de vectores propios V con valores propios correspondientes D, entonces [V,D] = EIG(X) and expm(X) = V*diag(exp(diag(D)))/V.

EXP(X) calcula el exponencial de X elemento por elemento.

logm

Matriz logaritmo.

L = logm(A) es el logaritmo de la matriz principal de A, la inversa de EXPM(A). L es el logaritmo nico por el cual cada valor propio tiene parte imaginaria falsa estrictamente entre -PI y PI. Si A es singular o tiene valores propios en el eje real negativo, entonces el logaritmo director no est definido, un logaritmo no principal se calcula, y un mensaje de aviso es impreso. [L,EXITFLAG] = logm(A) retorna un escalar EXITFLAG que describe la condicin de salida de logm: EXITFLAG = 0: finalizacin con xito del algoritmo. EXITFLAG = 1: demasiadas races cuadradas de matriz necesarias. L computarizada puede ser precisa, sin embargo. Nota: esto es diferente de R13 y versiones anteriores, las cuales devuelven como segundo argumento de salida una estimacin inasequible y a menudo un error inexacto estimado. Clase de apoyo para la entrada A: float: doble, individual

sqrtm

Matriz raiz cuadrada.

X = sqrtm(A) es la raz cuadrada principal de la matriz A, es decir, X*X = A. X es la raz cuadrada nica para la cual cada valor propio tiene parte real no negativo. Si A tiene ningn real, los valores propios negativos entonces es producido un resultado complejo. Si A es

singular, entonces A no puede tener una raz cuadrada. Una advertencia se imprimir si se detecta singularidad exacta. Con dos argumentos de salida, [X, RESNORM] = sqrtm(A) no imprime ninguna advertencia, y devuelve el residual, norm(A-X^2,'fro')/norm(A,'fro'). Con tres argumentos de salida, [X, ALPHA, CONDEST] = sqrtm(A) devuelve un factor estable ALPHA estabilidad y uno estimado CONDEST de la condicin de la raz cuadrada de la matriz nmero de X. El residual NORM(A-X^2,'fro')/NORM(A,'fro') est limitada aproximadamente por N*ALPHA*EPS y la norma error relativo Frobenius en X est limitada aproximadamente por N*ALPHA*CONDEST*EPS, donde N = MAX(SIZE(A)).

funm

Evaluar la funcin general de la matriz.

F = funm(A,FUN) evalua la function_handle FUN en la matriz cuadrada A. FUN(X,K) debe devolver la derivada k-sima de la funcin representada por FUN evaluada en el vector X. Las funciones de MATLAB EXP, LOG, COS, SIN, COSH, SINH pueden pasar como FUN, es decir, funm(A,@EXP), funm(A,@LOG), funm(A,@COS), funm(A,@SIN), funm(A,@COSH), funm(A,@SINH) estn permitidas. Para la matriz raz cuadrada usar SQRTM(A) en lugar. Para matrices exponentiales, ya sea EXPM(A) y funm(A,@EXP) puede ser el ms preciso, dependiendo de A. La funcin representada por FUN debe tener una serie de Taylor, con un radio infinito de convergencia, a excepcin de FUN=@LOG, que se trata como un caso especial. Ejemplo: Para calcular la funcin de EXP(X)+COS(X) en A con una llamada a funm, usar F = funm(A,@fun_expcos) donde funcin f = fun_expcos(x,k) % Retorna k-sima derivada de EXP+COS en X. g = mod(ceil(k/2),2); if mod(k,2) f = exp(x) + sin(x)*(-1)^g; else f = exp(x) + cos(x)*(-1)^g; end

F = funm(A,FUN,options) establece los parmetros del algoritmo a los valores de las opciones de estructuras. options.Display: Nivel de visualizacin [ {off} | on | verbose ] options.TolBlk: Tolerancia para el bloqueo de forma Schur [ positive scalar {0.1} ] options.TolTay: La tolerancia de terminacin para la evaluacin de la serie de Taylor de bloques diagonales. [ positive scalar {eps} ] options.MaxTerms: El nmero mximo de trminos de la serie de Taylor [ positive integer {100} ] options.MaxSqrt: Cuando se calcula el logaritmo, el nmero mximo de matrices de races cuadradas se calcul en un escalamiento inverso y el mtodo de la cuadratura [ positive integer {100} ] options.Ord: Una orden especificado de la forma de Schur, T. Un vector de longitud LENGTH(A), con options.Ord(i) el ndice del bloque en la que T (i, i) debe ser colocado, [ integer vector {[ ]} ]

F=funm(A,FUN,options,P1,P2,...) pasaron entradas adicionales P1, P2, ... a la funcin: FUN(X,K,P1,P2,...). Usar options = [ ] como marcador de posicin si no hay opciones establecidas. [F,EXITFLAG] = funm(...) retorna un escalar EXITFLAG que describe la condicin de salida de funm: EXITFLAG = 0: finalizacin con xito de algoritmo. EXITFLAG = 1: una o ms evaluaciones de series de Taylor no convergen o, por logaritmo, demasiadas races cuadradas de matrices necesarias. Computarizada F todava puede ser preciso, sin embargo. Nota: esto es diferente de R13 y versiones anteriores, las cuales devuelven como segundo argumento de salida un inasequible y a menudo un error estimado inexacto. [F,EXITFLAG,output] = funm(...) retorna una estructura de salida con output.terms(i): el nmero de trminos de la serie de Taylor utilizado en la evaluacin del bloque i-simo, o el nmero de races cuadradas de matrices de dimensin> 2 en el caso del logaritmo, output.ind(i): matriz de celdas que especifica el bloqueo: el bloque (i, j) de la re-ordenado Schur factor T es T(output.ind{i},output.ind{j}), output.ord: el ordenamiento, como fue pasado a ORDSCHUR, output.T: la forma Schur reordenada. Si la forma Schur es diagonal entonces output = struct('terms',ones(n,1),'ind',{1:n})

Factorizacin de utilidad
qrdelete Eliminar una columna o fila de la factorizacin QR.

[Q1,R1] = qrdelete(Q,R,J) retorna la factorizacin QR de la matriz A1, donde A1 es A con la columna A(:,J) elimando y [Q,R] = QR(A) es la factorizacin QR de A. Las matrices Q y R tambin puede ser generado por el "ahorro de tamao" factorizacin QR [Q,R] = QR(A,0). qrdelete(Q,R,J,'col') es lo mismo que qrdelete(Q,R,J). [Q1,R1] = qrdelete(Q,R,J,'row') retorna la factorizacin QR de la matriz A1, donde A1 es A con la fila A(J,:) eliminada y [Q,R] = QR(A) es la factorizacin QR de A. Ejemplo: A = magic(5); [Q,R] = qr(A); j = 3; [Q1,R1] = qrdelete(Q,R,j,'row'); retorna una factorizacin valida QR, aunque posiblemente diferente de A2 = A; A2(j,:) = []; [Q2,R2] = qr(A2); Clase de apoyo para las entradas de Q, R: float: doble, individual

qrinsert

Inserte una columna o fila en la factorizacin QR.

[Q1,R1] = qrinsert(Q,R,J,X) devuelve la factorizacin QR de la matriz A1, donde A1 es A = Q * R con una columna adicional, X, insertar antes A(:,J). Si A tiene N columnas y J = N+1, entonces X se inserta despus de la ltima columna de A. qrinsert(Q,R,J,X,'col') es lo mismo que qrinsert(Q,R,J,X). [Q1,R1] = qrinsert(Q,R,J,X,'row') retorna la factorizacin QR de la matriz A1, donde A1 es A=Q*R con una fila adicional, X, insertada antes A(J,:). Ejemplo: A = magic(5); [Q,R] = qr(A); j = 3; x = 1:5; [Q1,R1] = qrinsert(Q,R,j,x,'row'); retorna una factorizacin valida QR, aunque posiblemente diferente de A2 = [A(1:j-1,:); x; A(j:end,:)]; [Q2,R2] = qr(A2); Clase de apoyo para las entradas de Q, R, X: float: doble, individual

rsf2csf

Forma diagonal real por bloques a la forma diagonal compleja.

[U,T] = rsf2csf(U,T) transforma las salidas de SCHUR (X) (donde X es real) de la forma Schur Real a la forma Schur compleja. La forma real Schur tiene los valores propios reales en la diagonal y los valores propios complejos en 2 por 2 bloques en la diagonal. La Forma Compleja Schur es triangular superior con los valores propios de X en la diagonal. Argumentos U y T representan las formas unitarias y Schur de una matriz A, tal que A = U*T*U' y U'*U = eye(size(A)). Clase de apoyo para las entradas de U, T: float: doble, individual

cdf2rdf

Forma diagonal compleja a la forma diagonal real por bloques.

[V,D] = cdf2rdf(V,D) transforma las salidas de EIG (X) (donde X es real) de forma diagonal complejo a una forma diagonal real. En forma diagonal complejo, D tiene valores propios complejos abajo de la diagonal. En forma diagonal real, los valores propios complejos se encuentran en 2 por 2 bloques en la diagonal. Pares de valores propios complejos conjugados se supone que son uno junto al otro. Clase de apoyo para las entradas de V, D: float: doble, individual

balance

Escalamiento Diagonal para mejorar la precisin de valores propios.

[T,B] = balance(A) encuentra una transformacin de semejanza T tal que B = T\A*T tiene, lo ms aproximadamente posible, aproximadamente igual de filas y normas de columna. T es una permutacin de una matriz diagonal cuyos elementos son potencias enteras de dos para que el equilibrio no introduce ningn error de redondeo. B = balance(A) retorna la matriz balanceada B. [S,P,B] = balance(A) devuelve el escalado del vector S y la permutacin vector P separado. La transformacin T y la matriz balanceada B se obtienen a partir A,S,P por T(:,P) = diag(S), B(P,P) = diag(1./S)*A*diag(S). Para escalar A sin permutar sus filas y columnas, utilice la sintaxis balance(A,'noperm').

planerot

Dada la rotacin plana.

[G,Y] = planerot(X), donde X es un vector columna de 2-componente, devuelve una matriz ortogonal G 2-por-2 de manera que Y = G*X tiene Y(2) = 0. Clase de apoyo para la entrada de X: float: doble, individual

cholupdate

Fila 1 actualizacin de factorizacin de Cholesky.

Si R = CHOL(A) es la factorizacin de Cholesky original de A, entonces R1 = cholupdate (R, X) devuelve el factor de Cholesky triangular superior de A + X * X ', donde X es un vector columna de longitud apropiada. cholupdate slo utiliza el tringulo diagonal y superior de R. El tringulo inferior de R se ignora. R1 = cholupdate(R,X,'+') es lo mismo que R1 = cholupdate(R,X). R1 = cholupdate(R,X,'-') devuelve el factor de Cholesky de A - X*X'. Un mensaje de error informa cuando R no es un factor de Cholesky vlida o cuando la matriz downdated no es definida positiva y por lo tanto no tiene una factorizacin de Cholesky. [R1,p] = cholupdate(R,X,'-') no devolver un mensaje de error. Si p es 0, entonces R1 es el factor de Cholesky de A - X * X '. Si p es mayor que 0, entonces R1 es el factor de Cholesky de la original A. Si p es 1 entonces cholupdate fall porque la matriz downdated no es definida positiva. Si p es 2, cholupdate fall porque el tringulo superior de R no fue un factor de Cholesky vlido. cholupdate slo funciona para matrices completas.

qrupdate

Fila 1 actualizacin de la factorizacin QR.

Si [Q,R] = QR(A) es la factorizacin original QR de A, entonces [Q1,R1] = qrupdate(Q,R,U,V) retorna la factorizacin QR de A + U*V', donde U y V son vectores columna de longitudes apropiadas. qrupdate slo funciona para matrices completas.

S-ar putea să vă placă și