def misfit(x, data, noise):
    Nr = data.shape[1]
    f, Q = et.forward(x)
    log_likelihood = 0
    for i in range(Nr):
        log_likelihood += np.sum((data[:, i] - f[:, i])**2.0) * dt

    log_likelihood = -0.5 * log_likelihood / (noise**2.0) / Nr
    return log_likelihood, Q
def misfit(x,l,data,noise):
    Nr=data.shape[1]
    f,Q=forward(x,l)
    log_likelihood=-0.5*np.linalg.norm(data-f)**2.0/(noise**2.0)/Nr
    return log_likelihood,Q
def generate_data(te):
    #te=th_true()
    y_true,Qt=forward(te)
    np.save('y_true_wave.npy',y_true)
    return y_true,Qt,te