Diferencia entre revisiones de «Proceso de ortogonalización de Gram-Schmidt»

Contenido eliminado Contenido añadido
Corrección de las fórmulas. La que figuraba anteriormente sólo era válida para el caso real, pues <u,v> = <v,u> , pero no vale para el caso complejo.
FedeBosio (discusión · contribs.)
estilo; imagen; reorganización; Secciones nuevas agregadas; falta agregar ejemplos, más tarde lo haré.
Línea 1:
[[File:Gram-Schmidt orthonormalization process.gif|thumb|Animación que describe el proceso de ortonormalización en el espacio tridimensional.]]
En [[álgebra lineal]], el '''proceso de ortonormalización de Gram–Schmidt''' es un [[algoritmo]] para construir, a partir de un conjunto de [[vector (física)|vectores]] linealmente independientes de un [[espacio prehilbertiano]] (usualmente, el [[espacio euclídeo]] '''R'''<sup>''n''</sup>), otro conjunto [[ortonormal]] de vectores que genere el mismo subespacio vectorial.
 
El proceso se basa en un resultado de la [[geometría euclídea]], el cual establece que la diferencia entre un vector y su proyección sobre otro, es perpendicular al primero.<ref>{{Cita libro
| apellido=Sullivan
| nombre=Michael
| título=Trigonometría y geometría analítica
| isbn=9789688809433
| editorial=Pearson educación
| edición=4ª
| ubicación=México
| página=403
}}</ref> Dicho resultado constituye una herramienta para construir, a partir de un conjunto de dos vectores no paralelos, otro conjunto, conformado por dos vectores perpendiculares.
 
Este algoritmo recibe su nombre de los matemáticos [[Jørgen Pedersen Gram]] y [[Erhard Schmidt]].
 
== Interpretación geométrica ==
En el espacio euclídeo ('''R'''<sup>3</sup>,&nbsp;·) con el [[producto escalar ]]usual definido, se propone un método para encontrar un sistema de vectores, perpendiculares entre sí, a partir de tres vectores no [[coplanario]]s cualesquiera. Sean ''v''<sub>1</sub>, ''v''<sub>2</sub>, ''v''<sub>3</sub> dichos vectores.
 
El método consiste de dos proyecciones. La base ortogonal de '''R'''<sup>3</sup> compuesta por ''u''<sub>1</sub>, ''u''<sub>2</sub>, ''u''<sub>3</sub>, se calcula de la siguiente manera.
#Se escoge arbitrariamente uno de los vectores dados, por ejemplo ''u''<sub>1</sub>&nbsp;=&nbsp;''v''<sub>1</sub>.
#''u''<sub>2</sub> se calcula como la diferencia entre ''v''<sub>2</sub> y el vector que resulta de proyectar a ''v''<sub>2</sub> sobre ''u''<sub>1</sub>, el cual es perpendicular a ''u''<sub>1</sub>. Es equivalente afirmar que ''u''<sub>2</sub> es la diferencia entre ''v''<sub>2</sub> y el vector que resulta de proyectar a ''v''<sub>2</sub> sobre la recta que genera ''u''<sub>1</sub>.
#''u''<sub>3</sub> es la diferencia entre ''v''<sub>3</sub> y el vector que resulta de proyectar a ''v''<sub>3</sub> sobre el plano generado por ''u''<sub>1</sub> y ''u''<sub>2</sub>. La diferencia de vectores tiene como resultado otro vector que es perpendicular al plano.
 
Esta sencilla interpretación del algoritmo para un caso que puede verse es susceptible de generalización a espacios vectoriales de dimensión arbitraria, con productos internos definidos, no necesariamente canónicos. Dicha generalización no es otra que el proceso de Gram-Schmidt.
 
== Descripción del algoritmo de ortonormalización de Gram–Schmidt ==
Línea 29 ⟶ 51:
 
Para hallar los vectores ortonormales basta con dividir entre la norma de cada vector de la base hallada: <math>\mathbf{e}_k = {\mathbf{u}_k \over ||\mathbf{u}_k||} = {\mathbf{u}_k \over \sqrt{\langle\mathbf{u}_k,\mathbf{u}_k\rangle}}</math>
 
== Descripción formal ==
Una manera de expresar el algoritmo explícitamente es a través de [[pseudocódigo]]. Se construye, para ello, una función con las siguientes características.
 
<ul>
 
<li>
 
Tiene como entrada un conjunto <math>\mathcal{B}</math> no vacío de vectores linealmente independientes.
 
</li><li>
 
Recibe dos instrucciones iterativas anidadas.
#Una estructura ''para cada'', que asigna a ''v'' un vector de la entrada, por cada iteración.
#Una estructura ''mientras'', que asigna a ''u'' el vector ortogonal a todos los ''u'' calculados en las iteraciones previas.
En cada iteración, se ejecutan las funciones
 
<ol>
 
<li>
 
Proy, la cual calcula la proyección ortogonal de un vector sobre otro. Se define matemáticamente como sigue.
 
<br />
 
<math>
\operatorname{Proy} : V \times V \longrightarrow V, \,
\operatorname{Proy}\left(
v_1, v_2
\right) = \left(
\frac{\left\langle
v_1 ,v_2
\right\rangle}{ \left\|
v_2
\right\|^2 }
\right) v_2
</math>
 
donde ''V'' es un espacio vectorial.
 
</li>
 
<li>obtener, como su nombre lo indica, obtiene el elemento de un conjunto dado su [[Número ordinal (teoría de conjuntos)|ordinal]].</li>
 
</ol>
 
</li><li>
 
Devuelve finalmente un conjunto <math>\mathcal{E}</math> de vectores ortogonales.
 
</li>
 
</ul>
 
{{Algoritmo|Gram-Schmidt|
'''función''' <math>\operatorname{ortogonalizar}(\mathcal{B})</math>
:<math>\mathcal{E} \gets \emptyset, \, i \gets 0</math>
:'''para''' <math>\mathbf{v}\, </math> en <math>\mathcal{B} \, </math> '''haga'''
::<math> \mathbf{u} \gets \mathbf{v} , \, j \gets 0</math>
::'''mientras''' <math> i > j </math>
:::<math> \mathbf{u} \gets \mathbf{u} - \operatorname{Proy}\left(\mathbf{v}, \operatorname{obtener}(\mathcal{E},j)\right), \, j \gets j+1 </math>
::agregue <math>\mathbf{u} \, </math> a <math>\mathcal{E}</math>
:'''devuelva''' <math>\mathcal{E}</math>
}}
 
Para obtener una base ortonormal, basta normalizar los elementos de <math>\mathcal{E}</math>.
 
== Referencias ==
{{listaref}}
 
== Enlaces externos ==
* [http://www.youtube.com/watch?v=pIy8xqh9sWs&feature=fvsr, Video - Proceso de ortogonalización en R^3]
 
[[Categoría:Álgebra lineal]]
[[Categoría:Análisis funcional]]