def gradientJ(x,alpha):
    n = x.size
    G = np.zeros((n,1))
    for i in range(1,n-1):
        t = x[i+1] + x[i-1] - 2*x[i]
        c = t / np.sqrt(alpha+t**2)
        G[i+1] +=  c
        G[i-1] += c
        G[i] -= 2*c
    return G
    
import numpy as np
x = np.random.randn(10,1)
alpha = 0.01
G = gradientJ(x,alpha)
print(G)
