- •1. Множество. Функция. Скалярные и векторные функции.
- •2. Поле, пространство. Виды пространств.
- •3. Критические точки. Стационарные точки. Лемма Ферма. Связь оптимизации и поиска корня.
- •Вопрос 6. Чем выпуклая функция упрощает задачу оптимизации?
- •Вопрос 7. Если функция имеет одинаковые минимальные значения в двух точках, можно ли говорить о двух глобальных минимумах?
- •Вопрос 8. Как критерии максимума связаны с критериями минимума?
- •4. Градиент. Матрица Гессе. Ряд Тейлора.
- •5. Квадратичная форма. Квадратичная функция. Связь знакоопределенности и собственных чисел матрицы.
- •6. Квадратичная форма. Квадратичная функция. Критерии минимума (максимума) квадратичной формы.
- •7. Условия Вульфа. Их геометрическая интерпретация. Правило Армихо.
- •8. Метод дихотомии. Запрограммировать, показать работу на функциях.
- •9. Метод трехточечного деления. Запрограммировать, показать работу на функциях.
- •10. Метод золотого сечения. Запрограммировать, показать работу на функциях.
- •11. Метод Фибоначчи. Запрограммировать, показать работу на функциях.
- •12. Метод Ньютона одномерный. Запрограммировать, показать работу на функциях.
- •13. Метод секущих. Запрограммировать, показать работу на функциях.
- •14. Метод Мюллера. Запрограммировать, показать работу на функциях.
- •15. Метод обратной параболической интерполяции. Запрограммировать, показать работу на функциях.
- •16. Запрограммировать метод градиентного спуска. Показать его работу на функциях.
- •17. Запрограммировать метод наискорейшего спуска. Показать его работу на функциях.
- •19. Запрограммировать метод Ньютона многомерный. Показать его работу на функциях.
- •20. Запрограммировать метод Левенберга-Марквардта. Показать его работу на функциях.
- •21. Запрограммировать метод Нестерова-Немировского. Показать его работу на функциях.
- •22. Запрограммировать метод Барзилая-Борвейна 1. Показать его работу на функциях.
- •23. Запрограммировать метод Барзилая-Борвейна 2. Показать его работу на функциях.
- •28. Запрограммировать метод Армихо. Показать его работу на функциях.
- •29. Запрограммировать метод dfp. Показать его работу на функциях.
- •30. Запрограммировать метод bfgs. Показать его работу на функциях.
- •31. Запрограммировать метод l- bfgs. Показать его работу на функциях.
- •32. Запрограммировать метод доверительных областей. Показать его работу на функциях.
12. Метод Ньютона одномерный. Запрограммировать, показать работу на функциях.
def nsearch(tol, x0):
x = x0
k_max = 1000
k = 0
coords = [x]
g1 = df(x)
g2 = ddf(x)
neval = 2
while (np.abs(g1) > tol) and (k < k_max):
x = x0 - (g1 / g2)
g1 = df(x)
g2 = ddf(x)
neval += 2
x0 = x
coords.append(x)
k += 1
xmin = x
fmin = f(xmin)
neval += 1
answer_ = [xmin, fmin, neval, coords]
return answer_
Метод Ньютона (метод касательных) используется для нахождения корней уравнения
f(x)=0
или для поиска стационарных точек (если применяем к f′(x)=0 для оптимизации).
Формула метода Ньютона:
Идея: В каждой итерации строится касательная к графику функции в точке xk, и берётся её пересечение с осью x — это и есть новое приближение корня.
Добавить КОП остановки, если нет
Также можно добавить КОП по количеству итераций, чтобы избежать зацикливания:
if k > k_max: break
Что будет, если убрать альфу?(хз пока, что за альфа)
Иногда в формулах Ньютона встречается множитель α (альфа):
Здесь α — коэффициент шага (0 < α ≤ 1).
Если α = 1 → классический метод Ньютона.
Если убрать или сделать α > 1 → шаг станет слишком большим, метод может перескочить через корень и расходиться.
Если уменьшить α (например, 0.5) → метод будет устойчивее, но сойдётся медленнее.
Зачем альфа: для стабилизации сходимости при "крутых" или "ломаных" функциях.
Что ищет этот метод? Как ищет?
Ищет: Корни уравнения f(x) = 0 (нули функции)
Как ищет: Итерационно: xₙ₊₁ = xₙ - f(xₙ)/f'(xₙ)
Геометрически: На каждой итерации проводит касательную в точке (xₙ, f(xₙ)) и берет точку ее пересечения с осью OX
Всегда ли ищет минимум? Если нет, что может еще найти? Ответ - точку макс, точку перегиба
Опять в сравнении с другими методами вопрос по типу, что лучше, метод Ньютона или метод секущих?
Что за точка такая, в которой df = 0? сказать про экстремум или точку перегиба - неправильно. Правильный ответ - стационарная точка
Это стационарная точка.
То есть точка, в которой производная равна нулю — но не обязательно минимум.
Чтобы понять тип точки, нужно смотреть знак второй производной.
Локальный минимум (если f''(x) > 0)
Локальный максимум (если f''(x) < 0)
Точка перегиба (если f''(x) = 0)
Какой-то вопрос под конец пары: можно ли использовать в этом методе 3-ю производную?
Теоретически — да, если строить разложение Тейлора до 3-го порядка,
но в классическом методе Ньютона она не нужна.
Метод использует только первую производную,
а при анализе сходимости — вторую.
Третья применяется лишь в расширенных (модифицированных) версиях, например, метод Халлея.
Порядок сходимости кубический (3)
Но требует вычисления f''(x) и более сложен
Можно ли найти решение нелинейного уравнения через метод ньютона, если как то рассказать и обосновать? (в пример предложил рассмотреть sinx=x, выяснили вместе, что можно только численно и вопрос повис)
Ответ: ДА!
f(x) = sin(x) - x = 0
f'(x) = cos(x) - 1
xₙ₊₁ = xₙ - (sin(xₙ) - xₙ)/(cos(xₙ) - 1)
Единственное решение: x = 0
Проблема: f'(0) = 0 ⇒ метод может работать плохо вблизи корня
В проге минус заменили на плюс, что будет? Ответ вроде как сломается (предлагал варианты: сломается, картина отразится, метод будет работать медленнее, найдет максимум)
шаг будет в противоположную сторону,
метод уйдёт от корня и расходится.
То есть программа «сломается» (корень не найдёт вообще).
Будет двигаться В ОБРАТНУЮ сторону от корня
Расходится или находит что-то случайное
Геометрически: берет пересечение с осью OX в неправильную сторону
За сколько итераций при параболе x^2 сойдется метод ньютона (говорил, что в лекции это было я хз)
Вопрос: За сколько итераций метод Ньютона сойдется для f(x) = x²?
Ответ: За 1 итерацию!
f(x) = x², f'(x) = 2x
xₙ₊₁ = xₙ - xₙ²/(2xₙ) = xₙ - xₙ/2 = xₙ/2
За одну итерацию расстояние до корня уменьшается в 2 раза
Из любого x₀ ≠ 0 сходится к 0
Какой-то такой рисунок, вопрос куда пойдет метод от разных точек (к (1), к (2))
Если функция имеет два корня или экстремума (например, около (1) и (2)), то всё зависит от начального приближения:
Если старт ближе к левому корню → сойдётся к левому;
Если ближе к правому → к правому;
Если далеко или на «перегибе» → может вообще разойтись.
Если x₀ близко к корню: сходится к ближайшему корню
Если x₀ в точке перегиба: может зациклиться или уйти далеко
Если f'(x₀) ≈ 0: следующее приближение далеко (деление на малое число)
Если начальная точка плохая: может сойтись к другому корню или расходиться
Вопрос: Каковы достаточные условия сходимости метода Ньютона? Ответ:
f(x) ∈ C²[a,b] - дважды непрерывно дифференцируема на [a,b]
f(a)·f(b) < 0 - корень существует
f'(x) ≠ 0 на [a,b] - производная не обращается в ноль
f''(x) знакопостоянна на [a,b]
Начальное приближение x₀ такое, что f(x₀)·f''(x₀) > 0
