• Domingo 16 de Junio de 2024, 22:11

Autor Tema:  Optimización Gráfica  (Leído 915 veces)

tranete

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Optimización Gráfica
« en: Domingo 8 de Marzo de 2009, 13:17 »
0
Hola, tengo el siguiente problema

Minimizar: f(x1, x2) = (x1 – 3)2 + (x2 – 2)2
Sujeto a:
–h1 (x1, x2): 2x1 + x2 = 8
–h2 (x1, x2): (x1 – 1)2 + (x2 – 4)2 = 4
–g1 (x1, x2): x1 + x2 ≤ 7
–g2 (x1, x2): x1 – 0.25x22 ≤ 0
–0 ≤ x1 ≤ 10; 0 ≤ x2 ≤ 10

Y tengo que sacar una gráfica lo más parecido posible a esta. Nno me deja poner la imagen aqui porque aun no tengo suficientes privilegios, asi que copiar y pegar el enlace en un navegador para poder verla. Debería funcionar este link, sino añadir el http y las 3 w's

mondorende.es/image/grafica.JPG

El caso es que más o menos la consigo sacar igual, excepto por la representación de las restricciones g1 y g2, las que están en rojo en el gráfico. Lo que pasa es que me salen igual pero sin las rayitas verticales que tienen. Ni si quiera se como se llaman ni que significan, supongo que tiene que ver con que sion restricciones de desigualdad, no de igualdad, pero no estoy seguro, si alguien sabe como sacar eso en un gráfico con matlab le estaria muy agradecido. El código que he escrito es el siguiente:

[X,Y] = meshgrid(0:.5:10,0:.5:10);
f=(X-3).^2+(Y-2).^2;
[Cf,hf]=contour(X,Y,f,[20,40,60,80,100],'g');
clabel(Cf,hf);
grid
hold on
h1=2*X+Y;
h2=(X-1).^2+(Y-4).^2;
[Ch1,hh1]=contour(X,Y,h1,[8,8],'b','LineWidth',2);
clabel(Ch1,hh1)
[Ch2,hh2]=contour(X,Y,h2,[4,4],'--b','LineWidth',2);
clabel(Ch2,hh2)
g1=X+Y;
g2=X-0.25*(Y.^2);
[Cg1,hg1]=contour(X,Y,g1,[0,7],'r','LineWidth',2);
clabel(Cg1,hg1)
[Cg2,hg2]=contour(X,Y,g2,[0,0],'--r','LineWidth',2);
clabel(Cg2,hg2)