К задачам

Корень квадратного уравнения градиентным спуском

СредняяML-задачи
Лучше работает на десктопе
Градиентный спускОптимизация

Дано квадратное уравнение:

f(x)=ax2+bx+cf(x) = ax^2 + bx + c

Нужно приблизить один из корней через gradient descent по loss:

loss(x)=f(x)2loss(x) = f(x)^2

На каждом шаге обновляйте:

xxlr2f(x)(2ax+b)x \leftarrow x - lr \cdot 2f(x)(2ax + b)

Сигнатура

def gd_quadratic_root(a: float, b: float, c: float, x0: float, lr: float, steps: int) -> float:

Верните x, округленный до 6 знаков.

Примеры

Пример 1

Вход:
a = 1
b = -3
c = 2
x0 = 0
lr = 0.05
steps = 100
Выход:0.999995

Пример 2

Вход:
a = 1
b = -5
c = 6
x0 = 4
lr = 0.03
steps = 120
Выход:3.000118

Пример 3

Вход:
a = 1
b = 0
c = -4
x0 = 3
lr = 0.02
steps = 80
Выход:2
Код
Python · Ctrl/⌘ + Enter для запуска
Лимит
06:00
Консоль
Нажмите кнопку запуска или Ctrl+Enter
Корень квадратного уравнения градиентным спуском — ML-задачи задача — ML Mentor