12.07.2015 Views

Examen prácticas Julio 2011

Examen prácticas Julio 2011

Examen prácticas Julio 2011

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Ingeniero IndustrialAsignatura: Optimización y Simulación<strong>Examen</strong> de Prácticas (A). Convocatoria <strong>Julio</strong> <strong>2011</strong>Nombreyapellidos:1. (1.25 ptos) Un armador de barcos tiene un barco con capacidad de hasta 700 toneladas.El carguero transporta contenedores de diferentes pesos para una determinada ruta.En la ruta actual, el carguero puede transportar algunos (no todos, pues el peso totalexcede las 700 toneladas permitidas) de los siguientes contenedores:Contenedor c 1 c 2 c 3 c 4 c 5 c 6 c 7 c 8 c 9 c 10Peso 100 155 50 112 70 80 60 118 110 55Se trata de averiguar cuáles de los anteriores 11 contenedores se han de trasnportar demodo que se maximize la carga transportada (es decir, el peso total) y de modo queésta no exceda la capacidad máxima del barco de 700 toneladas. Si introducimos lavariable(1 si el contenedor cj se cargax j =0 en caso contrarioel problema se formula matemáticamente como⎧⎪⎨⎪⎩Maximizarsujeto af (x 1 , ···,x 10 )=100x 1 +155x 2 +50x 3 + 112x 4 +70x 5 +80x 6+60x 7 +118x 8 + 110x 9 +55x 10100x 1 +155x 2 +50x 3 +112x 4 +70x 5 +80x 6 ++60x 7 + 118x 8 +110x 9 +55x 10 ≤ 700.Se trata pues de un problema de programación lineal entera (de hecho binaria). Mat-Lab disponedelafunciónbintprog para resolver este tipo de problemas. En concreto,dado el problema de programación lineal binaria⎧⎪⎨⎪⎩Minimizarsujeto af (x) =f T · xAx ≤ bA eq x = b eqla sintaxis de la función bintprog es la siguiente:[x, fval, exitflag] =bintprog(f,A,b,A eq ,b eq )con el mismo significado que para los problemas de programación lineal. Más informaciónsobre la función bintprog se puede obtener escribiendo help bintprog en laventana Command Window de MatLab.Utiliza la función bintprog para resolver el problema anterior de los contenedores.Recuérdese que Maximizar f (x) =Minimizar −f (x) .Se han de entregar tanto los resultados como los códigos en MatLab que son necesariospara resolver el problema.1


Solución. Ejecutamos el códigof = [-100,-155,-50,-112,-70,-80,-60,-118,-110,-55];A =[100,155,50,112,70,80,60,118,110,55];b = [700];[x,fval,exitflag] = bintprog(f,A,b)y se obtiene la soluciónx=1011111110fval =-700exitflag =12


2.3


3. (1.75 Ptos) Elabora un código de elementos finitos en MatLab para resolver elsiguiente problema:⎧⎪⎨⎪⎩−u 00 (x)+(1+x 2 ) u (x) =3− x 4 ,u (0) = 1u 0 (1) = −2.La solución exacta de este problema esu (x) =1− x 2 .0


10.90.80.70.60.50.40.30.20.100 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1Figure 1: Solución ejercicio 2.vector_u=(Ah\bh)’;Definimos ahora las funciones b,c y f para nuestro caso concreto:function f = b_exa11(x)f = zeros(size(x));function f = c_exa11(x)f=1+x.^2;function f = f_exa11(x)f=3-x.^4;Finalmente eejecutamos el código del siguiente modo:[x,u] = elfin_exa11(’b_exa11’,’c_exa11’,’f_exa11’,0,1,1,-2,1000)exacta = ’1-x.^2’;plot(x,u,’b’,x,eval(exacta),’r’)error = norm(abs(u-eval(exacta)),Inf)El error que se obtiene eserror = 4.3681e-007ylagráfica de la solución aparece en Figure 1.6

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!