implemented a function that will be used to provide a generic n-th order, nth-dimension error approximation function

This commit is contained in:
sm
2010-05-04 23:03:07 -06:00
parent c5adab295b
commit 3a1c13bcac
5 changed files with 118 additions and 1 deletions
Executable
+12
View File
@@ -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))
+69
View File
@@ -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)