Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
непрмо_подготовка к экзую.docx
Скачиваний:
0
Добавлен:
24.01.2026
Размер:
6.31 Mб
Скачать

20. Запрограммировать метод Левенберга-Марквардта. Показать его работу на функциях.

def H(x0, tol, df):

n = len(x0)

H0 = np.zeros((n, n))

delta = 0.1 * tol

for j in range(n):

e = np.zeros_like(x0)

e[j] = 1

g_plus = df(x0 + delta * e)

g_minus = df(x0 - delta * e)

H0[:, j] = (g_plus - g_minus) / (2 * delta)

return H0

def LM_search(f, df, x0, eps=1e-6, delta=1e-6, alpha0=0.01, v=5):

kmax = 1000

xk = x0.copy()

alpha = alpha0

coords = [xk.copy()]

neval = 0

for k in range(kmax):

gk = df(xk)

neval += 1

if norm(gk) < eps:

break

Hk = H(xk, eps, df)

neval += 2 * len(xk)

A = Hk + alpha * np.eye(len(xk))

dx = solve(A, gk)

x_new = xk - dx

if f(x_new) < f(xk):

xk = x_new

alpha = alpha / v

coords.append(xk.copy())

else:

alpha = alpha * v

if norm(dx) < delta:

break

xmin = xk

fmin = f(xmin)

return [xmin, fmin, neval, coords]

1. Какую идею реализует метод Левенберга–Марквардта?

Ответ:

Метод плавно объединяет метод Ньютона и метод градиентного спуска с помощью параметра регуляризации αₖ.

2. Как выглядит итерационная формула метода?

3. Как интерпретировать параметр αₖ?

Ответ:

αₖ определяет вклад градиентного спуска и Ньютона:

αₖ → 0 — метод Ньютона,

αₖ → ∞ — метод градиентного спуска.

4. Почему при большом αₖ метод ведёт себя как градиентный спуск?

Ответ:

Потому что матрица 𝛼𝑘𝐼​ доминирует над гессианом, и шаг становится пропорционален антиградиенту.

5. Почему при малом αₖ метод приближается к методу Ньютона?

Ответ:

Потому что вклад 𝛼𝑘𝐼 исчезает, и шаг определяется обратным гессианом.

6. Зачем в формуле используется матрица αₖI?

Ответ:

Для стабилизации обращения гессиана и обеспечения положительной определённости матрицы

7. Как выбирается начальное значение α₀?

Ответ:

α₀ берётся достаточно большим, чтобы начальные шаги были близки к градиентному спуску.

8. Как обновляется параметр αₖ?

9. Что означает параметр v?

Ответ:

Это коэффициент уменьшения регуляризации; он определяет, насколько быстро метод переходит от градиентного режима к ньютоновскому.

10. Почему параметр αₖ уменьшается только при успешном шаге?

Ответ:

Потому что уменьшение αₖ означает больший доверие к модели Ньютона, которое оправдано только при уменьшении функции.

11. Что произойдёт, если шаг оказался неудачным?

Ответ:

В классическом варианте αₖ не уменьшается, и метод продолжает работать в более осторожном режиме.

12. В чём отличие метода Левенберга–Марквардта от метода доверительных областей?

Ответ:

Метод Левенберга–Марквардта использует регуляризацию гессиана, а метод доверительных областей ограничивает длину шага.

13. Почему метод Левенберга–Марквардта устойчив к плохим начальным приближениям?

Ответ:

Потому что при большом αₖ он ведёт себя как градиентный спуск, который обладает глобальной сходимостью.

14. Является ли функция Розенброка самосогласованной?

Ответ:

Нет, функция Розенброка не является самосогласованной.

15. Как настроить первый шаг метода, если о функции ничего не известно?

Ответ:

Выбрать достаточно большое α₀, чтобы первый шаг был близок к градиентному спуску.

16. Какой главный плюс метода Левенберга–Марквардта?

Ответ:

Он сочетает устойчивость градиентного спуска и быструю сходимость метода Ньютона.

17. Какой главный недостаток метода Левенберга–Марквардта?

Ответ:

Необходимость вычисления и обращения гессиана.

18. В каких задачах метод особенно популярен?

Ответ:

В задачах нелинейных наименьших квадратов и параметрической аппроксимации.

Краткий вывод (для ответа на экзамене)

Ответ одной фразой:

Метод Левенберга–Марквардта — это регуляризованный метод Ньютона с адаптивным параметром, обеспечивающий плавный переход от градиентного спуска к быстрому ньютоновскому режиму.