Vous êtes sur la page 1sur 22

Prácticas de Algebra Lineal

En Matlab

MsC. Francis ANTOINE SOUCHE

Ingeniería Civil

U.N.S.A. 2010
PRÁCTICA 1 Sistemas de ecuaciones lineales.
1.1 Introducción
Matlab es un programa de cálculo científico que permite, no sólo una gran variedad de
manipulaciones matemáticas sino que se emplea como entorno de trabajo en diferentes
campos de la ingeniería. En general, con matlab se puede:
• realizar operaciones aritméticas (como una calculadora pero con posibilidad de
mayor precisión),
• realizar cálculo simbólico en aritmética exacta,
• programar en un lenguaje interpretado,
• realizar gran variedad de gráficos,
• acceder a logiciales aplicativos a diversos temas como el tratamiento de señales,
la simulación de circuitos, etc.
Existen dos formas de actuar con matlab:
1. modo interactivo: escribimos instrucciones directas en la ventana de comandos,
generalmente de una línea, y obtenemos de forma inmediata los resultados.
2. modo programado: escribimos instrucciones diferidas en uno o varios archivos,
generalmente de varias líneas, que nos permite manejar un mayor número de
instrucciones de matlab y acceder a operaciones y cálculos complejos.
La interacción con matlab se realiza principalmente a través de la ventana de comandos.
En ella escribiremos las órdenes para el programa y recibiremos, en la mayoría de los
casos, la respuesta. Por ello es muy importante observar en la pantalla el resultado de
cada operación. Así mismo, hay que tener en cuenta que:
• Matlab distingue las letras mayúsculas y minúsculas.
• El usuario escribe detrás del símbolo avizor (prompt) >>.
• Un comando interactivo se ejecuta pulsando la tecla “enter”.
• Ejecutamos las instrucciones diferidas de un archivo escribiendo el nombre del
archivo y pulsando la tecla “enter”.

1.2 Primeras operaciones


Para comenzar realizaremos algunas operaciones aritméticas y con matrices. Primero
unas operaciones aritméticas:
>> 2+2
>> 2+3/2
>> 1+5*3
Matlab trata por defecto todos los números como una calculadora, es decir, con una
misma precisión (catorce cifras decimales). Además, para matlab casi todo son matrices,
los vectores son matrices renglón o columna, los escalares son matrices 1×1 .
Veamos en las instrucciones siguientes cómo se define una matriz 3× 2 , se transpone de
dos modos diferentes y se realizan diferentes operaciones (los resultados aparecen en
pantalla).
2

>> A=[3 4; 2 1; −1 0]
>> B=transpose(A)
>> C=A’
>> B+C
>> b+C
>> A+B
>> B+C;
Como habrán observado, la presencia de un punto y coma (;) al final de la línea de
comando impide desplegar el resultado de la operación realizada.
1.3 Otras operaciones
Ahora veremos más operaciones que involucran a las matrices: productos de matriz por
escalar, producto de matrices y de matriz por vector.
>> A
>> 3*A
>> B=[4 5 6; 1 2 3];
>> A*B
>> B*A
>> A*A
>> v=[2; −2]
>> A*v
Ejercicios
1. Realice las siguientes operaciones:
 1 −1 0   4 −1 − 3  2
    
 3 1 0   3 2 − 1 ,  − 1 (3 1 0) .
 0 2 1  1 2 5   3
    
1.4 Algunas funciones
Además de las operaciones precedentes, matlab dispone de sus propias funciones para
realizar tareas más complejas sobre matrices. Por ahora las que necesitaremos son las
siguientes:
• rank(A) calcula el rango de la matriz A
• det(A) calcula el determinante de la matriz A.
• inv(A) calcula la inversa de la matriz A.
• eye(n) devuelve la matriz identidad de orden n.
• help comando muestra una breve descripción de la función de matlab comando.
Ejercicios
1. Usando el comando “help” verifique la información sobre las funciones “inv”, “det”.
Averigüe del mismo modo qué hace la función “zeros” y pruebe alguno de sus usos.
2. Empleando las funciones anteriores, calcule el rango, el determinante y la inversa de
alguna de las matrices anteriores.
3

1.5 Sistemas lineales


Veamos a continuación cómo matlab nos permite extraer elementos, renglones y
columnas de una matriz:
>> A
>> A(3, 2)
>> A(1, :)
>> A(:, 2)
Al igual que podemos extraer renglones y columnas, podemos componer una matriz a
partir de vectores:
>> u=[1; 2; 3]
>> v=[4; 5; 6]
>> C=[u v]
>> C(1, :)
>> D=[u; v]
Con esta información, podemos realizar operaciones elementales sobre matrices que son
la base de la eliminación gaussiana.
Dada una matriz
>> A=[0 1 1; 1 1 1; 2 −1 2]
vamos a permutar los dos primeros renglones. Para ello emplearemos un vector
intermedio (aux) que almacenará provisionalmente un renglón mientras realizamos el
intercambio:
>> aux=A(1, :)
>> A(1, :)=A(2, :)
>> A(2, :)=aux
siguiente operación sobre A:
>> A(3, :)=A(3, :) −2*A(1, :)
Ejercicios
1. Continúe las operaciones del ejemplo anterior hasta conseguir averiguar el rango de
la matriz. Comprueba el resultado con ayuda de la función “rank”.
2. Queremos resolver el sistema lineal
 x +y +z=3

 y + 2z = 3
2 x + 2 y + 2 z = 6

Realice las operaciones elementales a la matriz ampliada del sistema hasta averiguar
cuántas soluciones tiene el sistema anterior.
3. Podemos realizar las operaciones elementales premultiplicando (multiplicación a
izquierda) por una matriz elemental apropiada.
Realice cualquiera de las operaciones precedentes definiendo una matriz elemental
apropiada y compruebe el resultado realizando la misma operación como hemos
hecho anteriormente.
Nota: Dado un sistema lineal escrito en forma matricial, A x = b , matlab proporciona
siempre valores que son una solución del sistema en algún sentido, incluido el
caso de sistemas incompatibles, introduciendo:
>> A\b.
4

1.6 Matrices elementales


Podemos realizar las operaciones elementales premultiplicando por una matriz
elemental apropiada. Por ejemplo, para realizar las operaciones realizadas en el ejemplo
anterior podemos definir, para la permutación:
>> P=eye(3);
>> P(1, 1)=0; P(2, 2)=0; P(1, 2)=1; P(2, 1)=1;
>> P
>> P*A
para realizar la segunda operación
>> P2=eye(3);
>> P2(3, 1)=−2
>> P2*P*A
Es fastidioso y repetitivo calcular en cada paso la matriz elemental apropiada para cada
operación. Para este tipo de tareas, matlab permite al usuario construir sus propias
funciones para sintetizar los cálculos en modo programado. Dispondremos de las tres
funciones, pij(n , i, j) , pijt (n , i, j, t ) , qit (n , i, t ) , para calcular cada una de las matrices
elementales que necesitaremos.
NOTA: Una premultiplicación (P*A) de la matriz A actúa sobre los renglones y una
postmultiplicación (A*P) actúa sobre las columnas. Cuidado con las
((
funciones precedentes ( A t * P t . ))
t

( )
La transpuesta P t intercambia el orden de las filas.
Los ficheros correspondientes tienen el mismo nombre de la función con la extensión
“.m”. Como ejemplo, mostramos aquí la función para calcular la matriz que permuta dos
renglones (cuando se escribe el símbolo %, lo que viene a continuación se considera un
comentario que matlab ignora).
function p=pij(n, i, j)
%
% Esta función calcula la matriz elemental de orden n para
% permutar los renglones i y j.
p=eye(n); % partimos inicialmente de la identidad de orden n.
p(i, i)=0; p(j, j)=0; % modificamos los elementos necesarios.
p(i, j)=1; p(j, i)=1;
%
return
De este modo, las dos operaciones anteriores, después de haber definido las funciones
apropiadamente, se reducirán a:
>> pijt(3, 3, 1, −2)*pij(3, 1, 2)*A
Ejercicios
1. Escriba la función pijt para obtener la combinación, i + t * j , entre filas i y j en
matrices de orden n.
2. Escriba la función qit para calcular t veces la fila i en matrices de orden n.
3. Continúa las operaciones del ejemplo anterior hasta conseguir averiguar el rango de
la matriz. Comprueba el resultado con ayuda de la función “rank”.
5

1.7 Descomposición LU
Toda matriz A se puede transformar, empleando tan solo operaciones elementales, en
una matriz triangular superior U. Si las operaciones elementales se describen mediante
matrices elementales P1 , P2 , , Pm tendremos Pm  P2 P1A = U .
Si por un lado reunimos las operaciones de permutación en una matriz P y por otro lado
reunimos las demás operaciones en otra matriz Q tendremos que
U Q P A = U ⇒ P A = Q −1U
Se prueba que la matriz L = Q −1 es triangular inferior con unos en la diagonal principal
con lo que resulta PA = LU.
Es decir, salvo posibles permutaciones (recogidas todas en la matriz P), una matriz
cualquiera puede expresarse como el producto de una matriz triangular inferior L con
unos en la diagonal principal por una matriz triangular superior U. Es la llamada
descomposición LU.
Conocida la descomposición LU de una matriz y suponiendo que no ha habido
permutaciones, resolver el sistema A x = b es equivalente a resolver dos sistemas más
simples (triangulares):
A x = b ⇔ (L U ) x = b ⇔ L (
U x) = b ⇔ L c = b , U x = c.
c
Para llevar a cabo la descomposición LU con matlab se puede, entre otras formas
proceder del modo siguiente. Le “pegamos” a la matriz A la matriz identidad del mismo
orden, si es de orden 3
>> B=[A eye(3)]
Realizamos las operaciones normalmente y quedarán registradas en la parte de la
derecha, de modo que al final del proceso de eliminación tendremos, si no ha habido
[
permutaciones: U L−1 . ]
Ejercicios
 2 1 1
 
1. Dada la matriz A =  4 1 0  , llévala a la forma triangular superior mediante
 − 2 2 1
 
operaciones elementales y calcula su descomposición LU.
2. Resolver empleando la factorización LU el sistema
 1 2 3  x   1 
    
 3 2 4  y  = 1 .
 2 − 1 1  z   0 
    
Nota: También existe una orden de matlab que permite calcular la descomposición
LU de una matriz, es la orden “lu”.
6

Práctica 2 Espacios vectoriales y aplicaciones


lineales.
Contenido: Localizar bases de espacios vectoriales. Suma directa. Bases y dimensiones.
Cambio de base. Aplicaciones lineales. Matriz asociada en bases.
2.1 Localizar bases de espacios vectoriales
Para localizar una base de un espacio vectorial, en primer lugar, se busca un sistema de
generadores del mismo y, después, se eliminan los vectores que dependen linealmente
de los demás. Para ello, se estudia la dependencia lineal calculando el rango del sistema
de vectores mediante reducción por renglones de la matriz que tiene por columnas las
coordenadas de los vectores.
Matlab proporciona la orden “rref(A)” que ejecuta la reducción completa por renglones
de la matriz A.
También se puede proceder como se indica en el ejercicio 4 de esta sección 2.1, lo que
equivale a resolver un sistema lineal homogéneo.
Otra forma de construir una base es encontrar una familia libre maximal mediante el
teorema de ampliar una base.
Ejercicios
1. Dados los siguientes vectores { v j , j = 1, 2, 3, 4 } de IR 3 :
v1 = (4, − 5, 7 ) , v 2 = (2, − 3, 4) , v 3 = (1, 1, − 2) , v 4 = (2, − 1, 1) ,
hallar un sistema mínimo de generadores del subespacio al que pertenecen.
Estudiar si dicho subespacio coincide o no con el engendrado por los vectores
ω1 = (1, − 2, 3) , ω2 = (3, 0, − 1) .
Solución
a = [4, − 5, 7; 2, − 3, 4; 1, 1, − 2; 2, − 1, 1]'
4 2 1 2
−5 −3 1 −1
7 4 −2 1
rref(a)
1 0 0 13
0 1 0 0
0 0 1 23
1 2
Luego el rango de la familia es 3 y se tiene v 4 = v1 + v 3 . En efecto:
3 3
a (:, 1) / 3 + a (:, 3)* 2 / 3
2
−1
1
Así {v1 , v 2 , v 3 } es un sistema mínimo.
Evidentemente, los dos subespacios no coinciden, ya que el rango de la primera familia
es 3, mientras que el rango de la segunda familia es 2.
7

2. Sea S = a1 , a 2 , a 3 , a 4 , a 5 , siendo a1 = (1, 0, 1) , a 2 = (0, 1, 1) , a 3 = (1, 1, 2 ) , a 4 = (1, 2, 1) ,


a 5 = (− 1, 1, 2 ) . Encontrar una base de S realizando reducción por renglones de la
matriz que tiene por columnas los vectores anteriores.
3. Sea V = IR 2 [x ] el espacio vectorial de los polinomios de grado menor o igual que 2
sobre IR. Sea S el susbespacio de V engendrado por los polinomios 1+ x , x + x 2 ,
1 + 3x + 2 x 2 . Encontrar una base de S y a partir de ella una base de V. Encontrar las
coordenadas del polinomio p( x ) = 3 + 2x + 5x 2 en la base hallada.
4. Una forma de encontrar una base a partir de un sistema generador de un subespacio
vectorial, por ejemplo { a 1 , a 2 , a 3 , a 4 }, es la siguiente:
a) Mediante reducción por renglones de la matriz que tiene por columnas los
vectores a j encontrar los coeficientes x1 , x 2 , x 3 , x 4 que hacen
a 1x1 + a 2 x 2 + a 3 x 3 + a 4 x 4 = 0 ,
b) si alguno de los coeficientes obtenidos es no nulo, el vector correspondiente es
combinación lineal de los demás, por lo que se puede eliminar y los restantes
formarán una base.
Aplicar el método anterior a los subespacios engendrados por las columnas de las
matrices A y B siguientes:
 = 4 − 3 − 2 − 5  3 1 7 5 5
   
 − 3 − 2 −1 6  4 6 0 − 2 − 1
A= , B= .
1 3 5 7 1 1 1 − 3 − 2
   
 − 4 1 6 3  1 − 3 9 1 2
   
2.2 Suma directa. Bases y dimensiones
La dimensión de un subespacio coincide con el rango de cualquier familia generadora
del mismo. Esto se consigue con la orden “rref (A)”, siendo A la matriz que tiene por
columnas las coordenadas de los vectores de dicha familia respecto de una base
cualquiera.
La suma de dos subespacios es directa si, por ejemplo, la suma de las dimensiones
coincide con la dimensión de la suma. Teniendo en cuenta el teorema de las
dimensiones, esto significa que la intersección es el subespacio nulo { 0 }. En términos
de rangos de familias de vectores, para averiguar si la suma de dos subespacios es
directa, basta calcular el rango de dos familias que generen cada uno de ellos y el de la
familia compuesta por la unión de ambas que genera la suma; el último debe ser la suma
de los dos primeros.
Ejercicios
1. ¿Es directa la suma de los subespacios S y T de IR 4 engendrados por las columnas
de las matrices A y B del ejercicio 4 de la sección 2.1.
2. En IR 4 se consideran los subespacios S = IR (1, 1, 0, 0), (0, 0, 1, 0), (0, 0, 0, 1) y
T = IR (1, 1, 2, 1), (2, 0, − 1, 1) .
Hallar bases y dimensiones de los subespacios S, T, S + T y S  T S.
8

2.3 Cambio de base


El cambio de la base “antigua” {a1 , , a n } a la base “nueva” {b1 , , b n } queda definido
cuando se expresan los vectores de la nueva como combinación lineal de los de la
antigua.
Matricialmente se puede escribir en términos de vectores en la forma siguiente:
[b1  b n ] = [a1  a n ]P ,
siendo P la matriz del cambio; en términos de coordenadas también se escribe como:
X = PX,
donde X y X son las columnas coordenadas de un vector genérico en las bases antigua
y nueva, respectivamente.
Ejercicios
1. Expresar el vector a ∈ IR 3 respecto de la base { v1 , v 2 , v 3 } si respecto de la base
{ u1 , u 2 , u 3 } tiene la siguiente expresión a = 2 u1 + 3 u 2 − 2 u 3 y los vectores v j están
definidos por v1 = u1 + 3u 2 − u 3 , v 2 = u1 − u 2 − u 3 , v 3 = u 2 − u 3 .
Solución
Se tiene que a = [ u1 u 2 u 3 ] X , siendo X t = (2, 3, − 2) .
 1 1 0
 
También que [ v1 v 2 v 3 ] = [ u1 u 2 u 3 ]P , siendo P =  3 − 1 1 .
 − 1 − 1 − 1
 
Es decir, [ u1 u 2 u 3 ] = [ v1 v 2 v 3 ]P , si P es regular.
−1

Luego, sustituyendo a = [ v1 v 2 v 3 ]P −1X = [ v1 v 2 v 3 ]X .


Así, con la ayuda de Matlab, construimos las matrices P y X.
p = [11 0; 3 − 1 − 1; − 1 − 1 − 1]
1 1 0
3 −1 1
−1 −1 −1
x = [ 2 3 − 2]'
2
3
−2
x b = inv(p )* x
5 4
 
3 4
 0
 
2. Expresar el vector a ∈ IR 3 respecto de la base { u1 , u 2 , u 3 }
si respecto de la base
{ v1 , v 2 , v3 } tiene la siguiente expresión a = 2 v1 + 3 v 2 − 2 v 3 y los vectores v j están
definidos por v1 = u1 + 3 u 2 − u 3 , v 2 = u1 − u 2 − u 3 , v 3 = u 2 − u 3 .
3. Dada la base de IR 3 { u1 = (1, 1, 1), u 2 = (0, 1, 1), u 3 = (1, 0, 1) } , encontrar la base
{ v1 , v 2 , v3 } tal que las ecuaciones del cambio de coordenadas sean
9

 x1 = y1 − 2y3
 2
x = − y + 5 y
2 3

 x 3 = y1 − 3y 3

4. Sean B = { u1 , u 2 , u 3 , u 4 } una base de un espacio vectorial real V,
B′ = { v1 , v 2 , v 3 , v 4 } y B′′ = { w 1 , w 2 , w 3 , w 4 } dos sistemas de vectores tales que:
v1 = u2 + 3u 4 w 1 = 2u 1 − 2u 2 + u4
v 2 = − u1 + u 2 w 2 = u1 + u 2 + u 3
v 3 = − 2u 1 − u 3 + 2u 4 w 3 = 3u1 + u3 − u4
v 4 = − u1 − u 2 − u 3 + u 4 w4 = − 2u 2 − u 3 + u 4
a) Probar que B′ y B′′ son bases de V.
b) Hallar la matriz del cambio de coordenadas de B′ a B′′ .
c) Encontrar las coordenadas respecto de B′ del vector v cuyas coordenadas respecto
de B′′ son (2, 1, 0, − 1) .
2.4 Aplicaciones lineales
Una aplicación f entre los espacios vectoriales V y W , f : V → W , es lineal si se
cumple f (t x + s y ) = t f (x ) + sf (y ) , ∀t , s ∈ IR , ∀x, y ∈ V .
Para definir la función f se ha de seguir los pasos descritos en el párrafo 1.6 de la
práctica 1.
A toda aplicación lineal se le puede asociar una matriz A, fijadas bases {v i , 1 ≤ i ≤ n} y
{w j , 1 ≤ j ≤ m} de los espacios vectoriales V y W, respectivamente. Dicha matriz A
tiene por columnas las coordenadas de los vectores f (v i ) respecto de la base { w j }, por
lo que A ∈ M m×n (IR ) .
La ecuación matricial de una aplicación lineal es Y = A X , siendo X la matriz columna
coordenada de un vector x ∈ V respecto de la base {v i , 1 ≤ i ≤ n} e Y la matriz columna
coordenada del vector y = f ( x ) ∈ W respecto de la base {w j , 1 ≤ j ≤ m}.
El núcleo de una aplicación lineal o de cualquiera de sus matrices coordenadas es el
subespacio Ker (f ) = f −1 (0 w ) = {x ∈ V ; f ( x ) = 0 w } = {X ; A X = 0} , o sea el conjunto de
soluciones del sistema homogéneo.
Matlab tiene una orden para esto, “null(A)”.
La imagen de una aplicación lineal f es el subespacio Im(f ) = f (V ) , o sea el conjunto de
las combinaciones lineales de los vectores f (v i ) , cuando {v i , 1 ≤ i ≤ n} es una base
cualquiera de V. En particular, si A es la matriz coordenada de f en ciertas bases, las
columnas de A componen un sistema generador de Im(f ) .
Si es A la matriz coordenada de la aplicación lineal f en bases { v1 ,  , v n } y
{ w1 , , w m } de V y W, respectivamente, y B es la matriz coordenada de la misma
~ ~
  ~ ~

aplicación respecto de las bases  v1 ,  , v n  y  w 1 ,  , w m  , la relación existente
   
−1
entre ellas es A Q = P B , o bien A = P B Q siendo P la matriz que define el cambio de
10

~ 
la base { v1 , , v n } a la base  v1 ,  , v n  y Q la matriz que define el cambio de la base
~

 
{ w1 , , w m } a la base  w1 , , w m  .
~ ~

 
La inversa de una matriz A se consigue con el comando “inv (A)”.
Ejercicios
1. Sea f : IR 3 → IR 2 definida por f (x , y, z ) = (2x + z, − 3y + 2z ) .
a) Probar que f es lineal.
b) Hallar su ecuación respecto de las bases canónicas.
c) Hallar el núcleo Ker (f ) y la imagen Im(f ) .
d) Hallar la matriz coordenada de f respecto de las bases
   
v i  = { (2, 0, 1), (1, 1, 0), (1, 1, 1) } y w j  = { (3, 1), (1, 4 ) }.
~ ~

   
2. Sea f : IR 3 → IR 3 definida por
f (2, 1, 0) = (1, − 1, 2) , f (0, 1, 2) = (0, 2, 1) , f (1, 0, 1) = (1, 1, 3) .
a. Hallar Ker (f ) e Im(f ) .
b. Hallar la matriz coordenada A de f respecto de la base { (2, 1, 0), (0, 1, 2), (1, 0, 1) }.
c. Hallar la matriz coordenada B de f respecto de la base canónica.
d. Hallar una matriz P tal que A = P B P −1 .
11

Práctica 3 Forma canónica de Jordan.


Contenido: Matrices semejantes. Polinomio característico. Valores propios. Vectores
propios. Forma canónica de Jordan. Forma real de la forma canónica de
Jordan. Aplicaciones: potencia de una matriz, resolución de ecuaciones
diferenciales lineales.
3.1 Definiciones
Dos matrices cuadradas A y B sobre IR o C son semejantes si existe una matriz regular
P tal que P −1A P = B , o bien, equivalentemente, si A P = P B .
Observar que las matrices semejantes A y B corresponden al mismo endomorfismo en
dos bases diferentes y relacionadas por la matriz de cambio P.
El polinomio característico de una matriz cuadrada A es el determinante Det(λI − A ) .
La ecuación característica, Det (λI − A ) = 0 , proporciona los valores propios λ (o
autovalores) de una matriz A.
Para calcular los valores propios podemos simplemente encontrar las raíces del
polinomio. Cuando éstas son enteras, debemos buscarlas entre los divisores del término
independiente. En cambio, si las raíces son irracionales, el problema puede ser más
laborioso y para ello hay métodos específicos.
Los vectores propios (o autovectores) de una matriz asociados a un valor propio son las
soluciones del sistema lineal (λI − A ) X = 0 , o sea el núcleo de la aplicación lineal de
matriz asociada (λI − A ) .
Un subespacio fundamental (o subespacio propio) es el conjunto de los vectores
propios asociados al valor propio λ. Para encontrarlo sólo hace falta resolver el sistema
particularizando para cada valor propio.
Nota: Cuando el valor propio es complejo, los vectores propios asociados pueden
tener coordenadas complejas.
Una matriz cuadrada A de orden n es diagonalizable si se puede encontrar una base de
IR n de vectores propios o, equivalentemente, si la suma de dimensiones de los
subespacios fundamentales (multiplicidades geométricas) es igual a n.
3.1.1 Comandos de matlab
El comando “poly(A)” de matlab da los coeficientes del polinomio característico de la
matriz A. Si se dispone del “Symbolic Toolkit” y si previamente se ha definido la
matriz B como simbólica, es decir, B = sym(A) , entonces el comando “poly(B)”
determina el polinomio característico en modo funcional. Lo mismo ocurre con otras
funciones de matrices, como “det”, “trace”, “menores”, etc.
Hay dos formas de calcular los valores propios de una matriz con matlab. La primera
con “roots(poly(A))”, la segunda con “eig(A)” que además nos proporciona vectores
propios asociados a los valores propios correspondientes.
3.2 Forma canónica de Jordan
Dada una matriz A de orden n sobre IR, diagonalizable o no, siempre podemos
encontrar su forma canónica de Jordan (si se elige el cuerpo adecuado). En otras
palabras, dado un endomorfismo h de IR n , siempre se puede encontrar una base
respecto de la cual la matriz coordenada de h es la matriz canónica de Jordan. Como es
conocido, la matriz de Jordan es una matriz triangular de bloques de Jordan, cuyo
12

número y tamaño están determinados por el endomorfismo h. La base (de Jordan)


correspondiente a la matriz de Jordan de h es una base constituida por cadenas del
tamaño de los bloques de Jordan correspondientes asociados a los mismos valores
propios. Obsérvese que, si dicha base está formada únicamente por vectores propios,
entonces la matriz es diagonalizable y la forma de Jordan será una matriz diagonal.
La matriz P − que define el paso de la base inicial a la base de Jordan − tiene por
columnas las coordenadas de los vectores de las cadenas respecto de la base inicial. Esta
matriz verifica la relación de semejanza entre las matrices inicial A y de Jordan J, en la
forma A P = P J .
Recordamos que las cadenas que aquí se deben usar cumplen:
(A − λI ) v j+1 = v j , j = 1, 2,
para los diferentes valores propios λ.
3.2.1 Proceso de construcción
El proceso para encontrar la matriz de Jordan y la base de Jordan correspondiente puede
ser el siguiente:
• Calcular valores propios con su multiplicidad aritmética.
• Realizar la partición de multiplicidades de cada uno de los valores propios.
Es decir, encontrar cuántos bloques de Jordan y de qué tamaño hay para cada
valor propio (o también, encontrar cuántas cadenas hay y de qué tamaño son).
• Encontrar la matriz de Jordan.
Sugerimos ordenar los bloques de Jordan de mayor a menor tamaño, primero los
complejos.
• Encontrar los vectores de cada cadena y, en consecuencia, la base de Jordan.
• Encontrar la matriz de cambio a la base de Jordan.
• Comprobar la semejanza de las matrices inicial y de Jordan.
3.2.2 Ejemplo práctico
Encontrar la forma canónica de Jordan del endomorfismo cuya matriz coordenada
respecto de una base conocida es la matriz
 1 0 0
 
A =  0 1 0
 0 0 1
 
Solución:
Definimos la matriz A:
>> A = [1, 0, 0 ; 1, 0, 1 ; 0, 1, 0];
Con el comando “[v, d]=eig(A)” se encuentran los vectores propios y los valores
propios correspondientes, que se localizan en las columnas de las matrices v y d,
respectivamente:
>> [v, d] = eig(A)
v=
0 0 0.0000
0.7071 0.7071 0.7071
0.7071 − 0.7071 0.7071
13

d=
1 0 0
0 −1 0
0 0 1
Así tenemos los valores propios: t1 = 1 (doble) ; t 2 = −1 (simple) .

Partición de multiplicidades.
Se estudia el rango de la matriz A − λI , así como de sus sucesivas potencias (a lo más,
hasta la multiplicidad aritmética del valor propio). En nuestro caso:
>> ax1=A-d(1,1)*eye(3);
>> rref(ax1)
ans =
1 0 0
0 1 −1
0 0 0
>> dimker1 =3-rank(ax1)
dimker1=
1
Por lo tanto, la matriz de Jordan tendrá un solo bloque de Jordan de orden 2 asociado a
t1 ; y un solo bloque de Jordan de orden 1 asociado a t 2 , es decir,
>> J = [d(1,1)*eye(2),zeros(2,1);zeros(1,2),d(2,2)*eye(1)];
>> J(1,2)=1;J
J=
1 1 0
0 1 0
0 0 −1
La base de Jordan estará compuesta, en consecuencia, por dos cadenas, la primera con
( ( ) )
dos vectores: v 2 ∈ Ker (A − t1I ) \ Ker(A − t1I ) y v1 = A v 2 , y la segunda con uno solo
2

vector v3.
>> null(ax1)
ans =
0
0.7071
0.7071
>> ax12=ax1^2;
>> null(ax12)
ans =
− 0.9428 0
− 0.2357 0.7071
0.2357 0.7071
>> v2=ans(:, 1);
>> v1=ax1*v2;
>> v3=v(:, 2);
14

La matriz P del cambio de la base inicial a la de Jordan tiene por columnas las
coordenadas respecto de la base inicial de los vectores de las cadenas en el orden que
aparecen
>> P=[v1,v2,v3]
P=
0 − 0.9428 0
− 0.4714 − 0.2357 0.7071
− 0.4714 0.2357 − 0.7071
Comprobación: ver que las matrices A y J son semejantes:
>> A*P==P*J
ans =
1 1 1
1 1 1
1 1 1
3.2.3 Ejercicios
1. Encontrar la forma canónica de Jordan y la matriz del cambio de base de las matrices
A y B siguientes
 1 − 2 −1 0 − 4 0 6  1 −1 0 1 − 2 −1 2 2
   
1 2 3 1 2 0 2 0 − 3   1 2 5 2 0 1 2 1 1 4 − 1
 0 0 2 0 2 0 − 4 0 0 2 0 0 0 − 2
   
A =  0 0 − 1 2 2 0 0 1 , B =  0 0 0 2 0 0 0
 0 0 0 0 0 0 0  0 1 0 1 0 − 1 2 0 
 
 1 6 0 4 4 0 − 4  1 5 0 5 2 1 2 − 2
   
 0 0 0 0 1 0 0 0 0 0 0 0 0 2
2. Encontrar la forma canónica de Jordan y la matriz del cambio de base de las matrices
C y D siguientes
 4 2 0 0  0 8 − 2 5
   
1  0 3 0 1 0 8 1 0
C=  , D=
4 0 0 − 2 0 1 0 0 0
   
 0 −1 0 5 0 1 0 2
   
3.3 Forma real de la forma canónica de Jordan
En ocasiones, algunos de los valores propios de una matriz son complejos; como no
siempre se puede utilizar aritmética compleja, se hace preciso considerar la forma real
de la forma canónica de Jordan. Entonces se actúa en la forma que se propone a
continuación.
• Ordenar los bloques (primero los complejos, luego los reales) y sustituir los
bloques de Jordan del mismo tamaño asociados a un valor propio complejo λ y a
su conjugado por un bloque real constituido por bloques B1 en la diagonal y
bloques B2 encima de la diagonal, siendo
 ℜe(λ ) − ℑm(λ )  1 0
B1 =   , B2 =   .
 ℑm(λ ) ℜe(λ )  0 1
15

Nota: Se puede usar [v, d ] = cdf 2rdf (v, d ) para transformar la salida compleja de
[v, d] = eig(A ) en real.
• La base correspondiente a esta forma de la matriz de Jordan se consigue de la
manera siguiente: se colocan en la primera y segunda posiciones, respectivamente,
la parte real y la parte imaginaria de los vectores propios complejos
correspondientes.
• La relación de semejanza que ha de cumplirse es, como otras veces, A P = P J .
3.3.1 Ejercicios
1. Encontrar la forma real de la matriz de Jordan y la matriz del cambio de base
correspondientes a la matriz
 1 1 1 1
 
 − 2 − 1 0 − 1
A= .
0 0 − 1 − 1
 
 0 0 2 1
 
2. Encontrar la forma real de la matriz de Jordan y la matriz del cambio de base
correspondientes a la matriz
 1 1 1 1 0 0
 
 − 2 −1 0 −1 0 0
 0 0 − 1 − 1 0 1
B= .
 0 0 2 1 0 0
 0 0 0 0 1 2
 
 0 0 0 0 − 1 − 1
 
3.4 Aplicaciones
3.4.1 Potencia de matrices
Dado que una matriz cuadrada A y su forma canónica de Jordan J verifican: A = P −1J P ,
la potencia n-ésima de A se puede obtener en la forma:
A n = P −1J P P −1J P  P −1J P = P −1J n P .
En consecuencia, basta encontrar la forma canónica de Jordan de A y la matriz de
cambio a la base de Jordan.
3.4.2 Resolución de sistemas de ecuaciones diferenciales lineales
Un sistema de ecuaciones diferenciales lineales representa un problema en el que la
incógnita es una función vectorial definida como una relación lineal entre ella y su
derivada, más concretamente, se puede escribir en términos matriciales como:
X′ = A X
Se puede probar que, si se conoce el valor de la solución X(t 0 ) en un instante t 0
(condiciones iniciales), existe una única solución.
Para encontrar la solución correspondiente a las condiciones iniciales X(t 0 ) se procede
en la forma siguiente:
a) Se encuentra la forma canónica de Jordan y la matriz de paso,
16

b) Se transforma el sistema inicial al siguiente: Y′ = J Y , siendo J = P −1A P y


X = PY,
c) Se resuelve el sistema diferencial lineal en forma regresiva,
d) Se imponen las condiciones iniciales: Y0 = P −1X 0 para determinar las constantes
de integración,
e) Se realiza el cambio de coordenadas inverso para obtener X = P Y(t ) .
Ejercicios
1. Resolver los sistemas de ecuaciones diferenciales lineales, cuyas matrices y
condiciones iniciales son las siguientes
 1 5 − 2 1
   
A =  − 4 3 7  , X 0 = X(0) =  1 
 − 3 1 7  0
   
 0 1 1  1
   
B =  0 1 0  , X 0 = X(0) =  1 
 −1 1 2  0
   
17

Práctica 4 Formas cuadráticas.


Contenido: Formas sesquilineales y cuadráticas: introducción, diagonalización,
clasificación.

4.1 Introducción
Dada una aplicación f : V × V → IK con V espacio vectorial sobre un cuerpo IK, una
forma sesquilineal sobre V siempre y cuando se cumple:
• ∀u , u ′, v ∈ V , f (u + u ′, v ) = f (u , v ) + f (u ′, v ) ,
• ∀u , v ∈ V, ∀t ∈ IK, f (t u , v ) = t f (u , v ) ,
• ∀u , v, v′ ∈ V , f (u , v + v′) = f (u , v ) + f (u , v′) ,
• ∀u , v ∈ V, ∀t ∈ IK, f (u , t v ) = t f (u , v ) , donde t es el conjugado de t.
Notar que si el cuerpo IK es IR, la forma sesquilineal es una forma bilineal, que será
simétrica si f (u , v ) = f (v, u ), ∀u , v ∈ V y alternada si f (u , v ) = −f (v, u ), ∀u , v ∈ V .
Sean V un espacio vectorial real y f : V × V → IR una forma bilineal sobre V, una
forma cuadrática asociada a f a la aplicación q : V → IR definida por
q(u ) = f (u, u ), ∀u ∈ V .
La expresión coordenada de una forma sesquilineal f : V × V → IK sobre V se calcula
de la siguiente manera:
Se considera una base { v1 , , v n } de V.
∀u ∈ V , u = x1v1 +  + x n v n = X′(v i )
∀v ∈ V , v = y1v1 +  + y n v n = Y′(v i )
f (u , v ) = f (x1v1 +  + x n v n , y1v1 +  + y n v n )
= x1 f (v1 , y1v1 +  + y n v n ) +  + x n f (v n , y1v1 +  + y n v n )
= x1 [y1 f (v1 , v1 ) +  + y n f (v n , v n )] +  + x n [y1 f (v1 , v1 ) +  + y n f (v n , v n )]
= ∑ x i y j f (v i , v j ) = X′ A Y ,
n

i , j=1

 f (v1 , v1 )  f (v1 , v n ) 
 
Donde A =      ∈ M n (IK ) es la matriz coordenada de f respecto
 f (v , v ) f (v , v )
 n 1 n n 

de la base { v1 , , v n }.
La expresión obtenida anteriormente, ∀u, v ∈ V, f (u, v ) = X′ A Y , es la expresión
coordenada de f respecto de la base { v1 ,  , v n }.
4.1.1 Ejemplo práctico
Sea V = C 2 espacio vectorial sobre C y f la aplicación f : C 2 × C 2 → C dada por
f ((x1 , x 2 ), (y1 , y 2 )) = x1 y1 + 3x1 y 2 − x 2 y1 + 2x 2 y 2 .
a) Comprobar que es una forma sesquilineal.
b) Calcular su expresión coordenada con respecto a la base canónica de C 2 .
c) Calcular f (u, v ) con u = (1 + i, 2i ) y v = (0, 3 − i ) .
18

Solución con Matlab


En primer lugar definimos la función:
>> F = inline(' x (1) * conj(y(1) ) + 3 * x (1) * conj(y( 2) ) − x ( 2) * conj(y(1) ) + 2 * x ( 2) * conj(y( 2) )' ,
' x ' , ' y ')
Ahora comprobamos que es una forma sesquilineal:
>> syms a b c d e f m n
>> u = [a b]
>> v = [c d]
>> up = [e f]
>> vp = [m n]
>> simplify(F(u + up, v) − F(u, v) − F(up, v))
>> simplify(F(u, v + vp) − F(u, v) − F(u, vp))
>> syms s t
>> simplify(F(t ∗ u, v) − t ∗ F(u, v))
>> simplify(F(u, s ∗ v) − conj(s) ∗ F(u, v))
Calculamos la expresión coordenada
>> e1 = [1 0]
>> e2 = [0 1]
>> A = [F(e1, e1) F(e1, e2); F(e2, e1) F(e2, e2)]
Calculamos f (u, v ) con u = (1 + i, 2i ) y v = (0, 3 − i ) de dos formas distintas:
>> F([1 + i 2 * i ], [0 3 − i ])
>> [1 + i 2 * i]* A * [0 3 − i]’
4.1.2 Ejercicios
1. Sea f la aplicación f : C3 × C3 → C dada por
f ((x1 , x 2 , x 3 ), (y1 , y 2 , y 3 )) = x1 y1 + ix1 y 2 + 2ix1 y 3
+ 2ix 2 y1 − 2x 2 y 2 − 4x 2 y 3 + (1 + i )x 3 y1
a) Comprobar que es una forma sesquilineal.
b) Calcular la matriz coordenada de f respecto a la base canónica de C3 .
c) Calcular la matriz coordenada de f respecto a la base { (i, 1, 1), (0, 1, 0 ), (1 + i, 2i, 1) }
de C3 .
2. Encontrar la matriz A coordenada respecto de la base estándar de la forma
sesquilineal f : C3 [x ]× C3 [x ] → C definida por f (p( x ), q ( x ) ) = p′(0) q′(0) .
a) ¿Es una forma bilineal simétrica?
b) ¿Cuál es su forma cuadrática Q asociada?
(
c) Calcula Q 1 + (1 − i )x + (2 + i )x 2 . )
3. Dadas las aplicaciones
a) f : IR 3 × IR 3 → IR definida por
f (u , v ) = f ((x1 , x 2 , x 3 ), (y1 , y 2 , y 3 )) = 3x1 y1 + x 2 y 2 + 5x 3 y1 .
b) f : IR 2 × IR 2 → IR definida por
f (u , v ) = f ((x1 , x 2 , x 3 ), (y1 , y 2 , y 3 )) = x1x 2 .
c) f : IR × IR → IR definida por
3 3
19

f ((x1 , x 2 , x 3 ), (y1 , y 2 , y 3 )) =
.
= 2 x1 y1 + x1 y 2 + x 2 y1 + 3x1 y 3 + 3x 3 y1 + x 2 y 3 + x 3 y 2 + 4 x 3 y 3
Comprobar si son bilineales. Calcular su expresión matricial y observar si son
simétricas o alternadas.
4.2 Diagonalización y clasificación de formas cuadráticas
Para diagonalizar una matriz hermítica (simétrica en IR ) asociada a una forma
cuadrática, podemos utilizar cualquiera de los métodos conocidos: encontrar una base
de vectores conjugados, encontrar una base ortonormal de vectores propios, método de
diagonalización por congruencia.
El método más usual utiliza matrices elementales para obtener una matriz diagonal
congruente con la matriz coordenada de una forma cuadrática, determinando fácilmente
la matriz del cambio a la nueva base. El método de diagonalización por congruencia
consiste en realizar simultáneamente operaciones elementales de congruencia, sobre la
matriz coordenada A de la forma cuadrática y sobre la matriz identidad de mismo orden
que A adjuntada, hasta lograr una matriz coordenada diagonal congruente. La matriz
transformada P de la matriz unidad verifica la relación de congruencia P A P t = D .
4.2.1 Ejemplo resuelto
1 2 0
 
Obtener una matriz diagonal congruente con A =  2 3 1  y escribir una base
0 1 1 
 
conjugada.
Solución con Matlab de dos maneras distintas:
Introducimos la matriz
>> A = [1 2 0; 2 3 1; 0 1 1] >> A = [1 2 0; 2 3 1; 0 1 1]
>> P = eye(3) >> P = eye(3)
Operación por filas en A y P >> AP = [A, P]
>> A = [A(1, :); A(2, :) − 2 ∗ A(1, :); A(3, :)] >> AP(2, :) = AP(2, :) − 2 ∗ AP(1, :)
>> P = [P(1, :); P(2, :) − 2 ∗ P(1, :); P(3, :)] >> AP(:, 2) = AP(:, 2) − 2 ∗ AP(:, 1)
La misma operación por columnas en A >> AP(3, :) = AP(3, :) + AP(2, :)
>> A = [A(:, 1) A(:, 2) − 2 ∗ A(:, 1) A(:, 3)] >> AP(:, 3) = AP(:, 3) + AP(:, 2)
>> D = AP(:,1 : 3)
Operación por filas en A y P
>> P = AP(:,4 : 6)
>> A = [A(1, :); A(2, :); A(3, :) + A(2, :)]
>> P = [P(1, :); P(2, :); P(3, :) + P(2, :)] >> D = P ∗ A ∗ P′
La misma operación por columnas en A
>> A = [A(:, 1) A(:, 2) A(:, 3) + A(:, 2)]
 1 0 0  1 0 0
   
Resultado obtenido P =  − 2 1 0  , D = PA P =  0 − 1 0  .
t

 − 2 1 1  0 0 2
   
Base conjugada: { (1, 0, 0), (− 2, 1, 0), (− 2, 1, 1) }
20

4.2.2 Ejercicios
1. Para cada una de las matrices
 2 i 0   1 1 0
   
a)  − i 0 1 − i  b)  1 2 2 
 0 1+ i 1   0 2 5
   

 0 1+ i 1  0 1 1
   
c ) 1 − i 0 − 1 d )  1 0 1 ,
 1 −1 0   1 1 0
  
encontrar una matriz diagonal congruente hermítica (simétrica) con ella.
2. Diagonalizar y clasificar las siguientes formas cuadráticas definidas sobre IR 3 o IR 2
a) q(x , y, z ) = 3x 2 + 5 y 2 + 3z 2 − 2xy + 2xz − 2 yz .
b) q(x , y ) = 2 xy − y 2 .
c) q(x , y ) = xy .
3. Hallar el rango y la signatura de las formas cuadráticas cuyas expresiones son:
a) q(x1 , x 2 ) = 3x12 + 3x1x 2 + 6x 22 .
b) q(x1 , x 2 , x 3 ) = x12 + 2 x 22 + 4 x1x 2 + 2 x 32 .
c) q (x1 , x 2 , x 3 ) = 3x12 + 2 x1x 2 + 2 x1x 3 + 4 x 2 x 3 .
y clasificarlas.

Vous aimerez peut-être aussi