You are on page 1of 15

Informe Laboratorio #1

Alumnos: Cristbal Valenzuela


Profesor: Hctor Ramirez
Fecha:
16 de septiembre de 2015

NDICE

ndice
1. Ejercicio 1
1.1. Ejercicio 1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Ejercicio 1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4
4
4

2. Ejercicio 2
2.1. Ejercicio 2.1
2.2. Ejercicio 2.2
2.3. Ejercicio 2.3
2.4. Ejercicio 2.4
2.5. Ejercicio 2.5
2.6. Ejercicio 2.6

.
.
.
.
.
.

4
4
5
5
5
5
6

3. Ejercicio 3
3.1. Ejercicio 3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Ejercicio 3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6
6
6

4. Ejercicio 4
4.1. Ejercicio 4.1
4.2. Ejercicio 4.2
4.3. Ejercicio 4.3
4.4. Ejercicio 4.4

6
6
7
7
7

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.

5. Ejercicio 5

6. Ejercicio 6

7. Ejercicio 7
7.1. Ejercicio 7.a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2. Ejercicio 7.b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9
9
10

8. Ejercicio 8
8.1. Ejercicio 8.a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2. Ejercicio 8.b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10
10
10

9. Ejercicio 9
9.1. Ejercicio 9.a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2. Ejercicio 9.b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3. Ejercicio 9.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11
11
12
12

10. Ejercicio 10

13

11. Ejercicio 11

14

Informe #1 - Control ptimo

NDICE

12. Ejercicio 12

Informe #1 - Control ptimo

15

1. Ejercicio 1

1.

Ejercicio 1

1.1.

Ejercicio 1.1

Se uso que, en Rn se tiene que


< u, v >= ||u|| ||v|| cos()
con el ngulo entre ambos vectores. De modo que nuestro programa calcula y entrega
< u, v >
arc cos
||u|| ||v||

dados los vectores u y v. Para ello MATLAB tiene la funcin .acos()"para el arcoseno, dot(u,v) para el producto punto y "norm(u)"para las normas correspondientes. Esta adjunto el programa como
Ejercicio1.m.

1.2.

Ejercicio 1.2

MATLAB tiene la propiedad de que si ya tenemos definidos los vectores u, v y w definidos entonces
podemos definir inmediatamente la matriz A con el siguiente cdigo:
A = [u0 v 0 w0 ]
donde la comilla significa "traspuesto". Luego para calcular el Kernell y el rando ocupamos rank(A)"funcin
de MATLAB que entrega la dimensin de la imagen de A, y "null(A)"que entrega, en una matriz, una base
otronormal del subespacio generado por el Ker(A). Sin embargo, en este caso A es de rango completo,
y por ende el Ker(A) es el subespacio trivial (Por nucleo imagen). El cdigo esta en .Ejercicio1.m"

2.

Ejercicio 2

2.1.

Ejercicio 2.1

Para la matriz AB MATLAB enva el siguiente mensaje:


1
2
3

Error using *
Inner matrix dimensions
must agree.

Lo cual es lgico pues las dimensiones de ambas matrices no calzan. Lo mismo ocurre con BA.
Para AB t se entrega lo siguiente:
1
2

ans =

Informe #1 - Control ptimo

2.2

4
5
6
7

Ejercicio 2.2

NaN
NaN
NaN
NaN

7
28
63
8

Lo que ocurre es que NaN es una abreviacin para "not a number es un objeto que aparece en operaciones mal definidas, como resta de infinitos o sumar NaN con algn nmero. De ah que es esperable
lo que entrega MATLAB.
2

2.2.

Ejercicio 2.2

La inversa de E se puede calcular usando el comando inv() de MATLAB. Y su determinante puede


ser calculado con el comando det().
Sin embargo hay un problema con E y es que su determinante es 0 (Y por ende no invertible). Sin
embargo MATLAB aun as calcula la nversa". Imagino que MATLAB ocupa algun tipo de heuristica o
clculo para encontrar el determinante de la matriz y en este caso en particular su algoritmo se cae,
o no calcula que este es exactamente 0, si no que un numero muy pequeo (del orden de 1015 ), as
que calcula una matriz que es supuestamente la inversa. Pero la susodicha matriz no lo es, pues al
postmultiplicar E por E 1 el programa entrega algo nada que ver a una matriz identidad.
La moraleja es que hay que tener cuidado con los errores computacionales.
Se puede ver el cdigo en Ejercicio2.m.

2.3.

Ejercicio 2.3

El cdigo x = E \ b entrega un vector x solucin de Ex = b. Sin embargo, E es singular de forma


que este sistema no puede tener solucin nica. La sorpresa es que MATLAB an as entrega un vector
solucin (Por la misma razn anterior) que sin embargo, al post multiplicarla por E no entrega nada
parecido a b.
Esto se chequea en Ejercicio2.m.

2.4.

Ejercicio 2.4

Es bueno notar que rcond().es un afuncin en matlab a la cual se le asigna una matriz y la funcin te
devuelve un nmero entre 0 y 1, el cual significa cuan "peligroso.es usar esta matriz para calculos como
los que vimos anteriormente (ie. que tan cerca esta la matriz numricamente de una matriz singular).
En el programa (que se puede cheuqear en el archivo Ejercicio2.m) vimos que efectivamente el valor
rcond(E) es menor que la precisin del computador (el eps) lo cual indica que es muy probable que la
matriz sea singular a pesar de los clculos que haga el computador (lo cual es el caso).

2.5.

Ejercicio 2.5

Para obtener los vecotres y los valores propios usamos eig() el cual, si se iguala a un arreglo de dos
matricesm entrega en la primera matriz, la matriz de los vectores propios y en la segunda una matriz
cuya diagonal corresponde a cada valor propio respectivo. El radio espectral se calcula sencillamente
Informe #1 - Control ptimo

2.6

Ejercicio 2.6

tomando el elemento de la matriz diagonal (ie.valor propio) cuyo mdulo sea el mayor. Nuevamente se
puede chequear esto en el archivo Ejercicio2.m.

2.6.

Ejercicio 2.6

Para obtener la parte real solo usamos la funcin real() de MATLAB la cual recibe un arreglo y
calcula la parte real del arreglo (en este caso los valores propios tenan valores reales).

3.

Ejercicio 3

3.1.

Ejercicio 3.1

Lo que hicimos para encontrar la matriz deseada fue lo siguiente:


1

D=A(:,2)*B(3,:);

A(:, 2) significa exactamente la submatriz de A que corresponde a su segunda columna. La primera


entrada restringe que indices de filas tomar (Cuando se colocan ":"significa que se toman todos los
ndices) y la segunda entrada los ndices de las columnas (Y en este caso solo el dis puesto que esa es la
columna deseada). Se puede deducir que B(3, :) corresponde a la tercera fila de la matriz B. Se puede
chequear esto en el archivo Ejercicio3.m.

3.2.

Ejercicio 3.2

Vamos en orden
El primer comando entrega la submatriz que va de la segunda fila hasta la tercera fila, y de la
primera columna hasta la tercera, de C.
El siguiente entrega la matriz formada por la primer,segunda y tercera columna de C.
C(:) entrega los elementos de la matriz C en un vector.
C([21], :) entrega la submatriz con la segunda y primera fila de C (en ese orden).
El comando find(E > 0) me entrega la posicin de los trminos de la matriz E tales que son
estrictamente positivos.

4.
4.1.

Ejercicio 4
Ejercicio 4.1

Para ver como se definieron esas funciones en MATLAB se recomienda revisar el archivo Ejercicio412.m.
En cuanto a la pregunta de si existe algo parecido en SciLab, lo mas cercano que se encuentra es
usar el comando deff que creo una funcin temporal. Su uso se ilustra en el siguiente cdigo:
Informe #1 - Control ptimo

4.2

1
2

Ejercicio 4.2

>deff('y=f(x)','y=x*x');f(2)
ans =

4.

4.2.

Ejercicio 4.2

Se adjunta el archivo Ejercicio4-12.m donde se hace lo pedido. Cabe mencionar que la mayor diferencia entre ezplot y plot es que el primero recibe la funcin y el intervalo y no hay que definir un
reticulado antes, no as plot donde necesita dos vectores como entrada y por ende hay que hacer un
reticulado antes de usarlo. Ezplot hace mas rpido el trabajo pero es inflexible, puesto que quiz yo
podra necesitar un reticulado mas fino, mientras que plot es mas engorroso.

4.3.

Ejercicio 4.3

Al realizar lo pedido el grfico resultante es el siguiente.

En rojo esta la funcin escrita como un polinomio extendido (No factorizado) y en azul el que
esta factorizado. Claramente no son el mismo grfico, y ms an, claramente el azul es mas preciso. La
intuicin es que al ser un polinomio escrito de forma .extendida.el omputador debe realizar ms clculos,
y por ende mayor cantidad de aproximaciones (debe cortar el string de nmeros en algn momento) y
por ende el clculo resulta mas impreciso. NO as en el grfico azul donde debe realizar pocos clculos
y as se equivoca menos.

4.4.

Ejercicio 4.4

Se adjunta la funcin "funcinmatriz()"la cual realiza lo pedido y guarda los ndices en dos vecotres,
uno llamado fil, para las filas, y col para las columnas.
Informe #1 - Control ptimo

5. Ejercicio 5

5.

Ejercicio 5
El cdigo usado para generar la imgen es

1
2
3
4
5
6
7
8
9
10

y=[16 22 21 8 10 13];
x=[1 2 3 4 5 6];
figure;
a=plot(x,y,'ko');
hold on
xlabel('eje x');
ylabel('eje y');
title('titulo');
b=plot(x,y,'k');
legend('data 1','data 2');

11
12
13
14

o=[0.4 0.5];
d=[0.55 0.6];
annotation('textarrow',o,d,'String','linea');

Vale la pena mencionar que annotation nos permite hacer ciertos arreglos al grfico desde el
cdigo. El trmino textarrow genera una flecha con coordenadas definidas por los vectores o y d, y
String crea un texto adjunto a la flecha.
El grfico resultante es:
Esto puede chequearse en el archivo Ejercicio5.m

6.

Ejercicio 6
El cdigo utilizado fue

1
2
3
4
5

load detail
colormap(gray)
X=[X fliplr(X)];
X=[X ; flipud(X)];
image(X);

load detail me carga un apquete de MATLAB de donde poder sacar la imagen original (Que por
default se llama X, y es en realidad una matriz).
colormap(gray) hace que la imagen se encuentre en escala de grises cuando se grafique.
En la tercera lnea redefinimos la imagen X como un arreglo del deoble de largo, donde en una
mitad se encuentra la imagen original, y en la segunda la misma imagen pero volteada horizontalmente
(flipr(A) en realidad voltea horizontalmente los valores de la matriz A). En la cuarta lnea, tomamos el
dibujo anterior y lo reflejamos hacia abajo. Para ello se redefini X como un arreglo donde la mitad
superior corresponde a X, y la mitad inferior a un volteo vertical de X (Esto se hizo usando flipud, que
voltea verticalmente los valores de una matriz).
Informe #1 - Control ptimo

7. Ejercicio 7

El resultado fue el siguiente:

Los resultados pueden ser checkeados en el archivo Ejercicio6.m

7.

Ejercicio 7

7.1.

Ejercicio 7.a

Se adjunta la imagen correspondiente

Esta se puede chequear en el archivo Ejercicio7.m con las respectivas acotaciones de este

Informe #1 - Control ptimo

7.2

Ejercicio 7.b

7.2.

10

Ejercicio 7.b

Se adjunta la iamgen correspondiente

Esto se puede chequear en el archivo Ejercicio7.m con sus respectivas acotaciones.

8.

Ejercicio 8

8.1.

Ejercicio 8.a

Para solucionar la EDO, la sintaxis es como sigue.


1

dsolve('Dx=(ab*x)*x','x(0)=x0')

Donde dsolve recibe como primer parmetro la ecuacin diferencial, y en el segundo las condiciones iniciales. Luego MATLAB entrega la solucin general, que en este caso es:
1

ans =

2
3

(a*(tanh((a*(t + (2*atanh((2*b*x0)/a 1))/a))/2) + 1))/(2*b)

Esto se puede chequear en el archivo Ejercicio8.m.

8.2.

Ejercicio 8.b

La sintaxis para esta parte es


1
2

dx=@(t,x)((0.70.01.*x).*x);
[T Y] = ode45(dx,[0 10],[10 20 50 60 70 80 100]);

Informe #1 - Control ptimo

9. Ejercicio 9

11

Donde en la primera lnea definimos (Con los parmetros correspondientes) la funcin que representa a nuestra ecuacin diferencial. Luego usamos ode45, instancia que recibe como parmetros la
funcin recin definida, el intervalo donde se mover el parmetro y n vector de condiciones iniciales.
T es un vector que guarda la discretizacin del intervalo y Y guarda las soluciones en una columna por
cada condicin inicial.
Luego, graficando todo, el programa entrega esto:

Todo se puede cheuqear en el archivo Ejercicio8.m.

9.

Ejercicio 9

9.1.

Ejercicio 9.a

Esta es la sintaxis para resolver un problema como el propuesto mediante dsolve


1

syms x(t) y(t);

2
3
4

eqn1= diff(x) == 3*x0.4*x^2 x*y;


eqn2= diff(y) == y + 2*x*y;

5
6

dsolve(eqn1,eqn2)

Pero al ingresarlo la consola enva el siguiente mensaje de error


1
2
3
4

>> Ejercicio9a
Warning: Explicit solution could not be found.
> In dsolve at 194
In Ejercicio9a at 6

Informe #1 - Control ptimo

9.2

Ejercicio 9.b

12

dsolve esta hecho para encontrar soluciones analticas explcitas, por ende es de esperar que falle
en muchos casos (Cmo este). En cambio, ode45 utiliza mtodos numricos para encontrar un grfico
que muestre la solucin.

9.2.

Ejercicio 9.b

Planteando el problema en ode45 el grfico es

El cdigo se encuentra en el archivo ej9.m

9.3.

Ejercicio 9.c

Se adjunta la imagen correspondiente

Informe #1 - Control ptimo

13

10. Ejercicio 10

10.

Ejercicio 10

El cdigo que se us para resolver el PL fue


1
2
3
4
5
6
7
8
9

f=[5 4 6]';
A=[1 1 1; 3 2 4 ; 3 2 0];
b=[20 42 30];
lb=zeros(3,1);
display('Usando LargeScale')
[x,fval,exitflag,output,lambda]=linprog(f,A,b,[],[],lb)
options=optimset('LargeScale','off');
display('Usando MediumScale')
[x,fval,exitflag,output,lambda]=linprog(f,A,b,[],[],lb,[],[],options)

Que entrega como valor ptimo (tanto con LargeScale como con MediumScale)
f = 78
y se alcanza en el mismo punto en ambos casos
xopt = (0, 15, 3)
La nica diferencial sustancial es que MediumScale necesito menos iteraciones que LargeScale (Lo
cual es ad-hoc ya que el problema es pequeo).
Informe #1 - Control ptimo

14

11. Ejercicio 11

Sobre las posibilidades que presenta linprog est:


1. Mostrar nmero de iteraciones
2. Mostrar valor de multiplicadores de Lagrange
3. Mostrar el valor de la variable exitflag, que indica si se realizaron demasiadas interaciones por
ejemplo , o si el problema es no acotado y del estilo.

11.

Ejercicio 11

Aqu hay algo importante que mecionar: Dado que encontramos que el problema planteado no era
interesante (Pues es un cubo) decidimo sgeneralizarlo un poquito (Optimizando sobre un paraleleppedo).
Por ende la funcin objetivo a maximizar es
f (a, b, c) = abc
Con a, b, c lados del paraleleppedo.
Agregando restricciones el problema de optimizacin es
maximizar
a,b,c

s.a

abc
a + 2b + 2c 108
a, b, c 0

Pero el programa fmincon resuelve solo problemas de minimizacin, por ende replanteamos el problema anterior como
minimizar
a,b,c

s.a
.

abc
a + 2b + 2c 108
a, b, c 0

La sintaxis para usar fmincon[] es muy parecida a la que se usa con linprog [] y se puede ver en el
archivo Ejercicio11.m
Corriendo el programa este muestra:
1

>> fval

2
3

fval =

1.1664e+04

5
6
7

>> x

8
9

x =

Informe #1 - Control ptimo

15

12. Ejercicio 12

10

36.0000

11

18.0000

18.0000

Es decir el volumen maximo es del orden de 11664 con un paraleleppedo de lados 18, 18 y 36.

12.

Ejercicio 12

Al plantear el problema (Que se puede ver en el archivo Ejercicio12.m MATLAB arroja


1

Local minimum possible. Constraints satisfied.

2
3
4
5

fminimax stopped because the size of the current search direction is less than
twice the default value of the step size tolerance and constraints are
satisfied to within the default value of the constraint tolerance.

6
7

<stopping criteria details>

Quiere decir que encontr un buen punto, pero no puede concluir sobre su optimalidad basicamente.
Se adjunta el archivo Ejercicio12.m y la funcin minmax.m que fueron necesarias para esto.

Informe #1 - Control ptimo

You might also like