Académique Documents
Professionnel Documents
Culture Documents
En Matlab
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”.
>> 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
( )
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
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
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
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
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.