#visualize solution g = np.linspace(1,3,200) h = np.linspace(2,3,200) x,y = np.meshgrid(g,h) obj = x*y**2-x**2-y**2 plt.imshow(((x+y>=4)&(x*y<=5)&(x>=0)&(y>=0)).astype(int), extent=(x.min(),x.max(),y.min(),y.max()),origin='lower',cmap='Greys',alpha=0.3); #plot constraints x0 = np.linspace(1,3,2000) y0 = 4-x0 # x+y>=4 y1 = 5.0/x0 # x*y<=5 plt.plot(x0,y0,':',color='orange',linewidth=2,label=r'$x+y\geq4$') plt.plot(x0,y1,'k--',linewidth=2,label=r'$xyleq5$') plt.plot([1,1],[2,3],'b-',label=r'$x\geq1$') plt.plot([3,3],[2,3],'b:',label=r'$x\leq3$') plt.plot([1,3],[2,2],'k-',label=r'$y\geq2$') plt.plot(x0, 3*np.ones_like(x0),'k:',label=r'$y\leq3$') #objective contours CS = plt.contour(x,y,obj,np.round(np.linspace(0,10,21),1)) plt.clabel(CS, inline=1, fontsize=10) plt.xlim(0.9,3.1); plt.ylim(1.9,3.1); plt.grid(); plt.tight_layout() plt.legend(loc=1); plt.xlabel('x'); plt.ylabel('y') plt.show()