robot de la enciclopedia para niños

Proceso de ortogonalización de Gram-Schmidt para niños

Enciclopedia para niños
Archivo:Gram-Schmidt orthonormalization process
Animación que describe el proceso de ortonormalización en el espacio tridimensional.

En álgebra lineal, el proceso de ortogonalización de Gram–Schmidt es un algoritmo para construir, a partir de un conjunto de vectores de un espacio vectorial con producto interno, 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 \mathbf{v} y su proyección sobre otro vector \mathbf{u}, es perpendicular al vector \mathbf{u}. 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.

Descripción del algoritmo de ortogonalización de Gram–Schmidt

Los dos primeros pasos del proceso de Gram–Schmidt

El método de Gram-Schmidt se usa para hallar bases ortogonales (Espacio Euclideo no normalizado) de cualquier base no euclídea.

En primer lugar tenemos que:

\mathbf{v}-{\langle \mathbf{v}, \mathbf{u}\rangle\over\langle \mathbf{u}, \mathbf{u}\rangle}\mathbf{u} = \mathbf{v} - \mathrm{proy}_{\mathbf{u}}\,(\mathbf{v})

Es un vector ortogonal a \mathbf{u}. Entonces, dados los vectores \mathbf{v}_1, \dots, \mathbf{v}_n , se define:

\mathbf{u}_1 = \mathbf{v}_1,
\mathbf{u}_2 = \mathbf{v}_2-{\langle \mathbf{v}_2, \mathbf{u}_1\rangle\over\langle\mathbf{u}_1,\mathbf{u}_1\rangle}\mathbf{u}_1,
\mathbf{u}_3 = \mathbf{v}_3-{\langle \mathbf{v}_3, \mathbf{u}_1\rangle\over\langle\mathbf{u}_1,\mathbf{u}_1\rangle}\mathbf{u}_1-{\langle \mathbf{v}_3, \mathbf{u}_2\rangle\over\langle\mathbf{u}_2,\mathbf{u}_2\rangle}\mathbf{u}_2,

Generalizando en k:

\mathbf{u}_k = \mathbf{v}_k-\sum_{j=1}^{k-1}{\langle \mathbf{v}_k, \mathbf{u}_j\rangle\over\langle\mathbf{u}_j,\mathbf{u}_j\rangle}\mathbf{u}_j

A partir de las propiedades del producto escalar, es sencillo probar que el conjunto de vectores \mathbf{u}_1, \dots, \mathbf{u}_n es ortogonal.

Proposición 1

Si

\mathcal{B} = \left\{ \mathbf{v}_1, \mathbf{v}_2, \dots, \mathbf{v}_k \right\}

es un conjunto de vectores linealmente independientes, los vectores u1u2, ... uk definidos por


    \left\{ \begin{array}{rcll}
        \mathbf{u}_1 &=& \mathbf{v}_1 & \\
        \mathbf{u}_k &=& \mathbf{v}_k - \displaystyle \sum_{j = 1}^{k - 1} \operatorname{proy}_{\mathbf{u}_j}\left( \mathbf{v}_k \right) & \textrm{ para } \ k > 1
    \end{array} \right.

son todos no nulos. Dicho de otra manera, para cada k,

\left\langle u_k, u_k \right\rangle \ne 0.


Demostración
Procedemos por inducción. Supongamos que fuese
\mathbf{u}_1 = \mathbf{0}

esto implica por definición de u1 que

\mathbf{v}_1 = \mathbf{0}

lo cual contradice la hipótesis de que \mathcal{B} es linealmente independiente. Luego,

\mathbf{u}_1 \ne \mathbf{0}.

Establezcamos la hipótesis inductiva como sigue.


    \forall j < k, \ \mathbf{u}_j \ne \mathbf{0}

Expresamos v1v2, ... vk en función de los u1u2, ... uk de la siguiente manera.

\begin{bmatrix}
    1 & 0 & \cdots & 0 \\
    \frac{\left\langle
        \mathbf{u}_1, \mathbf{v}_2
    \right\rangle}{\left\langle
        \mathbf{u}_1, \mathbf{u}_1
    \right\rangle} & 1 & \cdots & 0 \\
    \vdots & \vdots & \ddots & \vdots \\
    \frac{\left\langle
        \mathbf{u}_1, \mathbf{v}_k
    \right\rangle}{\left\langle
        \mathbf{u}_1, \mathbf{u}_1
    \right\rangle} & \frac{\left\langle
        \mathbf{u}_2, \mathbf{v}_k
    \right\rangle}{\left\langle
        \mathbf{u}_2, \mathbf{u}_2
    \right\rangle} & \cdots & 1
\end{bmatrix}\begin{bmatrix}
    \mathbf{u}_1 & \mathbf{u}_2 & \cdots & \mathbf{u}_k
\end{bmatrix} = \begin{bmatrix}
    \mathbf{v}_1 & \mathbf{v}_2 & \cdots & \mathbf{v}_k
\end{bmatrix}

En la expresión, se ve que es posible despejar uk en función de una sucesión vj de vectores, puesto que la matriz del conjunto de sistemas es triangular inferior, con todos sus elementos en la diagonal distintos de cero. Esto implica en particular que existen escalares

\mu_{(2)(1)}, \dots, \mu_{(k)(1)}, \dots \mu_{(k)(2)} , \dots \mu_{(k)(k-1)}

(tantos como elementos en el triángulo inferior de la matriz inversa) tales que

\mathbf{u}_k = \mathbf{v}_{k} + \sum_{j = 1}^{k-1} \mu_{(k)(j)} \mathbf{v}_{j}.

Supongamos que fuera uk = 0, en este caso queda

0 = \mathbf{v}_{k} + \sum_{j = 1}^{k-1} \mu_{(k)(j)} \mathbf{v}_{j}

y por lo tanto existen escalares, no todos nulos, que producen una combinación nula con vectores de \mathcal{B}. Esto contradice la hipótesis de que \mathcal{B} es linealmente independiente. Luego,

\mathbf{u}_{k} \ne \mathbf{0}

igualdad que, por el principio de inducción, es válida para todo k natural

Proposición 2

El conjunto

\mathcal{E} = \left\{ \mathbf{u}_1, \mathbf{u}_2, \dots, \mathbf{u}_k \right\}

está constituido por vectores mutuamente ortogonales.


Demostración
Sea
P = \left\{ (n,k) \in \mathbb{N} \times \mathbb{N} : \forall n < k, \, \left\langle \mathbf{u}_n, \mathbf{u}_k \right\rangle = 0 \land \left\langle \mathbf{u}_n, \mathbf{u}_n \right\rangle \ne 0 \right\}

Debemos aplicar dos veces el principio de inducción para probar que

P = \mathbb{N} \times \mathbb{N}.

Comencemos por probar que

\forall k \in \mathbb{N}, \, (1,k) \in P.

De la Proposición 1 se deduce que

\left\langle
    \mathbf{u}_1,\mathbf{u}_1
\right\rangle \ne 0

lo cual por un lado, implica que (1, 1) está en P, y por otro, permite definir el vector

(1) \operatorname{proy}_{\mathbf{u}_1}\left(
    \mathbf{v_2}
\right) = \left(
    \frac{\left\langle
        \mathbf{u}_1, \mathbf{v_2}
    \right\rangle}{\left\langle
        \mathbf{u}_1, \mathbf{u}_1
    \right\rangle}
\right) \mathbf{u}_1

Por la linealidad del producto interno, se tiene

\left\langle
    \mathbf{u}_1,\mathbf{u}_2
\right\rangle = \left\langle
    \mathbf{u}_1,\mathbf{v}_2 - \operatorname{proy}_{\mathbf{u}_1}\left(
        \mathbf{v}_2
    \right)
\right\rangle = \left\langle
    \mathbf{u}_1,\mathbf{v}_2
\right\rangle - \left\langle
    \mathbf{u}_1,\operatorname{proy}_{\mathbf{u}_1}\left(
        \mathbf{v}_2
    \right)
\right\rangle

que, en (1), queda

\left\langle
    \mathbf{u}_1,\mathbf{u}_2
\right\rangle = \left\langle
    \mathbf{u}_1,\mathbf{v}_2
\right\rangle - \left\langle
    \mathbf{u}_1,
    \left(
        \frac{\left\langle
            \mathbf{u}_1, \mathbf{v_2}
        \right\rangle}{\left\langle
            \mathbf{u}_1, \mathbf{u}_1
        \right\rangle}
    \right) \mathbf{u}_1
\right\rangle

finalmente, por la homogeneidad del producto interno tenemos

\left\langle
    \mathbf{u}_1,\mathbf{u}_2
\right\rangle = \left\langle
    \mathbf{u}_1,\mathbf{v}_2
\right\rangle - \left(
    \frac{\left\langle
        \mathbf{u}_1, \mathbf{v_2}
    \right\rangle}{\left\langle
        \mathbf{u}_1, \mathbf{u}_1
    \right\rangle}
\right) \left\langle
     \mathbf{u}_1,\mathbf{u}_1
\right\rangle = \left\langle
    \mathbf{u}_1,\mathbf{v}_2
\right\rangle - \left\langle
    \mathbf{u}_1, \mathbf{v}_2
\right\rangle = 0

luego

(1,2) \in P.

Procedemos por inducción, la hipótesis inductiva es

\forall j, \ 1 < j < k \Longrightarrow \left\langle \mathbf{u}_1, \mathbf{u}_j \right\rangle = 0.

La Proposición 1, permite definir

\operatorname{proy}_{\mathbf{u}_j}\left(
        \mathbf{v}_k
    \right) = \left(
    \frac{\left\langle
        \mathbf{u}_j, \mathbf{v_k}
    \right\rangle}{\left\langle
        \mathbf{u}_j, \mathbf{u}_j
    \right\rangle}
\right) \mathbf{u}_j

con lo cual, análogamente al caso j = 2, se tiene

\left\langle
    \mathbf{u}_1,\mathbf{u}_k
\right\rangle = \left\langle
    \mathbf{u}_1,\mathbf{v}_k
\right\rangle - \sum_{j=1}^{k-1} \left(
    \frac{\left\langle
        \mathbf{u}_j, \mathbf{v_k}
    \right\rangle}{\left\langle
        \mathbf{u}_j, \mathbf{u}_j
    \right\rangle}
\right) \left\langle
     \mathbf{u}_1,\mathbf{u}_j
\right\rangle = \left\langle
    \mathbf{u}_1,\mathbf{v}_k
\right\rangle - \left\langle
    \mathbf{u}_1, \mathbf{v_k}
\right\rangle = 0.

Esto demuestra que

\forall k \in \mathbb{N},\, (1,k) \in P

es decir, todo vector en \mathcal{E} es perpendicular a u1, con excepción del mismo u1.

Aplicaremos inducción sobre n, considérese la hipótesis inductiva

\forall j < n, (j,k) \in P

también puede escribirse

\forall j < n, \forall k \in \mathbb{N}, \left(j < k \Longrightarrow \left\langle \mathbf{u}_j, \mathbf{u}_k \right\rangle = 0 \land \left\langle \mathbf{u}_j, \mathbf{u}_j \right\rangle \ne 0 \right)

La Proposición 1 garantiza la segunda condición de la conjunción lógica, con lo cual sólo hace falta demostrar para n la primera.

\left\langle
    \mathbf{u}_n,\mathbf{u}_k
\right\rangle = \left\langle
    \mathbf{u}_n,\mathbf{v}_k
\right\rangle - \sum_{j=1}^{k-1} \left(
    \frac{\left\langle
        \mathbf{u}_j, \mathbf{v_k}
    \right\rangle}{\left\langle
        \mathbf{u}_j, \mathbf{u}_j
    \right\rangle}
\right) \left\langle
     \mathbf{u}_n,\mathbf{u}_j
\right\rangle = \left\langle
    \mathbf{u}_n,\mathbf{v}_k
\right\rangle - \left\langle
    \mathbf{u}_n, \mathbf{v_k}
\right\rangle = 0.

por lo tanto

P = \mathbb{N} \times \mathbb{N} \quad \blacksquare

Los conjuntos así definidos satisfacen la siguiente relación.

Proposición 3

Los sistemas de vectores

\mathcal{B} = \left\{ \mathbf{v}_1, \mathbf{v}_2, \dots \mathbf{v}_k \right\}, \, \mathcal{E} = \left\{ \mathbf{u}_1, \mathbf{u}_2, \dots \mathbf{u}_k \right\}

generan el mismo subespacio vectorial.

Para obtener una base ortonormal a partir de \mathcal{E}, basta con dividir entre la norma de cada vector de la base hallada: \mathbf{e}_k = {\mathbf{u}_k \over ||\mathbf{u}_k||} = {\mathbf{u}_k \over \sqrt{\langle\mathbf{u}_k,\mathbf{u}_k\rangle}}

Ejemplos

  • Dada \mathcal{B} = \left\{ \mathbf{v}_1, \mathbf{v}_2 \right\} una base de \mathbb{R}^2 definida por

    \left\{\begin{array}{rcl}
    \mathbf{v}_1 &=& \begin{bmatrix}
        2 \\ 1
    \end{bmatrix} \\
    \mathbf{v}_2 &=& \begin{bmatrix}
        1 \\ 4
    \end{bmatrix}
\end{array}\right.

    mediante el proceso de Gram-Schmidt es posible construir una base ortogonal \mathcal{E} = \left\{ \mathbf{u}_1, \mathbf{u}_2 \right\} con respecto al producto interno usual de \mathbb{R}^2.

    \left\langle (a,b), (c,d) \right\rangle = ac + bd.

    Se calculan los vectores u1 y u2 a partir de las fórmulas.

    \left\{\begin{array}{rlcl}
    \mathbf{u}_1 =& \mathbf{v}_1 &=& \begin{bmatrix}
        2 \\ 1
    \end{bmatrix} \\
    & \operatorname{proy}_{\mathbf{u}_1}\left( \mathbf{v}_2 \right) &=& \frac{\left\langle \mathbf{u}_1, \mathbf{v}_2 \right\rangle}{\left\langle \mathbf{u}_1, \mathbf{u}_1 \right\rangle} \mathbf{u}_1 = \begin{bmatrix}
        \frac{12}{5} \\ \frac{6}{5}
    \end{bmatrix} \\
    \mathbf{u}_2 =& \mathbf{v}_2 - \operatorname{proy}_{\mathbf{u}_1}\left( \mathbf{v}_2 \right) &=& \begin{bmatrix}
        - \frac{7}{5} \\ \frac{14}{5}
    \end{bmatrix}
\end{array}\right.

    nótese que

    \begin{bmatrix}
    - \frac{7}{5} \\ \frac{14}{5}
\end{bmatrix} = \frac{7}{5} \begin{bmatrix}
    -1 \\ 2
\end{bmatrix}

    de hecho, dado cualquier vector (a,b)\in\mathbb{R}^2 y \forall\;\alpha\in\mathbb{R} se cumple

    \left\langle (a,b), \alpha(-b,a) \right\rangle = 0.

  • Sea \mathcal{B} = \left\{ \mathbf{v}_1, \mathbf{v}_2, \mathbf{v}_3 \right\} el sistema definido por

    \left\{\begin{array}{rcl}
    \mathbf{v}_1 &=& \begin{bmatrix}
        2 \\ 1 \\ 1
    \end{bmatrix} \\
    \mathbf{v}_2 &=& \begin{bmatrix}
        1 \\ 0 \\ 10
    \end{bmatrix} \\
    \mathbf{v}_3 &=& \begin{bmatrix}
        2 \\ -3 \\ 11
    \end{bmatrix}
\end{array}\right.

    Aplicamos el proceso, seleccionamos por ejemplo

    \mathbf{u}_1 = \mathbf{v}_1 = \begin{bmatrix}
        2 \\ 1 \\ 1
    \end{bmatrix}

    y calculamos

    \operatorname{proy}_{\mathbf{u}_1}\left( \mathbf{v}_2 \right) = \frac{\left\langle \mathbf{u}_1, \mathbf{v}_2 \right\rangle}{\left\langle \mathbf{u}_1, \mathbf{u}_1 \right\rangle} \mathbf{u}_1 = \begin{bmatrix}
       4 \\ 2 \\ 2
    \end{bmatrix}

    luego

    \mathbf{u}_2 = \mathbf{v}_2 - \operatorname{proy}_{\mathbf{u}_1}\left( \mathbf{v}_2 \right) = \begin{bmatrix}
        -3 \\ -2 \\ 8
    \end{bmatrix}.

    Análogamente se sigue para u3 que

    \left\{\begin{array}{rcc}
    \operatorname{proy}_{\mathbf{u}_1}\left( \mathbf{v}_3 \right) &=& \begin{bmatrix}
       4 \\ 2 \\ 2
    \end{bmatrix} \\
    \operatorname{proy}_{\mathbf{u}_2}\left( \mathbf{v}_3 \right) &=& \begin{bmatrix}
       - \frac{24}{7} \\ - \frac{16}{7} \\ \frac{64}{7}
    \end{bmatrix} \\
    \mathbf{u}_3 = \mathbf{v}_3 - \operatorname{proy}_{\mathbf{u}_1}\left( \mathbf{v}_3 \right) - \operatorname{proy}_{\mathbf{u}_2}\left( \mathbf{v}_3 \right) &=& \begin{bmatrix}
        \frac{10}{7} \\ - \frac{19}{7} \\ -\frac{1}{7}
    \end{bmatrix}
\end{array}\right.

    finalmente se obtiene

    \mathcal{E} = \left\{ \mathbf{u}_1, \mathbf{u}_2, \mathbf{u}_3 \right\} = \left\{ \begin{bmatrix}
    2 \\ 1 \\ 1
\end{bmatrix}, \begin{bmatrix}
    -3 \\ -2 \\ 8
\end{bmatrix}, \begin{bmatrix}
    \frac{10}{7} \\ - \frac{19}{7} \\ -\frac{1}{7}
\end{bmatrix} \right\}

    que es una base ortogonal de R3 con respecto al producto escalar canónico.

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.

  • Tiene como entrada un conjunto \mathcal{B} no vacío de vectores linealmente independientes.
  • Recibe dos instrucciones iterativas anidadas.

    1. Una estructura para cada, que asigna a v un vector de la entrada, por cada iteración.
    2. 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

    1. Proy, la cual calcula la proyección ortogonal de un vector sobre otro. Se define matemáticamente como sigue.
      
    \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
donde V es un espacio vectorial.
    2. obtener, como su nombre lo indica, obtiene el elemento de un conjunto dado su ordinal.
  • Devuelve finalmente un conjunto \mathcal{E} de vectores ortogonales.

Algoritmo Gram-Schmidt

función \operatorname{ortogonalizar}(\mathcal{B})

\mathcal{E} \gets \emptyset, \, i \gets 0
para \mathbf{v}\, en \mathcal{B} \, haga
 \mathbf{u} \gets \mathbf{v} , \, j \gets 0
mientras  i > j
 \mathbf{u} \gets \mathbf{u} - \operatorname{Proy}\left(\mathbf{v}, \operatorname{obtener}(\mathcal{E},j)\right), \, j \gets j+1
agregue \mathbf{u} \, a \mathcal{E}
i \gets i+1
devuelva \mathcal{E}

Para obtener una base ortonormal, basta normalizar los elementos de \mathcal{E}.

Proceso de ortogonalización de Gram-Schmidt con el método de Gauss

Dada una matriz M cuyos vectores fila son los vectores de una base a ortogonalizar, si se aplica la eliminación Gaussiana por filas a la matriz ( M\cdot M^t | M ).

Ejemplo

Se realiza con la eliminación de Gauss la ortogonalización de Gram-Schmidt a la base dada por las filas de M:

2 1 1
1 0 10
2 -3 11

  Para ello escribimos a la derecha la matriz de su producto escalar M\cdot M^t

6 12 12 2 1 1
12 101 112 1 0 10
12 112 134 2 -3 11

  Y se realiza la eliminación Gaussiana

A Fila2 le restamos la Fila1 por 2

A Fila3 le restamos la Fila1 por 2

6 12 12 2 1 1
0 77 88 -3 -2 8
0 88 110 -2 -5 9

A Fila3 por 7 le restamos la Fila2 por 8 

6 12 12 2 1 1
0 77 88 -3 -2 8
0 0 66 10 -19 -1

Las filas de la derecha son una base ortogonal,

* * * 2 1 1
* * * -3 -2 8
* * * 10 -19 -1

cuyos vectores son proporcionales a los que se obtuvieron anteriormente con el proceso de Gram-Schmidt.

Véase también

Kids robot.svg En inglés: Gram–Schmidt process Facts for Kids

kids search engine
Proceso de ortogonalización de Gram-Schmidt para Niños. Enciclopedia Kiddle.