Vous êtes sur la page 1sur 28

Algebra

Lineal
Sesion de Practicas 6: Ortogonalidad. Metodo de
Gram-Schmidt. Complemento ortogonal y mejor aproximacion

Primero Grado Ingeniera Informatica


Departamento de Matem
atica Aplicada
Facultad de Inform
atica

Sergio Estrada Domnguez


Juan Frez Alcntara
Francisco de Ass Guil Asensio

1 / 16

Metodo de Gram-Schmidt
Sea {v1 , v2 , . . . , vm } un conjunto linealmente independiente de
vectores de Rn . El metodo de Gram-Schmidt nos da un conjunto
ortogonal {u1 , u2 , . . . , um } de vectores de forma que:
hv1 , v2 , . . . , vm i = hu1 , u2 , . . . , um i.
Veamos un ejemplo de c
omo funciona el algoritmo paso por paso:
m ,n , t = var ( m ,n , t )
v1 = vector ( [ -1 ,2 ,0 , 1 ] )
v2 = vector ( [3 ,2 ,2 , 4 ] )
v3 = vector ( [0 ,4 , -2 , 1 ] )
# Algoritmo de Gram - Schmidt paso a paso
u1 = v1
u2 = v2 + m * u1
solve ( u1 . dot_product ( u2 ) = =0 , m )
[m == (-5/6)]
u2 = u2 ( m = - 5 / 6 ); u2
( 23 /6 , 1 /3 , 2 , 19 / 6 )
u3 = v3 + n * u1 + t * u2
2 / 16

Metodo de Gram-Schmidt (cont.)


solve ( [ u1 . dot_product ( u3 ) = =0 ,
u2 . dot_product ( u3 ) = = 0 ] ,n , t )
[ [ n = = ( - 3 / 2 ) , t = = ( - 3 / 173 ) ] ]
u3 = u3 ( n = - 3 /2 , t = - 3 / 173 ); u3
( 248 / 173 , 172 / 173 , - 352 / 173 , - 96 / 173 )
# Comprobacion
u1 . dot_product ( u2 );
u2 . dot_product ( u3 ); u1 . dot_product ( u3 )
# Veamos que generan el mismo subespacio
span ( QQ , [ u1 , u2 , u3 ] ) = = span ( QQ , [ v1 , v2 , v3 ] )
True

Directamente con SAGE:


A = matrix ( [ v1 , v2 , v3 ] )
G , M = A . gram_schmidt ()
G

3 / 16

Conjuntos ortonormales
Podemos convertir el conjunto ortogonal anterior en conjunto
ortonormal, sin mas que dividir cada vector por su modulo:
w1 = u1 / u1 . norm ();
w2 = u2 / u2 . norm (); w3 = u3 / u3 . norm ()
# Directamente con SAGE ,
# Nota : hay que usar el cuerpo QQbar
# para poder trabajar con radicales
A = matrix ( QQbar , [ v1 , v2 , v3 ] )
G , M = A . gram_schmidt ( orthonormal = True )
G
# Veamos que las filas de G se corresponden
# con los vectores wi
G [ 0 ] = = w1
True
G [ 1 ] = = w2
True
G [ 2 ] = = w3
True
4 / 16

Matriz de cambio de base entre bases ortonormales


Si B y C son bases ortonormales entonces:
1
t
PCB = PBC
= PBC
.

Veamos esta propiedad con un ejemplo. Consideremos la base


ortonormal B = {w1 , w2 , w3 }:
w1 = vector ( [ 1 / 2 * sqrt ( 2 ) , 0 , 1 / 2 * sqrt ( 2 ) ] )
w2 = vector ( [ - 1 / 3 * sqrt ( 3 / 2 ) , 2 / 3 * sqrt ( 3 / 2 ) ,
1 / 3 * sqrt ( 3 / 2 ) ] )
w3 = vector ( [ - sqrt ( 1 / 3 ) , - sqrt ( 1 / 3 ) , sqrt ( 1 / 3 ) ] )
# Matriz de cambio de B a C
BC = matrix ( [ w1 , w2 , w3 ] )
# Matriz de cambio de base de C a B
CB = BC ^ 1
CB = = BC . transpose ()
True

5 / 16

Coordenadas respecto de una base ortonormal

Si B = {w1 , w2 , w3 } es una base ortonormal de R3 , las


coordenadas (1 , 2 , 3 )B se calculan:
1 = (v |w1 ), 2 = (v |w2 ), 3 = (v |w3 ).
Ejemplo:
# para la base B = { w1 , w2 , w3 } anterior ,
# las coordenadas de v =( -4 ,3 , 5 ) son
v . dot_product ( w1 )
v . dot_product ( w2 )
v . dot_product ( w3 )

6 / 16

Complemento ortogonal de un subespacio

Sea W un subespacio no vaco de Rn . Se define el complemento


ortogonal W de W como el conjunto:
W = {u Rn : (u|w ) = 0, w W }.
Observaciones:
1. W es un subespacio de Rn .
2. Para que u W no hace falta comprobar que (u|w ) = 0
para todos los vectores de W , basta comprobarlo para los
vectores de una base de W .
3. W W = {(0, 0, . . . , 0)}.

7 / 16

Complemento ortogonal de un subespacio

Sea W un subespacio no vaco de Rn . Se define el complemento


ortogonal W de W como el conjunto:
W = {u Rn : (u|w ) = 0, w W }.
Observaciones:
1. W es un subespacio de Rn .
2. Para que u W no hace falta comprobar que (u|w ) = 0
para todos los vectores de W , basta comprobarlo para los
vectores de una base de W .
3. W W = {(0, 0, . . . , 0)}.

7 / 16

Complemento ortogonal de un subespacio

Sea W un subespacio no vaco de Rn . Se define el complemento


ortogonal W de W como el conjunto:
W = {u Rn : (u|w ) = 0, w W }.
Observaciones:
1. W es un subespacio de Rn .
2. Para que u W no hace falta comprobar que (u|w ) = 0
para todos los vectores de W , basta comprobarlo para los
vectores de una base de W .
3. W W = {(0, 0, . . . , 0)}.

7 / 16

Complemento ortogonal de un subespacio

Sea W un subespacio no vaco de Rn . Se define el complemento


ortogonal W de W como el conjunto:
W = {u Rn : (u|w ) = 0, w W }.
Observaciones:
1. W es un subespacio de Rn .
2. Para que u W no hace falta comprobar que (u|w ) = 0
para todos los vectores de W , basta comprobarlo para los
vectores de una base de W .
3. W W = {(0, 0, . . . , 0)}.

7 / 16

Calculo de W
Caso I Nos dan W en forma de ecuaciones implcitas (L.I.).
Ejemplo:


W = (x, y , z, t) R4 : x + 4y + 9z t = 0 .
Entonces W = h(1, 4, 9, 1)i.
Caso II Nos dan W en forma de generadores L.I.
Ejemplo:
W = h(1, 2, 0, 2), (0, 2, 0, 4)i.
Entonces
W


=

(x, y , z, t) R :

x + 2y + 2t = 0
2y + 4t = 0

Consec. Si dim (W ) = r entonces dim (W ) = n r . Por tanto


Rn = W + W .
8 / 16

Calculo de W
Caso I Nos dan W en forma de ecuaciones implcitas (L.I.).
Ejemplo:


W = (x, y , z, t) R4 : x + 4y + 9z t = 0 .
Entonces W = h(1, 4, 9, 1)i.
Caso II Nos dan W en forma de generadores L.I.
Ejemplo:
W = h(1, 2, 0, 2), (0, 2, 0, 4)i.
Entonces
W


=

(x, y , z, t) R :

x + 2y + 2t = 0
2y + 4t = 0

Consec. Si dim (W ) = r entonces dim (W ) = n r . Por tanto


Rn = W + W .
8 / 16

Calculo de W
Caso I Nos dan W en forma de ecuaciones implcitas (L.I.).
Ejemplo:


W = (x, y , z, t) R4 : x + 4y + 9z t = 0 .
Entonces W = h(1, 4, 9, 1)i.
Caso II Nos dan W en forma de generadores L.I.
Ejemplo:
W = h(1, 2, 0, 2), (0, 2, 0, 4)i.
Entonces
W


=

(x, y , z, t) R :

x + 2y + 2t = 0
2y + 4t = 0

Consec. Si dim (W ) = r entonces dim (W ) = n r . Por tanto


Rn = W + W .
8 / 16

Proyeccion ortogonal y mejor aproximacion

Sea v Rn . Por lo anterior v = w0 + w1 con w0 W y w1 W .


A w0 se le llama proyecci
on de v en W y se le denota por
w0 = proyW (v ).
Del mismo modo a w1 se le llama proyecci
on de v en W y se le
denota por w1 = proyW (v ).

Propiedad
proyW (v ) es el vector mas cercano a v dentro de W .
Por esta razon tambien se le llama la mejor aproximacion de v en
W.

9 / 16

Proyeccion ortogonal y mejor aproximacion

Sea v Rn . Por lo anterior v = w0 + w1 con w0 W y w1 W .


A w0 se le llama proyecci
on de v en W y se le denota por
w0 = proyW (v ).
Del mismo modo a w1 se le llama proyecci
on de v en W y se le
denota por w1 = proyW (v ).

Propiedad
proyW (v ) es el vector mas cercano a v dentro de W .
Por esta razon tambien se le llama la mejor aproximacion de v en
W.

9 / 16

Proyeccion ortogonal y mejor aproximacion

Sea v Rn . Por lo anterior v = w0 + w1 con w0 W y w1 W .


A w0 se le llama proyecci
on de v en W y se le denota por
w0 = proyW (v ).
Del mismo modo a w1 se le llama proyecci
on de v en W y se le
denota por w1 = proyW (v ).

Propiedad
proyW (v ) es el vector mas cercano a v dentro de W .
Por esta razon tambien se le llama la mejor aproximacion de v en
W.

9 / 16

Proyeccion ortogonal y mejor aproximacion

Sea v Rn . Por lo anterior v = w0 + w1 con w0 W y w1 W .


A w0 se le llama proyecci
on de v en W y se le denota por
w0 = proyW (v ).
Del mismo modo a w1 se le llama proyecci
on de v en W y se le
denota por w1 = proyW (v ).

Propiedad
proyW (v ) es el vector mas cercano a v dentro de W .
Por esta razon tambien se le llama la mejor aproximacion de v en
W.

9 / 16

Forma de calcular proyW (v )


Supongamos que W = hw1 , w2 , . . . , wm i es subespacio de Rn .
Entonces
proyW (v ) = x1 w1 + x2 w2 + . . . + xm wm .
Para calcular las incognitas x1 , x2 , . . . , xm , tenemos que resolver el
SEL dado por

..
x1
.

v
AT A ... = AT

.
..
xm
siendo

..
..
.
.
w
w
A=
2
1
..
..
.
.

..
.
wm

..
.
10 / 16

Observaciones:

El SEL anterior siempre es compatible y si los vectores


generadores de W son LI, el SEL es compatible determinado.

A la solucion del SEL anterior se le llama solucion por


mnimos cuadrados.

Se llama error de mnimos cuadrados a la diferencia


||proyW (v ) v ||.
Dentro de las aplicaciones del calculo de la solucion por
mnimos cuadrados estan:

I
I

La resoluci
on aproximada de SEL incompatibles.
Ajuste de curvas, en particular, el calculo de la recta de
regresi
on.

11 / 16

Observaciones:

El SEL anterior siempre es compatible y si los vectores


generadores de W son LI, el SEL es compatible determinado.

A la solucion del SEL anterior se le llama solucion por


mnimos cuadrados.

Se llama error de mnimos cuadrados a la diferencia


||proyW (v ) v ||.
Dentro de las aplicaciones del calculo de la solucion por
mnimos cuadrados estan:

I
I

La resoluci
on aproximada de SEL incompatibles.
Ajuste de curvas, en particular, el calculo de la recta de
regresi
on.

11 / 16

Observaciones:

El SEL anterior siempre es compatible y si los vectores


generadores de W son LI, el SEL es compatible determinado.

A la solucion del SEL anterior se le llama solucion por


mnimos cuadrados.

Se llama error de mnimos cuadrados a la diferencia


||proyW (v ) v ||.
Dentro de las aplicaciones del calculo de la solucion por
mnimos cuadrados estan:

I
I

La resoluci
on aproximada de SEL incompatibles.
Ajuste de curvas, en particular, el calculo de la recta de
regresi
on.

11 / 16

Observaciones:

El SEL anterior siempre es compatible y si los vectores


generadores de W son LI, el SEL es compatible determinado.

A la solucion del SEL anterior se le llama solucion por


mnimos cuadrados.

Se llama error de mnimos cuadrados a la diferencia


||proyW (v ) v ||.
Dentro de las aplicaciones del calculo de la solucion por
mnimos cuadrados estan:

I
I

La resoluci
on aproximada de SEL incompatibles.
Ajuste de curvas, en particular, el calculo de la recta de
regresi
on.

11 / 16

Observaciones:

El SEL anterior siempre es compatible y si los vectores


generadores de W son LI, el SEL es compatible determinado.

A la solucion del SEL anterior se le llama solucion por


mnimos cuadrados.

Se llama error de mnimos cuadrados a la diferencia


||proyW (v ) v ||.
Dentro de las aplicaciones del calculo de la solucion por
mnimos cuadrados estan:

I
I

La resoluci
on aproximada de SEL incompatibles.
Ajuste de curvas, en particular, el calculo de la recta de
regresi
on.

11 / 16

Ejemplo 1
Calcular la mejor aproximaci
on del vector v = (1, 2, 0, 2) en el
subespacio W = h(0, 1, 3, 1), (2, 1, 1, 1)i.
# Introducimos la matriz A que tiene por
# columnas una base de W
v = vector ( QQ , [ -1 ,2 ,0 , 2 ] )
Aux = matrix ( QQ , [ [0 ,1 ,3 , - 1 ] ,[2 , -1 ,1 , 1 ] ] )
A = Aux . transpose ()
# Tenemos que resolver la ecuacion matricial
# A ^ t * A * X = A ^ t * v . Si despejamos X tenemos la solucion
( A . transpose () * A )^ - 1 * A . transpose () * v
( 1 / 38 , - 11 / 38 )
# Por tanto la mejor aproximacion ( proyeccion
# ortogonal de v en W )
v1 = vector ( QQ , [0 ,1 ,3 , - 1 ] ); v2 = vector ( QQ , [2 , -1 ,1 , 1 ] );
( 1 / 38 ) * v1 + ( - 11 / 38 ) * v2
( - 11 / 19 , 6 / 19 , - 4 / 19 , - 6 / 19 )

12 / 16

Ejemplo 2
Dado el subespacio W = h(0, 1, 3, 1), (2, 1, 1, 1)i, descomponer
el vector v = (1, 2, 0, 2) como suma de un vector de W y un
vector de W .
Soluci
on: El vector de W es el que hemos obtenido antes,
w0 = (11/19, 6/19, 4/19, 6/19),
para obtener el vector de W simplemente hacemos
v w0 = (1, 2, 0, 2) (11/19, 6/19, 4/19, 6/19) =
= (8/19, 32/19, 4/19, 44/19)
Observaci
on: El valor ||v w0 || nos da el error cometido al
aproximar v por w0 .
13 / 16

Ejemplo 3
Encuentra la mejor soluci
on por mnimos cuadrados del sistema:

x 2y = 1
2x + 3y = 7

5x + 2y = 1
# La matriz A es la matriz de coeficientes del SEL
A = matrix ( QQ , [ [1 , - 2 ] ,[2 , 3 ] ,[5 , 2 ] ] )
v = vector ( QQ , [1 ,7 , - 1 ] )
# Resolvemos la ecuacion matricial
# A ^ t * A * X = A ^ t * v . Despejando X obtenemos :
( A . transpose () * A )^ - 1 * A . transpose () * v
( - 34 / 157 , 185 / 157 )
# que es la mejor solucion por minimos
# cuadrados del SEL

14 / 16

Ejemplo 4
Encuentra la parabola de la forma y = ax 2 + bx + c que mejor
aproxime a los datos {(1, 2.5), (3, 3.5), (1, 4), (5, 7)}
Soluci
on: Aunque no nos lo piden, vamos a dibujar los datos para
hacernos una idea:
datos = [ [ -1 , 2 . 5 ] ,[ -3 , 3 . 5 ] ,[1 , 4 ] ,[5 , 7 ] ]
dt = list_plot ( datos )
dt . show ()

Sustituyendo los datos en la ecuaci


on de la parabola obtenemos el
SEL incompatible:
2.5 =
3.5 =
4=
7=

a (1)2
a (3)2
a
12
a
52

+b (1) +c
+b (3) +c
+b
1
+c
+b
5
+c
15 / 16

Ejemplo 4 (cont.)
# Introducimos A y v
A = matrix ( QQ , [ [1 , -1 , 1 ] ,[9 , -3 , 1 ] ,[1 ,1 , 1 ] ,[ 25 ,5 , 1 ] ] )
v = vector ( QQ , [ 2 .5 , 3 .5 ,4 , 7 ] )
# Resolvemos A ^ t * A * X = A ^ t * v
( A . transpose () * A )^ - 1 * A . transpose () * v
( 35 / 352 , 3 / 11 , 103 / 32 )

Por tanto la parabola que mejor aproxima a los datos es:


y=

35 2
3
103
x + x+
352
11
32

Aunque no nos lo piden vamos a dibujar el resultado:


parabola = plot ( 35 / 352 * x ^ 2 + 3 / 11 * x + 103 / 32 , -3 , 5 )
show ( dt + parabola )

16 / 16