Matlab - duda con optimizacion en matlab

 
Vista:

duda con optimizacion en matlab

Publicado por Camilo García (52 intervenciones) el 30/09/2011 18:07:24
Estimados:



tengo que optimizar una serie de elementos por separado y guardar las variables de cada optimización a traves de la herramienta matlab. Esto es en especifico para optimizar la sección transversal de vigas y pilares de hormigón armado. en este momento me encuentro programando el algoritmo para optimizar vigas, primero quiero optimizar una viga, para luego hacer un bucle y optimizar todas las vigas. el problema que tengo que al realizar el algoritmo me dan cosas incoherentes, se que puedo tener errores en el ingreso de datos, por lo que me gustaria ver si puedes apoyarme en la creacion del algoritmo de un elemento, para luego hacerlo para todos.

escribire a continuacion la funcion objetivo y restricciones del problema( para un elemento):

funcion objetivo:

f=(b*h*(1-ast)*0.0024+ast*0.00785)*500

restricciones:

as1+as2=Ast

0.9*as1*(4200)*(h)*(1-(0.59)*as1*(4200)/(b*h*(300)))>=Mu1

0.9*as2*(4200)*(h)*(1-(0.59)*as1*(4200)/(b*h*(300)))>=Mu2

Ast>=(30)^(1/2)/(4*4200)

Ast>=1.4*b*h/(4200)

2.5/100*b*d>=Ast

b>=min{0.3*h, 25}

mis variables del problema de optimización son:

b x(1)
d x(2)
as1 x(3)
as2 x(4)
Ast x(5)

Mu1 y Mu2 son parametros, no entran en el problema de optimizacion (son numeros fijos).

haciendo una analogia a un codigo que encontre e esta misma pagina (http://www.lawebdelprogramador.com/foros/Matlab/1256322-fmincon_matlab.html) y acondicionando a mi problema propongo lo siguiente:

function vigas
clc

x0=[10;20;2;2;4];
options=optimset('display','iter')
options.MaxFunEvals = 10000;
options.MaxIter=10000;
[x,fval]=fmincon(@Optvigas,x0,[],[],[],[],[],[],@const,options)

function [c,ceq]=const(x);
c(1)=Mu1-(0.9)*x(3)*(420)*x(2)*(1-(0.59)*x(3)*420/(x(1)*x(2)*30));
c(2)=Mu2-(0.9)*x(4)*(420)*x(2)*(1-(0.59)*x(4)*420/(x(1)*x(2)*30));
c(3)=(30)^(1/2)/(4*420)-x(5);
c(4)=1.4*x(1)*x(2)/(420)-x(5)
c(5)=x(5)-2.5/100*x(1)*x(2);
c(6)=0.3*x(2)-x(1);
c(7)=25-x(1);

ceq(1)=x(3)+x(4)-x(5);


function f=Optvigas(x);
f= (x(1)*x(2)*(1-x(5))*0.0024+x(5)*0.00785)*500

si alguien me puede echar una mano seria espectacular

saludos y gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JEREMIAS JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

duda con optimizacion en matlab

Publicado por JEREMIAS JEREMIAS CABALLERO (5917 intervenciones) el 30/09/2011 20:00:23
Hola Camilo.
Puedes resolverlo manualmente tu pregunta.?
Porque veo muchos vacios en tus pregunta.
Resuelve manualmente y pegalo al foro y te ayudo pasarlo a matlab



Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR MATLAB
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

duda con optimizacion en matlab

Publicado por camilo garcia (52 intervenciones) el 30/09/2011 22:24:14
Estimado Jose:

No comprendo cuando me dices que resuelva manualmente el problema, puedes explicarme ese paso?

Comprendo que existen vacios en mi problema, pero la verdad mi fuerte no es la programacion, por eso e recurrido a pedir ayuda en esto.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

duda con optimizacion en matlab

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 30/09/2011 22:35:57
hola Camilo.

ejemplo:
a). resolver manualmente:
5x-2y=-2
-3x+7y=-22
para resolver ese problema no necesitas una computarora.
lo puedes hacer manualmente, sin necesidad de hacer un programa en matlab
puedes ver en este video.
http://www.youtube.com/watch?v=yVRpljpObDU


b). resolver con matlab
A=[5 -2; -3 7]; b=[-2 ;-22];
x=linsolve(A,b)
x =

-2
-4

Te estoy pidiendo la parte a) en tu problema.
resolver manualmente el problema, te va a dar una mayor vision para hacer el programa



Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR MATLAB
[email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

duda con optimizacion en matlab

Publicado por camilo garcia (52 intervenciones) el 30/09/2011 22:52:37
estoy en proceso saludos.

Sobre el desarrollo "manual", que requieres que te escriba por esta via, la solucion o algo asi????

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

duda con optimizacion en matlab

Publicado por camilo garcía (52 intervenciones) el 01/10/2011 20:10:03
Estimado jose:

Realizar el problema de forma manual no es mi problema, lo manejo bien , mi problema es implementarlo en un problema de optimización, por lo cual te coloque las variables de optimizacion, funcion objetivo y restricciones ( de igualdad y desigualdad). existe la forma de que asi puedas implementarlo en maltab?

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

duda con optimizacion en matlab

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 02/10/2011 15:12:56
Hola Camilo.
Si lo manejas bien, enviame la solucion a mi correo, que haz hecho, Ya cuando hagamos el problema para poder comprobar con el resultado que arroja matlab.
Como aseguro lo que me esta arrojando matlab es la respuestas correcta, sino tengo un modelo resuelto manualmente, con que datos puedo comprobar.
Mucha veces las personas recurren a matlab, porque simplemente no concen cuestion teorica del problema.


Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR MATLAB
[email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar