Single-neuron backprop
x, w, b, y = 2.0, 3.0, 1.0, 10.0
eta = 0.1
# forward pass
z = w * x + b # z = 7.0
a = max(0.0, z) # ReLU(z) = 7.0
L = (y - a) ** 2 # L = 9.0
# backward pass (chain rule: L_w = L_a * a_z * z_w)
L_a = -2 * (y - a) # -6.0
a_z = 1.0 if z > 0 else 0.0 # 1.0 (ReLU active)
z_w = x # 2.0
L_w = L_a * a_z * z_w # -12.0
w_new = w - eta * L_w # 4.2
print(w_new)