Álgebra Lineal I: Proceso de Gram-Schmidt

Introducción

Durante esta semana hemos introducido el concepto de bases ortogonales y ortonormales, así como algunas propiedades especiales. Para poder aplicar los resultados que hemos visto, es necesario insistir en que las bases sean de este tipo (ortonormales). Ahora veremos cómo encontrar bases ortonormales usando algo llamado el proceso de Gram-Schmidt.

Recordando todos los problemas anteriores de este curso, decíamos que una base es un conjunto de vectores linealmente independientes y que el número de vectores coincide con la dimensión del espacio. Pero hasta este momento no nos interesó determinar si las bases eran ortonormales o no. Si nos pusiéramos a ver si lo eran, es probable que muy pocas lo sean. Entonces surgen dos preguntas, ¿será difícil encontrar una base ortonormal de un espacio vectorial? y ¿habrá alguna manera de construir una base ortonormal?

Proceso de Gram-Schmidt

La respuesta a la primera pregunta es “no, no es difícil”, y justo la respuesta de la segunda pregunta es la justificación. Dada una base cualquiera del espacio vectorial, podemos construir una base ortonormal de ese mismo espacio gracias al siguiente teorema.

Teorema (Gram-Schmidt). Sean v_1,v_2,\cdots,v_d vectores linealmente independientes en un espacio vectorial V sobre \mathbb{R} (no necesariamente de dimensión finita), con producto interior \langle \cdot , \cdot \rangle. Entonces existe una única familia de vectores ortonormales e_1,e_2,\ldots,e_d en V con la propiedad de que para todo k=1,2,\ldots,d, tenemos que

    \begin{align*}\text{span}(e_1,e_2,\cdots,e_k)&=\text{span}(v_1,v_2,\cdots,v_k), \quad \text{y} \quad\\\langle e_k,v_k \rangle&>0.\end{align*}

Demostración. Lo haremos por inducción sobre d, la cantidad de vectores con la que empezamos.

La base inductiva es cuando d=1. Tomamos un vector e_1\in \text{span}(v_1), entonces podemos escribirlo como e_1=\lambda v_1 para cierta \lambda. Si queremos que 0<\langle e_1,v_1 \rangle=\lambda\norm{v_1}^2, entonces \lambda>0. Además queremos que e_1 tenga norma igual a 1, entonces

    \[1=\norm{e_1}^2=\langle e_1,e_1 \rangle=\lambda^2\norm{v_i}^2,\]

lo cual es posible si \lambda=\frac{1}{\norm{v_1}}. Como e_1 es un múltiplo escalar de v_1, se tiene que \text{span}(e_1)=\text{span}(v_1). Además, la construcción forzó a que e_1=\frac{1}{\norm{v_1}} v_1 sea el único vector que satisface las condiciones del teorema.

Hagamos ahora el paso inductivo. Tomemos un entero d\geq 2, y supongamos que el teorema es cierto para d-1. Sean v_1,v_2,\cdots,v_d vectores en V linelmente independientes. Por hipótesis, sabemos que existe una única familia de vectores ortonormales e_1,\cdots,e_{d-1} que satisfacen las condiciones del teorema respecto a la familia v_1,\cdots,v_{d-1}. Es suficiente con probar que existe un único vector e_d tal que e_1,\cdots,e_d satisface el teorema con respecto a v_1,\cdots,v_d, esto es

    \begin{align*}\norm{e_d}&=1,\\\langle e_d,e_i \rangle&=0 \quad \forall 1\leq i\leq d-1,\\\langle e_d, v_d \rangle &> 0,\end{align*}

y

\text{span}(e_1,\cdots,e_d)=\text{span}(v_1,\cdots,v_d),

ya que, por hipótesis, los casos de k<d se cumplen.

La idea para construir e_d es tomarlo de \text{span}(v_1,\cdots,v_d), expresarlo como combinación lineal de estos y encontrar condiciones necesarias y suficientes sobre los coeficientes de e_d para que satisfaga las conclusiones del teorema. Hagamos esto.

Sea e_d un vector tal que e_d\in\text{span}(v_1,\cdots,v_d). Por ser linealmente independientes y por hipótesis

    \[\text{span}(v_1,\cdots,v_d)=\text{span}(e_1,\cdots,e_{d-1})+\text{span}(v_d),\]

entonces podemos escribir e_d como

e_d=\lambda v_d +\sum_{i=1}^{d-1} a_i e_i

para algunos \lambda,a_1,\cdots,a_{d-1}. Si resulta que \lambda\neq 0, esto también implicará que \text{span}(e_1,\cdots,e_d)=\text{span}(v_1,\cdots,v_d).

Ahora, dado que e_d debe formar una familia ortonormal con el resto de los vectores, para todo j=1,\cdots,d-1, tenemos que


    \begin{align*}0&=\langle e_d,e_j \rangle\\&=\lambda\langle v_d,e_j\rangle + \sum_{i=1}^{d-1} a_i\langle e_i,e_j \rangle\\&=\lambda\langle v_d,e_j \rangle +a_j,\end{align*}

entonces a_j=-\lambda\langle v_d,e_j \rangle. Si logramos mostrar que hay un único \lambda con el que se pueda satisfacer la conclusión del teorema, el argumento anterior muestra que también hay únicos a_1,\ldots,a_{d-1} y por lo tanto que hay un único vector e_d que satisface el teorema.

Sustituyendo los coeficientes anteriores, obtenemos que

e_d=\lambda\left(v_d-\sum_{i=1}^{d-1} \langle v_d,e_i\rangle e_i \right).

Notemos que si z:=v_d-\sum_{i=1}^{d-1} \langle v_d,e_i\rangle e_i es cero, v_d estaría en

    \[\text{span}(e_1,\cdots,e_{d-1}) = \text{span}(v_1,\cdots,v_{d-1}),\]

contradiciendo que los vectores v_i‘s son linealmente independientes, entonces z\neq 0.

Ahora como queremos que 1=\norm{e_d}=|\lambda| \norm{z}, esto implica que |\lambda|=\frac{1}{\norm{z}}.

Como además queremos que \langle e_d,v_d \rangle >0 y

\langle e_d,v_d\rangle =\left\langle e_d,\frac{e_d}{\lambda}+\sum_{i=1}^{d-1} \langle v_d,e_i\rangle e_i \right\rangle=\frac{1}{\lambda},

se deduce que \lambda es único y está determinado por \lambda=\frac{1}{\norm{z}}. Por lo tanto existe (y es único) el vector e_d que satisface el teorema.

\square

Este proceso de construcción es mejor conocido como el proceso de Gram-Schmidt. La demostración da a la vez un algoritmo que nos permite encontrar bases ortogonales (y de hecho ortonormales). Veremos ejemplos de esto en la siguiente sección. Antes de eso, enunciaremos formalmente una de las conclusiones más importantes del teorema anterior.

Recuerda que un espacio Euclideano es un espacio vectorial de dimensión finita sobre \mathbb{R} y con un producto interior. Podemos aplicar el proceso de Gram-Schmidt a cualquier base v_1,\ldots,v_d de un espacio Euclideano V y al final obtendremos una familia e_1,\ldots,e_d de vectores ortonormales. Como sabemos que las familias de vectores ortonormales son linealmente independientes, y tenemos d vectores, concluimos que e_1,\ldots,e_d es una base ortonormal. En resumen, tenemos el siguiente resultado.

Corolario. Todo espacio Euclideano tiene una base ortonormal.

Ejemplos de aplicación del proceso de Gram-Schmidt

A continuación veremos algunos ejemplos que nos ayuden a clarificar más este algoritmo.

Ejemplo 1. Sean v_1,v_2,v_3 vectores en \mathbb{R}^3 (con el producto interior estándar) definidos por

v_1=(1, 1, 0), \quad v_2=( 1, 1, 1), \quad v_3=( 1, 0, 1).

Es fácil ver que estos vectores son linealmente independientes. Entonces construyamos según el proceso de Gram-Schmidt la familia ortonormal de vectores e_1,e_2,e_3. Tenemos que

e_1=\frac{v_1}{\norm{v_1}}=\frac{v_1}{\sqrt{2}}=\left(\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}},0\right).

Ahora, tomando z_2=v_2-\langle v_2,e_1\rangle e_1, tenemos que e_2 está definido como \frac{z_2}{\norm{z_2}}, entonces

    \begin{align*}z_2&=(1,1,1)-\left[(1,1,1)\cdot \left(\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}},0\right)\right]\left(\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}},0\right) \\&=(1,1,1)-\left[\frac{2}{\sqrt{2}}\right]\left(\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}},0\right) \\&=(1,1,1)-(2/2,2/2,0)\\&=(1,1,1)-(1,1,0)=(0,0,1).\end{align*}

Esto implica que e_2=\frac{1}{1}(0,0,1)=(0,0,1). Finalmente tomando z_3=v_3-\langle v_3,e_1 \rangle e_1 - \langle v_3,e_2 \rangle e_2, sabemos que e_3=\frac{z_3}{\norm{z_3}}. Entonces

    \begin{align*}z_3&=v_3-\langle v_3,e_1 \rangle e_1 - \langle v_3,e_2 \rangle e_2 \\&=(1,0,1)-\left(\frac{1}{2},\frac{1}{2},0\right)-(0,0,1) \\&=\left(\frac{1}{2},-\frac{1}{2},0\right).\end{align*}

Por lo tanto

e_3=\frac{1}{\sqrt{1/2}}\left(\frac{1}{2}, -\frac{1}{2},0\right)=\left(\frac{1}{\sqrt{2}},\frac{-1}{\sqrt{2}},0\right).

\square

Ejemplo 2. Sea V el espacio de polinomios en [0,1] con coeficientes reales de grado a lo más 2, con el producto interior

\langle p,q \rangle =\int_0^1 p(x)q(x) dx.

Sean v_1=1, v_2=1+x, v_3=1+x^2 vectores en V que claramente son linealmente independientes. Encontraremos los vectores que nos da el proceso de Gram-Schmidt.

Primero calculemos

\norm{v_1}^2=\int_0^1 1 dx= 1,

entonces e_1=\frac{v_1}{\norm{v_1}}=v_1=1. Ahora calculemos z_2:

    \begin{align*}z_2&=v_2-\langle v_2,e_1 \rangle e_1 \\&=1+x- \int_0^1 (1+x)dx=1+x-\left(1+\frac{1}{2}\right) \\&=x-\frac{1}{2}.\end{align*}

Haciendo la integral

    \[\int_0^1 \left(x-\frac{1}{2}\right)^2 dx\]

se obtiene que \norm{z_2}=\sqrt{\frac{1}{12}}, entonces e_2=\sqrt{12}\left(x-\frac{1}{2}\right).

Por último, hay que calcular z_3 así como su norma. Primero,

    \begin{align*} z_3&=v_3-\langle v_3,e_1 \rangle e_1 - \langle v_3,e_2 \rangle e_2 \\ &=(1+x^2)-\int_0^1 (1+x^2)dx - 12\left(x-\frac{1}{2}\right)\int_0^1 (1+x^2)\left(x-\frac{1}{2}\right)dx \\ &=1+x^2-\left(1+\frac{1}{3}\right)-12\left(x-\frac{1}{2}\right)\left(\frac{1}{12}\right) \\&=x^2-\frac{1}{3}-x+\frac{1}{2} \\&=x^2-x+\frac{1}{6},\end{align*}

y luego, con la integral

    \[\int_0^1 \left(x^2-x+\frac{1}{6}\right)^2 dx\]

se calcula que \norm{z_3}=\frac{1}{6\sqrt{5}}, por lo tanto e_3=6\sqrt{5}\left(x^2-x+\frac{1}{6}\right).

\square

Aunque no es un proceso muy eficiente, nos garantiza que podemos encontrar una base ortonormal para cualquier espacio vectorial (con producto interior). Ya con una base ortonormal, podemos usar la descomposición de Fourier de la cual hablamos la entrada anterior y con ella todas las consecuencias que tiene.

Si quieres ver muchos más ejemplos del proceso en \mathbb{R}^n, puedes usar una herramienta en línea que te permite ver el proceso paso a paso en el conjunto de vectores que tu elijas. Una posible página es el Gram-Schmid Calculator de eMathHelp.

Tarea moral

Los siguientes ejercicios no forman parte de la evaluación del curso, pero te servirán para entender mucho mejor los conceptos vistos en esta entrada, así como temas posteriores.

  • Verifica que con el valor \lambda que se encontró en la demostración del teorema de Gram-Schmidt en efecto se obtiene un vector e_d que satisface todas las conclusiones que se desean.
  • Revisa que los vectores que se obtuvieron en los ejemplos de aplicación del proceso de Gram-Schmidt en efecto son bases ortogonales de los espacios correspondientes.
  • Aplica el proceso de Gram-Schmidt a los polinomios 1, x, x^2 en el espacio Euclideano de los polinomios reales de grado a lo más dos y producto interior

        \[\langle p, q \rangle = p(0)q(0)+p(1)q(1)+p(2)q(2).\]

  • Aplica el proceso de Gram-Schmidt a los vectores

        \begin{align*}(1,1,1,1)\\ (0,1,1,1)\\ (0,0,1,1)\\ (0,0,0,1)\end{align*}

    de \mathbb{R}^4 con el producto interior canónico (el producto punto).
  • Usa el Gram-Schmidt Calculator de eMathHelp para ver paso a paso cómo se aplica el proceso de Gram-Schmidt a los vectores

        \begin{align*}(1,2,1,1,-1)\\ (0,0,1,0,0)\\ (2,0,0,1,1)\\ (0,2,0,0,1)\\ (-3,0,0,1,0)\end{align*}

    de \mathbb{R}^5.

Más adelante…

Entradas relacionadas

4 comentarios en “Álgebra Lineal I: Proceso de Gram-Schmidt

  1. Vale Sauz

    hola,en el ultimo ejemplo, para sacar z3, ¿donde quedaron la raices de doce? tanto dentro de la integral como cuando se multiplica la integral

    Responder
    1. LeoLeo

      Hay una raiz de 12 en el e_2 que está adentro de la integral, y otra que está en el e_2 de afuera de la integral. Al multiplicarlas da el 12 que pusimos afuera.

      Responder
  2. JP Antuna

    Buen día.
    Después de la demostración del teorema hacen una observación y en una parte dice lo siguiente: “La demostración da a la vez un algoritmo que nos permite encontrar bases ortogonales. […]” ¿No debería decir ortonormales en lugar de ortogonales?
    Sé que si una base es ortonormal, entonces es ortogonal, pero creo que se busca enfatizar que con este proceso se puede encontrar una base ortonormal.

    Responder

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.