Example #1
0
# my interpolation
linf, l2 = [], []
linf_g, l2_g = [], []

xall = []
for line in file('quasi-random/niederreiter_2d.txt').readlines():
  xall.append(map(float, line.strip().split()))
xall = numpy.array(xall) * 2 - 1
# xall = 2./3 * (xall + 0.5*xall**3)
xall *= 2

for n in n_list:
  x = xall[:n,:]
  fx, fpx = func(x)
  fz, sig = interp_nd(z, x, fx, compute_dfz=True)
  fz_g, sig_g = interp_nd(z, x, fx, None, x, fpx, compute_dfz=True)
  # no grad
  pylab.figure(figsize=(5,5))
  pylab.plot(x[:,0], x[:,1], 'ok', mfc=None, markersize=3)
  pylab.contour(z1d, z1d, fz.reshape([nz,nz]), cc)
  pylab.axis('scaled'); pylab.axis([-2.1, 2.1, -2.1, 2.1]);
  pylab.xlabel('x'); pylab.ylabel('y')
  pylab.savefig('output/%s/random_%s_1d_%03d.png' % (CASE, CASE, n))
  pylab.figure(figsize=(5,5))
  pylab.plot(x[:,0], x[:,1], 'ok', mfc=None, markersize=3)
  pylab.clabel(pylab.contour(z1d, z1d, abs(fz-fze).reshape([nz,nz]), 10))
  pylab.axis('scaled'); pylab.axis([-2.1, 2.1, -2.1, 2.1]);
  pylab.xlabel('x'); pylab.ylabel('y')
  pylab.savefig('output/%s/error_random_%s_1d_%03d.png' % (CASE, CASE, n))
  # grad
Example #2
0
pylab.savefig('output/%s/%s_exact.png' % (CASE, CASE))

# my interpolation
linf, l2 = [], []

xall = []
for line in file('quasi-random/niederreiter_2d.txt').readlines():
  xall.append(map(float, line.strip().split()))
xall = numpy.array(xall) * 2 - 1
# xall = 2./3 * (xall + 0.5*xall**3)
xall *= 2

for n in n_list:
  x = xall[:n,:]
  fx = func(x)
  fz, sig = interp_nd(z, x, fx, compute_dfz=True)
  pylab.figure(figsize=(5,5))
  pylab.plot(x[:,0], x[:,1], 'ok', mfc=None)
  pylab.contour(z1d, z1d, fz.reshape([nz,nz]), cc)
  pylab.axis('scaled'); pylab.axis([-2.1, 2.1, -2.1, 2.1]);
  pylab.savefig('output/%s/random_%s_1d_%03d.png' % (CASE, CASE, n))
  linf.append(abs(fz-fze).max())
  l2.append(sqrt(((fz-fze)**2).sum() / z.size))
  print n, linf[-1], l2[-1]

pylab.figure(figsize=(5,3))
pylab.semilogy(n_list, linf, ':ok')
pylab.semilogy(n_list, l2, '-ok')
pylab.savefig('output/%s/%s_convergence_random.png' % (CASE, CASE))

Example #3
0
n_list = range(8, 128, 8)
y = linspace(-5, 5, 250).reshape([250,1])
fye = func(y).reshape([250])

pylab.figure(figsize=(5,3))
pylab.plot(y, fye, '-k')
pylab.ylim([fye.min()-0.2*(fye.max()-fye.min()), \
            fye.max()+0.2*(fye.max()-fye.min())])
pylab.savefig('output/%s/%s_exact.png' % (CASE, CASE))

# my interpolation
linf, l2 = [], []
for n in n_list:
  x = linspace(-5, 5, n).reshape([n,1])
  fx = func(x).reshape([n])
  fy, sig = interp_nd(y, x, fx, compute_dfz=True)
  fy = fy.reshape([fy.size])
  pylab.figure(figsize=(5,3))
  pylab.plot(y, fye, '--k')
  pylab.plot(y, fy, 'k')
  # pylab.plot(y, fy + sig, ':b')
  # pylab.plot(y, fy - sig, ':b')
  # pylab.plot(y, fy_l, '-.g')
  pylab.plot(x, fx, 'ok')
  pylab.ylim([fye.min()-0.2*(fye.max()-fye.min()), \
              fye.max()+0.2*(fye.max()-fye.min())])
  pylab.savefig('output/%s/uniform_%s_nd1d_%03d.png' % (CASE, CASE, n))
  linf.append(abs(fy-fye).max())
  l2.append(sqrt(((fy-fye)**2).sum() / y.size))
  print n, linf[-1], l2[-1]