Articulo de referencia

Proceso de Gram-Schmidt

Los dos primeros pasos del proceso de Gram-Schmidt En matemáticas , particularmente en álgebra lineal y análisis numérico , el proceso de Gram-Schmidt o algoritmo de Gram-Schmid...

Los dos primeros pasos del proceso de 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 encontrar un conjunto de dos o más vectores que 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 con producto interno , más comúnmente el espacio euclidiano.Rnorte{\displaystyle \mathbb {R} ^{n}}equipado con el producto interno estándar . El proceso de Gram-Schmidt toma un conjunto finito y linealmente independiente de vectores.S={v1,,vk}{\displaystyle S=\{\mathbf {v} _{1},\ldots ,\mathbf {v} _{k}\}}para kn y genera un conjunto ortogonalS={1,,k}{\displaystyle S'=\{\mathbf {u} _{1},\ldots ,\mathbf {u} _{k}\}}que abarca el mismok{\displaystyle k}subespacio -dimensional deRnorte{\displaystyle \mathbb {R} ^{n}}comoS{\displaystyle S}.

El método recibe su nombre de Jørgen Pedersen Gram y Erhard Schmidt , pero Pierre-Simon Laplace ya lo conocía 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 columna completo produce la descomposición QR (se descompone en una matriz ortogonal y una matriz triangular ).

Descripción

El proceso de Gram-Schmidt modificado se ejecuta sobre tres vectores linealmente independientes y no ortogonales de una base paraR3{\displaystyle \mathbb {R} ^{3}}Haz clic en la imagen para obtener más detalles. La modificación se explica en la sección de Estabilidad Numérica de este artículo.

La proyección vectorial de un vectorv{\displaystyle \mathbf {v} }en un vector distinto de cero{\displaystyle \mathbf {u} }se define como [ nota 1 ]proyecto(v)=v,,,{\displaystyle \operatorname {proj} _{\mathbf {u} }(\mathbf {v} )={\frac {\langle \mathbf {v} ,\mathbf {u} \rangle }{\langle \mathbf {u} ,\mathbf {u} \rangle }}\,\mathbf {u} ,} dóndev,{\displaystyle \langle \mathbf {v} ,\mathbf {u} \rangle }denota el producto escalar de los vectores{\displaystyle \mathbf {u} }yv{\displaystyle \mathbf {v} }Esto significa queproyecto(v){\displaystyle \operatorname {proj} _{\mathbf {u} }(\mathbf {v} )}es la proyección ortogonal dev{\displaystyle \mathbf {v} }sobre la línea cubierta por{\displaystyle \mathbf {u} }. Si{\displaystyle \mathbf {u} }es el vector cero, entoncesproyecto(v){\displaystyle \operatorname {proj} _{\mathbf {u} }(\mathbf {v} )}se define como el vector cero.

Dadok{\displaystyle k}vectores linealmente independientes distintos de cerov1,,vk{\displaystyle \mathbf {v} _{1},\ldots ,\mathbf {v} _{k}}El proceso de Gram-Schmidt define los vectores1,,k{\displaystyle \mathbf {u} _{1},\ldots ,\mathbf {u} _{k}}como sigue: 1=v1,mi1=112=v2proyecto1(v2),mi2=223=v3proyecto1(v3)proyecto2(v3),mi3=334=v4proyecto1(v4)proyecto2(v4)proyecto3(v4),mi4=44    k=vkj=1k1proyectoj(vk),mik=kk.{\displaystyle {\begin{aligned}\mathbf {u} _{1}&=\mathbf {v} _{1},&\!\mathbf {e} _{1}&={\frac {\mathbf {u} _{1}}{\|\mathbf {u} _{1}\|}}\\\mathbf {u} _{2}&=\mathbf {v} _{2}-\operatorname {proj} _{\mathbf {u} _{1}}(\mathbf {v} _{2}),&\!\mathbf {e} _{2}&={\frac {\mathbf {u} _{2}}{\|\mathbf {u} _{2}\|}}\\\mathbf {u} _{3}&=\mathbf {v} _{3}-\operatorname {proj} _{\mathbf {u} _{1}}(\mathbf {v} _{3})-\operatorname {proj} _{\mathbf {u} _{2}}(\mathbf {v} _{3}),&\!\mathbf {e} _{3}&={\frac {\mathbf {u} _{3}}{\|\mathbf {u} _{3}\|}}\\\mathbf {u} _{4}&=\mathbf {v} _{4}-\operatorname {proj} _{\mathbf {u} _{1}}(\mathbf {v} _{4})-\operatorname {proj} _{\mathbf {u} _{2}}(\mathbf {v} _{4})-\operatorname {proj} _{\mathbf {u} _{3}}(\mathbf {v} _{4}),&\!\mathbf {e} _{4}&={\mathbf {u} _{4} \over \|\mathbf {u} _{4}\|}\\&{}\ \ \vdots &&{}\ \ \vdots \\\mathbf {u} _{k}&=\mathbf {v} _{k}-\sum _{j=1}^{k-1}\operatorname {proj} _{\mathbf {u} _{j}}(\mathbf {v} _{k}),&\!\mathbf {e} _{k}&={\frac {\mathbf {u} _{k}}{\|\mathbf {u} _{k}\|}}.\end{aligned}}}

La secuencia1,,k{\displaystyle \mathbf {u} _{1},\ldots ,\mathbf {u} _{k}}es el sistema requerido de vectores ortogonales y los vectores normalizadosmi1,,mik{\displaystyle \mathbf {e} _{1},\ldots,\mathbf {e} _{k}}Formar un conjunto ortonormal . El cálculo de la secuencia1,,k{\displaystyle \mathbf {u} _{1},\ldots ,\mathbf {u} _{k}}se conoce como ortogonalización de Gram-Schmidt y el cálculo de la secuenciami1,,mik{\displaystyle \mathbf {e} _{1},\ldots,\mathbf {e} _{k}}se conoce como ortonormalización de Gram-Schmidt .

Para comprobar que estas fórmulas producen una secuencia ortogonal, primero calcule1,2{\displaystyle \langle \mathbf {u} _{1},\mathbf {u} _{2}\rangle }sustituyendo la fórmula anterior por2{\displaystyle \mathbf {u} _{2}}: obtenemos cero. Luego usa esto para calcular1,3{\displaystyle \langle \mathbf {u} _{1},\mathbf {u} _{3}\rangle }nuevamente sustituyendo la fórmula para3{\displaystyle \mathbf {u} _{3}}: obtenemos cero. Para arbitrariok{\displaystyle k}La demostración se realiza mediante inducción matemática .

Geométricamente, este método procede de la siguiente manera: calculari{\displaystyle \mathbf {u} _ {i}}, proyectavi{\displaystyle \mathbf {v} _{i}}ortogonalmente sobre el subespacioU{\displaystyle U}generado por1,,i1{\displaystyle \mathbf {u} _{1},\ldots ,\mathbf {u} _{i-1}}, que es lo mismo que el subespacio generado porv1,,vi1{\displaystyle \mathbf {v} _{1},\ldots ,\mathbf {v} _{i-1}}. El vectori{\displaystyle \mathbf {u} _ {i}}entonces se define como la diferencia entrevi{\displaystyle \mathbf {v} _{i}}y esta proyección, garantizada para ser ortogonal a todos los vectores en el subespacioU{\displaystyle U}.

El proceso de Gram-Schmidt también se aplica a una secuencia infinita numerable linealmente independiente { v i } i . El resultado es una secuencia ortogonal (u ortonormal) { u i } i tal que para el número natural n : el espacio generado algebraico dev1,,vnorte{\displaystyle \mathbf {v} _{1},\ldots ,\mathbf {v} _{n}}es lo mismo que el de1,,norte{\displaystyle \mathbf {u} _{1},\ldots ,\mathbf {u} _{n}}.

Si el proceso de Gram-Schmidt se aplica a una secuencia linealmente dependiente, produce el vector 0 en lai{\displaystyle i}paso t, suponiendo quevi{\displaystyle \mathbf {v} _{i}}es una combinación lineal dev1,,vi1{\displaystyle \mathbf {v} _{1},\ldots ,\mathbf {v} _{i-1}}Si se desea generar una base ortonormal, el algoritmo debe comprobar si hay vectores nulos en la salida y descartarlos, ya que ningún múltiplo de un vector nulo puede tener una longitud de 1. El número de vectores generados por el algoritmo será entonces igual a la dimensión del espacio abarcado por las entradas originales.

Una variante del proceso de Gram-Schmidt que utiliza recursión transfinita aplicada a una secuencia infinita (posiblemente no numerable) de vectores.(vα)α<λ{\displaystyle (v_{\alpha })_{\alpha <\lambda }}produce un conjunto de vectores ortonormales(α)α<κ{\displaystyle (u_{\alpha })_{\alpha <\kappa }}conκλ{\displaystyle \kappa \leq \lambda }de tal manera que para cualquierαλ{\displaystyle \alpha \leq \lambda }, la finalización del tramo de{β:β<min(α,κ)}{\displaystyle \{u_{\beta }:\beta <\min(\alpha ,\kappa )\}}es lo mismo que el de{vβ:β<α}{\displaystyle \{v_{\beta }:\beta <\alpha \}}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 (funcional-analítica). Nótese que en el caso general a menudo la desigualdad estrictaκ<λ{\displaystyle \kappa <\lambda }se cumple, incluso si el conjunto inicial era linealmente independiente y el intervalo de(α)α<κ{\displaystyle (u_{\alpha })_{\alpha <\kappa }}no tiene por qué ser un subespacio del espacio generado por(vα)α<λ{\displaystyle (v_{\alpha })_{\alpha <\lambda }}(más bien, es un subespacio de su completitud).

Ejemplo

espacio euclidiano

Considere el siguiente conjunto de vectores enR2{\displaystyle \mathbb {R} ^{2}}(con el producto interno convencional ) S={v1=[31],v2=[22]}.{\displaystyle S=\left\{\mathbf {v} _{1}={\begin{bmatrix}3\\1\end{bmatrix}},\mathbf {v} _{2}={\begin{bmatrix}2\\2\end{bmatrix}}\right\}.}

Ahora, realice la prueba de Gram-Schmidt para obtener un conjunto ortogonal de vectores: 1=v1=[31]{\displaystyle \mathbf {u} _{1}=\mathbf {v} _{1}={\begin{bmatrix}3\\1\end{bmatrix}}}2=v2proyecto1(v2)=[22]proyecto[31][22]=[22]810[31]=[2/56/5].{\displaystyle \mathbf {u} _{2}=\mathbf {v} _{2}-\operatorname {proj} _{\mathbf {u} _{1}}(\mathbf {v} _{2})={\begin{bmatrix}2\\2\end{bmatrix}}-\operatorname {proj} _{\left[{\begin{smallmatrix}3\\1\end{smallmatrix}}\right]}{\begin{bmatrix}2\\2\end{bmatrix}}={\begin{bmatrix}2\\2\end{bmatrix}}-{\frac {8}{10}}{\begin{bmatrix}3\\1\end{bmatrix}}={\begin{bmatrix}-2/5\\6/5\end{bmatrix}}.}

Comprobamos que los vectores1{\displaystyle \mathbf {u} _{1}}y2{\displaystyle \mathbf {u} _{2}}son efectivamente ortogonales: 1,2=[31],[2/56/5]=65+65=0,{\displaystyle \langle \mathbf {u} _{1},\mathbf {u} _{2}\rangle =\left\langle {\begin{bmatrix}3\\1\end{bmatrix}},{\begin{bmatrix}-2/5\\6/5\end{bmatrix}}\right\rangle =-{\frac {6}{5}}+{\frac {6}{5}}=0,} Cabe señalar que si el producto escalar de dos vectores es 0, entonces son ortogonales.

Para vectores distintos de cero, podemos normalizar los vectores dividiendo sus tamaños como se muestra arriba: mi1=110[31]{\displaystyle \mathbf {e} _{1}={\frac {1}{\sqrt {10}}}{\begin{bmatrix}3\\1\end{bmatrix}}}mi2=14025[2/56/5]=110[13].{\displaystyle \mathbf {e} _{2}={\frac {1}{\sqrt {40 \over 25}}}{\begin{bmatrix}-2/5\\6/5\end{bmatrix}}={\frac {1}{\sqrt {10}}}{\begin{bmatrix}-1\\3\end{bmatrix}}.}

Propiedades

Denotemos porGS(v1,,vk){\displaystyle \operatorname {GS} (\mathbf {v} _{1},\dots ,\mathbf {v} _{k})}el resultado de aplicar el proceso de Gram-Schmidt a una colección de vectoresv1,,vk{\displaystyle \mathbf {v} _{1},\dots ,\mathbf {v} _{k}}Esto genera un mapa.GS:(Rnorte)k(Rnorte)k{\displaystyle \operatorname {GS} \colon (\mathbb {R} ^{n})^{k}\to (\mathbb {R} ^{n})^{k}}.

Tiene las siguientes propiedades:

  • Es continuo
  • Es un preservador de la orientación en el sentido de queo(v1,,vk)=o(GS(v1,,vk)){\displaystyle \operatorname {or} (\mathbf {v} _{1},\dots ,\mathbf {v} _{k})=\operatorname {or} (\operatorname {GS} (\mathbf {v} _{1},\dots ,\mathbf {v} _{k}))}.
  • Conmuta con mapas ortogonales:

Dejargramo:RnorteRnorte{\displaystyle g\colon \mathbb {R} ^{n}\to \mathbb {R} ^{n}}ser ortogonal (con respecto al producto interno dado). Entonces tenemos GS(gramo(v1),,gramo(vk))=(gramo(GS(v1,,vk)1),,gramo(GS(v1,,vk)k)){\displaystyle \operatorname {GS} (g(\mathbf {v} _{1}),\dots ,g(\mathbf {v} _{k}))=\left(g(\operatorname {GS} (\mathbf {v} _{1},\dots ,\mathbf {v} _{k})_{1}),\dots ,g(\operatorname {GS} (\mathbf {v} _{1},\dots ,\mathbf {v} _{k})_{k})\right)}

Además, una versión parametrizada del proceso de Gram-Schmidt produce una retracción de deformación (fuerte) del grupo lineal general.GRAMOL(Rnorte){\displaystyle \mathrm {GL} (\mathbb {R} ^{n})}sobre el grupo ortogonalO(Rnorte){\displaystyle O(\mathbb {R} ^{n})}.

Estabilidad numérica

Cuando este proceso se implementa en una computadora, los vectoresk{\displaystyle \mathbf {u} _{k}}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 grave; por lo tanto, se dice que el proceso de Gram-Schmidt (clásico) es numéricamente inestable .

El proceso de Gram-Schmidt puede estabilizarse mediante una pequeña modificación; esta versión se conoce a veces como Gram-Schmidt modificado o MGS. Este método proporciona el mismo resultado que la fórmula original en aritmética exacta e introduce errores menores en aritmética de precisión finita.

En lugar de calcular el vector u k como k=vkproyecto1(vk)proyecto2(vk)proyectok1(vk),{\displaystyle \mathbf {u} _{k}=\mathbf {v} _{k}-\operatorname {proj} _{\mathbf {u} _{1}}(\mathbf {v} _{k})-\operatorname {proj} _{\mathbf {u} _{2}}(\mathbf {v} _{k})-\cdots -\operatorname {proj} _{\mathbf {u} _{k-1}}(\mathbf {v} _{k}),} se calcula como k(1)=vkproyecto1(vk),k(2)=k(1)proyecto2(k(1)),k(k2)=k(k3)proyectok2(k(k3)),k(k1)=k(k2)proyectok1(k(k2)),mik=k(k1)k(k1){\displaystyle {\begin{aligned}\mathbf {u} _{k}^{(1)}&=\mathbf {v} _{k}-\operatorname {proj} _{\mathbf {u} _{1}}(\mathbf {v} _{k}),\\\mathbf {u} _{k}^{(2)}&=\mathbf {u} _{k}^{(1)}-\operatorname {proj} _{\mathbf {u} _{2}}\left(\mathbf {u} _{k}^{(1)}\right),\\&\;\;\vdots \\\mathbf {u} _{k}^{(k-2)}&=\mathbf {u} _{k}^{(k-3)}-\operatorname {proj} _{\mathbf {u} _{k-2}}\left(\mathbf {u} _{k}^{(k-3)}\right),\\\mathbf {u} _{k}^{(k-1)}&=\mathbf {u} _{k}^{(k-2)}-\operatorname {proj} _{\mathbf {u} _{k-1}}\left(\mathbf {u} _{k}^{(k-2)}\right),\\\mathbf {e} _{k}&={\frac {\mathbf {u} _{k}^{(k-1)}}{\left\|\mathbf {u} _{k}^{(k-1)}\right\|}}\end{aligned}}}

Este método se utiliza en la animación anterior, cuando el intermediov3{\displaystyle \mathbf {v} '_{3}}El vector se utiliza al ortogonalizar el vector azul.v3{\displaystyle \mathbf {v} _{3}}.

Aquí hay otra descripción del algoritmo modificado. Dados los vectoresv1,v2,,vnorte{\displaystyle \mathbf {v} _{1},\mathbf {v} _{2},\dots ,\mathbf {v} _{n}}En nuestro primer paso producimos vectoresv1,v2(1),,vnorte(1){\displaystyle \mathbf {v} _{1},\mathbf {v} _{2}^{(1)},\dots ,\mathbf {v} _{n}^{(1)}}eliminando componentes en la dirección dev1{\displaystyle \mathbf {v} _{1}}. En fórmulas,vk(1):=vkvk,v1v1,v1v1{\displaystyle \mathbf {v} _{k}^{(1)}:=\mathbf {v} _{k}-{\frac {\langle \mathbf {v} _{k},\mathbf {v} _{1}\rangle }{\langle \mathbf {v} _{1},\mathbf {v} _{1}\rangle }}\mathbf {v} _{1}}Después de este paso, ya tenemos dos de los vectores ortogonales que deseamos.1,,norte{\displaystyle \mathbf {u} _{1},\dots ,\mathbf {u} _{n}}, es decir1=v1,2=v2(1){\displaystyle \mathbf {u} _{1}=\mathbf {v} _{1},\mathbf {u} _{2}=\mathbf {v} _{2}^{(1)}}, pero también hicimosv3(1),,vnorte(1){\displaystyle \mathbf {v} _{3}^{(1)},\dots ,\mathbf {v} _{n}^{(1)}}ya ortogonal a1{\displaystyle \mathbf {u} _{1}}A continuación, ortogonalizamos esos vectores restantes contra2=v2(1){\displaystyle \mathbf {u} _{2}=\mathbf {v} _{2}^{(1)}}Esto significa que calculamos.v3(2),v4(2),,vnorte(2){\displaystyle \mathbf {v} _{3}^{(2)},\mathbf {v} _{4}^{(2)},\dots ,\mathbf {v} _{n}^{(2)}}por sustracciónvk(2):=vk(1)vk(1),22,22{\displaystyle \mathbf {v} _{k}^{(2)}:=\mathbf {v} _{k}^{(1)}-{\frac {\langle \mathbf {v} _{k}^{(1)},\mathbf {u} _{2}\rangle }{\langle \mathbf {u} _{2},\mathbf {u} _{2}\rangle }}\mathbf {u} _{2}}Ahora hemos almacenado los vectores.v1,v2(1),v3(2),v4(2),,vnorte(2){\displaystyle \mathbf {v} _{1},\mathbf {v} _{2}^{(1)},\mathbf {v} _{3}^{(2)},\mathbf {v} _{4}^{(2)},\dots ,\mathbf {v} _{n}^{(2)}}donde los tres primeros vectores ya están1,2,3{\displaystyle \mathbf {u} _{1},\mathbf {u} _{2},\mathbf {u} _{3}}y los vectores restantes ya son ortogonales a1,2{\displaystyle \mathbf {u} _{1},\mathbf {u} _{2}}. Como debería estar claro ahora, el siguiente paso ortogonalizav4(2),,vnorte(2){\displaystyle \mathbf {v} _{4}^{(2)},\dots ,\mathbf {v} _{n}^{(2)}}contra3=v3(2){\displaystyle \mathbf {u} _{3}=\mathbf {v} _{3}^{(2)}}Procediendo de esta manera, encontramos el conjunto completo de vectores ortogonales.1,,norte{\displaystyle \mathbf {u} _{1},\dots ,\mathbf {u} _{n}}. Si se desean vectores ortonormales, entonces 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, de modo que V(:,j)es laj{\displaystyle j}Los vectores (-ésimos) se reemplazan por vectores ortonormales (columnas de U) que abarcan el mismo subespacio.

función U = gramschmidt ( V )[ n , k ] = tamaño ( V );U = ceros ( n , k );U (:, 1 ) = V (:, 1 ) / norma ( V (:, 1 ));para i = 2 : kU (:, i ) = V (:, i );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² ) 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 matrizA{\displaystyle A}, luego aplicando la eliminación gaussiana a la matriz aumentada[AAT|A]{\displaystyle \left[AA^{\mathsf {T}}|A\right]}producirá los vectores ortogonalizados en lugar deA{\displaystyle A}Sin embargo, la matrizAAT{\displaystyle AA^{\mathsf {T}}}debe ser llevado a la forma escalonada de filas , utilizando únicamente la operación de fila de sumar un múltiplo escalar de una fila a otra. [ 3 ] Por ejemplo, tomandov1=[31],v2=[22]{\displaystyle \mathbf {v} _{1}={\begin{bmatrix}3&1\end{bmatrix}},\mathbf {v} _{2}={\begin{bmatrix}2&2\end{bmatrix}}}como arriba, tenemos [AAT|A]=[108318822]{\displaystyle \left[AA^{\mathsf {T}}|A\right]=\left[{\begin{array}{rr|rr}10&8&3&1\\8&8&2&2\end{array}}\right]}

Y al reducir esto a la forma escalonada de filas se obtiene [1.8.3.1010,250,75]{\displaystyle \left[{\begin{array}{rr|rr}1&.8&.3&.1\\0&1&-.25&.75\end{array}}\right]}

Los vectores normalizados son entonces mi1=1.32+.12[.3.1]=110[31]{\displaystyle \mathbf {e} _{1}={\frac {1}{\sqrt {.3^{2}+.1^{2}}}}{\begin{bmatrix}.3&.1\end{bmatrix}}={\frac {1}{\sqrt {10}}}{\begin{bmatrix}3&1\end{bmatrix}}}mi2=10,252+0,752[0,250,75]=110[13],{\displaystyle \mathbf {e} _{2}={\frac {1}{\sqrt {.25^{2}+.75^{2}}}}{\begin{bmatrix}-.25&.75\end{bmatrix}}={\frac {1}{\sqrt {10}}}{\begin{bmatrix}-1&3\end{bmatrix}},} como en el ejemplo anterior.

Fórmula determinante

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

mij=1Dj1Dj|v1,v1v2,v1vj,v1v1,v2v2,v2vj,v2v1,vj1v2,vj1vj,vj1v1v2vj|{\displaystyle \mathbf {e} _{j}={\frac {1}{\sqrt {D_{j-1}D_{j}}}}{\begin{vmatrix}\langle \mathbf {v} _{1},\mathbf {v} _{1}\rangle &\langle \mathbf {v} _{2},\mathbf {v} _{1}\rangle &\cdots &\langle \mathbf {v} _{j},\mathbf {v} _{1}\rangle \\\langle \mathbf {v} _{1},\mathbf {v} _{2}\rangle &\langle \mathbf {v} _{2},\mathbf {v} _{2}\rangle &\cdots &\langle \mathbf {v} _{j},\mathbf {v} _{2}\rangle \\\vdots &\vdots &\ddots &\vdots \\\langle \mathbf {v} _{1},\mathbf {v} _{j-1}\rangle &\langle \mathbf {v} _{2},\mathbf {v} _{j-1}\rangle &\cdots &\langle \mathbf {v} _{j},\mathbf {v} _{j-1}\rangle \\\mathbf {v} _{1}&\mathbf {v} _{2}&\cdots &\mathbf {v} _{j}\end{vmatrix}}}

j=1Dj1|v1,v1v2,v1vj,v1v1,v2v2,v2vj,v2v1,vj1v2,vj1vj,vj1v1v2vj|{\displaystyle \mathbf {u} _{j}={\frac {1}{D_{j-1}}}{\begin{vmatrix}\langle \mathbf {v} _{1},\mathbf {v} _{1}\rangle &\langle \mathbf {v} _{2},\mathbf {v} _{1}\rangle &\cdots &\langle \mathbf {v} _{j},\mathbf {v} _{1}\rangle \\\langle \mathbf {v} _{1},\mathbf {v} _{2}\rangle &\langle \mathbf {v} _{2},\mathbf {v} _{2}\rangle &\cdots &\langle \mathbf {v} _{j},\mathbf {v} _{2}\rangle \\\vdots &\vdots &\ddots &\vdots \\\langle \mathbf {v} _{1},\mathbf {v} _{j-1}\rangle &\langle \mathbf {v} _{2},\mathbf {v} _{j-1}\rangle &\cdots &\langle \mathbf {v} _{j},\mathbf {v} _{j-1}\rangle \\\mathbf {v} _{1}&\mathbf {v} _{2}&\cdots &\mathbf {v} _{j}\end{vmatrix}}}

dóndeD0=1{\displaystyle D_{0}=1}y, paraj1{\displaystyle j\geq 1},Dj{\displaystyle D_{j}}es el determinante de Gram

Dj=|v1,v1v2,v1vj,v1v1,v2v2,v2vj,v2v1,vjv2,vjvj,vj|.{\displaystyle D_{j}={\begin{vmatrix}\langle \mathbf {v} _{1},\mathbf {v} _{1}\rangle &\langle \mathbf {v} _{2},\mathbf {v} _{1}\rangle &\cdots &\langle \mathbf {v} _{j},\mathbf {v} _{1}\rangle \\\langle \mathbf {v} _{1},\mathbf {v} _{2}\rangle &\langle \mathbf {v} _{2},\mathbf {v} _{2}\rangle &\cdots &\langle \mathbf {v} _{j},\mathbf {v} _{2}\rangle \\\vdots &\vdots &\ddots &\vdots \\\langle \mathbf {v} _{1},\mathbf {v} _{j}\rangle &\langle \mathbf {v} _{2},\mathbf {v} _{j}\rangle &\cdots &\langle \mathbf {v} _{j},\mathbf {v} _{j}\rangle \end{vmatrix}}.}

Tenga en cuenta que la expresión parak{\displaystyle \mathbf {u} _{k}}es un determinante "formal", es decir, la matriz contiene tanto escalares como vectores; el significado de esta expresión se define como el resultado de una expansión de cofactores a lo largo de la fila de vectores.

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

Expresado mediante álgebra geométrica

Expresados ​​utilizando la notación empleada en el álgebra geométrica , los resultados no normalizados del proceso de Gram-Schmidt pueden expresarse como k=vkj=1k1(vkj)j1 ,{\displaystyle \mathbf {u} _{k}=\mathbf {v} _{k}-\sum _{j=1}^{k-1}(\mathbf {v} _{k}\cdot \mathbf {u} _{j})\mathbf {u} _{j}^{-1}\ ,} que es equivalente a la expresión usando elproyecto{\displaystyle \operatorname {proj} }operador definido anteriormente. Los resultados pueden expresarse de forma equivalente como [ 4 ].k=vkvk1v1(vk1v1)1,{\displaystyle \mathbf {u} _{k}=\mathbf {v} _{k}\wedge \mathbf {v} _{k-1}\wedge \cdot \cdot \cdot \wedge \mathbf {v} _{1}(\mathbf {v} _{k-1}\wedge \cdot \cdot \cdot \wedge \mathbf {v} _{1})^{-1},} lo cual está estrechamente relacionado con la expresión que utiliza determinantes mencionada anteriormente.

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 de Gram-Schmidt estabilizado. Por otro lado, el proceso de Gram-Schmidt produce elj{\displaystyle j}vector ortogonalizado después delj{\displaystyle j}iteración n, mientras que la ortogonalización mediante reflexiones de Householder produce todos los vectores solo al final. Esto hace que solo el proceso de Gram-Schmidt sea aplicable para métodos iterativos como la iteración de Arnoldi .

Otra alternativa está motivada por el uso de la descomposición de Cholesky para invertir la matriz de las ecuaciones normales en mínimos cuadrados lineales . SeaV{\displaystyle V}ser una matriz de rango columna completo , cuyas columnas deben ser ortogonalizadas. La matrizVV{\displaystyle V^{*}V}es hermitiana y definida positiva , por lo que se puede escribir comoVV=LL,{\displaystyle V^{*}V=LL^{*},}utilizando la descomposición de Cholesky . La matriz triangular inferiorL{\displaystyle L}con entradas diagonales estrictamente positivas es invertible . Entonces las columnas de la matrizU=V(L1){\displaystyle U=V\left(L^{-1}\right)^{*}}son ortonormales y abarcan el mismo subespacio que las columnas de la matriz original.V{\displaystyle V}. El uso explícito del productoVV{\displaystyle V^{*}V}Esto hace que el algoritmo sea inestable, especialmente si el número de condición del producto es elevado. 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 ciertas aplicaciones que el algoritmo original de Gram-Schmidt. No obstante, sigue siendo un algoritmo popular y eficaz incluso para los cálculos de estructura electrónica más complejos. [ 5 ]

Complejidad en tiempo de ejecución

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

Véase también

Referencias

  1. Cheney Jr., Elliot Ward ; Kincaid, David (2009). Álgebra lineal: teoría y aplicaciones . Sudbury, MA: Jones and Bartlett. págs.  544, 558. ISBN 978-0-7637-5020-6.
  2. ^ Préstamo Golub y Van 1996 , §5.2.8.
  3. Pursell, Lyle; Trimble, SY (1 de enero de 1991). "Ortogonalización de Gram-Schmidt mediante eliminación de Gauss". The American Mathematical Monthly . 98 (6): 544– 549. doi : 10.2307/2324877 . JSTOR 2324877 . 
  4. Doran, Chris JL ; Lasenby, Anthony (2007). Álgebra geométrica para físicos . Cambridge University Press. pág. 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 nanocable de silicio con 100.000 átomos en el superordenador K". Actas de la Conferencia Internacional de 2011 sobre Computación de Alto Rendimiento, Redes, Almacenamiento y Análisis . 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, MR 1261419 

Notas

  1. En el caso complejo, esto supone que el producto interno es lineal en el primer argumento y lineal conjugado en el segundo. En física, una convención más común es la linealidad en el segundo argumento, en cuyo caso definimosproyecto(v)=,v,.{\displaystyle \operatorname {proj} _{\mathbf {u} }(\mathbf {v} )={\frac {\langle \mathbf {u} ,\mathbf {v} \rangle }{\langle \mathbf {u} ,\mathbf {u} \rangle }}\,\mathbf {u} .}

Fuentes

  • Bau III, David; Trefethen, Lloyd N. (1997), Álgebra lineal numérica , Filadelfia: Society for Industrial and Applied Mathematics, ISBN 978-0-89871-361-9.
  • Golub, Gene H.; Van Loan, Charles F. (1996), Matrix Computations (3.ª  ed.), Johns Hopkins, ISBN 978-0-8018-5414-9.
  • Greub, Werner (1975), Álgebra lineal (4.ª  ed.), Springer.
  • Soliverez, CE; Gagliano, E. (1985), "Ortonormalización en el plano: un enfoque geométrico" (PDF) , Mex. J. Phys. , 31 (4): 743–758 , archivado del original (PDF) el 7 de marzo de 2014 , recuperado el 22 de junio de 2013.
  • "Ortogonalización" , Enciclopedia de Matemáticas , EMS Press , 2001 [1994]
  • Tutorial de matemáticas del Harvey Mudd College sobre el algoritmo de Gram-Schmidt
  • Primeros usos conocidos de algunas de las palabras de 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.
  • Applet de ortogonalización de Gram-Schmidt
  • Rutina de ortogonalización de Gram-Schmidt de NAG para n vectores de orden m
  • Demostración: Raymond Puzio, Keenan Kidwell. "Demostración del algoritmo de ortogonalización de Gram-Schmidt" (versión 8). PlanetMath.org.