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í.
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
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).
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 : kU (:, yo ) = V (:, yo );para j = 1 : i - 1U (:, i ) = U (:, i ) - ( U (:, j ) '* U (:, i )) * U (:, j );finU (:, 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
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 .
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]
^ 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.
^ Préstamo Golub & Van 1996, §5.2.8.
^ 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.
^ Doran, Chris; Lasenby, Anthony (2007). Álgebra geométrica para físicos . Prensa de la Universidad de Cambridge. pag. 124.ISBN978-0-521-71595-9.
^ 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. ISBN9781450307710. S2CID 14316074.
BauIII, David; Trefethen, Lloyd N. (1997), Álgebra lineal numérica , Filadelfia: Sociedad de Matemáticas Industriales y Aplicadas, ISBN 978-0-89871-361-9.
Tutorial de matemáticas de Harvey Mudd College sobre el algoritmo de Gram-Schmidt
Primeros usos conocidos de algunas de las palabras de las matemáticas: G La entrada "ortogonalización de Gram-Schmidt" tiene información y referencias sobre los orígenes del método.
Demostraciones: proceso de Gram Schmidt en el plano y proceso de Gram Schmidt en el espacio
Subprograma de ortogonalización de Gram-Schmidt
NAG Ortogonalización de Gram-Schmidt de n vectores de orden m rutina
Prueba: Raymond Puzio, Keenan Kidwell. "prueba del algoritmo de ortogonalización de Gram-Schmidt" (versión 8). PlanetMath.org.