implemented a function that will be used to provide a generic n-th order, nth-dimension error approximation function
This commit is contained in:
Executable
+12
@@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
from baker import pattern
|
||||
from baker.tools import smblog
|
||||
|
||||
smblog.info(pattern(power = 2, phicount = 3, offset = -1))
|
||||
smblog.info()
|
||||
smblog.info(pattern(power = 2, phicount = 4, offset = -1))
|
||||
smblog.info()
|
||||
smblog.info(pattern(power = 3, phicount = 3, offset = -1))
|
||||
smblog.info()
|
||||
smblog.info(pattern(power = 3, phicount = 4, offset = -1))
|
||||
Executable
+69
@@ -0,0 +1,69 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import sys
|
||||
from grid.DDD import random_grid
|
||||
from baker import get_phis, run_baker
|
||||
from baker.tools import exact_func, smberror, improved_answer, smblog
|
||||
from glob import glob
|
||||
from os import remove
|
||||
|
||||
import numpy as np
|
||||
|
||||
import pylab
|
||||
|
||||
def draw_gb(bad, good):
|
||||
pylab.xlabel('total runs')
|
||||
pylab.ylabel('count')
|
||||
pylab.grid(True)
|
||||
pylab.plot(bad)
|
||||
pylab.plot(good)
|
||||
pylab.legend(('bad', 'good'))
|
||||
|
||||
pylab.show()
|
||||
|
||||
FILE_PREFIX='/tmp/qhull-'
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
for g in glob('%s*' % FILE_PREFIX):
|
||||
remove(g)
|
||||
|
||||
try:
|
||||
total_points = int(sys.argv[1])
|
||||
random_points = int(sys.argv[2])
|
||||
total_tries = int(sys.argv[3])
|
||||
except:
|
||||
print "usage: app.py [total points in random grid] [number of random points to attempt] [total attempts]"
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
print "total points", total_points
|
||||
|
||||
|
||||
|
||||
d = {True: 0, False: 0}
|
||||
good = []
|
||||
bad = []
|
||||
for cur_try in xrange(total_tries):
|
||||
g = random_grid(total_points)
|
||||
open('%s%0.3d.txt' % (FILE_PREFIX, cur_try), 'w').write(g.for_qhull())
|
||||
|
||||
for i in xrange(random_points):
|
||||
X = [np.random.rand(), np.random.rand(), np.random.rand()]
|
||||
exact = exact_func(X)
|
||||
|
||||
try:
|
||||
try:
|
||||
answer = g.run_baker(X)
|
||||
d[improved_answer(answer, exact)] += 1
|
||||
except ValueError as e:
|
||||
smblog.error(e)
|
||||
except smberror as e:
|
||||
print e
|
||||
print d
|
||||
|
||||
print d
|
||||
bad.append(d[False])
|
||||
good.append(d[True])
|
||||
|
||||
draw_gb(bad = bad, good = good)
|
||||
Reference in New Issue
Block a user