def f(theta_0, theta_1, theta_2, theta_3, theta_4):
return theta_0 + 2 * theta_1 + 3 * theta_2 + 4 * theta_3 + 5 * theta_4
theta_0 = torch.tensor(1.0, requires_grad=False)
theta_1 = torch.tensor(2.0, requires_grad=False)
theta_2 = torch.tensor(3.0, requires_grad=False)
theta_3 = torch.tensor(4.0, requires_grad=False)
theta_4 = torch.tensor(5.0, requires_grad=False)
df_dtheta_0 = numerical_derivative_single_side(lambda theta_0: f(theta_0, theta_1, theta_2, theta_3, theta_4), theta_0, 0.0001)
df_dtheta_0