Package teamwork :: Package examples :: Package Thespian :: Module testCVXOPT
[hide private]
[frames] | no frames]

Source Code for Module teamwork.examples.Thespian.testCVXOPT

 1  from math import sqrt 
 2  from cvxopt.base import matrix 
 3  from cvxopt.blas import dot  
 4  from cvxopt.solvers import qp 
 5  ##import pylab
 
 6  
 
 7  p = matrix([[2,0],
 
 8              [0,8]],tc='d') 
 9  q = matrix([-8,-16],tc='d') 
10  G = matrix([[1,1,1],
 
11              [1,0,-1],
 
12              ],tc='d') 
13  h = matrix([5,3,2],tc='d') 
14  
 
15  ##print type(p)
 
16  
 
17  res = qp(p,q,G,h) 
18  
 
19  ##options['show_progress'] = False
 
20  # Problem data.
 
21  ##n = 4
 
22  ##S = matrix([[ 4e-2,  6e-3, -4e-3,    0.0 ], 
 
23  ##            [ 6e-3,  1e-2,  0.0,     0.0 ],
 
24  ##            [-4e-3,  0.0,   2.5e-3,  0.0 ],
 
25  ##            [ 0.0,   0.0,   0.0,     0.0 ]])
 
26  ##pbar = matrix([.12, .10, .07, .03])
 
27  ##G = matrix(0.0, (n,n))
 
28  ##G[::n+1] = -1.0
 
29  ##h = matrix(0.0, (n,1))
 
30  ##A = matrix(1.0, (1,n))
 
31  ##b = matrix(1.0)
 
32  ##
 
33  ##print qp(S, -pbar, G, h, A, b)['y']
 
34  
 
35  # Plot trade-off curve and optimal allocations.
 
36  ##pylab.figure(1, facecolor='w')
 
37  ##pylab.plot(risks, returns)
 
38  ##pylab.xlabel('standard deviation')
 
39  ##pylab.ylabel('expected return')
 
40  ##pylab.axis([0, 0.2, 0, 0.15])
 
41  ##pylab.title('Risk-return trade-off curve (fig 4.12)')
 
42  ##pylab.yticks([0.00, 0.05, 0.10, 0.15])
 
43  ##
 
44  ##pylab.figure(2, facecolor='w')
 
45  ##c1 = [ x[0] for x in portfolios ] 
 
46  ##c2 = [ x[0] + x[1] for x in portfolios ]
 
47  ##c3 = [ x[0] + x[1] + x[2] for x in portfolios ] 
 
48  ##c4 = [ x[0] + x[1] + x[2] + x[3] for x in portfolios ]
 
49  ##pylab.fill(risks + [.20], c1 + [0.0], '#F0F0F0') 
 
50  ##pylab.fill(risks[-1::-1] + risks, c2[-1::-1] + c1, '#D0D0D0') 
 
51  ##pylab.fill(risks[-1::-1] + risks, c3[-1::-1] + c2, '#F0F0F0') 
 
52  ##pylab.fill(risks[-1::-1] + risks, c4[-1::-1] + c3, '#D0D0D0') 
 
53  ##pylab.axis([0.0, 0.2, 0.0, 1.0])
 
54  ##pylab.xlabel('standard deviation')
 
55  ##pylab.ylabel('allocation')
 
56  ##pylab.text(.15,.5,'x1')
 
57  ##pylab.text(.10,.7,'x2')
 
58  ##pylab.text(.05,.7,'x3')
 
59  ##pylab.text(.01,.7,'x4')
 
60  ##pylab.title('Optimal allocations (fig 4.12)')
 
61  ##pylab.show() 
62