Práctica 4 : 
        Espacios Vectoriales Euclídeos.

1.  - Métricas Euclídeas.

Dado un espacio vectorial V,  
      una métrica euclídea sobre V es una forma bilineal,  
      simétrica y definida positiva .   Dada una base B = {e1,  ... , en} de V toda forma bilineal
g puede representarse en una matriz m = (mij) donde su entrada  mij = 
            g (ei, ej) .  El que g sea simétrica es 
equivalente a que la matriz m lo sea y que sea definida positiva es decir que los autovalores de la matriz son todos positivos o que todos los determinantes de m formados con las i primeras filas y columnas son todos positivos, para i = 1,...,n . 
Para comprobar la condición sobre los determinantes de m usaremos el comando Table[Det[m[[Range[i], Range[i]]]], {i, n}] que nos dará como resultado un vector con todos los determinantes buscados (donde n es el número de filas o columnas de m).

m1=(({{2, 1, 1}, {1, 2, 0}, {1, 0, 3}}));
Table[
      Det[m1[[Range[i], Range[i]]]], {i, 3}]
m2=(({{3, 1, 1, 1}, {1, 3, 0, 0}, {1, 0, 2, -1}, {1, 0, -1, 2}}));
Table[
      Det[m2[[Range[i], Range[i]]]], {i, 4}]
m3=(({{2, 2}, {2, 1}}));
Table[
      Det[m3[[Range[i], Range[i]]]], {i, 2}]

De aquí se deduce que las dos primeras matrices representan a una métrica definida positiva y no así la segunda.

Una vez conocida una métrica g,  ésta podrá ser definida de la forma
 g[{x1_,  ... , xn_}, {y1_,  ... , yn_}]:=... donde {x1,  ... , xn},{y1,  ... , yn} son coordenadas respecto de
 una base fija.

g[{x1_, x2_}, {y1_, y2_}] := 
      x1*y1 + x2*y2
g[{2, 1}, {3, 
        2}]
m=(({{2, 1, 1}, {1, 2, 0}, {1, 0, 3}}));
h[{x1_, x2_, x3_}, {y1_, y2_, 
          y3_}] := {x1, x2, x3} . 
        m . {y1, y2, y3}
h[{2, 
        1, -1}, {-2, 0, 1}]

Una vez que se tiene una métrica euclídea g, la norma de un vector v se calcula como (Sqrt[g (v, v)]) .  Y el coseno del ángulo que forman dos vectores u y v como g(u, v)/(Sqrt[g (u, u) g (v, v)]); para calcular el ángulo se usará la función arcocoseno que se denota por ArcCos[ . ].

m=(({{2, 1, 1}, {1, 1, 0}, {1, 0, 2}}));
g[{x1_, x2_, x3_}, {y1_, y2_, 
          y3_}] := {x1, x2, x3} . 
        m . {y1, y2, y3}
u = {1, 
          2, -1};
v = {1, 1, 
          1};
(Sqrt[g])[u, 
          u]
(Sqrt[g])[v, 
          v]
N[
      ArcCos[g[u, v]/(Sqrt[g[u, u] g[v, v]])]]

\(Observación : \ 
        el\ producto\ escalar\ usual\ de\ \(R\^n\) 
          se\ denota\ en\ Mathematica\ como\ "."\ como\ ya\ \(\(sabemos\)\(.\)\)\)

{1, 3, 3} . {2, 0, 1}

Ejercicios,
1.  -  
          Estúdiese si la siguiente forma bilineal es una  métrica euclídea
g ((x1, x2, 
            x3), (y1, y2, y3)) = 
      3  x1*y1 - 2  x2*y1 - 2  x1*y2 + 3  x2*y2 + 
        x3*y3
2.  -  
        Véase cuáles de las siguientes matrices,  
      respecto de la base usual de (R^3),  
      representan una métrica euclídea ,  
      en cuyo caso calcúlese la norma de los vectores u = (-2, 1, 1) ,  
      v = (1, 0, 1) y el ángulo que forman
m1=(({{1, 2, 3}, {2, 3, -1}, {3, -1, 2}}))     m2=(({{2, 1, 1}, {1, 3, -1}, {1, -1, 2}}))     m3=(({{1, 0, -1}, {0, 1, -1}, {-1, -1, 2}}))     m4=(({{1, -1, 0}, {-1, 3, 1}, {0, 1, 1}})) 
3.  -  
        Para la métrica euclídea de (R^2) 
          dada en coordenadas usuales por la matriz
m=(({{1, -1}, {-1, 2}})); calcúlese un vector cuyo ángulo con (1, -1) sea π/4.

2.  -  Ortogonalidad.

Dada una métrica euclídea g sobre un espacio vectorial V se dice que dos vectores v y w son ortogonales si g (v, w) = 0.  Además,  
      dado un  subespacio U de V para calcular su subespacio ortogonal 

      tomamos una base de U :  {u1,  ... , 
              ur} y las ecuaciones cartesianas del subespacio ortogonal

       vendrán dadas por g (x, u1) = 
        0, ...  g (x, ur) = 
        0 para un vector genérico x.

Por ejemplo,  
        si consideramos en (R^3) la métrica que tiene por matriz asociada 
m=(({{2, -1, 0}, {-1, 2, 1}, {0, 1, 2}})) en coordenadas respecto de la base usual y el subespacio U=<(1, 0, -1),(2, 1, 0) >  
            entonces el subespacio ortogonal a U se calcula como sigue:

g[{y1_, y2_, y3_}, {z1_, z2_, z3_}]:={y1, y2, y3}.(({{2, -1, 0}, {-1, 2, 1}, {0, 1, 2}})).{z1, z2, z3}
u1 = {1, 
          0, -1};
u2 = {2, 1, 
          0};
x = {x1, x2, 
          x3};
g[x, u1] // 
      Simplify
g[x, u2] // Simplify

\(Por\ tanto\ las\ ecuaciones\ cartesianas\ del\ subespacio\ ortogonal\ a\ U\ son\ \(\("x1-x2-x3=0, 3x1+x3=0"\)\(.\)\)\)

Por otro lado,  
      dado un vector v del espacio vectorial V y un subespacio U se define la proyección ortogonal de v sobre U,  
      p (v),  
      como el único vector de U tal que v - 
        p (v) pertenece al subespacio ortogonal a U.

Calculemos,  
      la proyección ortogonal de v = (-1, 1, 
              1) sobre el subespacio U = <(2, -1, 
              1), (1, 0, 1) >  
        con la métrica de (R^3) del ejemplo anterior:

g[{y1_, y2_, y3_}, {z1_, z2_, z3_}]:={y1, y2, y3}.(({{2, -1, 0}, {-1, 2, 1}, {0, 1, 2}})).{z1, z2, z3}
v = {-1, 1, 
          1};
u1 = {2, -1, 
          1};
u2 = {1, 0, 
          1};
p = 
      c1 u1 + c2 u2
Solve[{g[v - p, 
            u1] == 0, g[v - p, u2] == 0}, {c1, c2}]

c1 = -7/5;
c2 = 21/10;
p

Por tanto,  
      la proyección ortogonal de v respecto de U es el vector ((49/10), -(7/5), (7/2)).

Además,  
      dado un vector v y un subespacio vectorial U,  
      definimos el simétrico de v respecto a U como  - v + 
        2  p (v),  
      donde p (v) es la proyección del vector v sobre U.

En el ejemplo anterior el simétrico de v respecto de U sería:

-v + 2  p

Ejercicios,
1.  -  
              Calcúlese el subespacio ortogonal en (R^4) de U = <(1, 0, 0, 1),(-1, 0, 2, 1) >  
            para la métrica euclídea 
m=(({{3, 1, 1, 1}, {1, 3, 0, 0}, {1, 0, 2, -1}, {1, 0, -1, 2}})) dada en coordenadas respecto de la base usual, dando para ello una base del subespacio ortogonal y sus ecuaciones
2.  -  
        Consideremos en (R^3) 
          la métrica euclídea dada en coordenadas usuales por la matriz
m=(({{2, -1, 1}, {-1, 3, 1}, {1, 1, 3}})). Calcúlese la proyección ortogonal y el simétrico del vector 
v = (1, 0, 
              1) respecto de los subespacios U1 = <(1, 
              2, -1)>,  
      U2 = <(-1, 0, 0), (2, 1, 0) >  
          y U3 = {(x1, x2, x3) ϵ (R^3)/x1 + 2  x2 + x3 = 
              0}.

3.  -  Bases Ortonormales.

Para el cálculo de una base ortonormal de un subespacio utilizaremos  el paquete de Mathematica  Orthogonalization que se cargará usando el comando \!\(\*
StyleBox["\"",
"Text"]\)\!\(\*
StyleBox["<<",
"Text"]\)LinearAlgebra`Orthogonalization`" que nos dará la posibilidad de usar algunos comandos adaptados al cálculo de bases ortonormales y ortogonales.

Por ejemplo, dada una base introducida en forma matricial como las filas de la matriz se puede conseguir una base ortonormal a partir de ella mediante el algoritmo de Gram-Schmidt usando el comando GramSchmidt[ base,  
                InnerProduct -> ( ... ...   &)].  Para ello debe saberse que entre paréntesis se ha de definir el producto escalar para el que se busca la base ortonormal donde el primer vector se denotará por  #1 y el segundo por  #2. Si el producto escalar es el usual de (R^n) se puede omitir la parte \ y si la base sólo se necesita ortogonal se escribirá al final después de una coma \.

Calculemos, por ejemplo, una base ortonormal y ortogonal de (R^2) a partir de la base {(1, 2), (3, 
                1)} para la métrica usual y para la métrica euclídea que en coordenadas usuales tiene por matriz m=(({{2, -1}, {-1, 2}}))

<< 
      LinearAlgebra`Orthogonalization`
b = {{1, 
          2}, {3, 1}}
GramSchmidt[
      b]
GramSchmidt[b, 
      Normalized -> False]
GramSchmidt[b, InnerProduct->(#1.(({{2, -1}, {-1, 2}})).#2 &)]
GramSchmidt[b, InnerProduct->(#1.(({{2, -1}, {-1, 2}})).#2 &),Normalized -> False]

También se puede calcular directamente con el paquete anterior dado un vector v el vector unitario en la dirección de v (su normalizado) usando el comando Normalize[v, 
          InnerProduct -> (... ...  &)]

Normalize[{1, 2}, InnerProduct->(#1.(({{2, -1}, {-1, 2}})).#2 &)]

Ejercicios,
1.- Calcúlese una base ortonormal a partir de la base B={(1, 
                2), (1, -1)} para las métricas euclídeas dadas en coordenadas respecto de la base usual por las matrices
m1=(({{1, -1}, {-1, 3}}))    m2=(({{1, 0}, {0, 2}}))    m3=(({{3, 2}, {2, 2}}))
2.  -  
          Calcúlese en cada una de las métricas anteriores el vector unitario en la dirección de v = {1, -1}

4.- Endomorfismos Autoadjuntos.

Dado un espacio vectorial V con una métrica euclídea g y un endomorfismo f,  
      se dice que f es autoadjunto para la métrica g si se cumple que g (f (u), v) = 
        g (u, f (v)) para cualesquiera vectores u y v de V .  Además sabemos que será autoadjunto si y sólo si al escribir f en forma matricial respecto de cualquier base ortonormal para g se tiene que la matriz que representa a f es simétrica.

Para diagonalizar un endomorfismo autoadjunto se puede utilizar el comando Eigensystem[matriz] que nos da como resultado primero un vector que son los autovalores de la matriz y después una base de vectores propios asociados a los autovalores que se tienen en el orden en el que están escritos éstos.

Por ejemplo,  
        dada la matriz que representa a un endomorfismo f  de (R^3) escrita en coordenadas respecto de la base usual como 
m=(({{2, -1, 0}, {-1, 2, 0}, {0, 0, 3}}))
se calculan sus valores y vectores propios como sigue:

Eigensystem[(({{2, -1, 0}, {-1, 2, 0}, {0, 0, 3}}))]

Que nos da como resultado que el 1

       es un valor propio cuyo subespacio propio está generado por el vector (1, 1, 
          0) y el otro es el 3 (con multiplicidad dos) y su subespacio propio asociado tiene por base {(0, 0, 
              1), (-1, 1, 0)}.

Con esto se puede calcular a partir de la base anterior una base ortonormal que diagonalice el endomorfismo considerado usando el comando GramSchmidt de la sección anterior teniendo en cuenta que la base tiene que ser escrita de forma que los vectores propios a un mismo autovalor han de ir juntos,  es decir,  
      no se pueden alternar vectores propios asociados de un mismo autovalor con los de otro .  
          El resultado de usar el comando anterior será una base ortonormal donde el valor propio del vector propio de salida será el mismo que el que ocupa su mismo orden en la base de partida.

Para el ejemplo anterior y para el producto escalar usual de (R^3) una base ortonormal que diagonaliza al endomorfismo f sería:

GramSchmidt[{{1, 1, 0}, {0, 0, 1}, {-1, 1, 0}}]

Ejercicios,
1.- Dado el endomorfismo autoadjunto para el producto escalar usual de (R^3) con matriz asociada en la base usual 
m=(({{3, 0, 0}, {0, 2, 1}, {0, 1, 2}}))
calcúlese una base ortonormal que lo diagonalice
2.  -  Dada las matrices
m1=(({{3, 1}, {1, 5}}))    m2=(({{2, 1, 1}, {1, 2, 1}, {1, 1, 2}}))
encontrar una matriz ortogonal p tal que p . m . 
          (p^t) sea diagonal
3.  -  En (R^2) se considera,  
      respecto de la base usual,  el endomorfismo f que 
tiene por matriz asociada
m=(({{-3, 8}, {-1, 4}}))
y con métrica euclídea 
g=(({{2, -3}, {-3, 5}})).
Pruébese que f es autoadjunto para la métrica g y diagonalícese.