Professional Documents
Culture Documents
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
NDICE
12. Ejercicio 12
15
1. Ejercicio 1
1.
Ejercicio 1
1.1.
Ejercicio 1.1
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
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 =
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
2.3.
Ejercicio 2.3
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
D=A(:,2)*B(3,:);
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
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
7.
Ejercicio 7
7.1.
Ejercicio 7.a
Esta se puede chequear en el archivo Ejercicio7.m con las respectivas acotaciones de este
7.2
Ejercicio 7.b
7.2.
10
Ejercicio 7.b
8.
Ejercicio 8
8.1.
Ejercicio 8.a
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
8.2.
Ejercicio 8.b
dx=@(t,x)((0.70.01.*x).*x);
[T Y] = ode45(dx,[0 10],[10 20 50 60 70 80 100]);
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:
9.
Ejercicio 9
9.1.
Ejercicio 9.a
2
3
4
5
6
dsolve(eqn1,eqn2)
>> Ejercicio9a
Warning: Explicit solution could not be found.
> In dsolve at 194
In Ejercicio9a at 6
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
9.3.
Ejercicio 9.c
13
10. Ejercicio 10
10.
Ejercicio 10
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
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 =
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
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
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.