from IPython.display import Image fig=Image(url='http://mathopt.sakura.ne.jp/LP1.png') fig import picos as pic P=pic.Problem() x=P.add_variable('x',2) P.add_constraint(x[0]>x[1]) P.add_constraint(x[0]<=3) P.add_constraint(x[0]+x[1]<=4) objective=0.5*x[0]+x[1] P.set_objective('max',objective) print P P.solve(solver='cvxopt',verbose=False); print P.obj_value() fig2=Image(url='http://mathopt.sakura.ne.jp/LP2.png') fig2 import cvxopt as cvx A=pic.new_param('A',cvx.matrix([[-1,1,1],[1,0,1]])) b=[0,3,4] c=[0.5,1] P=pic.Problem() x=P.add_variable('x',2) objective=(c|x) P.set_objective('max',objective) P.add_constraint(A*x<=b) print P P.solve(solver='cvxopt',verbose=False); print P.obj_value() SDP1=Image(url='http://mathopt.sakura.ne.jp/SDP1.png') SDP1 SDP2=Image(url='http://mathopt.sakura.ne.jp/SDP2.png') SDP2 SDP3=Image(url='http://mathopt.sakura.ne.jp/SDP3.png') SDP3 SDP4=Image(url='http://mathopt.sakura.ne.jp/SDP4.png') SDP4 SDP5=Image(url='http://mathopt.sakura.ne.jp/SDP5.png') SDP5 A={} A[0]=pic.new_param('A0',cvx.matrix([[0,0,0],[0,3,0],[0,0,4]])) A[1]=pic.new_param('A1',cvx.matrix([[-1,0,0],[0,1,0],[0,0,1]])) A[2]=pic.new_param('A2',cvx.matrix([[1,0,0],[0,0,0],[0,0,1]])) b=[0.5,1.0] sdp=pic.Problem() z=sdp.add_variable('z',2) objective=(b|z) sdp.set_objective('max',objective) sdp.add_constraint(A[0]-z[0]*A[1]-z[1]*A[2]>>0) print sdp sdp.solve(solver='cvxopt',verbose=False); print sdp.obj_value() SOCP1=Image(url='http://mathopt.sakura.ne.jp/SOCP1.png') SOCP1 import math import random a={} a[0]=[random.randint(1,5)*10 for i in range(1,4)] a[1]=[random.randint(1,5)*10 for i in range(1,4)] a[2]=[random.randint(1,5)*10 for i in range(1,4)] b=[0.5,1] socp=pic.Problem() z=socp.add_variable('z',2) objective=(b|z) socp.set_objective('max',objective) socp.add_constraint(abs((a[0]-z[0]*a[1]-z[1]*a[2])[1:] )< (a[0]-z[0]*a[1]-z[1]*a[2])[0]) print socp socp.solve(solver='cvxopt'); print socp.obj_value()