← Lesson
Optimization
Joeven
Run
Reset
Python loads on first run
def f(x, y): return (x - 2) ** 2 + (y + 1) ** 2 def grad(x, y): return [2 * (x - 2), 2 * (y + 1)] def add(u, v): return [a + b for a, b in zip(u, v)] def scale(k, v): return [k * a for a in v] x, y = 0.0, 0.0 lr = 0.2 print("step x y f") for t in range(12): print(t, round(x, 3), round(y, 3), round(f(x, y), 4)) g = grad(x, y) x, y = add([x, y], scale(-lr, g)) print("true minimum at (2, -1)") x, y = 0.0, 0.0 lr_bad = 1.1 print("bad lr f values:") for t in range(6): print(round(f(x, y), 3)) g = grad(x, y) x, y = add([x, y], scale(-lr_bad, g))
Run to execute this in your browser. Nothing is sent to a server.