Вы находитесь на странице: 1из 22

1 VECTORES

Algebra Lineal Tutorial b


asico de MATLAB
MATLAB es un programa interactivo para computos numericos y visualizacion de datos. Hay muchas
libreras disponibles que extienden las funciones basicas de MATLAB a diferentes areas de aplicacion.
Este es un tutorial presenta de manera muy concisa los primeros pasos para empezar a usar Matlab. Se
recomienda seguir el tutorial al tiempo que ejecuta MATLAB en otra ventana. De esta manera usted
podra ensayar lo que va a prendiendo. Usted debera poder copiar y pegar cada instruccion que aparece
aqu para obtener el mismo resultado en MATLAB.

1. Vectores
Empecemos por crear algo sencillo, como un vector. Ingrese cada entrada del vector separadas por
espacio y entre corchetes.

[1 2 3]

ans =
1 2 3

MATLAB crea el vector y lo almacena en una variable temporal llamada ans. Para almacenarlo en una
variable permanente, basta darle un nombre, por ejemplo v, igualando v al vector, as

v = [1 2 3 4 5]

v =
1 2 3 4 5

Es posible crear vectores con cierta estructura. Por ejemplo supongamos que queremos un vector con
los n
umeros pares entre el 0 y el 10:

t = 0:2:10

t =
0 2 4 6 8 10

Manipular vectores es tambien muy facil. Supongamos que queremos sumarle 3 a cada entrada del vector
v que creamos arriba. Entonces basta ejecutar:

v+3

ans =
4 5 6 7 8

De nuevo el resultado es almacenado en la variable temporal ans. Si queremos almacenarlo para usarlo
mas tarde podemos ejecutar
2 FUNCIONES

w = v + 3

w =
4 5 6 7 8

Si queremos sumar dos vectores, por ejemplo v y w, podemos ejecutar:

suma = v + w

suma =
5 7 9 11 13

El producto punto se puede calcular con la funcion dot. Los vectores se escriben entre parentesis
separados por comas, as:

dot(v,w)

ans =
100

Otras funciones que te pueden interesar son norm que calcula la norma (longitud) de un vector y cross
que calcula el producto cruz de dos vectores.

2. Funciones
MATLAB incluye muchas funciones estandar. Por ejemplo las funciones matematicas sin, cos, ...
log, exp, sqrt, as como muchas otras m as especializadas. Tambien incluye constantes usadas com
unmen-
te como , o i (la raz cuadrada de -1). Estas se pueden usar directamente

sin(pi/4)

ans =
0.7071

Tambien es posible aplicar muchas de estas funciones a vectores, por ejemplo

v = pi/2 * [0:3]
cos(v)

v =
0 1.5708 3.1416 4.7124
ans =
1.0000 0.0000 -1.0000 -0.0000

Para determinar como se usa cualquier funcion utilice la ayuda de MATLAB.


MATLAB tambien te permite crear tus propias funciones utilizando el comando function.
4 MATRICES

3. Formato
La instruccion format controla el formato de salida de los valores numericos presentados pantalla. Hay
tres posibilidades para esta instruccion

format short (muestra 5 dgitos decimales).

format long (muestra 15 dgitos decimales).

format rat (muestra un cociente de enteros).

Por ejemplo si quieres calcular 1 + (2/3) en los diferentes formatos obtienes

format short
1+(2/3)
format long
1+(2/3)
format rat
1+(2/3)

ans =
1.6667
ans =
1.66666666666667
ans =
5/3

El cambio de formato afecta todas las instrucciones que ejecutes despues.

4. Matrices
Las matrices en MATLAB se crean igual que los vectores, excepto que cada fila se separa con un punto
y coma (;). Por ejemplo

B = [1 2 3 4; 5 6 7 8; 9 10 11 12]

B =
1 2 3 4
5 6 7 8
9 10 11 12

Las matrices se pueden manipular de muchas maneras. Puedes sumar o restar matrices

[1 1; 0 1] + [-1 1; 1 -1]

ans =
0 2
1 0
4 MATRICES

Puedes hallar la transpuesta colocando una comilla sencilla () despues del nombre de la matriz:

C = B'

C =
1 5 9
2 6 10
3 7 11
4 8 12

Tambien puedes multiplicar las matrices B y C as:

D = B * C

D =
30 70 110
70 174 278
110 278 446

Cabe anotar que la multiplicacion solo funciona si las dimensiones de las matrices son compatibles. Si
inentas por ejemplo multiplicar B con B obtiene un error.

B * B

>> B*B
??? Error using ==> mtimes
Inner matrix dimensions must agree.

Tambien es posible multiplicar dos matrices componente a componente (una especie de producto punto)
as:

E = [1 2; 3 4]
F = [2 3; 4 5]
G = E .* F

E =
1 2
3 4
F =
2 3
4 5
G =
2 6
12 20

Si tienes una matriz cuadrada, puedes multiplicarla por sigo misma tantas veces como quieras elevandola
a la potencia deseada.
4 MATRICES

E3

ans =

37 54
81 118

Si en cambio lo que quieres es elevar cada entrada de la matriz a una potencia dada, puedes hacerlo as:

E.3

ans =

1 8
27 64

Tambien es posible acceder a las partes que forman una matriz. Para extraer la entrada i, j colocamos
(i,j) al frente del nombre de la matriz, por ejemplo

H=[10 20 30; 40 50 60]


H(2,3)

H =
10 20 30
40 50 60
ans =
60

Para extraer una fila completa utilizamos dos puntos (:) para indicar que queremos toda la fila

H(2,:)

ans =
40 50 60

Y lo propio para extraer una columna

H(:,3)

ans =
30
60

Tambien puedes construir una matriz a partir de sus partes. Se pueden juntar columnas
4 MATRICES

u = [1;2;3]
v = [4;5;6]
[u v]

u =

1
2
3
v =
4
5
6
ans =
1 4
2 5
3 6

y tambien juntar filas

u = [1 2 3]
v = [4 5 6]
[u; v]

u =
1 2 3
v =
4 5 6
ans =
1 2 3
4 5 6

MATLAB tambien tiene varias instrucciones que permiten construir matrices usadas comunmente como
la matriz identidad (eye(n)), la matriz cero (zeros(m,n)), la matriz de unos (ones(m,n)), o una
matriz diagonal (diag([...])).

eye(4)
zeros(2,3)
ones(3,2)
diag([1 -1 2])

ans =

1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
ans =
5 ALGEBRA LINEAL EN MATLAB

0 0 0
0 0 0
ans =
1 1
1 1
1 1
ans =
1 0 0
0 -1 0
0 0 2

La funcion (rand(m,n)) genera una matriz m n cuyas entradas son n umeros aleatorios entre cero
y uno. Intenta ejecutar la siguiente instruccion varias veces y veras que cada vez obtienes una matriz
diferente.

rand(2,2)

ans =
0.9501 0.6068
0.2311 0.4860

5. Algebra Lineal en MATLAB


MATLAB tiene extensas funciones relacionadas con algebra lineal. Por ejemplo, supongamos que quieres
resolver el sistema de ecuaciones lineales

xy =2
x+y =3

Una manera de hacerlo es hallar la forma escalonada reducida de la matriz aumentada del sistema

A = [1 -1; 1 1]
b = [2; 3]
C = [A b]
R = rref(C)

A =
1 -1
1 1
b =
2
3
C =
1 -1 2
1 1 3
R =
1.0000 0 2.5000
0 1.0000 0.5000
5 ALGEBRA LINEAL EN MATLAB

Otra manera es utilizar el operador (\) que encuentra UNA solucion del sistema

A\b

sln =
2.5000
0.5000

Otra manera mas es multiplicando por la inversa de la matriz. La inversa la puedes encontrar con el
comando inv.

D = inv(A)
D*b

D =
0.5000 0.5000
-0.5000 0.5000
ans =
2.5000
0.5000

Tambien puedes encontrar el determinante de una matriz

det(A)

ans =
2

o los valores propios de una matriz

E = [1 2; 3 4]
eig(E)

ans =
-0.3723
5.3723

Incluso hay una funcion para hallar el polinomio caracterstico de una matriz. Recordemos que si A
es una matriz n n, entonces el polinomio caracterstico de A es el polinomio de grado n dado por
la ecuacion p(A) = det(A In ) = an n + an1 n1 + + a1 + a0 . Cuando n es par la funcion
poly crea un vector con los coeficientes an , an1 , . . . a0 del polinomio caracterstico. Cuando n es impar
la funcion poly crea un vector con los coeficientes an , an1 , . . . , a0 . En otras palabras, cuando la
dimension de la matriz A es impar la funcion poly produce los negativos de los coeficientes del polinomio
caracterstico. Por ejemplo si E es la matriz 2 2 definida arriba obtenemos

p = poly(E)
5 ALGEBRA LINEAL EN MATLAB

p =
1.0000 -5.0000 -2.0000.

Esto significa que el polinomio caracterstico de E es p() = 2 5 2. Por otro lado, si J es la


siguiente matriz 3 3

J = [1 2 0; 3 4 -1; 1 0 -1]

obtenemos

q= poly(E)

q =
1.0000 -4.0000 -7.0000 0.0000.

Esto significa que el polinomio caracterstico de J es p() = 3 + 42 + 7.


Recuerda que los valores propios de una matriz son las races de su polinomio caracterstico, para matriz
E se obtiene:

roots(p)

ans =
5.3723
-0.3723

Otro comando bastante u


til es null. Este permite hallar una base del espacio nulo de una matriz

X = [1 -2; -2 4]
null(X)

ans =
0.8944
0.4472

En ocaciones es preferible obtener una base con coeficientes racionales, para esto incluimos el argumento
'r' al comando null

null(X, 'r')

ans =
2
1

6 GRAFICAS

6. Gr
aficas
Es facil generar graficas en MATLAB utilizando el comando plot. Este comando no grafica directamente
funciones, sino que grafica puntos en un plano cartesiano. De modo que para graficar una funcion, debes
entregarle los puntos que componen la funcion.
Supongamos que quieres graficar la funcion sen(x) en el intervalo [0, 7]. Primero debes crear un vector
con los valores de x que quiere incluir. Luego debes calcular el seno en cada uno de los valores de x, y
finalmente utilizar plot para graficar los puntos.

x = 0:0.25:7;
y = sin(x);
plot(x,y)

Note que colocamos un punto y coma al final de las primeras dos instrucciones. Esto se hace para que
MATLAB no imprima el resultado en pantalla. Note que la primera instruccion crea un vector de 28
entradas, desde cero hasta 7 separadas por 0,25. La segunda instruccion calcula el seno de cada una de
las entradas del vector x.
Es posible agregar ttulos y anotaciones a las graficas utilizando las funciones title, xlabel, y ylabel
despues de haber ejecutado el comando plot.

title('Funci
on seno como funci
on del tiempo')
xlabel('Tiempo (segs)')
ylabel('Amplitud')

La funcion plot tiene una cantidad de otras caractersticas que se pueden explorar en la ayuda o en
multitud de tutoriales en internet.
7 POLINOMIOS

7. Polinomios
En matlab, un polinomio es representado por un vector. Para crear un polinomio en MATLAB, sim-
plemente ingresa cada coeficiente del polinomio en orden descendiente en un vector. Por ejemplo, el
polinomio x4 + 3x3 15x2 2x + 9 se ingresa en MATLAB como:

x = [1 3 -15 -2 9]

x =
1 3 -15 -2 9

MATLAB interpreta un vector de de n + 1 componentes como un polinomio de grado n. Entonces, si a


tu polinomio le falta alg
un coeficiente, debes ingresar ceros en las entradas apropiadas del vector. Por
ejemplo, x4 + 1 se representa en MATLAB como el vector:

y = [1 0 0 0 1]

y =
1 0 0 0 1

Puedes evaluar un polinomio utilizando la funcion polyval. Por ejemplo, para evaluar el polinomio
definido arriba en s=2 ejecutamos,

z = polyval([1 0 0 0 1],2)

z =
17

Tambien puedes extraer las races de un polinomio usando la funcion roots. Las raices del polinomio
x4 + 3x3 15x2 2x + 9 se encuentran ejecutando

roots([1 3 -15 -2 9])

ans =
-5.5745
2.5836
-0.7951
0.7860

Para multiplicar dos polinomios se utiliza la funcion conv que encuentra la convolucion de sus coeficien-
tes.

x = [1 2];
y = [1 4 8];
z = conv(x,y)
9 ALTERNATIVA A MATLAB GRATUITA OCTAVE

z =
1 6 16 16

La funcion deconv divide un polinomio enre otro y devuelve el residuo y el cociente de la division.

[xx, R] = deconv(z,y)

xx =
1 2
R =
0 0 0 0

8. Archivos .m
Es posible guardar un listado de instrucciones MATLAB en un archivo con extension .m para ejecutar
mas tarde. Bajo Windows MATLAB tiene un editor de archivos .m.

9. Alternativa a Matlab Gratuita Octave


MATLAB es un excelente programa para computos numericos pero es costoso y no es el u nico. Exis-
ten alternativas gratuitas tambien muy poderosas. Octave es un software libre que imita a Matlab de
manera muy cercana. Octave se puede obtener libremente en internet. Aunque es mas facil usarlo en
Linux, tambien es posible instalarlo en Windows o Mac. Para usuarios de Windows, se recomienda por
ejemplo descargar el instalador de Octave de http://mxeoctave.osuv.de/. Una vez instalado, todos
los comandos usados en el Tutorial de Matlab se pueden usar directamente en Octave. En Windows 8
hay algunos problemas para producir graficas.

Algebra Lineal Pr
actica 3

1. Matrices en Matlab
Para introducir una matriz en Matlab se procede de la forma siguiente. Si por ejemplo tenemos la matriz
 
1 2 3 4
A=
5 6 7 8

se introduce como:
>>A=[1 2 3 4; 5 6 7 8]

A =
1 2 3 4
5 6 7 8
O bien,

>>A=[1,2,3,4;5,6,7,8];

Observemos que unas matrices especiales son los vectores, de esta forma, el vector fila v = (1.0, 1.1,1.2,1.3, . . . ,
1.9,2.0), se escribe en Matlab como

>>v=[1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0]

2. Operaciones y comandos para Matrices


Hemos visto como se introducen las matrices en Matlab. Veamos un ejemplo para introducir algunos de los
comandos basicos:

Ejemplo 1 Operaciones Elementales


Definimos dos matrices:

>>A=[2 1;3 2]
A =
2 1
3 2

>>B=[3 4;-1 5]
B =
3 4
-1 5

Para sumar las dos matrices:

>>A+B
ans =
5 5
2 7

Para multiplicar una matriz por un escalar:

8
>>3*A
ans =
6 3
9 6

Producto de matrices:

>>C=A*B
C =
5 13
7 22

Siempre que los tama


nos de las matrices sean los adecuados. Para saber cu
al es el tama
no de una matriz con
la que estamos trabajando,

>>size(A)
ans =
2 2

Que quiere decir, evidentemente, 2 filas y 2 columnas.


Para calcular la matriz transpuesta:

>>A
ans =
2 3
1 2

Ejercicio 1 Utilizando las matrices definidas en el ejemplo anterior, comprobar que (AB)t = B t At . (At es la
transpuesta de A).

Ejemplo 2 Operaciones termino a termino: .* ./ .^


Matlab tiene tres operaciones, que las llamaremos operaciones con punto, que permiten
i) multiplicar matrices termino a termino: .*
ii) dividir matrices termino a termino: ./
ii) elevar los terminos de una matriz a una cierta potencia: .^
Si v es el vector definido en la Secci on 2, explorar que hace la orden
>>v.^2
Por otra parte, si A y B son las matrices definidas anteriormente, explorar que hacen las o
rdenes
>>A.*B
>>A./B

Estas operaciones con punto son esenciales en el calculo numerico y se utilizan para representar funciones
numericamente.

Ejemplo 3 Matrices especiales con Matlab


Para generar la matriz identidad cuadrada,

>>eye(3)
ans =
1 0 0
0 1 0
0 0 1

9
Por que habran elegido el nombre eye?
Una matriz 3 2 llena de unos,
>>ones(3,2)
Y si queremos que este llena de ceros,
>>zeros(3,2)
Para generar una matriz con n umeros aleatorios uniformemente distribuidos entre 0 y 1,
>>rand(3,2)
Si se usa el comando randn los numeros aleatorios son normalmente distribuidos, siguiendo la Normal Estandar
N (0, 1).

Ejemplo 4 Rango, Inversa y Determinante


Definimos la matriz,

>>X=[2 3 4; 1 -1 0]
X =
2 3 4
1 -1 0

Para calcular su rango,

>>rank(X)
ans =
2

Supongamos que tenemos definida la siguiente matriz,


H =
8 1 6
3 5 7
4 9 2
Para calcular su inversa,

>>inv(H)
ans =
0.1472 -0.1444 0.0639
-0.0611 0.0222 0.1056
-0.0194 0.1889 -0.1028

Y si queremos ver el resultado en forma racional,

>>format rational
>>inv(H)
ans =
53/360 -13/90 23/360
-11/180 1/45 19/180
-7/360 17/90 -37/360

(Para ver todas las opciones del comando format hacer help format)
Para calcular el determinante de la matriz anterior H,

>>det(H)
ans =
-360

Ejercicio 2 Generar una matriz cualquiera, por ejemplo 2525, y calcular su inversa, su rango y su determinante.
(No imprimirla!) Que ocurre con el determinante de la matriz y el de su inversa?

10
Ejemplo 5 Los comandos especiales rref y rrefmovie
El comando rref produce la forma reducida escalonada por filas de una matriz usando la eliminaci on de
Gauss-Jordan, es decir, haciendo ceros por debajo y por encima de la diagonal principal sin mover las columnas.
Por ejemplo, definimos la matriz,

>>A=[-1 2 -1;2 1 2;2 4 2]

A =

-1 2 -1
2 1 2
2 4 2

Ahora escribimos el comando aplicado a la matriz,

>>R=rref(A)

R =

1 0 1
0 1 0
0 0 0

El comando rrefmovie produce exactamente el mismo resultado pero nos indica paso a paso c omo se va
obteniendo la matriz resultado e incluso que filas o columnas son despreciables (por ser linealmente dependientes
de las otras), informacion muy u ltil si queremos calcular el rango de la matriz por ejemplo. Es decir, produce una
especie de pelcula (movie) de todo el proceso.

>>rrefmovie(A)
Original matrix

A =

-1 2 -1
2 1 2
2 4 2

Press any key to continue. . .

Ahora pulsamos una tecla para continuar,


swap rows 1 and 2

A =

2 1 2
-1 2 -1
2 4 2

Press any key to continue. . .


Nos indica que ha intercambiado la primera y segunda filas, pulsamos de nuevo una tecla,
pivot = A(1,1)

A =

11
1 1/2 1
-1 2 -1
2 4 2

Press any key to continue. . .


Ahora nos indica que va a pivotear sobre el elemento (1,1) de la matriz,
eliminate in column 1

A =

1 1/2 1
-1 2 -1
2 4 2

Press any key to continue. . .


Ahora nos est
a indicando que va a eliminar (hacer ceros) en la primera columna y as sucesivamente hasta obtener
el mismo resultado que nos di
o el comando rref.

Ejercicio 3 a) Calcular el rango de la matriz siguiente utilizando el comando rref o rrefmovie:



16 2 3 13
5 11 10 8
A= 9 7 6 12

4 14 15 1
b) Si una matriz H es cuadrada y no singular, es decir det(H) 6= 0, cu
al ser
a la matriz R = rref(H)?
c) Como podemos utilizar estos comandos para calcular la inversa de una matriz invertible? Aplicarlo a la
matriz,

8 1 6
B = 3 5 7
4 9 2
Para verificar el resultado se puede calcular la inversa directamente con inv(B).

3. Matrices dispersas
Ejemplo 6 A veces usamos matrices con muchos ceros. MatLab tiene una forma de trabajar con ellas usando
menos bytes con el comando sparse. Ve amoslo con un ejemplo:
Introducimos una matriz:
>>A=[0 0 0 3;0 0 -1 2;3 0 0 1;0 0 0 -2];
- Para convertirla a matriz dispersa
>>s=sparse(A)
Si preguntamos whos" vemos que s ocupa menos que A.
- Para recuperar la matriz inicial
>>full(s)
Para visualizar gr
aficamente la matriz:
>>spy(s)
o bien,
>>imagesc(s),colorbar

Se pueden generar directamente matrices sparse:


>>sparse(i,j,s,m,n)
donde: i,j son los subndices de los elementos no nulos (i,j son vectores)

12
s es un vector con los valores de los elementos no nulos
(m,n) es el tamano de la matriz.
De modo que, en el ejemplo anterior, para generar s deberamos escribir:
>>i=[1 2 2 3 3 4];
>>j=[4 3 4 1 4 4];
>>s=[3 -1 2 3 1 -2];

>>m=4;n=4;

>>sparse(i,j,s,m,n)
Y obtenemos s. Para obtener la matriz inicial >>full(s)

Ejercicio 4 Utilizando el comando sparse, generar la matriz 20 20



0 1 0 0 ... 00
1 0 1 0 ... 0
0

0 1 0 1 ... 0
0
.. ..

..
.
. .
0 0 0 0 ... 0 1
0 0 0 0 ... 1 0

(Visualizarla para comprobar que esta bien).

4. Sistemas de ecuaciones lineales


Un sistema de ecuaciones lineales,

a11 x1 + a12 x2 + . . . + a1n xn = b1


a21 x1 + a22 x2 + . . . + a2n xn = b2

..


.

am1 x1 + am2 x2 + . . . + amn xn = bm

con m ecuaciones y n incognitas se puede escribir en forma matricial,

Ax = b
donde,


a11 a12 ... a1n x1 b1
a21 a22 ... a2n x2 b2
A= . ; x= . y b= .

.. .. ..
am1 am2 . . . amn xn bm
Vamos a ver mediante algunos ejemplos y ejercicios como se pueden resolver los sistemas de ecuaciones lineales
utilizando algunos de los comandos de Matlab descritos anteriormente.

Ejemplo 7 Consideremos el sistema,



2x y + z = 3

x+y =3

y 3z = 7

entonces, siguiendo la notaci


on anterior,

13

2 1 1 x 3
A = 1 1 0 , x = y y b= 3
0 1 3 z 7
Como se trata de un sistema con soluci
on u
nica, ya que el determinante de A es distinto de cero,
>>det(A)
ans =
-8
Una forma de resolver el sistema es escribir la matriz orlada (o ampliada)

>>Ab=[A b]

y hacer rref(Ab) con lo que obtenemos


1 0 0 1
0 1 0 2
0 0 1 3
es decir, la soluci
on es x = 1, y = 2, z = 3.
Otra forma de resolver el sistema consiste en despejar x,

x = A1 b,
sin m
as que escribir

>>x=inv(A)*b
x =
1
2
3

Hay otra forma de hacerlo, utilizando lo que en Matlab se denomina como divisi
on matricial a la izquierda:

>>x=A\b
x =
1
2
3

En este caso, el resultado es el mismo, pero es diferente la forma en la que trabaja el ordenador. En este segundo
caso el metodo que utiliza es el de la factorizaci
on LU, que es una modificaci on de la eliminacion gaussiana.

Ejercicio 5 Resolver el siguiente sistema utilizando los tres procedimientos anteriormente descritos y comprobar
que sale la misma soluci
on.

1 1 0 3 x1 4
2 1 1 1 x2 1
3 1 1 2 x3 = 3

1 2 3 1 x4 4

14
5. Sistemas homog
eneos

Un sistema de ecuaciones lineales



a11 x1 + a12 x2 + . . . + a1n xn = b1


a21 x1 + a22 x2 + . . . + a2n xn = b2

..


.

am1 x1 + am2 x2 + . . . + amn xn = bm

con m ecuaciones y n incognitas se llama homog eneo, si todas las constantes b1 , b2 ,...,bm son cero. Es decir, el
sistema general homogeneo esta dado por

a x + a12 x2 + . . . + a1n xn = 0
11 1


a21 x1 + a22 x2 + . . . + a2n xn = 0

..


.

am1 x1 + am2 x2 + . . . + amn xn = 0

En un sistema homogeneo, siempre existe la soluci


on trivial (o soluci
on cero):

x1 = x2 = ... = xn = 0

Por tanto, en un sistema homogeneo caben dos posibilidades:


- o bien solo existe la solucion trivial;
- o bien existe un numero infinito de soluciones, ademas de la trivial, llamadas soluciones no triviales.

Ejemplo 8 Un sistema homogeneo que tiene s


olo la soluci
on trivial:

3x1 + 4x2 + 6x3 = 0

4x1 + 5x2 + 6x3 = 0

3x1 + x2 2x3 = 0

Si escribimos la matriz ampliada


2 4 6 0
4 5 6 0 ,
3 1 2 0
y aplicamos el comando rref, obtendremos
1 0 0 0
0 1 0 0 ,
0 0 1 0
lo que quiere decir que la u
nica soluci
on es la trivial,

x1 = x2 = x3 = 0.

Ejemplo 9 Un sistema homogeneo con un n


umero infinito de soluciones:

x1 + 2x2 x3 = 0

3x1 3x2 + 2x3 = 0

x1 11x2 + 6x3 = 0

Haciendo lo mismo que en el ejemplo anterior (y poniendo el resultado en formato racional, format rational,)
obtenemos

15
1
1 0 0
9

5

,
0 1 0

9

0 0 0 0
lo que quiere decir que, son soluciones todas las ternas de n
umeros reales de la forma
 
1 5
x3 , x3 , x3 ,
9 9
para cualquier valor de x3 . En particular, para x3 = 0, obtenemos la soluci
on trivial; para x3 = 1, obtenemos la
soluci
on  
1 5
, ,1 ,
9 9
para x3 = 9, la soluci
on
(, 5, 9).

Ejemplo 10 Un sistema homogeneo con m


as inc
ognitas que ecuaciones tiene un n
umero infinito de soluciones:
Resolvemos el sistema: (
x1 + x2 x3 = 0
4x1 2x2 + 7x3 = 0
como en los ejemplos anteriores, escribiendo la matriz ampliada y haciendo rref, para obtener
5
1 0 0
6
,
11

0 1 0
6
lo cual quiere decir que son soluciones todas las ternas de n
umeros reales de la forma
 
5 11
x3 , x3 , x3 , x3 IR
6 6
Observaci on: Si en estos tres ejemplos hubieramos escrito la matriz sin ampliar y hubieramos hecho rref,
habramos visto las soluciones mas rapidamente:
En el primer ejemplo, puesto que el determinante de la matriz del sistema no era nulo, el resultado era la matriz
identidad (solucion u
nica.) En el segundo caso, aparece una fila de ceros. Y en el tercer caso, que sucede?: lo que
sucede siempre que hay un sistema homogeneo con m as inc
ognitas que ecuaciones, que tiene un n umero infinito de
soluciones.

Ejercicio 6 Resolver el sistema homogeneo




x1 2x2 + x3 + x4 = 0

3x
1 + 2x3 2x4 = 0


4x 2 x3 x4 = 0
5x1 + 3x3 x4 = 0

Ejercicio 7 Resolver el sistema



25x1 16x2 + 13x3 + 33x4 57x5 = 0

16x1 + 3x2 + x3 12x5 = 0

8x2 + 16x4 26x5 = 0

16
Comandos de MATLAB - lgebra Lineal

Instruccin Accin

A = [a11 ,a12 ,...,a1n ; a21 ,a22 ,...,a2n ; crea una matriz m n y la nombra como A.
...; am1 ,am2 ,...,amn ] Nota. Las comas se pueden substituir por espacios.
Los puntos y comas separan las filas de A.

x + y calcula la suma vectorial x + y.


c*x calcula el producto escalar cx.
norm (x) calcula la norma de x.
dot (x, y) calcula el producto punto entre x e y.
cross (x, y) calcula el producto cruz entre x y y.

eye(n) produce la matriz identidad de orden n.


ones(m, n) produce la matriz de 1s de tamao m n.
zeros(m, n) produce la matriz de 0s de tamao m n.
rand(m, n) produce una matriz aleatoria m n con entradas en (0, 1).
diag ( [a, b, c ] ) construye una matriz diagonal con entradas a, b y c.

A ( i, :) genera la fila i-sima de A.


A ( :, j ) genera la columna j-sima de A.
A ( :, [ m, n, k ] ) genera la columnas m, n y k de A.
triu ( A ) genera la parte triangular superior de A.
tril ( A ) genera la parte triangular inferior de A.
diag ( A ) genera la diagonal de A.

[ A b ] genera la matriz aumentada [ A j b] .


rref ( A ) reduce A mediante la eliminacin Gauss-Jordan.

A + B calcula la suma matricial A + B.


c*A calcula el producto escalar cA.
A*B calcula el producto matricial AB (si est definido)
A genera la transpuesta de A.
A^k calcula Ak .
inv( A ) calcula la inversa de A.
det( A ) calcula el determinante de A.

poly( A ) genera los coeficientes de p A () = an n + + a1 + a0 en el orden:


a n , . . . , a1 , a0 .

eig( A ) calcula los valores propios de A.


[ P D ] = eig( A ) calcula vectores y valores propios de A.
Nota. Si A es simtrica entonces P es ortogonal.

null( A, r ) genera una base racional (no ortogonal) para nul ( A) .


null( A ) genera una base ortogonal para nul ( A) .
[ Q R ] = qr( A ) produce la factorizacin QR de A.

[ L U ] = lu( A ) produce (de existir) la factorizacin LU de A.


[ L U P ] = lu( A ) produce la factorizacin PA = LU de A, si A no factoriza LU.

format rat Formato de nmeros racional.


format long, format short Formato de nmeros con 15 y 5 dgitos decimales, respectivamente.

Вам также может понравиться