import nitrogen as n2
import numpy as np
import matplotlib.pyplot as plt

err = []
for N in range(10, 50, 5):
    dvr = n2.basis.SimpleDVR(-7, 7, N, basis = 'sinc')
    V = np.diag(0.5 * (dvr.grid)**2)
    T = -0.5 * dvr.D2
    H = T + V
    w,_ = np.linalg.eigh(H)
    err.append(w[0] - 0.5) # record error relative to exact energy
err = np.array(err)
plt.plot(range(10,50,5), np.abs(err))
plt.yscale('log')
plt.xlabel('# of basis functions')
plt.ylabel('|Error|')