Ortonormalización de un conjunto de vectores
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 es un método para ortonormalizar 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 de vectores linealmente independientes S = {v1,..., vk} para k ≤ < i>n y genera un conjunto ortogonal S′ = {u1,..., uk} que abarca el mismo subespacio k-dimensional de Rn como S.
El método lleva el nombre de Jørgen Pedersen Gram y Erhard Schmidt, pero Pierre-Simon Laplace lo conocía antes que Gram y Schmidt. 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 de columna de una matriz de rango de columna completa produce la descomposición QR (se descompone en una matriz ortogonal y otra triangular).
El proceso de Gram-Schmidt
El proceso modificado Gram-Schmidt que se ejecuta en tres vectores linealmente independientes y no ortogonales de una base para R3. Haga clic en la imagen para obtener detalles. La modificación se explica en la sección de Estabilidad Numérica de este artículo.
Definimos el operador de proyección por
Donde denota el producto interior de los vectores v y u. Este operador proyecta el vector v ortogonalmente en la línea abarcada por vector u. Si u = 0, definimos , es decir, el mapa de proyección es el mapa cero, enviando cada vector al vector cero.
El proceso de Gram-Schmidt funciona de la siguiente manera:
La secuencia u1,..., uk es el sistema requerido de vectores ortogonales, y los vectores normalizados e1,..., ek forman un conjunto ortonormal. El cálculo de la secuencia u1,..., uk se conoce como ortogonalización Gram-Schmidt, mientras que el cálculo de la secuencia e1,..., ek se conoce como ortonormalización de Gram-Schmidt ya que los vectores están normalizados.
Para comprobar que estas fórmulas producen una secuencia ortogonal, primer cálculo sustituyendo la fórmula anterior u2Tenemos cero. Entonces usa esto para calcular sustitución de la fórmula para u3Tenemos cero. La prueba general procede por inducción matemática.
Geométricamente, este método procede de la siguiente manera: para calcular ui, proyecta v i ortogonalmente sobre el subespacio U generado por u1,..., ui−1, que es el mismo que el subespacio generado por v1,..., vi−1 lapso>. El vector ui se define entonces como la diferencia entre vi 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 numerable linealmente independiente {vi} i. El resultado es una secuencia ortogonal (u ortonormal) {ui}i tal que para el número natural n:
el lapso algebraico de v1,..., vn es el mismo que el de u1,..., un.
Si el proceso de Gram-Schmidt se aplica a una secuencia linealmente dependiente, genera el vector 0 en la iésimo paso, asumiendo que vi es una combinación lineal de v1,..., vi−1 . Si se va a producir una base ortonormal, entonces el algoritmo debe probar los 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 de salida por el algoritmo será entonces la dimensión del espacio ocupado por las entradas originales.
Una variante del proceso Gram-Schmidt utilizando la recursión transfinita aplicada a una secuencia infinita (posiblemente incontable) de vectores produce un conjunto de vectores ortonormales con tal que para cualquier , la terminación del lapso de es lo mismo que el de . En particular, cuando se aplica a una base (algebraica) de un espacio Hilbert (o, más generalmente, una base de cualquier subespacial denso), produce una base ortonormal (funcional-analítica). Tenga en cuenta que en el caso general a menudo la desigualdad estricta sostiene, incluso si el conjunto de inicio era linealmente independiente, y el lapso de no debe ser un subespacio del lazo (Más allá, es un subespacio de su terminación).
Ejemplo
Espacio euclidiano
Considere el siguiente conjunto de vectores en R2 (con el producto interno convencional)
Ahora, realice Gram-Schmidt para obtener un conjunto ortogonal de vectores:
Comprobamos que los vectores u1 y u2 son de hecho ortogonales:
Para vectores distintos de cero, podemos normalizar los vectores dividiendo sus tamaños como se muestra arriba:
Propiedades
Denote by el resultado de aplicar el proceso Gram-Schmidt a una colección de vectores . Esto produce un mapa .
Tiene las siguientes propiedades:
- Es continuo
- Es la orientación preservando en el sentido de que .
- Se comunica con mapas ortogonales:
Vamos ser ortogonal (con respecto al producto interno dado). Entonces tenemos
Además, una versión parametrizada del proceso 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 un ordenador, los vectores a menudo no son bastante ortogonales, debido a errores de redondeo. Para el proceso Gram-Schmidt como se describe anteriormente (a veces referido como "Gram-Schmidt clásico") esta pérdida de ortogonalidad es particularmente mala; por lo tanto, se dice que el proceso (clásico) Gram-Schmidt es numéricamente inestable.
El proceso de Gram-Schmidt se puede estabilizar con una pequeña modificación; esta versión a veces se denomina Gram-Schmidt modificada 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 la aritmética de precisión finita.
En lugar de calcular el vector uk como
Este método se usa en la animación anterior, cuando se usa el vector intermedio v'3 al ortogonalizar el vector azul v3.
Aquí está otra descripción del algoritmo modificado. Dados los vectores , en nuestro primer paso producimos vectores eliminando componentes a lo largo de la dirección . En fórmulas, . Después de este paso ya tenemos dos de nuestros vectores ortogonales deseados , a saber , pero también hicimos ya ortogonal a . A continuación, ortogonalizamos los vectores restantes contra . Esto significa que computamos por resta . Ahora hemos almacenado los vectores donde los primeros tres vectores ya están y los vectores restantes ya son ortogonales . Como debe ser claro ahora, el siguiente paso ortogonaliza contra la . Procediendo de esta manera encontramos el conjunto completo de vectores ortogonales . Si los vectores ortonormales son deseados, entonces normalizamos a medida que vamos, para que los denominadores en las fórmulas de resta se conviertan en uno.
Algoritmo
El siguiente algoritmo de MATLAB implementa la ortonormalización de Gram-Schmidt para vectores euclidianos. Los vectores v1,..., vk (columnas de la matriz V
, de modo que V(:,j)
es el jésimo vector) son reemplazado por vectores ortonormales (columnas de U
) que abarcan el mismo subespacio.
función U = graschmidt()V) [n, k] = tamaño()V); U = ceros()n,k); U(:1) = V(:1) / norma()V(:1)); para i = 2:k U(:i) = V(:i); para j = 1:i-1 U(:i) = U(:i) - ()U(:j)'U(:i) * U(:j); final U(:i) = U(:i) / norma()U(:i)); finalfinal
El costo de este algoritmo es asintóticamente O(nk2) operaciones de coma flotante, donde n es la dimensionalidad de los vectores.
Vía eliminación gaussiana
Si las filas {}v1,... vk} están escritos como matriz , luego aplicar la eliminación gausiana a la matriz aumentada producirá los vectores ortogonalizados en lugar de . Sin embargo, la matriz debe ser llevado a la forma de echelon fila, utilizando sólo la operación de fila de añadir un escalar múltiple de una fila a otra. Por ejemplo, tomando como arriba, tenemos
Y reducir esto a la forma escalonada de filas produce