stringtranslate.com

Proceso de Gram-Schmidt

Los dos primeros pasos del proceso Gram-Schmidt

En matemáticas , particularmente en álgebra lineal y análisis numérico , el proceso de Gram-Schmidt o algoritmo de Gram-Schmidt es una forma de hacer que dos o más vectores sean perpendiculares entre sí.

Por definición técnica, es un método para construir una base ortonormal a partir de un conjunto de vectores en un espacio de producto interno , más comúnmente el espacio euclidiano Rn equipado con el producto interno estándar . El proceso de Gram-Schmidt toma un conjunto finito y linealmente independiente de vectores S = { v 1 , ..., v k } para kn y genera un conjunto ortogonal S′ = { u 1 , ..., u k } que abarca el mismo subespacio k -dimensional de R n que S .

El método lleva el nombre de Jørgen Pedersen Gram y Erhard Schmidt , pero Pierre-Simon Laplace estaba familiarizado con él antes que Gram y Schmidt. [1] En la teoría de las descomposiciones de grupos de Lie , se generaliza mediante la descomposición de Iwasawa .

La aplicación del proceso de Gram-Schmidt a los vectores columna de una matriz de rango de columna completa produce la descomposición QR (se descompone en una matriz ortogonal y triangular ).

El proceso Gram-Schmidt

El proceso de Gram-Schmidt modificado se ejecuta en tres vectores no ortogonales, linealmente independientes, de una base para R 3 . Haz clic en la imagen para los detalles. La modificación se explica en la sección Estabilidad numérica de este artículo.

La proyección vectorial de un vector sobre un vector distinto de cero se define como

producto internoproyección ortogonal

Dados k vectores, el proceso de Gram-Schmidt define los vectores de la siguiente manera:

La secuencia u 1 ,..., u k es el sistema requerido de vectores ortogonales, y los vectores normalizados e 1 ,..., e k forman un conjunto ortonormal . El cálculo de la secuencia u 1 ,..., u k se conoce como ortogonalización de Gram-Schmidt , y el cálculo de la secuencia e 1 ,..., e k se conoce como ortonormalización de Gram-Schmidt .

Para comprobar que estas fórmulas producen una secuencia ortogonal, primero calcule sustituyendo u 2 por la fórmula anterior : obtenemos cero. Luego use esto para calcular nuevamente sustituyendo la fórmula por u 3 : obtenemos cero. La prueba general procede por inducción matemática .

Geométricamente, este método procede de la siguiente manera: para calcular u i , proyecta v i ortogonalmente sobre el subespacio U generado por u 1 , ..., u i −1 , que es el mismo que el subespacio generado por v 1 , .. ., v yo −1 . El vector u i se define entonces como la diferencia entre v i y esta proyección, garantizada para ser ortogonal a todos los vectores en el subespacio U.

El proceso de Gram-Schmidt también se aplica a una secuencia infinita contable linealmente independiente { v i } i . El resultado es una secuencia ortogonal (u ortonormal) { u i } i tal que para un número natural n : el intervalo algebraico de v 1 , ..., v n es el mismo que el de u 1 , ..., u n .

Si el proceso de Gram-Schmidt se aplica a una secuencia linealmente dependiente, genera el vector 0 en el i- ésimo paso, suponiendo que vi es una combinación lineal de v 1 , ..., vi −1 . Si se va a producir una base ortonormal, entonces el algoritmo debe probar si hay vectores cero en la salida y descartarlos porque ningún múltiplo de un vector cero puede tener una longitud de 1. El número de vectores generados por el algoritmo será entonces la dimensión del espacio abarcado por las entradas originales.

Una variante del proceso de Gram-Schmidt que utiliza recursividad transfinita aplicada a una secuencia infinita (posiblemente incontable) de vectores produce un conjunto de vectores ortonormales tales que para cualquier , la finalización del lapso de es la misma que la de . En particular, cuando se aplica a una base (algebraica) de un espacio de Hilbert (o, más generalmente, a una base de cualquier subespacio denso), produce una base ortonormal (analítica-funcional). Tenga en cuenta que, en el caso general, a menudo se cumple la desigualdad estricta, incluso si el conjunto inicial fuera linealmente independiente y el lapso de no necesita ser un subespacio del lapso de (más bien, es un subespacio de su finalización).

Ejemplo

espacio euclidiano

Considere el siguiente conjunto de vectores en R 2 (con el producto interno convencional )

Ahora, realice Gram-Schmidt para obtener un conjunto ortogonal de vectores:

Comprobamos que los vectores u 1 y u 2 son efectivamente ortogonales:

producto escalar

Para vectores distintos de cero, podemos normalizar los vectores dividiendo sus tamaños como se muestra arriba:

Propiedades

Denota por el resultado de aplicar el proceso de Gram-Schmidt a una colección de vectores . Esto produce un mapa .

Tiene las siguientes propiedades:

Sea ortogonal (con respecto al producto interno dado). Entonces nosotros tenemos

Además, una versión parametrizada del proceso de Gram-Schmidt produce una retracción de deformación (fuerte) del grupo lineal general sobre el grupo ortogonal .

Estabilidad numérica

Cuando este proceso se implementa en una computadora, los vectores a menudo no son del todo ortogonales debido a errores de redondeo . Para el proceso de Gram-Schmidt descrito anteriormente (a veces denominado "Gram-Schmidt clásico"), esta pérdida de ortogonalidad es particularmente mala; por tanto, se dice que el proceso (clásico) de Gram-Schmidt es numéricamente inestable .

El proceso de Gram-Schmidt puede estabilizarse mediante una pequeña modificación; esta versión a veces se denomina Gram-Schmidt modificado o MGS. Este enfoque da el mismo resultado que la fórmula original en aritmética exacta e introduce errores más pequeños en aritmética de precisión finita. En lugar de calcular el vector u k como

Este método se usa en la animación anterior, cuando el vector intermedio v ' 3 se usa al ortogonalizar el vector azul v 3 .

Aquí hay otra descripción del algoritmo modificado. Dados los vectores , en nuestro primer paso producimos vectores eliminando componentes a lo largo de la dirección de . En fórmulas, . Después de este paso ya tenemos dos de nuestros vectores ortogonales deseados , es decir , pero también los hicimos ortogonales a . A continuación, ortogonalizamos los vectores restantes contra . Esto significa que calculamos por resta . Ahora hemos almacenado los vectores donde los primeros tres vectores ya están y los vectores restantes ya son ortogonales a . Como debería quedar claro ahora, el siguiente paso ortogonaliza contra . Procediendo de esta manera encontramos el conjunto completo de vectores ortogonales . Si se desean vectores ortonormales, los normalizamos a medida que avanzamos, de modo que los denominadores en las fórmulas de resta se conviertan en unos.

Algoritmo

El siguiente algoritmo de MATLAB implementa la ortonormalización clásica de Gram-Schmidt. Los vectores v 1 , ..., v k (columnas de la matriz V, por lo que V(:,j)es el jésimo vector) se reemplazan por vectores ortonormales (columnas de U) que abarcan el mismo subespacio.

función  U = gramoschmidt ( V )   [ n , k ] = tamaño ( V );    U = ceros ( norte , k );   U (:, 1 ) = V (:, 1 ) / norma ( V (:, 1 ));     para i = 2 : k    U (:, yo ) = V (:, yo );   para j = 1 : i - 1    U (:, i ) = U (:, i ) - ( U (:, j ) '* U (:, i )) * U (:, j );       fin U (:, i ) = U (:, i ) / norma ( U (:, i ));     finfin

El costo de este algoritmo es asintóticamente O ( nk 2 ) operaciones de punto flotante, donde n es la dimensionalidad de los vectores. [2]

Mediante eliminación gaussiana

Si las filas { v 1 ,..., v k } se escriben como una matriz , entonces aplicar la eliminación gaussiana a la matriz aumentada producirá los vectores ortogonalizados en lugar de . Sin embargo, la matriz debe llevarse a la forma escalonada por filas , utilizando únicamente la operación de fila de sumar un múltiplo escalar de una fila a otra. [3] Por ejemplo, tomando lo anterior, tenemos

Y reducir esto a la forma escalonada produce

Los vectores normalizados son entonces

Fórmula determinante

El resultado del proceso de Gram-Schmidt se puede expresar en una fórmula no recursiva utilizando determinantes .

donde D 0 =1 y, para j ≥ 1, D j es el determinante de Gram

Tenga en cuenta que la expresión para u k es un determinante "formal", es decir, la matriz contiene escalares y vectores; el significado de esta expresión se define como el resultado de una expansión de cofactor a lo largo de la fila de vectores.

La fórmula determinante de Gram-Schmidt es computacionalmente más lenta (exponencialmente más lenta) que los algoritmos recursivos descritos anteriormente; es principalmente de interés teórico.

Expresado usando álgebra geométrica.

Expresados ​​utilizando la notación utilizada en álgebra geométrica , los resultados no normalizados del proceso de Gram-Schmidt se pueden expresar como

[4]

Alternativas

Otros algoritmos de ortogonalización utilizan transformaciones de Householder o rotaciones de Givens . Los algoritmos que utilizan transformaciones de Householder son más estables que el proceso estabilizado de Gram-Schmidt. Por otro lado, el proceso de Gram-Schmidt produce el th vector ortogonalizado después de la th iteración, mientras que la ortogonalización utilizando reflexiones de Householder produce todos los vectores solo al final. Esto hace que sólo el proceso de Gram-Schmidt sea aplicable para métodos iterativos como la iteración de Arnoldi .

Otra alternativa más está motivada por el uso de la descomposición de Cholesky para invertir la matriz de las ecuaciones normales en mínimos cuadrados lineales . Sea una matriz de rango de columnas completa , cuyas columnas deben ortogonalizarse. La matriz es hermitiana y definida positiva , por lo que puede escribirse utilizando la descomposición de Cholesky . La matriz triangular inferior con entradas diagonales estrictamente positivas es invertible . Entonces las columnas de la matriz son ortonormales y abarcan el mismo subespacio que las columnas de la matriz original . El uso explícito del producto hace que el algoritmo sea inestable, especialmente si el número de condición del producto es grande. Sin embargo, este algoritmo se utiliza en la práctica y se implementa en algunos paquetes de software debido a su alta eficiencia y simplicidad.

En mecánica cuántica existen varios esquemas de ortogonalización con características más adecuadas para determinadas aplicaciones que el Gram-Schmidt original. Sin embargo, sigue siendo un algoritmo popular y eficaz incluso para los cálculos de estructuras electrónicas más grandes. [5]

Complejidad del tiempo de ejecución

La ortogonalización de Gram-Schmidt se puede realizar en tiempo fuertemente polinomial . El análisis en tiempo de ejecución es similar al de la eliminación gaussiana . [6] : 40 

Referencias

  1. ^ Cheney, sala; Kincaid, David (2009). Álgebra lineal: teoría y aplicaciones. Sudbury, mamá: Jones y Bartlett. págs.544, 558. ISBN 978-0-7637-5020-6.
  2. ^ Préstamo Golub & Van 1996, §5.2.8.
  3. ^ Pursell, Lyle; Trimble, SY (1 de enero de 1991). "Ortogonalización de Gram-Schmidt por eliminación de Gauss". El Mensual Matemático Estadounidense . 98 (6): 544–549. doi :10.2307/2324877. JSTOR  2324877.
  4. ^ Doran, Chris; Lasenby, Anthony (2007). Álgebra geométrica para físicos . Prensa de la Universidad de Cambridge. pag. 124.ISBN 978-0-521-71595-9.
  5. ^ Pursell, Yukihiro; et al. (2011). "Cálculos de primeros principios de los estados electrónicos de un nanocables de silicio con 100.000 átomos en la computadora K". Actas de la conferencia internacional de 2011 sobre informática, redes, almacenamiento y análisis de alto rendimiento . págs. 1:1–1:11. doi :10.1145/2063384.2063386. ISBN 9781450307710. S2CID  14316074.
  6. ^ Grötschel, Martín ; Lovász, László ; Schrijver, Alexander (1993), Algoritmos geométricos y optimización combinatoria, Algoritmos y combinatoria, vol. 2 (2ª ed.), Springer-Verlag, Berlín, doi :10.1007/978-3-642-78240-4, ISBN 978-3-642-78242-8, señor  1261419

Fuentes

enlaces externos