Professional Documents
Culture Documents
FACULTAD DE INGENIERIA
INGENIERIA INDUSTRIAL
DEPARTAMENTO DE CURSO BSICO
EL CLCULO SUPERIOR
EN EL ENTORNO MATLAB
Matriz
Una matriz es un arreglo rectangular de de nmeros letras u objetos (llamados elementos) dispuestos
en m lneas horizontales (filas) y n lneas verticales (columnas) de la forma:
A mn
a11 a12
a
a22
= 21
M
M
am1 am 2
L a1n
L a2n
O
M
L amn
Se suelen representar a las matrices por letras maysculas A, B, . . ., etc. y a sus elementos de la
forma aij donde el primer subindice indica la fila y el segundo la columna a la que pertenece dicho
elemento.
Orden de una matriz. Una matriz de m filas y n columnas se dice que tiene dimensin o que es de
orden mn, y al conjunto de todas las matrices de orden mn lo denotaremos por:
A mn = aij
1 i m 1 j n
Con
Esto es:
Tipos de matrices
NOMBRE
FILA
COLUMNA
CUADRADA
DEFINICION
Se denomina, matriz fila a
aquella que consta de una
nica fila.
A mn =A n = [ aij ]
1 i n
1 j m
REPRESENTACION
A= a11 a12
a13 L a1 p
b11
b
21
B= b31
M
b p1
a11 a12
a
a
A n = 21 22
M
M
an1 an 2
L a1n
L a2n
O M
L ann
DIAGONAL
aij 0 i = j
An =
aij = 0 i j
ESCALAR
aij = K
An =
aij = 0
IDENTIDAD
aij = 1 i = j
In =
aij = 0 i j
NULA
A n = = aij = 0
i= j
i j
TRIANGULAR
SUPERIOR
aij 0 i < j
An =
aij = 0 i > j
TRIANGULAR
INFERIOR
aij 0 i > j
An =
aij = 0 i < j
i, j
0
0
a11 0
0 a
0
22 0
An =
0
0 O 0
0
0 ann
0
K 0 0 0
0 K 0 0
An =
0 0 O 0
0 0 0 K
1 0 0 0
0 1 0 0
An =
0 0 O 0
0 0 0 1
0 0 0 0
A n = M L O M
0 0 0 0
a11 a12
0 a
22
An =
0
0
0
0
L a1n
L a2n
O M
L ann
0 L 0
a11
a
0
21 a22 L
An =
M
M
O M
am1 am 2 L ann
a11 a12
0 a
22
0
An = 0
M
M
0
0
SEMEJANTES
Ggg
aij 0 i > j
An =
aij = 0 i < j
a11 a12
0 a
22
0
0
M
M
An =
0
0
0
0
M
M
0
0
M O
M
L M
0 L amm L amn
a13 L a1n
a23 L a2n
a33 L a3n
M O M
0 L ann
0 L 0
M L M
0 O 0
NOMBRE
DEFINICION
PROPIEDADES
( AT )
A mn = aij
TRANSPUESTA
A T nm = a ji
=A
( A B )T = BT AT
( kA )T = k AT
( A+B )T = AT +BT
A= A
T
A = aij
CONJUGADA
A = AT
AB = A B
A+ B = A+ B
kA=kA
Matrices especiales
INVOLUTIVA
A 2 =I
ANTISIMETRICA
AT = A
SIMETRICA
A = AT
HERMITANIA
A= A
ORTOGONAL
AT A=A AT = I
NILPOTENTE
A n =
PERIODICA
Ak+1 =A k periodo k Z+
IDEMPOTENTE
A A=A 2 =A
HEMIHERMETICA
AT = A
( )
n2
DEFINICION
PROPIEDADES
tr ( A+B ) = tr ( A ) + tr ( B )
tr ( k A ) = k tr ( A )
Traza de una
matriz.
tr ( A B ) = tr ( B A )
( )
tr A T = tr ( A )
tr ( ) = 0
tr ( I ) = n
Suma de
matrices.
A m n = aij + Bm n = bij
A m n = aij k escalar
Asociativa
Conmutativa
Elemento neutro a A+=+A=A
Elemento opuesto
A a A+ ( A ) = ( A ) +A=
Asociativa a ( bA ) = ( ab ) A = b ( aA )
(a + b) A = a A + b A
a ( A + B) = a A + a B
Elemento unitario 1 A=A
( 1) A = A
Distributiva
k A mn = k aij
Asociativa ( A B ) C=A ( B C )
Distributiva A ( B+C ) =A B+A C
Multiplicacin
de matrices.
AB =
aik bkj
k =1
No conmutativa A B B A
No cancelativa A B=A C
B=C .
Si A B=0
A=0 B=0
Si A=B AC=BC CA=CB
Elemento neutro I a In A=AIn =A
Si AB=BA matrices se llaman permutables
Operaciones elementales.
Se denominan operaciones elementales a un conjunto de tres operaciones que se realizan en una
matriz afectando a las fila o a las columnas de esta.
Definiciones importantes
Matriz escalonada. Es aquella matriz que cumple las siguientes condiciones:
Matriz cannica. Se denomina matriz escalonada cannica a una matriz escalonada con la
propiedad de que el primer elemento no nulo de una fila es un uno y adems, es el nico elemento no
nulo de su columna.
Matriz equivalente. Dos matrices se dicen equivalentes si una de ellas se deduce a partir de la otra
luego de una sucesin limitada de operaciones elementales
Matrices elementales. Son aquellas matrices que resultan de aplicarle alguna de las operaciones
elementales a la matriz identidad.
Rango de una matriz. Es el orden de la mayor submatriz que esta contenida en una matriz y es igual
al nmero de filas no nulas que resultan despus de la ltima iteracin de un conjunto de operaciones
elementales realizadas en la matriz.
Matriz inversa. Sean las matices A n = aij
det ( A ) ) es un valor
Matriz adjunta.
i+ j
Adj ( A ) =CT = c ji
Propiedades:
INVERSA
ADJUNTA
DETERMINANTE
AA = I
Adj ( I ) =I
( A B )1 =B-1 A-1
Adj A n = ( Adj ( A ) )
=0
Am = A
Adj ( k A n ) =k n -1 Adj ( A n )
AB = A B
-1
( )
-1
T
( AT ) = ( A-1 )
A -1
-1
=A
In = 1
n
( )
T
Adj ( A T ) = ( Adj ( A ) )
AT = A
k An = k n A
n -1
Adj ( A n ) = A n
A
Adj A -1 =
A
A Adj ( A ) = A I
( )
Adj ( Adj ( A n ) ) = A
A -1 =
1
A
elegida.
Si la matriz A posee una lnea (fila o
columna) de ceros, su determinante es
nulo.
Si se intercambian dos lneas del
determinante, el determinante cambia de
signo.
Si la matriz A tiene dos lneas paralelas
iguales, su determinante es nulo.
Si todos los elementos de una lnea se
multiplican por un nmero, todo el
determinante queda multiplicado por dicho
nmero.
Si la matriz A posee dos lneas paralelas
proporcionales, su determinante es nulo.
Si descomponemos una lnea (fila o
columna) en suma de dos, podemos
descomponer el determinante en suma de
dos determinantes
El determinante de una matriz no vara si a
una lnea se le suma una combinacin
lineal de lneas paralelas.
Si una lnea de la matriz A es combinacin
lineal de otras paralelas, su determinante
es nulo.
[vM,pM]=max(x)
[vm, pm]=min(x)
sum(v)
cumsum(x)
mean(V)
std(V)
prod(v)
cumprod(A)
[y,i]=sort(x)
dot(v,w)
cross(v,w)
diff(v)
P=poly(V)
linspace(a,b,n)
logspace(a,b,n)
disp(v)
En realidad estas funciones se pueden aplicar tambin a matrices, pero en ese caso se aplican por
separado a cada columna de la matriz, dando como valor de retorno un vector resultado de aplicar la
funcin a cada columna de la matriz considerada como vector. Si estas funciones se quieren aplicar a
las filas de la matriz basta aplicar dichas funciones a la matriz transpuesta.
numel(A)
transpose(A)
A
A.'
power(A,b)
power(b,A)
mpower(A,n)
Calcula la traza de A
Devuelve el orden (tamao) de la matriz A
Devuelve el numero de filas de A
Devuelve el numero de columnas de A
Devuelve el numero de filas m y columnas n de la matriz A
devuelve el numero de elementos de la matriz A.
Matriz transpuesta de A
Calcula la transpuesta (conjugada) de la matriz
Calcula la transpuesta (sin conjugar) de la matriz Si la matriz es de nmeros
reales producen el mismo resultado.
( )
aij
sprt(A)
logm(A)
sqrtm(A)
expm(A)
aij
Ff
[Q,D]=eigs(A)
roots(A)
svd(A)
[U,S,V]=svd(A)
poly(A)
H=hess(A)
[S,H]=schur(A)
[U,S]=rsf2csf(U,R)
[U,S]=cdf2rdf(U,R)
diag(v,k)
diag(A,k)
eye(m,n)
zeros(m,n)
ones(m,n)
magic(n)
rand(m,n)
randn(m,n)
En este grupo aparecen algunas de las funciones ms tiles y potentes de Matlab. No estn todas las
que soporta Matlab. La relacin completa se puede consultar a travs de la ayuda: matlab/elmat y
matlab/matfun principalmente. Se clasificaran en varios subgrupos:
OPERACIONES CON MATRICES
COMANDO
OPERACIN
COMANDO
OPERACIN
adicin o suma
transpuesta
sustraccin o resta
potenciacin
multiplicacin
divisin-izquierda
.*
divisin-derecha
./ y .\
.^
Ejemplos
Dado el vector
>> x=[4/3 1.2345e-6]
Los diferentes formatos de salida son:
FORMATO
>> format short
x = 1.3333 0.0000
SALIDA
x = 1.3333e+000 1.2345e-006
x = 1.3333 1.2345e-006
x = 1.33333333333333 0.00000123450000
x = 1.333333333333333e+000 1.234500000000000e-006
x = 1.33333333333333 1.2345e-006
x = 1.33 0.00
x = 4/3 1/810045
x = 3ff5555555555555 3eb4b6231abfd271
16 3 2 13
5 10 11 8
Para la matriz A=
9 6 7 12
4 15 14 1
>> A(end)
ans =
1
>> A(end,end)
ans =
1
>> A(end,2)
ans =
15
Desde la versin 5 de Matlab se puede usar end para indicar el ltimo elemento de una matriz,
respecto de una dimensin dada.
Submatriz formada por los ltimos 4 y los >> A(end-3:end)
ltimos 6 elementos de la matriz
ans =
13 8 12
Submatriz formada por las dos primeras >> A( [1 2] ,:)
filas y por las dos primeras columnas
ans =
16 3
5 10
>> A(end-5:end)
ans =
1
7 14 13
>> A(:,[1 2])
12
ans =
16 3
5 10
9 6
4 15
2 13
11 8
Submatriz formada por los elementos que >> C=A([1 3],[3 4])
ocupan las posiciones donde se
C=
interceptan las filas 1 y 3 y las columnas 3
2 13
y4
7 12
Aadirle filas y columnas sin mas que >> C=[A;[1 3 5 7]]
especificar el vector con los elementos C =
que se quiere aadir
16
5
9
4
1
3
10
6
15
3
2
11
7
14
5
13
8
12
1
7
Para el vector
2 13
11 8
14 1
V = ( 0.1 0.4 0.3 -0.3 -0.9 0.4 0.1 -0.5 -0.1 -0.3 0.1 0.5 ) obtener un
0.4000
0.1000
0.5000
Para obtener un vector con los Para obtener un vector con los ndices
Para obtener los elementos del
ndices de las
muestras que de las muestras que satisfacen la
vector que satisfacen la condicin:
satisfacen la condicin v > 0.3
condicin, utilizando la funcin find
>> Av(Av>0.3)
ans =
0.4000
0.4000
0.5000
ans =
2
12
>> A=find(Av>0.3)
A=
2
12
B I 43
I 43 143
7 7 6
Para la matriz A = 1 13 6
5 1 5
La matriz A
Determinante de A
>> A=[7 7 -6; 1 13 6;5 1 -5] >> det(A)
A=
ans =
7
7 -6
132
1 13
6
5
1 -5
Autovalores de A
>> eig(A)
ans =
-0.0256 + 2.9613i
-0.0256 - 2.9613i
15.0512
Valores y vectores caractersticos de A
>> [V,D]=eig(A)
V=
0.7440
-0.3077 + 0.0645i
0.5122 - 0.2919i
0.7440
-0.3077 - 0.0645i
0.5122 + 0.2919i
D=
-0.0256 + 2.9613i
0
0
-0.0256 - 2.9613i
0
0
-0.5650
-0.8050
-0.1810
Diagonal de A
Inversa de A
>> diag(A)
>> inv(A)
ans =
ans =
7
-0.5379 0.2197 0.9091
13
0.2652 -0.0379 -0.3636
-5
-0.4848 0.2121 0.6364
Ecuacin caracterstica de la matriz A
>> p=poly(A)
p=
1.0000 -15.0000 8.0000 -132.0000
Races de la ecuacin caracterstica de A
>> r=roots(p)
r=
15.0512
-0.0256 + 2.9613i
-0.0256 - 2.9613i
0
0
15.0512
1 2 3 4
1
A = : : 2
2
5 6 7 8
>> B=[pi:0.5:2*pi]
B=
3.1416 3.6416
4.1416
4.6416
5.1416
5.6416
6.1416
>> [filas,columnas]=size(A)
filas =
2
columnas =
4
>> size(B)
ans =
1 7
>> length(A)
ans =
4
>> length(B)
ans =
7
>> sum(A)
ans =
6 8 10 12
2
3
4
=
5
6
7
8
2 3 4 5
3 4 5 6
4 5 6 7
5 6 7 8
6 7 8 9
7 8 9 10
8 9 10 11
9 10 11 12
6
7
8
9
10
11
12
13
7
8
9
10
11
12
13
14
9
10
11
12
13
14
15
1
0
0
0
y B=
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
>> A=[(1:8)',(2:9)',(3:10)',(4:11)',(5:12)',(6:13)',(7:14)',(8:15)']
A=
B=
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
9
3
4
5
6
7
8
9
10
4
5
6
7
8
9
10
11
5
6
7
8
9
10
11
12
6
7
8
9
10
11
12
13
7
8
9
10
11
12
13
14
8
9
10
11
12
13
14
15
1 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 1 0 0 0 0
0 0 0 1 0 0 0
0 0 0 0 1 0 0
0 0 0 0 0 1 0
0 0 0 0 0 0 1
0 0 0 0 0 0 0
>> B([2 4 6 7],:)=A(5:6:7:8,:)
0
0
0
0
0
0
0
1
B=
1
5
0
6
0
7
8
0
0
6
0
7
0
8
9
0
0
7
1
8
0
9
10
0
0
8
0
9
0
10
11
0
0
9
0
10
1
11
12
0
0
10
0
11
0
12
13
0
0
11
0
12
0
13
14
0
0
12
0
13
0
14
15
1
Obsrvese que por haber utilizado parntesis en vez de corchetes los valores generados por el
operador (:) afectan a los ndices del vector y no al valor de sus elementos.
>> A=magic(3)
>> A(:,3:-1:1)
A=
ans =
8
3
4
1
5
9
6
7
2
6
7
2
1
5
9
8
3
4
Aunque hubiera sido ms fcil utilizar la funcin fliplr(A), que es especfica para ello. Finalmente, hay
que decir que A(:) representa un vector columna con las columnas de A una detrs de otra.
3 1 0 0 0 0
1 2 1 0 0 0
0 1 1 1 0 0
= 0 0 1 0 1 0
0 0 0 1 1 1
0 0 0 0 1 2
0 0 0 0 0 1
Definimos la matriz
>>diag(A,1)
>> A=diag(-3:3)+diag(ones(6,1),1)+diag(-1*ones(6,1),-1)
1 0
-2 1
-1 -1
0 -1
0 0
0 0
0 0
0 0
0 0
1 0
0 1
-1 1
0 -1
0 0
0
0
0
0
1
2
-1
2
Ingresar la matriz A =
1
ans =
0
0
0
0
0
1
3
5
1
6
8
4
3
8
7
5
At
Crear la matriz C =
4
0
1
>> A_trans=A
A=
A_trans =
5
1
6
8
4
3
8
7
6
5
4
1
Hallamos su transpuesta
1
5
4
6
2
1
3
5
1
6
8
4
4
8
7
1
C=
sss
diag(A,-1)
ans =
-3
-2
-1
0
1
2
3
1
1
1
1
1
1
Introducimos la matriz
>> A=[1 5 4 6;2 1 3 5;1 6 8 4;4 8 7 1]
1
2
1
4
>> diag(A)
ans =
A=
-3
-1
0
0
0
0
0
0
0
0
0
1
1
2
1
4
0
0
0
0
5
1
6
8
0
0
0
0
4
3
8
7
0
0
0
0
6
5
4
1
0
0
0
0
0
0
0
0
1
5
4
6
0
0
0
0
2
1
3
5
0
0
0
0
1
6
8
4
0
0
0
0
4
8
7
1
-1
-1
-1
-1
-1
-1
2 6
,
3 9
1 2
,
3 4
B=
5 5
5 3
C=
>> A=[2 6; 3 9]
B=[1 2; 3 4]
C=[-5 5; 5 3]
A=
B=
C=
2
3
matrices
6
9
1
3
>> D=zeros(6,6);
>> D(1:2,1:2)=A
como
>> D(3:4,3:4)=B
>> D(5:6,5:6)=C
>> F=D;
>> F(6,:)=[]
Eliminar la ultima fila y la ultima columna
(Se quiere conservar la matriz D,
entonces le asigno el mismo valor a una
nueva variable F sobre la que se realizan
los cambios)
>> F(:,6)=[]
Extraer la submatriz
M = {1, 3, 6} {2,5} de D :
2
4
-5
5
>> D=zeros(6,6)
D=
5
3
0
0
0
0
0
0
D=
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
3
0
0
0
0
F=
6
9
0
0
0
0
0
0
1
3
0
0
0
0
2
4
0
0
0
0
0
0
-5
5
0
0
0
0
5
3
2
3
0
0
0
F=
6
9
0
0
0
0
0
1
3
0
0
0
2
4
0
0
0
0
0
-5
0
0
0
0
5
2
3
0
0
0
H=
6
9
0
0
0
0
0
1
3
0
0
0
2
4
0
0
0
0
0
-5
2
3
0
0
K=
6
9
0
0
0
0
1
3
0
0
2
4
6
0
0
0
0
5
TRABAJO PRCTICO I
MANIPULACIN DE MATRICES EN MATLAB
Con una o dos instrucciones como mximo crear la matriz A, luego aplicando operaciones de
extraccin y concatenacin crear la matriz B.
2
3
4
A=
5
6
7
2 3 4 5
3 4 5 6
4 5 6 7
5 6 7 8
6 7 8 9
7 8 9 10
8 9 10 11
9 10 11 12
6
7
8
9
10
11
12
13
7
8
9
10
11
12
13
14
9
10
11
12
13
14
15
6
7
8
B=
1
2
3
5 6 1 1
4
6 5 1 1
3
, B=
Genere las matrices: A =
1
1 1 6 5
2
1 1 5 6
4
3
1
2
6 7 8 9
7 8 9 10
8 9 10 11
9 10 11 12
2 3 4 5
3 4 5 6
4 5 6 7
5 6 7 8
4
3
1
2
10
11
12
13
6
7
8
9
11
12
13
14
7
8
9
10
12
13
14
15
8
9
10
11
3
(sin introducir explcitamente
1
sus elementos), a partir de estas obtener las matrices con la menor cantidad e comandos
posibles
A 0
D = 0 Bt
0 0
1 4 0
Genere la matriz A = 0 2 3
2 3 7
0
A -1
D= 0
At
0 Bt
I 0
0 B
: 2 . Con una sola orden de Matlab crea una matriz cuya primera fila es x , su
2
segunda fila es el seno de cada elemento de x y cuya tercera fila el coseno de cada elemento
de x .
Sea x = 0 :
2 4 6 8
4 12 16 24
14 27 42 56
Construye una matriz A = aij tal que a) ai j = i j
elemento en la posicion (i, j) sea i
2
A=
3
1
2
3
4
1
2
3
4
1
3
1 0 0 0 0
C = 2
B = 0 1 0 0 0
1
3
0 0 1 0 0
4
0
1
0
0
0
0
1
0
0
0
0
0
0
D=
0
1
0
0
1
0
0
1
0
1
0
2
0
0
0
1
E=
0
1
3
0
0
0
2
0
0
0
0
3
0
0
6
11
A=
16
21
26
2
7
12
17
22
27
3
8
13
18
23
28
4
9
14
19
24
29
10
15
20
25
30
La tercera fila.
La cuarta columna.
El vector formado por los elementos que ocupan las posiciones impares de la fila 4.
El vector formado por los elementos que ocupan las posiciones pares de la columna 1.
La submatriz formada por los elementos que ocupan las posiciones donde se cruzan las filas 2
y 4 y las columnas 1, 3 y 5.
La submatriz que se obtiene al suprimir las filas 2 y 4, y las columnas 1 y 3.
La matriz que se obtiene de A al aadirle (pegarle) una fila cuyo i-esimo elemento sean la
suma de la i-esima columna de A, y una columna cuyo i-esimo elemento sea la suma de la iesima fila de A (El comando sum puede ser de ayuda).
En una sola instruccin, cambiar todos los valores de la diagonal de una matriz cuadrada a
cero.
Con una sola orden de Matlab crear un matriz 3 5 cuyo nico elemento sea el 7
Con una sola orden de Matlab crea una matriz aleatoria 4 4 de nmeros reales entre -5 y 5.
(Indicacin: Ejecuta help rand para saber como generar nmeros aleatorios en distribuciones
Uniformes, randn se emplea para distribuciones normales).
I 44
44
Con una sola instruccin genere una matriz 8x8 tal que A=
44
-I 44
Generar un vector con todos los nmeros pares desde el 1 al 101 y con una sola instruccin
eliminar todos los nmeros pares.
Genere una matriz randomica de 8x8 y de esta obtenga una submatriz constituida por las
columnas de ndice impar.
En una sola instruccin sustituir todos los valores de la diagonal de una matriz cuadrada por
1 1 1 1
,K
2 4 8 16
8 9
1 3
2 8
8 5
7
Para la matriz A =
5
2
5
7
4
Ordenar sus elementos del menor al mayor manteniendo su forma (utilizar la orden reshape)
En una sola instruccin, poner a cero todos los elementos negativos de la matriz.
En una sola instruccin, poner a cero todos los elementos de la matriz que estn entre -5 y 5.
(La conjuncin lgica es &).
De tres formas distintas (cada una en una sola instruccin), averiguar el numero de elementos
de una matriz, de forma que al final tengamos un numero.
Crear un fichero en Matlab cuyo nombre sea matriz_diagonal.m que determine la solucin de
un sistema, cuya matriz de coeficientes seatridiagonal. Nota. Solo se han de introducir los
elementos de las diagonales.
Construya un vector de 128 elementos como se muestra A = ( 0 1 0
1 0 1 L 0 1)
Genere una secuencia {1, 2, 3, . . . , 9, 10} e extraiga los nmeros mayores que 4.
Genere una secuencia aleatoria con distribucin normal y elimine los elementos negativos.
Genere una secuencia aleatoria con distribucin normal y calcule el nmero de elementos
negativos.
Genere una secuencia aleatoria con distribucin uniforme e con 1000 muestras. Obtenga el
nmero de muestras con una amplitud superior a 0.9. Calcule luego el nmero de muestras
cuyo mdulo posee una amplitud entre 0.5 y 0.7.
Las matrices cuyo elemento en la posicion (i, j) es
1
se llaman matrices de Hilbert y son
i + j 1
Construya una matriz de Hilbert de tamao 1212 sin utilizar bucles forend.
Utiliza help para saber lo que hace el comando hilb de Matlab, y compare su resultado con el
de Matlab.
Utiliza el comando rank para calcular el rango de las matrices de Hilbert de tamaos 9, 12 y
15.
Matrices Elementales
Veamos a continuacin como Matlab permite realizar operaciones elementales de filas y columnas:
Definimos una matriz
Se multiplica la segunda fila por
dos y se reemplaza en la misma
A=
5
2
9
A=
5
4
9
aux =
>> A(2,:)=2*A(2,:)
2 F2 F2
Se permutan las dos primeras
filas. Para ello se emplea un
vector intermedio (aux) que
almacenara
provisionalmente >> aux=A(1,:)
una fila mientras realizamos el >> A(1,:)=A(2,:)
intercambio
>> A(2,:)=aux
5
A=
2
2
9
A=
2
5
9
F1 F2
A la tercera fila le resta la
primera fila por 2
7
8
6
9
1
4
7
16
6
9
2
4
8
8
6
1
1
4
8
7
6
1
9
4
A=
2 8
5 7
5 -10
>> A(3,:)=A(3,:)-2*A(1,:)
2 F2 + F3 F3
1
9
2
Otra forma de realizar estas operaciones es multiplicando a izquierda por una matriz elemental
apropiada.
P=
>> P=eye(3);
0 1 0
P(1,1)=0;
1 0 0
>> P(2,2)=0;
0 0 1
F1 F2
>> P(1,2)=1;
ans =
>> P(2,1)=1;
2 8 1
>> P
5 7 9
>> P*A
9 6 4
P2 =
1 0 0
0 1 0
>> P2=eye(3);
-2
0 1
2 F2 + F3 F3
>> P2(3,1)=-2
ans =
>> P2*P*A
2 8 1
5 7 9
5 -10 2
Calcular en cada paso la matriz elemental apropiada para cada operacin es pesado y repetitivo.,
para este tipo de tareas Matlab permite construir al usuario sus propias funciones para abreviar los
clculos, esto es, empleamos el modo programado de Matlab.
El programa
function p=pij(n,i,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
8
7
6
1
9
4
2 0 4
A = 4 2 6
8 2 16
11 1
2
1
A = 2
0
3 1
2
1
2
1
2
Todos estos comandos cambian la matriz original. Si se quiere conservar la matriz original se debe
asignar otro nombre a la matriz la cual se ira modificando con las operaciones elementales.
En base a este procedimiento se pueden desarrollar diversos ejercicios aplicando Gauus Jordan
TRABAJO PRACTICO II
OPERACINES CON MATRICES Y DETERMINANTES EN MATLAB
Hallar la inversa de la matriz aplicando Operaciones elementales (Gauss Jordan):
0 1 0
1 0 0
A = 1 1 0
3 2 1
0 1 0
1 2 0
2 3 1
A = 0 1 2
1 0 4
1 2 1
0 0
0 0
0 1
0 0
1 0
1 2
0 1
4 2
1 0
0 1
1
A = 1
0
0
2
A= 0
1
1
1 0 0
0 0 0
1 0 0
0 0 1
0 0 0
2 0
3 1
1 2
0
2
4
1
0
1
2
1
1 5
0 1
4 2
1 0
0 1
1
A= 2
1
1
0
A = 0
0
0
1 0 0 0
0 0 0 0
3 0 1 0
0 0 0 1
1 1 0 0
2 1 0 0
1 2 1 0
0 1 2 1
0 0 1 1
0 0 0 1
Generar las siguientes matrices en Matlab (tal como estn escritas en la prctica) y hallar la
inversa de estas aplicando para esto los comandos de Matlab
16
22
16
22
5
A=
22
4
22
21
22
13
30
19
20
A=
7
12
8
15
26
2
8
22
22
22
4
2
8
22
22 22
4
2
3
22
22
22
10
6
2
22 22
22
14
4
5
22 22
22
1
1
1
3
4
12
59
3
1
60
20 12
2
3
1
15
15
6
11
6
1
15 15
3
54
22
32
22
10
22
14
22
2
22
10
1
A=
2
A=
5
2
0
1
1
13
7
5
7
1
7
1
7
2
37
7
35
14
3
7
3
7
5
14
10
2
1
10
2
2
10
2
2
10
2
10
2
10
2
11
7
8
7
3
7
3
7
1
7
10
2
1
10
Generar la matriz de cofactores para cada una de las siguientes matrices. Luego hallar la
inversa de las matrices por el mtodo de la adjunta:
1
A =
1
2 3 4
4 6 8
4 7 9
3 5 7
3 2
0 4
A =
1 1
1 2
0 1
5 1
2 3
3 6
1 1 4
2 0 3
A =
4 2 1
2 4 1
1
0
1
3 5 7
2 5 12 17
A=
1 5 0
3
3 4 10
1
11 2 7
2 1 2 7 1 4
A
=
3 1 2 3 1 7
2 1 1
0
A
0
0 2 0 1 1
0 1 1 0 9
=
1 0 0 6 8
0 1 0 6 4
1 1 1 1
1 1 1 1 1
Adj ( A ) =
4 1 1 1 1
1 1 1 1
1
A 0
0
0
0
A
0
1 1 4
0
A
0
2
1
0
0
3
2
1
0
3 4
1 1 1
1 1 = 1
1 1 0
0 1 0
4 1 4
3 1 2
=
2 0 1
1 0 2
7
1
4
4
3
3
0
0
4 5 1 2
4 6 0 3
=
7 8 7 1
0 10 10 13
2
4
0
0
0 0
0 2
0 0
0 0
11
1
8
7
5
6
0
Hallar el rango de la matriz primero aplicando solo el comando adecuado y luego escalonando
al mximo por operaciones elementales cada una de ellas
0
A = 0
1
4
0 1 4
0 2 5
1 3 6
3 14 32
5 6 32 77
3 2 1 2 0 1
4 1 0 3 0 2
A = 2 1 2 1 1 3
3 1 3 9 1 6
3 1 5 7 2 7
0
1
0
2
1 1 2 3
4
0
2 1 1 2
A = 1 2 1 1 3
1 5 8 5 12
3 7 8 9 13
5 5 10 15 20
0
2 1 1 2
A = 1 2 1 1 3
1 5 8 5 12
3 7 8 9 13
17 28
24 37
A = 25 7
31 12
42 13
39
50
32 18 11
19 43 55
29 55 68
5 0 1 2 0 6
4 1 0 3 0 2
A = 2 1 3 1 1 0
3 1 3 1 1 6
3 1 5 7 2 1
45
61
11
13
Generar las siguientes matrices usando solo los comandos de Matlab y calcular los siguientes
determinantes:
1 0 0 L
L 15
0 2 0 L
A = 1 2
L 15
L 15
O M
A=0 0 3 L
M O
0 0 0
1 2 3 L
15
1 2 3 ... 9
2 3 4 ... 1
2
A = 3 4 5 ... 2
M M M O M
9 1 2 ... 8
1
1
1
A=
1
M
1
1
2
1
1
M
1
1
1
3
1
M
1
1
1
1
4
M
1
L 1
L 1
L 1
L 1
O M
1 12
1
2
2
A=
2
M
2
A=
2
2
2
2
M
2
2
2
3
2
M
2
2
2
2
4
M
2
L 2
L 2
L 2
L 2
O M
2 10
2 2 0 0
0 3 3 0
0 0 4 4
0 0 0 5
M
M
M
M
0 0 0 0
1 1 1 1
L 0 0
L 0 0
L 0 0
L 0 0
O O M
0 9 9
1 1 1
7 1 5
2 4
A = 1 1 3
7 6
8 3 1 3
A =
10
12
0
0
0
2
10
12
0
0
0
2
10
12
0
0
0
2
10
12
A =
1
0
0
2
0
0
1
2
1
1
0
1
0
1
0
2 3
2 0
1 2
0 0
1 0
2 1 1 1 1
1 3 1 1 1
A = 1 1 4 1 1
1 1 1 1 1
1 1 1 1 6
0
0
0
2
10
0
1
1
A=
1
1
1
A =
1 1 1 1
0 1 1 1
1 0 1 1
1 1 0 1
1 1 1 0
1 1 1 1
1
1
1
1
1
0
1
A = 2
2
3
0 1 0
1 1 1
4 1 3
2
3 1 5
0
2
1
3
2 13 9 5 7
9 8 3 0 7
A = 3 11 7 15 5
2 7 1 11 4
0 8 1 9 3
B = Adj ( A )
10 2 0 0 0
12 10 2 0 0
Realizar las siguientes operaciones: A = 0 12 10 2 0
0 0 12 10 2
0 0 0 12 10
t
t
1
E = A + A 2( A + B)
E = ( A B 1 ) + A ( B t + 3 A 1 + B 2 )
E = ( AB ) 3 ( A1 B 1 ) + ( AB t At B )
Hallar la inversa de
o
o
3
A= 2
1
3
7
5
4
7
2
11 13
3 5 0
6 8 1
14 21 28
1 1 2
9
1 2 0 1 2
2 3 1 0 1
A = 0 1 2 4 2
1 0 4 1 0
1 2 1 0 1
1 6
2 6
B= 5 9
3 7
9 7
5 9
8 5
0 7
5 4
6 1
3
1
7
3
Eliminacin de Gauss
Factorizacin LU
Descomposicin QR
Solucin por el mtodo de eliminacin de Gauss. Es el que se utiliza con mayor frecuencia para
resolver sistemas de ecuaciones lineales. Este mtodo realiza una transformacin del sistema
cuadrado:
A X = B
A un sistema
I X =C'
X =C'
Matlab resuelve sistemas de ecuaciones lineales empleando el mtodo de eliminacin de Gauss
empleando la funcin rref y el formato de su empleo es el siguiente: x = rref([A B])
Solucin por el mtodo de factorizacin LU. Si definimos a L como la matriz triangular inferior
(lower) y a U como la matriz triangular superior (upper), entonces podemos redefinir la matriz de
coeficientes A como:
L U = A
LU X = B
Empleando Matlab es posible resolver sistemas de ecuaciones lineales empleando el mtodo LU. La
funcin se denomina lu y el formato de su empleo es el siguiente:
>>[L U] = lu(A)
>>X = L*U\B
(Para determinar x tambin puede usarse: x = inv(L*U)*B
Solucin por el mtodo de descomposicin QR. Con este mtodo, conocido como
descomposicin ortogonal triangular, tambin se pueden resolver sistemas no cuadrados (mxn). R es
la matriz triangular superior de (mxn) y Q es una matriz unitaria de (mxm) de tal forma que:
A = QR
.As el sistema A X = B queda expresado como:
QR X = B
Empleando Matlab es posible resolver sistemas lineales empleando el mtodo QR. La funcin se
denomina qr y el formato de su empleo es el siguiente:
>>[Q R]=qr(A)
>>X=Q*R\b
Matlab ofrece determinados comandos que permiten resolver ecuaciones y sistemas de ecuaciones.
Entre ellos tenemos los siguientes:
solve(ecuacin, x)
solve (ex1,ex2,...,ecn, x1,x2,...,xn)
roots(V)
X=inv(A)*b
X=linsolve(A,b)
X=A\B
X=A/B
X=rref([A,b])
Tt
Ttt
Ttt
Ejemplos:
5 x y z = 0
4 x + 3 y + 2 z = 16
Definimos las matrices
Solucion por factorizacion LU
>> [L U]=lu(A)
L=
1.0000
0
0
0.2000 0.5789 1.0000
0.8000 1.0000
0
U=
5.0000 -1.0000 -1.0000
0 3.8000 2.8000
0
0 1.5789
>> B=[0;14;16]
>> A=[5 -1 -1;1 2 3;4 3 2]
B=
A=
0
5 -1 -1
14
1 2 3
16
4 3 2
Solucion por descomposicion QR
>> [Q R]=qr(A)
Q=
-0.7715 0.5962 -0.2221
-0.1543 -0.5140 -0.8438
-0.6172 -0.6168 0.4885
R=
-6.4807 -1.3887 -0.9258
0 -3.4744 -3.3716
0
0 -1.3323
>> X=Q*R\B
X=
1.0000
2.0000
3.0000
>> X=L*U\B
X=
1.0000
2.0000
3.0000
Solucin por eliminacin Gaussiana
>> X=rref([A,B])
X=
1
0
0
X=
1
2
3
0
1
0
0
0
1
1
2
3
>> X=linsolve(A,B)
X=
1
2
3
X=
[ 1]
[ 2]
[ 3]
X=
1.0000
2.0000
3.0000
x =1
y=2
z=3
2 x + 3 y z = 5
Se obtiene la solucin
x =1
y = 4 z = 15
5 x + 2ky + kz = 2
2 x + ( k 1) y + 3kz = 5
Para un valor arbitrario del parmetro k. (La variable de entrada ser el parmetro k; la de salida, el
vector solucin del sistema. Recordar que A\b proporciona la solucin del sistema de ecuaciones con
matriz de coeficientes A y vector de trminos independientes b.)
El programa
function s=solucion(r)
A=[5, 2, r; 3, 6, 2*r-1; 2, r-1, 3*r];
b=[2; 3 ; 5];
s=A\b;
2 1 1 4
7 2 9 1
1 1 4 2
El programa
function [l,u]= LUfactorizacion(a)
format rat
n=length(a);
p=1:n;
for i=1:n-1
[maximo,r]=max(abs(a(p(i:n),i)));r=r+i-1;
p([i r])=p([r i]);
for k=i+1:n
l(p(k),i)=a(p(k),i)/a(p(i),i);
a(p(k),i:n)=a(p(k),i:n)-l(p(k),i)*a(p(i),i:n);
end
end
for i=1:n
l(p(i),i)=1;
end
u=a(p,:);
return
x + y z + w = 0
3x y + 2 z + 3w = 7
for i=1:n-1
for k=i+1:n
m=a(k,i)/a(i,i);
for j=i+1:n
a(k,j)=a(k,j)-m*a(i,j);
end
b(k)=b(k)-m*b(i);
end
end
% resolucion del sistema triangular
1
-1
2
0
-1
2
-2
3
1
3
-1
1
3 y 4 z = 0
6 x 3 y 4 z = 0
x + z = 1
X=
Inf
Inf
Inf
La grafica de los planos
>> [x,y] = meshgrid(-4:0.5:5);
>> z1 = 1-x;
>> z2= (-3-x+y)/3;
>> z3= x +y-1;
>> surf(x,y,z1)
>> hold on
>> surf(x,y,z2)
>> surf(x,y,z3)
x y = 4
X=
3.5000
-0.5000
4.0000
>> [x,z] = meshgrid(-4:0.5:5);
>> y1 = x-4;
>> y2= (-6-x+2*z)/3;
>> y3= (1-4*x+3*z)/2;
>> surf(x,z,y1)
>> hold on
>> surf(x,z,y2)
>> surf(x,z,y3)
Mostrar grficamente que tipo de solucin tiene el sistema de ecuaciones
2 x + 3 y z = 5
4 x + 4 y 3z = 3
2 x 3 y + z = 1
x + y + z = 0
2 x + 5 y + 2 z = 0
7 x + 7 y + z = 0
3x + 2 y 2 z = 3
2 x + 3 y 3z = 4
5 x 2 y + 4 z = 2
3x + 4 y + 2 z = 3
El sistema es inconsistente
no existe un punto o puntos
donde se intersectan los
cuatro planos
x 2 y + z 4w = 1
x + 3 y + 7 z + 2w = 2
x 12 y 11z 16 w = 5
9 27 3 3 12
9 27 10 1 19
1 3 5 9 6
10
1 0 1 2 7 4
1 4 21 2 2 5
3 0 3 6 7 2
11
x + 2 y + 3 z = 1
2 x + y 4 z = 9
x y + 2 z = 2
12
x + 5 y + 4z = 1
2 x + 10 y + 8 z = 3
3 x + 15 y + 12 z = 5
x + 2 y z + 3w = 0
2 x + 4 y 2 z + 6w = 0
3x + 6 y 3z + 9w = 0
x + 3 y + z + 2w = 0
x + y + 2 z + 3w = 1
3 x y z 2 w = 4
2 x + 3 y z w = 6
x + 2 y 3 z w = 4
x + 2 y + 3z 2w = 6
2 x y 2 z 3w = 8
3x + 2 y z + 2w = 4
2 x 3 y + 2 z + w = 8
13
14
15
16
2 x y + 3z + 2w = 4
3x + 3 y + 3z + 3w = 6
3x y + 3z w = 6
3x y + 3z w = 6
x + y + z + w = 0
x + 2 y + 3z + 4w = 0
x + 3 y + 6 z + 10 w = 0
x + 4 y + 10 z + 20w = 0
x + z w = 4
2 x + y z + 2w = 8
x + 2 y 2w = 5
x + 2 y + 2w = 3
3x + y + 7 z + 9w = 4
x + y + 4 z + 4w = 7
x 2 z 3w = 0
2 x y 4 z 62w = 6
2 x + y + z + w + u = 2
x + 2 y + z + w + u = 0
x + y + 3z + w + u = 3
x + y + z + 4 w + u = 2
x + y + z + w + 5u = 5
2 x + 8 y 8 z + 10w = 6
x + 2 y 3z + w = 8
3x + y + 4 z w = 10
x y + 2 z 3w = 4
x 2 y + 3z 4w = 4
y z + w = 3
x + 3 y 3w = 1
7 y + 3z + w = 3
y 3 z + 4 w = 5
x 2 y + 3 w = 4
3x + 2 y 5 z = 12
4 x + 3 y 5 z = 5
17
18
19
20
21
22
23
24
3 x + 3 y + 2 z + w = 10
8 x + 6 y + 5 z + 2 w = 21
4 x + 2 y + 3z + w = 8
3 x + 5 y + 3 z + w = 15
7 x + 4 y + 5 z + 2 w = 18
x 2 y + 3z 4w = 4
y z + w = 3
x + 3 y 3w = 1
7 y + 3 z + w = 3
x + 2 y + 5 z + 10w = 2
x 2 z 4w = 4
2 x + 4 y + 8 z + 16w = 0
y + z + 2w = 2
x + 2 y + 3z w = 1
3 x + 2 y + z w = 1
2 x + 2 y + 2 z w = 1
5 x + 5 y + 2 z = 2
2 x + 4 y + 6 z = 18
4 x + 5 y + 6 z = 24
2 x + 7 y + 12 z = 40
x 3z + 4w = 5
x 2 z + 3w = 4
3x + 2 y 5w = 12
4 x + 3 y 5 z = 5
x + y + 2 z + 3w = 1
3 x y z 2 w = 4
2 x + 3 y z w = 6
x + 2 y 3 z w = 4
2 x y + 3z + 2w = 4
3x + 3 y + 3 z + 2w = 6
3x 3 y z + 2w = 6
3x y + 3z w = 6
3 x + 3 y + 2 z + w = 10
8 x + 6 y + 5 z + 2w = 21
4 x + 2 y + 3z + w = 8
3 x + 5 y + 3 z + w = 15
7 x + 4 y + 5 z + 2w = 18
x + 4 y z + 3w = 10
2 x + 2 y 14 z = 44
x + 8 y + 4 z 8w = 3
5 x + 17 y 5 z + 13w = 44
x 2 y + z + w = 1
x 2 y + z w = 1
x y + z + 5w = 5
x + 4 y + 6 z + 4w + u = 0
x + y + 4 z + 6 w + 4u = 0
x + y + z + 4 w + 6u = 0
x + 6 y + z + w + 4u = 0
4 x + 6 y + 4 z + w + u = 0
2 x + 4 y + 8 z 2w = 4
x + y + 3z = 5
4 x + 6 y + 14 z 2w = 14
x y + z + 2 w = 11
x + 5 y + 4 z + 3w = 1
2 x y + 2 z w = 0
35 x + 3 y + 8 z + w = 1
x 2 y + 3 z 4u + 2 w = 2
x + 2 y z u = 3
x y + 2 z 3u = 10
y + 2 z + 2u + 6 w = 23
5 x + 4 y + 3 z + 3u w = 12
4 x + 2 y 2w = 0
2 x 3 z + 2w = 0
x + 3 y 4 z + 3w = 0
x + 4 z 4w = 0
x + 7 y + 4 z 3w = 13
6 x y 8 z + 5w = 0
3 x + 3 y 11z + 2 w = 13
2 x + 3 y 4 z = 1
x + 2 y 3 z = 1
x + 5 y 11z = 6
2 x + 3 y 4 z = 1
x + 2 y 3z = 0
x + 5 y 11z = 7
x y + z 2w = 0
2 x + y z + w = 1
3x + 3 y 3 z + 4w = 2
4 x + 5 y 5 z + 7 w = 3
2 x + 3 y 4 z = 1
x + 2 y 3z = 2
x + 5 y 11z = 7
12 x + 3 y 3 z = 1
4 x z = 1
1
2
5 x 3 y + 5 z = 1
7 x 3 y + 2 z = 2
2
3 x y + z + 2 w = 18
2 x 5 y + t + w = 7
x t + 2w = 8
2 y + z + t w = 10
x + y 3 z + t = 1
2 x + 4 y + 6 z = 18
4 x + 5 y + 6 z = 24
2 x + 7 y + 12 z = 40
2 x + y z = 5
x 2 y + 2 z = 5
7 x + y z = 10
x + 5 y + 4z = 1
2 x + 10 y + 8 z = 3
3 x + 15 y + 12 z = 5
2 x + y + 3z = 0
x + 2 y = 0
y + z = 0
2 x + 4 y + 6 z = 18
4 x + 5 y + 6 z = 24
2 x + 7 y + 12 z = 40
5 x y z = 0
x + 2 y + 3 z = 14
4 x + 3 y + 2 z = 16
x + 2 y + 2 z = 1
x + 3y + z = 4
x + 3y + 2z = 3
x + y + z = 0
3 x + 6 y + 5 z = 0
x + 4 y + 3z = 0
x + 2 y + 2 z = 1
x + 3y + z = 4
x + 3y + 2z = 3
6
0
0
0
:
0
0
0
0
5 0 0 0 0 0 0 0 0 x1 1
3 5 0 0 0 0 0 0 0 x2 0.78
6 3 5 0 0 0 0 0 0 x3 3.14
0 6 3 5 0 0 0 0 0 x4 7
0 0 6 3 5 0 0 0 0 x5 101
=
0 0 0 6 3 5 0 0 0 x6 0
0 0 0 0 6 3 5 0 0 x7 0
0 0 0 0 0 6 3 5 0 x8 13
0 0 0 0 0 0 6 3 5 x9 5.73
0 0 0 0 0 0 0 6 3 x10 2
3 5 7 9 x1 2
4 3 1 8 x2 2
2 1 1 7 x3 = 0
1
3
3 4 7 6 x4 2
6 8 9 1 x5 2
5 6 1 2 x1 3
1 3 5 7 x1 12
2 1 1 1 2 0
3 5 7 1 x2 0
=
=
4
2
8 1 2 1 x3 3
5 7 1 3 x3 4
5 2 3 1 x4 4
7 1 3 5 x4 16
2 4 4 0
6 12 24 4
X=C
5 Si C = 2 A (:,1) + A (:, 2 ) + 3 A (:, 3 ) 4 A (:, 4 ) resolver
5
2 2 4
9
7 8
1
1 2
2 4
3 6
1 2
2 0 x1 1
1 0 x2 4
=
12 2 x3 12
2 4 x4 3
2
0
3
2
Preparar tres funciones que efecten cada una de las tres operaciones elementales sobre una
matriz dada. Las funciones tendran los siguientes encabezamientos
function B=mprodf(A,i,lambda)
% multiplica la fila i de la matriz A por lambda
function B=msumf(A,i,j,lambda)
% suma a la fila i de la matriz A, la fila j
% multiplicada por lambda
function B=minterf(A,i,j)
% intercambia las filas i y j de la matriz A
ACLARACION
Convierte S en un vector de coeficientes de polinomio.
Realiza una suma simblica, A+B
Realiza una resta simblica, A-B
Realiza una multiplicacin simblica, A*B
Realiza una divisin simblica, A/B
Realiza una elevacin a potencia simblica, A^B
Realiza una elevacin a potencia simblica, A^n
Devuelve la inversa de A
Reemplaza el elemento (i,j) de la matriz A por el numero n
Selecciona y extrae el elemento (i,j) de la matriz A
Devuelve las dimensiones de una matriz (numero de filas y columnas)
Devuelve una matriz mxn de ceros
Devuelve una matriz identidad de orden n
Crea la matriz simblica de Hilbert de orden n a partir de su numrica
Crea la matriz simblica de Toeplitzde orden n a partir de su numrica
Crea la matriz simblica de Vandermonde de orden n a partir de su
numrica
calcula el determinante
escribe la diagonal de una matriz
exponencial matricial
calcula la matriz inversa
escribe una base del espacio nulo
rango de una matriz
matriz triangular superior.
matriz triangular inferior
Reduce a la forma echelon.
calcula autovalores y autovectores
Proporciona los autovectores y autovalores simblicamente.
calcula los valores y vectores singulares
escribe el polinomio caracterstico
Factoriza el polinomio caracterstico de A
Forma cannica de Jordan
Forma una base para el espacio de columnas A. Para calcular el rango.
Asigna una subexpresin presente en V a la variable S. reescribe la
expresin simblica con alguna sub expresin comn
Asigna el valor N a la variable a en el vector V
Simplifica la matriz A
Transforma una matriz numrica en una simblica
Devuelve una matriz numrica con exactitud de 16 dgitos
Obtiene la transpuesta de la matriz A
ccode
char
double
emlBlock
fortran
int8, int16, int32,
int64
latex
matlabFunction
poly2sym
simscapeEquation
single
sym2poly
uint8, uint16, uint32,
uint64
Back to Top
ceilRound symbolic matrix toward positive infinityconjSymbolic complex conjugateeqPerform
symbolic equality testfixRound toward zerofloorRound symbolic matrix toward negative
infinityfracSymbolic matrix elementwise fractional partsimagImaginary part of complex
numberlog10Logarithm base 10 of entries of symbolic matrixlog2Logarithm base 2 of entries of
symbolic matrixmodSymbolic matrix elementwise modulusprettyPretty-print symbolic
expressionsquoremSymbolic matrix elementwise quotient and remainderrealReal part of complex
symbolic numberroundSymbolic matrix elementwise roundsizeSymbolic matrix dimensionssortSort
symbolic vectors, matrices, or polynomialssymSymbolic numbers, variables, and objectssymsShortcut
for constructing symbolic objectssymvarFind symbolic variables in symbolic expression or matrix
Ntese que en el calculo simblico se prescinde del punto que se antepona con algunas operaciones
para indicar que dicha operacin se hacia coordenada a coordenada. Si en algn momento dudamos
si una funcin es de datos o simblica se puede recurrir a la instruccin class.
>>class(x)
ans sym
Que nos advierte de que x es una variable simblica.
El Symbolic Math Toolbox tiene otras funciones algunas de ellas dan acceso al Maple llamadas mfun
cuya lista puede verse escribiendo mfunlist.
a b c
Para la matriz A = b c a
c a b
definimos
de >> syms a b c
cualquiera de >> A = [a b c; b c a; c a b]
las dos formas
>> A=sym('[a b c;b c a;c a b]')
A=
[ a, b, c]
[ b, c, a]
[ c, a, b]
ans =
Suma
los
elementos de la >> sum(A(1,:))
primera fila
a+b+c
S=
Suma
>> S=A+A
Multiplicacin
por un escalar
>> 1/2*A
>> M=A*A
M=
Multiplicacin
[ a^2+b^2+c^2, a*b+b*c+c*a, a*b+b*c+c*a]
[ a*b+b*c+c*a, a^2+b^2+c^2, a*b+b*c+c*a]
[ a*b+b*c+c*a, a*b+b*c+c*a, a^2+b^2+c^2]
ans =
>> A^2
Rango
>> rank(A)
3
determinate =
Determinante
>> determinate=det(A)
>> transpuesta=A'
transpuesta
>> transpuesta=transpose(A)
Inversa
3*a*b*c-a^3-b^3-c^3
transpuesta =
[ conj(a), conj(b), conj(c)]
[ conj(b), conj(c), conj(a)]
[ conj(c), conj(a), conj(b)]
>> inv(A)
a
b
Para la matriz B =
c
d
b
c
a d
d
a
c b
d
c
b
a
calcular BB -1
>> syms a b c d
>> A=[a b c d;-b a -d c;-c d a -b;-d -c b a]
>> deter=det(A)
Calcula el determinante y simplifica la respuesta
2
>> Deter_2=simple(deter)
Multiplica la matriz por su inversa y asigna una >> M=A*inv(A);
3
subexpresion comn en la matriz para simplificar
>> Q=subexpr(M,'S')
Los resultados obtenidos despus de cada operacin:
A=
1
Define matriz
[ a, b, c, d]
[ -b, a, -d, c]
[ -c, d, a, -b]
[ -d, -c, b, a]
deter =
2
a^4+2*a^2*b^2+2*c^2*a^2+2*a^2*d^2+b^4+2*d^2*b^2+2*b^2*c^2+c^4+2*c^2*d^2+d^4
Deter_2 =
(a^2+b^2+c^2+d^2)^2
S=
a^2/(a^2+b^2+c^2+d^2)+b^2/(a^2+b^2+c^2+d^2)+c^2/(a^2+b^2+c^2+d^2)+d^2/(a^2+b^2+c^2+d^2)
Q=
[ S, 0, 0, 0]
[ 0, S, 0, 0]
[ 0, 0, S, 0]
[ 0, 0, 0, S]
Para la matriz A = x
1
1 1 4
4 10 1 discutir el valor de x
7 17 3
2 4 3
C=
[ 3, 1, 1,
[ x, 4, 10,
[ 1, 7, 17,
[ 2, 2, 4,
C=
[ 1, -1, -3,
[ x, 4, 10,
[ 1, 7, 17,
[ 2, 2, 4,
C=
[ 1, -1, -3,
[ x, 4, 10,
[ 0, 8, 20,
[ 0, 4, 10,
C=
[ 1, -1, -3,
[ x, 0, 0,
[ 0, 0, 0,
[ 0, 4, 10,
4]
1]
3]
3]
>> syms x
C=[3 1 1 4;x 4 10 1;1 7 17 3;2 2 4 3]
1]
1]
3]
3]
>> C(1,:)=-C(4,:)+C(1,:)
1]
1]
2]
1]
>> C(3,:)=-C(1,:)+C(3,:);
>> C(4,:)=-2*C(1,:)+C(4,:)
1]
0]
0]
1]
>> C(2,:)=-C(4,:)+C(2,:);
>> C(3,:)=-2*C(4,:)+C(3,:)
De la ultima expresin :
Si x = 0 rango 2
Si
x 0 rango 3
TRABAJO PRCTICO IV
MATRICES, DETRMINANTES Y SISTEMAS DE ECUACIONES CON MATLAB SIMBOLICO
Discutir el rango de las matrices utilizando comandos propios de Matlab:
x
1 3 1
A = 0 2 2 3
4 6 x 1
3
5
A=
11
0
3 2 1 1
7 12 9 a
3 13 11 b
2
1 0 1
A = 0 1 2
a b 0
1 10
4 2
A=
1 4
b
1
3
6
0
2
3
4 6
a 1
0 a
1 1 0 3
A = 0 0 1 2
0 a b 2
1 4 2 1
1 3
0
2
A=
a 2 a 6
b 25 8 a / 2
1 3 1 5
2 1 3 3
A=
1 1 a 2
4 3 6 10
1 4 2 1
1 3
0 2
A=
a 13 a 5
4 4
1 b
3
0
A=
1
1 1 4
4 10 x
7 17 3
2 4 3
1 2 5 0 5
A = 0 0 a 2 2
0 0 0 b 2
x 1 0 x
0 x x 1
A=
1 x x 0
x 0 1 x
1 3 0
a
2a 2 6 1
A=
2 6 a 2
1 1 3 0
1
1 2
2
4 x + 1 2 4
A = 5 2 x + 2 2
8
x
2
1
8
3
x
2
1 x + 2 ( x + 2 )2
A = 1 2 x
4x2
1 x 2
x4
2
2
A = 0
2
0
1 1 a
1 0 1
0 1 1
1 1 2
1 2 3
2 x 1
4
2
A = 5 2
1 x3
8
3
1
2
2
4
3
2
2 x + 6
2 x 1
1 x 0 1 2 3
A = 2 1 0 x 5 7
1 10 0 6 1 2
5
1 3
2 1
3
A = a 2 a + 5
11
5 1
5 8
18
1
5
1
6
2 3a + 2
8
a
0
1
Calcular la inversa de
2 4 3 1
1 1 1 3
A=
2 0 3 0
4 3 3 0
3 4 2 3
1 0 3 2
A=
2 3 3 1
3 2 4 2
0
3
A=
1
1
0
x
A=
0
2
0
3
1
x 0
0 0
0 0
0 x
4
4
4 2
0 1
0
0
x
0
0
2
2 3
3 3
A=
2 1
3 2
2 1
x2 x2
A=
1 2
2
2
x x
2
3
1 3
1 4
1 2
x 2 x 2
2
1
2
x x2
4
0
1
a
A= 2
a
3
a
a
b
A=
c
1
d
b2 c2 d 2
b3 c 3 d 3
b c d
a d c
d
a b
c b
a
1
b
1
c
1 0 1 1
0 1 1 1
A=
a b c d
1 1 1 0
1
1
1 1
1 1 + x
1
1
A=
1 1 1 + x
1
1 1 + x
1 1
0
1
A=
1
1
A=
1
1 1 1
0 a b
a 0 c
b c 0
a2 a b + c + d
b2 b a + c + d
c2 c a + b + d
d2 d a +b +c
1
1
1 2 x 2
A=
2
3
3
2
3
3
1
5
1 9 x2
2
2
x
1
A = 1
0
0
0
x
0
1
1
1 1 0
1 1 0
x 1 0 1
1 x 1
1 0 x
a
0
0
A=
0
0
0 0 0 0 b
a 0 0 b 0
0 a b 0 0
0 b a 0 0
b 0 0 a 0
0 0 0 0 a
x
y
A = y
y
y
1
1
A = 1
1
x
1 1 1
1 1
1
x 1
x 1 1
1 1 1
x
1
1
1
1
x
a
A = a
a
a
c 1
x b c 1
b x c 1
b c x 1
b c d 1
a b
y
y
y
y
x
a
4
A = 0
0
0
1 0 0 0
a 2 0 0
3 a 3 0
0 2 a 4
0 0 1 a
x
1
A = 1
0
0
0
x
0
1
1
1 0
1 1 0
x 1 0 1
1 x 1
1 0 x
1
1
1
1
1
1 + x
1 1 x
1
1
1
1
1
1 1+ y
1
1
1
A=
1
1 1 y
1
1
1
1
1
1
1 1+ z
1
1
1
1
1 1 z
1
1) A = 1
3
2
1
a 0 2
4 8 1
2 6
a 3
a 0 0
0 b 0 hallar A 20
0 0 c
0 0 0
r
Una matriz N es nilpotente si N = 0
2) A = 1
1
3 4 6
2 4 a
4 6 8
0 1 2
Para la matriz A = 0
0
1
0
1
r 1
2
3
A=I-N es inversible y ( I-N ) =I+N+N +N + L +N . Verificar para la matriz A = 0
0
0
2 3 4 5
1 2 3 4
0 1 2 3
0 0 1 2
0 0 0 1
Resolver los siguientes sistemas de ecuaciones con todos los comando disponibles en Matlab
3 x 7 y = m
x + y = n
5 x 13 y = 5m 2n
x + 2 y = m + n 1
2 x + y z = 2
(
)
4 x + a + 1 y 2 z = 4
x + ( a + 2 ) y + z = 2
x ay 2 z = 8
8 x + 3 y 2 z = a
3x + 2 y + 5 z + 4w =
5 x + 3 y + 2 z + w = k
11x + 7 y + 12 z + 9w = m
4 x + 3 y + 13 z + 11w = n
ax + by 2 z = 1
ax + ( 2b 1) y + 3 z = 1
ax + by ( b + 3) z = 2b 1
3 x 2 y + z = b
5 x 8 y + 9 z = 3
2 x + y + az = 1
ax + by + bz = a
bx + ay + bz = b
bx + by + az = a
a b c d 0
1 3 9 2 0
0 2 0
0 1 1 1 0 6 5
=
1 0 0 1 9 8 4
0 1 0
2 b 1 d 3
A=
a 2 c 1 0
1 2 0
0 1 2 11 5 a 0
3 0 0 5 7 1 b
0 1 1
A = 1
1
x
1 1 1
1 1
1
x 1
x 1 1
1 1 1
x
1
1
1
1
Aqu se describir como se deber realizar la utilizacin de cada una de estas funciones de
optimizacin:
Definicin de la Funcin Objetivo
Muchas de las funciones de optimizacin requieren que se cree una funcin de Matlab que calcule la
funcin objetivo. La funcin, en la entrada debe aceptar vectores, y retornar a la salida un escalar de
tipo doble.
Existen dos maneras de crear la funcin objetivo:
Se crea una funcin annima en la lnea de comando. Por ejemplo, si se crea una funcin
annima para x 2 , se coloca:
>> square = @ [(x)]* x.^2;
Y se llama a la funcin de optimizacin con el cuadrado del primer argumento de la entrada.
Se puede usar este mtodo si la funcin objetivo es relativamente sencilla, y no requiera ser
utilizada en una sesin futura de Matlab.
Si se escribe un M-file para la funcin, por ejemplo, para escribir la funcin x 2 como un m-file,
se debe abrir un nuevo archivo en el editor MATLAB y se deber colocar el siguiente cdigo:
function y = square(x)
y = x.^2;
NOTACION
min f x
FUNCION
tal que
Ax b, Aeq x = beq , 1 x u
Programacin Lineal
Minimizacin de restricciones
min f T x
tal que
c ( x ) 0ceq ( x ) = 0
>> linprog
>> fmincon
Ax b, Aeq x = beq , 1 x u
Comando linprog
>> linprog se utiliza para resolver problemas de programacin lineal de la forma:
Ax b
min f T x tal que
Aeq x = beq
Ib x ub
>> x = linprog(f,A,b,Aeq,beq,lb,ub)
>> x = linprog(f,A,b,Aeq,beq,lb,ub,x0)
>> x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options)
>> [x,fval] = linprog(...)
Aclaraciones secundarias:
Aeq,
beq
f
fun
lb, ub
A, b
x0
output
x
fval
exitflag
Nonlcon
La matriz Aeq y el vector beq son, respectivamente, los coeficiente de las restriccionesde
la inecuaciones lineales y al correspondiente allado derecho del vector: Aeq*x = beq
El vector de los coeficientes para el termino lineal en la ecuacin lineal f*x o la ecuacin
cuadrticax*H*x + f*x.
La funcin para optimizar. fun es una funcin manipulada por una funcin m-file o por una
funcin annima.
Limites inferior y superior de vectores (o matrices). Los argumentos son normalmente del
mismo tamao que x. Sin embargo, si lb tiene menos elementos que x, entonces solo el
primer elemento de m es el lmite inferior. Los lmites superiores en ub se pueden definir
de la misma manera. Tambin se pueden especificar variables infinitas usando inf (para
los limites superiores). Por ejemplo si lb(i) = -inf, la variable x(i) es el limite inferior.
La matriz A y el vector b son, respectivamente, los coeficientes de las restricciones
lineales de desigualdad y el vector correspondiente del lado derecho: Ax b
Punto inicial (es un escalar, vector o matriz) (para fzero, x0 tambin puede ser dos
elementos vectoriales representando un intervalo que es conocido para restricciones un
cero)
Una estructura de salida que contiene informacin acerca de los resultados de la
optimizacin.
La solucin encontrada por la optimizacin de la funcin. Si exitflag > 0, entonces x es una
solucin, si no, x es el valor de la optimizacin rutinaria cuando esta es terminada
prematuramente.
La evaluacin de la funcin objetivo fun con la solucin x
Un nmero entero que identifica la razn en la que el algoritmo de optimizacin finalizo. Se
puede utilizar el exitflag como una herramienta de programacin al escribir m-files como
calculo de optimizacin.
La funcin que calcula las inecuaciones no lineales, las restricciones de ecuaciones e
inecuaciones no lineales evitando variables globales va funciones annimas y
jerarquizadas
Comando fmincon
>> fmincon Se utiliza para encontrar el mnimo o mximo de una funcin multivariable con
restricciones no lineales (intenta encontrar un mnimo de una funcin escalar de varias variables que
comienzan en una estimacin inicial. Esto es generalmente denominado optimizacin de restricciones
no lineales o programacin no lineal)
c ( x) 0
ceq ( x ) = 0
min f ( x ) sujeta a
Ax b
Aeq x = beq
Ib x ub
Donde f , x, b, beq , Ib, ub son vectores, A y Aeq son matrices, c y ceq ( x ) son funciones que
retornan vectores, y f ( x ) es una funcin que retorna un escalar. f( x ) , c( x ) , y ceq ( x ) pueden ser
funciones no lineales (para ste caso trataremos funciones estrictamente lineales)
>> x = fmincon(fun,x0,A,b)
>> x = fmincon(fun,x0,A,b,Aeq,beq)
>> x = fmincon(fun,
x0,A,b,Aeq,beq,lb,ub,nonlcon)
>> x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
Opciones
Son las opciones de optimizacin usadas por linprog Algunas opciones se aplican a todos los
algoritmos, y otras son solamente relevantes cuando se usa el algoritmo de larga escala. Se puede
utilizar optimset para fijar o para cambiar los valores de estos campos en la estructura de opciones,
options. A continuacin se muestran las opciones de optimizacin utilizadas por las funciones linprog
y fmincon
Nombre de la opcin
Diagnostics
DiffMaxChange
DiffMinChange
Display
Descripcin
Display muestra informacin acerca de la funcin a minimizar
Mximo cambio en variables para diferencias infinitas
Mnimo cambio en variables para diferenciacin finita
Nivel del display en off el display no muestra la salida; iter. Muestra
FunValCheck
LargeScale
MaxFunEvals
MaxIter
MaxSQPIter
OutputFcn
PrecondBandWidth
RelLineSrchBnd
RelLineSrchBndDuration
Simplex
TolFun
TolPCG
Tolx
TypicalX
x1 0
x2 0
2 x1 + 4 x2 8
2 x1 5 x2 0
x1 + 5 x2 5
Para la solucin analtica, resolvemos las tres ltimas restricciones y hallamos las intersecciones,
2 x1 + 4 x2 = 8
A 10 , 9
7 7
x1 + 5 x2 = 5
2 x1 5 x2 = 0
B ( 5, 2 )
x
+
5
x
=
5
1
2
2 x1 + 4 x2 = 8
C 20 , 8
9 9
3 x1 5 x2 = 0
>> x1=0:0.1:6;
>> x2=(8-2*x1)/4;
>> x3=(5+x1)/5;
>> x4=2/5*x1;
la zona de soluciones factibles >> plot(x1,x2,x1,x3,x1,x4)
ser:
>> hold on
>> x=[10/7 5 20/9];
>> y=[9/7 2 8/9];
>> fill(x,y,'r');
>> grid on
10 9
Los valores de la funcin objetivo.
f ( A)=2 +8 =13.1
Alcanzndose el mnimo en el punto C.
7 7
Para la solucin Matlab es necesario
que todas las restricciones estn de la
forma: 0 para poder crear el archivo,
multiplicando cada restriccin por -1:
Se crea un archivo M-file definiendo la
funcin objetivo
x1 0
x2 0
f ( B )=25+82= 26
f ( C )=2
20 8
+8 =11.5
9 9
2 x1 4 x2 + 8 0
2 x1 5 x2 0
x1 + 5 x2 5
function f = objfun(x)
f = 2*x(1) +8*x(2);
function [c, ceq] = confun(x)
Se crea otro archivo M-file para definir
% restricciones de desigualdades lineales o no lineales
las restricciones del problema, las
cuales todas deben ser 0.
x1 2 x2 2 x3 0
x1 + 2 x2 + 2 x3 72
Se coloca un punto de partida y se invoca la >> x0 = [10; 10; 10];
optimizacin:
>> [x,fval] = fmincon(@myfun,x0,A,b)
Optimization terminated successfully:
Magnitude of directional derivative in search direction
less than 2*options.TolFun and maximum constraint violation
is less than options.TolCon
Active Constraints:
La respuesta es
2
x=
24.0000
12.0000
12.0000
fval =
-3.4560e+003
Solucin en Matlab
Se crea archivo para definir la funcin f = objfun1(x)
funcin objetivo:
f = -x(1)*x(2)*x(3);
%Restricciones son lineales de desigualdad
Luego, se crea otro archivo que funcin [c, ceq] = confun1(x)
definen las restricciones de la % restricciones no lineales de desigualdad
funcin objetivo
c = [-x(1)-2*x(2)-2*x(3);x(1)+2*x(2)+2*x(3)-72];
% restricciones no lineales de igualdad
ceq = [];
disp(' ')
disp(' Ejemplo 2')
Por ltimo es crea otro archivo disp('--------------------------------')
para definir las variables de disp(' Condiciones Iniciales')
entrada, a travs de las cuales x0=[10; 10; 10]
obtenemos los resultados de la disp('Matrices de Coeficientes de Ax=b')
optimizacin
A=[-1 -2 -2; 1 2 2]
b=[0; 72]
options=optimset('LargeScale','off');
[x,fval]=fmincon(@objfun1,x0,A,b,[],[],[],[],@confun1,options)
x=
24.0000
Se llama al ultimo archivo desde 12.0000
el command window y se obtiene 12.0000
la respuesta
fval =
-3.4560e+003
Al realizar el ejercicio por medio de las aplicaciones de Matlab se puede observar que la solucin
alcanzada para el valor de x que reduce al mnimo la funcin f( x ) = x1 x2 x3 es el punto
3x1 + 2 x2 30
Optimization terminated
successfully.
x=
0.0000
Introducir
la >> A = [1 -1 1;3 2 4;3 2 0];
15.0000
matriz
de >> b = [20; 42; 30];
3.0000
restricciones
>> lb = zeros(3,1);
fval =
Introducir
el
>> [x,fval,exitflag,output,lambda]=linprog(f,A,b,[],[],lb)
comando para
-78.0000
resolver
Solucin en Matlab
Se Crea el archivo para definir la function f = objfun2(x)
funcin objetivo:
f = -5*x(1)-4*x(2)-6*x(3);
funcin [c, ceq] = confun2(x)
Se crea otro archivo que define % Nonlinear inequality constraints
las restricciones de la funcin c = [x(1)-x(2)+2*x(3)-20; 3*x(1)+2*x(2)+4*x(3)-42;3*x(1)+2*x(2)-30; -x(1); -x(2); -x(3)];
% Nonlinear equality constraints
objetivo
ceq = [];
clc %Borrar la pantalla
clear %Borrar todas las variables
disp(' ') %DISP: muestra una cadena de caracteres
disp(' ejemplo 3')
Por ltimo es crea otro archivo disp('------------------------------------------------------------')
para definir las variables de disp('Condiciones iniciales')
entrada, a travs de las cuales x0 = [-1,1,1]
obtenemos los resultados de la options = optimset('LargeScale','off');
optimizacin
f = [-5; -4; -6]
A = [1 -1 1
324
3 2 0];
b = [20; 42; 30];
[x, fval] = fmincon(@objfun2,x0,A,b,[],[],[],[],@confun2,options)
>> rafa
Ejemplo 3
--------------------------------------------------------------Optimization terminated: first-order optimality measure less
than options.TolFun and maximum constraint violation is
less than options.TolCon.
Se llama al ultimo archivo desde Active inequalities (to within options.TolCon = 1e-006):
el command window y se obtiene lower upper ineqlin ineqnonlin
la respuesta
22
33
4
x=
0 15.0000 3.0000
fval =
-78.0000
Observe que la solucin alcanzada para el valor de x que reduce al mnimo la funcin
f ( x ) = 5 x1 4 x2 6 x3 , es el punto x =( 0,15,3), y el valor de la funcin evaluada en este punto es 78.
A una persona tiene 10 millones de bolivianos y le aconsejan que las invierta en dos tipos de
acciones, A y B. Las de tipo A tienen ms riesgo pero producen un beneficio del 10 %. Las de tipo B
son ms seguras, pero producen slo el 7% anual. Despus de varias deliberaciones decide invertir
como mximo 6 millones en la compra de acciones A y por lo menos, 2 millones en la compra de
acciones B. Adems, decide que lo invertido en A sea, por lo menos, igual a lo invertido en B. Cmo
deber invertir 10 millones para que le beneficio anual sea mximo?
x1 = cantidad invertida en acciones A
Sean las variables de decisin:
x2 = cantidad invertida en acciones B
10
7
x1 +
x2 = 0.1x1 + 0.07 x2
100
100
f( x ) =
x1 0, x2 0
La zona de
soluciones
factibles es:
x1 = x2
A ( 2,2 )
x2 = 2
x1 + x2 = 10
C ( 6,4 )
x1 = 6
x1 + x2 10
x1 6 x2 2
x1 x2
x1 + x2 = 10
B ( 5,5)
x1 = x2
x1 = 6
D ( 6,2 )
x2 = 2
f ( A)=0.34
f ( B )==0.85
f ( C )=0.88
f ( D )=0.74
La funcin objetivo toma los valores de:
Solucin en Matlab
Se Crea el archivo para definir la function f = objfun3(x)
funcin objetivo:
f =-(0.1*x(1) + 0.07*x(2));
function [c, ceq] = confun3(x) %Restricciones de inecuaciones lineales
Se crea otro archivo que define
c = [-x(1); -x(2); x(1)+x(2)-10; x(1)-6; -x(2)+2;-x(1)+x(2)];
las restricciones
ceq = [];% Nonlinear equality constraints
Por ltimo es crea otro archivo disp (' ')
para definir las variables de disp('Ejemplo 4')
entrada, a travs de las cuales disp('---------------------------------------------------------------')
disp('condiciones iniciales')
obtenemos los resultados de la x0=[-1,1]
optimizacin
options=optimset('LargeScale','off');
[x,fval]=fmincon(@objfun3,x0,[],[],[],[],[],[],@confun3,options)
>> rafa_3
Ejemplo 4
--------------------------------------------------------------condiciones iniciales
x0 =
-1 1
Optimization
terminated successfully:
Se llama al ultimo archivo desde
First-order optimality measure less than options.TolFun and
el command window y se obtiene maximum constraint violation is less than options.TolCon
la respuesta
Active Constraints:
3
4
x=
6 4
fval =
-0.8800
Comparando este resultado en Matlab con el obtenido de forma grfica, se comprueba que la solucin del
problema es invertir 6 millones en acciones tipo A y 4 millones en acciones tipo B. Es importante sealar que el
hecho en que la evaluacin de la funcin en el punto arrojado x= (6,4), de un resultado negativo (-), se debe a
que Matlab establece que para maximizar la funcin f se aplica una optimizacin para minimizar la funcin
f . El punto resultante donde el mximo f ocurre tambin es el punto donde el mnimo de f ocurre.
TRABAJO PRCTICO V
PROGRAMACION LINEAL CON MATLAB
Dadas las funciones objetivo y sus sistemas de restricciones. Hallar los mximos, mnimos
con Matlab:
FUNCION OBJETIVO
RESTRICCIONES
FUNCION OBJETIVO
RESTRICCIONES
f ( x1 , x2 ) = 7 + 5 x1 + 4 x2
f ( x1 , x2 ) = 8 x1 + 9 x2
f ( x1 , x2 ) = 3 + 5 x1 + 4 x2
f ( x1 , x2 ) = 9 x1 + 8 x2
x1 + 2 x2 16
x1 4, x2 2
x1 + x2 6
x1 5, x2 2
x1 + 2 x2 12
2 x1 + x2 12
f ( x1 , x2 ) = 5 + 8 x1 + 6 x2
f ( x1 , x2 ) = 9 + 8 x1 + 5 x2
f ( x1 , x2 ) = 5 + 8 x1 + 6 x2
x1 + x2 10
2 x1 + x2 2
6 x1 + 5 x2 90
10
f ( x1 , x2 ) = 5 x1 + 9 x2
x1 10, x2 2
5
f = 3x1 + x2 + 4 x3
x1 + 6 x2 + 2 x3 20
x2 + 4 x3 80
f = 2 x1 + 2 x2 + 10 x3
2 x2 + x2 + 3x3 10
x3 2
x1 2, x2 3
x1 2 x2 3
x1 2, x2 9
3x1 + 4 x2 48
3x1 x2 3
x1 2 x2 4
4 x1 + 3x2 84
2 x1 + 3x2 54
x1 18, x2 14
x1 x2 x3 3
11
f = 4 x1 2 x2 + 3x3
x2 x3 4
x1 + x3 12
x1 + x2 + x3 6
2 x1 + 4 x2 + 2 x3 13
6
x1 + x2 12
12
f = 2 x1 + x2 + 3x3
2 x1 + 3 x2 + x3 9
4 x1 + 2 x2 + x3 10
Una fbrica debe producir mas de 80Kg entre clavos y tornillos cuyos costos de produccin
respectivamente son de 3 y 4 dlares por kilogramo. Sin embargo para que los precios no se
modifiquen, no debe producirse ms de 60 Kg de clavos ni mas de 50 Kg de tornillos. Hallar su
mnimo costo
Un barman dispone de 80 litros de singan, 120 litros de refresco y 140 de agua, desea preparar do
tipos de tragos, A y B; El tipo A requiere un litro de singan, uno de agua y dos de refresco. Si le pagan
5 y 7 bolivianos por litro respectivamente. Hallar su ingreso mximo.
Una refinera de petrleo va a producir un nuevo tipo de gasolina mezclando los 4 tipos de gasolina
disponibles actualmente, que se han obtenido procesando diferentes tipos de crudo. Los crudos de
origen son cuatro y tienen distinta composicin. Para simplificar el problema se supone que cada tipo
de gasolina tiene un porcentaje distinto de los aditivos A, B y C. La tabla siguiente indica estos
porcentajes y el precio unitario para los cuatro tipos de gasolina:
Las exigencias del mercado imponen que la gasolina que se va a producir debe tener al menos el
20% del aditivo A, al menos un 30% del B y al menos un 20% del C. Adems, no puede contener ms
de un 30% de la gasolina de tipo 1 ni ms de un 40% de la gasolina de tipo 2. Determinar la forma
menos costosa de producir gasolina con estas especificaciones.