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)