import numpy as np
from numpy import linalg as la
N = 4
qmax = 5
qmin = - qmax
dq = (qmax - qmin)/(N-1)
epslion = 0.5/dq/dq
M = np.zeros((N,N))
U = np.zeros(N)
q = np.zeros(N)
for val in range(0,N):
q[val] = qmin + dq * val
U[val] = 0.5 * q[val] * q[val]
M[0][0] = 2 *epslion + U[0]
M[0][1] = - epslion
forval in range(1,N-1):
M[val][val-1] = - epslion
M[val][val] = 2 * epslion + U[val]
M[val][val+1] = - epslion
M[N-1][N-2] = - epslion
M[N-1][N-1] = 2 * epslion + U[N-1]
eg,vt = la.eigh(M)
print("eigenvalue")
print(eg)
for val in range(0,N):
print(q[val],vt.T[0,val],vt.T[1,val],vt.T[2,val],vt.T[3,val])
aW1wb3J0IG51bXB5IGFzIG5wCmZyb20gbnVtcHkgaW1wb3J0IGxpbmFsZyBhcyBsYQpOID0gNApxbWF4ID0gNQpxbWluID0gLSBxbWF4CmRxID0gKHFtYXggLSBxbWluKS8oTi0xKQplcHNsaW9uID0gMC41L2RxL2RxCk0gPSBucC56ZXJvcygoTixOKSkKVSA9IG5wLnplcm9zKE4pCnEgPSBucC56ZXJvcyhOKQpmb3IgdmFsIGluIHJhbmdlKDAsTik6CiBxW3ZhbF0gPSBxbWluICsgZHEgKiB2YWwKIFVbdmFsXSA9IDAuNSAqIHFbdmFsXSAqIHFbdmFsXQoKTVswXVswXSA9IDIgKmVwc2xpb24gKyBVWzBdCk1bMF1bMV0gPSAtIGVwc2xpb24KZm9ydmFsIGluIHJhbmdlKDEsTi0xKToKIE1bdmFsXVt2YWwtMV0gPSAtIGVwc2xpb24KIE1bdmFsXVt2YWxdID0gMiAqIGVwc2xpb24gKyBVW3ZhbF0KIE1bdmFsXVt2YWwrMV0gPSAtIGVwc2xpb24KCk1bTi0xXVtOLTJdID0gLSBlcHNsaW9uCk1bTi0xXVtOLTFdID0gMiAqIGVwc2xpb24gKyBVW04tMV0KCmVnLHZ0ID0gbGEuZWlnaChNKQpwcmludCgiZWlnZW52YWx1ZSIpCnByaW50KGVnKQpmb3IgdmFsIGluIHJhbmdlKDAsTik6CiBwcmludChxW3ZhbF0sdnQuVFswLHZhbF0sdnQuVFsxLHZhbF0sdnQuVFsyLHZhbF0sdnQuVFszLHZhbF0p