N = 500
A = -3
B = 3
x_data = np.linspace(A,B,N)
y_data = x_data*0
start = time.time()
for k,x in enumerate(x_data):
y_data[k] = phi_star(x)
end = time.time()
print 'Computation time:',end-start,'seconds'
#print y_data
fig = plt.figure()
axes = fig.add_subplot(111)
#---------------------------------------------
min_val = y_data.min()
if np.isinf(min_val):
mx = 1
else:
inf_data = np.isinf(y_data)
finite_data = np.logical_not(inf_data)
mx = max(y_data[finite_data]) + 1
#---------------------------------------------
axes.plot(x_data[finite_data],y_data[finite_data],'bo',\
markeredgecolor='none')
axes.plot(x_data[inf_data],x_data[inf_data]*0+mx,'ro',\
markeredgecolor='none',markersize=8)
#---------------------------------------------Test_Exp
#x_data = np.linspace(0.1,3,20)
#y_data = x_data * np.log(x_data) - x_data
#axes.plot(x_data,y_data,'y+',linewidth=2)
#---------------------------------------------
x_data = np.linspace(A,B,N)
y_data = phi(x_data)
axes.plot(x_data,y_data,'g+',linewidth=2)
#---------------------------------------------
print 'Green curve ---> original function'
print 'Blue curve ---> convex conjugate'
print 'Red curve ---> +Infinity'
plt.axis('equal')
fig.savefig('test.png')
plt.close()
|
Computation time: 0.555828809738 seconds
Green curve ---> original function
Blue curve ---> convex conjugate
Red curve ---> +Infinity
Computation time: 0.555828809738 seconds
Green curve ---> original function
Blue curve ---> convex conjugate
Red curve ---> +Infinity
|