Рассмотрите задачу поиска корней уравнения x^5 - 5x + 1 = 0 на отрезке [-2,2]. Сравните численные методы (метод бисекции, метод Ньютона, метод секущих): при каких начальных условиях или свойствах функции один метод предпочтительнее другого, и какие гарантии сходимости можно получить.
Рассмотрим fxxx = x^5 − 5x + 1 на отрезке −2,2−2,2−2,2. Сначала несколько фактов о функции и корнях, затем — сравнение методов и рекомендации.
1) Где корни находятся
f−2−2−2 = −21, f−1−1−1 = 5 ⇒ по теореме об промежуточном значении есть корень в −2,−1−2,−1−2,−1.f000 = 1, f111 = −3 ⇒ есть корень в 0,10,10,1.f111 = −3, f222 = 23 ⇒ есть корень в 1,21,21,2. Итого на −2,2−2,2−2,2 три вещественных простых корня простые,т.к.f′(x)=5(x4−1)=0тольковx=±1,ноf(±1)≠0простые, т.к. f'(x)=5(x^4−1) = 0 только в x = ±1, но f(±1) ≠ 0простые,т.к.f′(x)=5(x4−1)=0тольковx=±1,ноf(±1)=0.
Приближённые значения дляориентирадля ориентирадляориентира:
левый корень ≈ −1.5417,малый корень ≈ 0.200064,правый корень ≈ 1.4427.
2) Метод бисекции
Требования: непрерывность f и знание интервала a,ba,ba,b с faaa·fbbb < 0.Гарантия: всегда сходится к некоторому корню внутри интервала монотонноуменьшаетдлинуинтервалавдвоемонотонно уменьшает длину интервала вдвоемонотонноуменьшаетдлинуинтервалавдвое. Сходимость линейная: погрешность уменьшается как b−ab−ab−a/2^n.Применимо к каждому из трёх интервалов-скобок: −2,−1−2,−1−2,−1, 0,10,10,1, 1,21,21,2. Надёжный метод, идеально для гарантированного нахождения корня и получения грубой сходимости.Недостаток: медленный нуженмногоитерацийдлявысокойточностинужен много итераций для высокой точностинуженмногоитерацийдлявысокойточности.
3) Метод Ньютона
Формула: x_{n+1} = x_n − fxnx_nxn/f'xnx_nxn. Здесь f'xxx=5x4−1x^4−1x4−1.Локальная гарантия: если корень α простой f′(α)≠0f'(α) ≠ 0f′(α)=0 и начальное приближение достаточно близко к α, то сходимость квадратичная оченьбыстраяочень быстраяоченьбыстрая.Риски: требует вычисления производной; может расходиться или «прыгать» если x0 далеко от корня или f'xxx близко к нулю. Для нашей функции f'xxx=0 в x = ±1, поэтому начальные приближения, близкие к ±1, опасны: малый знаменатель => большие шаги, возможен уход к другому корню или расходимость.Практически: если взять x0 близко к найденным скобкам напримерx0=−1.54,0.2,1.44например x0=−1.54, 0.2, 1.44напримерx0=−1.54,0.2,1.44, Newton быстро сходится к соответствующим корням. Но если начать, скажем, вблизи 1 гдеf′(1)=0где f'(1)=0гдеf′(1)=0 поведение может быть плохим.
4) Метод секущих
Формула использует два начальных приближения x_{n−1}, x_n, не требует f'.Сходимость суперлинейная порядокφ≈1.618—золотоесечениепорядок φ ≈ 1.618 — золотое сечениепорядокφ≈1.618—золотоесечение, обычно быстрее бисекции, но медленнее Ньтона близко к корню.Гарантии слабее: нет строгой гарантии глобальной сходимости — метод может не сойтись, если начальные точки плохо выбраны; однако часто работает надёжнее, чем незащищённый Ньютон, если f' мал или неизвестна.Для данной задачи: секущая будет работать хорошо, если взять начальные точки внутри скобок напримердлясреднегокорнявзять0.2и0.21например для среднего корня взять 0.2 и 0.21напримердлясреднегокорнявзять0.2и0.21, но без скобки можно потерять сходимость.
5) Практические рекомендации и комбинированные подходы
Для надёжного поиска всех корней: сначала расположить скобки по знаку какмысделаликак мы сделаликакмысделали; затем: либо использовать бисекцию прямо до требуемой точности надёжно,номедленнонадёжно, но медленнонадёжно,номедленно;либо быстро: сделать несколько несколькоитерацийнесколько итерацийнесколькоитераций шагов бисекции, чтобы получить хороший начальный интервал, затем переключиться на Ньютон safeguardedNewtonsafeguarded NewtonsafeguardedNewton или на метод секущих для ускорения. Такой подход сочетает гарантию и скорость.Лучший практический выбор — готовые «safeguarded» алгоритмы напримерBrent’smethod/ZEROINнапример Brent’s method / ZEROINнапримерBrent’smethod/ZEROIN, которые комбинируют брикетирование, секущую и интерполяцию: обычно быстро и устойчиво.Если производная легко и дешёво вычисляется какуполиномакак у полиномакакуполинома, Ньютон с хорошим стартом — предпочтителен из-за квадратичной сходимости. Но избегайте стартов близко к x = ±1 гдеf′≈0где f' ≈ 0гдеf′≈0.Если производная трудна или ненадёжна, секущая — разумный компромисс; если нужна абсолютная надёжность — бисекция.
6) Краткое сравнение по критериям
Надёжность гарантированнаясходимостьприизвестныхусловияхгарантированная сходимость при известных условияхгарантированнаясходимостьприизвестныхусловиях: бисекция > Brent/запаздывающие брикетированные методы > секущая/Ньютон ненадёжныеприплохомстартененадёжные при плохом стартененадёжныеприплохомстарте.Скорость локальнолокальнолокально: Ньютон квадратичнаяквадратичнаяквадратичная > секущая порядок 1.618порядок ~1.618порядок1.618 > бисекция линейнаялинейнаялинейная.Требования к информации: бисекция — только f; секущая — f; Ньютон — f и f'.Чувствительность к особенностям f: Ньютон чувствителен к малому f' внашейзадачеэтоактуальновокрестности±1в нашей задаче это актуально в окрестности ±1внашейзадачеэтоактуальновокрестности±1; секущая менее чувствительна, но всё равно может не сойтись; бисекция не чувствительна.
Вывод: для уравнения x^5 − 5x + 1 = 0 на −2,2−2,2−2,2 надёжно сначала получить скобки по знаку как(−2,−1),(0,1),(1,2)как (−2,−1),(0,1),(1,2)как(−2,−1),(0,1),(1,2). Для надёжного, но медленного поиска — использовать бисекцию. Для быстрой высокой точности — внутри каждого скобка сделать несколько шагов бисекции, затем переключиться на Ньютон еслистартдалекоот±1если старт далеко от ±1еслистартдалекоот±1 или на секущую; ещё лучше — воспользоваться Brent’ом, который сочетает преимущества.
Рассмотрим fxxx = x^5 − 5x + 1 на отрезке −2,2−2,2−2,2. Сначала несколько фактов о функции и корнях, затем — сравнение методов и рекомендации.
1) Где корни находятся
f−2−2−2 = −21, f−1−1−1 = 5 ⇒ по теореме об промежуточном значении есть корень в −2,−1−2,−1−2,−1.f000 = 1, f111 = −3 ⇒ есть корень в 0,10,10,1.f111 = −3, f222 = 23 ⇒ есть корень в 1,21,21,2.Итого на −2,2−2,2−2,2 три вещественных простых корня простые,т.к.f′(x)=5(x4−1)=0тольковx=±1,ноf(±1)≠0простые, т.к. f'(x)=5(x^4−1) = 0 только в x = ±1, но f(±1) ≠ 0простые,т.к.f′(x)=5(x4−1)=0тольковx=±1,ноf(±1)=0.
Приближённые значения дляориентирадля ориентирадляориентира:
левый корень ≈ −1.5417,малый корень ≈ 0.200064,правый корень ≈ 1.4427.2) Метод бисекции
Требования: непрерывность f и знание интервала a,ba,ba,b с faaa·fbbb < 0.Гарантия: всегда сходится к некоторому корню внутри интервала монотонноуменьшаетдлинуинтервалавдвоемонотонно уменьшает длину интервала вдвоемонотонноуменьшаетдлинуинтервалавдвое. Сходимость линейная: погрешность уменьшается как b−ab−ab−a/2^n.Применимо к каждому из трёх интервалов-скобок: −2,−1−2,−1−2,−1, 0,10,10,1, 1,21,21,2. Надёжный метод, идеально для гарантированного нахождения корня и получения грубой сходимости.Недостаток: медленный нуженмногоитерацийдлявысокойточностинужен много итераций для высокой точностинуженмногоитерацийдлявысокойточности.3) Метод Ньютона
Формула: x_{n+1} = x_n − fxnx_nxn /f'xnx_nxn . Здесь f'xxx=5x4−1x^4−1x4−1.Локальная гарантия: если корень α простой f′(α)≠0f'(α) ≠ 0f′(α)=0 и начальное приближение достаточно близко к α, то сходимость квадратичная оченьбыстраяочень быстраяоченьбыстрая.Риски: требует вычисления производной; может расходиться или «прыгать» если x0 далеко от корня или f'xxx близко к нулю. Для нашей функции f'xxx=0 в x = ±1, поэтому начальные приближения, близкие к ±1, опасны: малый знаменатель => большие шаги, возможен уход к другому корню или расходимость.Практически: если взять x0 близко к найденным скобкам напримерx0=−1.54,0.2,1.44например x0=−1.54, 0.2, 1.44напримерx0=−1.54,0.2,1.44, Newton быстро сходится к соответствующим корням. Но если начать, скажем, вблизи 1 гдеf′(1)=0где f'(1)=0гдеf′(1)=0 поведение может быть плохим.4) Метод секущих
Формула использует два начальных приближения x_{n−1}, x_n, не требует f'.Сходимость суперлинейная порядокφ≈1.618—золотоесечениепорядок φ ≈ 1.618 — золотое сечениепорядокφ≈1.618—золотоесечение, обычно быстрее бисекции, но медленнее Ньтона близко к корню.Гарантии слабее: нет строгой гарантии глобальной сходимости — метод может не сойтись, если начальные точки плохо выбраны; однако часто работает надёжнее, чем незащищённый Ньютон, если f' мал или неизвестна.Для данной задачи: секущая будет работать хорошо, если взять начальные точки внутри скобок напримердлясреднегокорнявзять0.2и0.21например для среднего корня взять 0.2 и 0.21напримердлясреднегокорнявзять0.2и0.21, но без скобки можно потерять сходимость.5) Практические рекомендации и комбинированные подходы
Для надёжного поиска всех корней: сначала расположить скобки по знаку какмысделаликак мы сделаликакмысделали; затем:либо использовать бисекцию прямо до требуемой точности надёжно,номедленнонадёжно, но медленнонадёжно,номедленно;либо быстро: сделать несколько несколькоитерацийнесколько итерацийнесколькоитераций шагов бисекции, чтобы получить хороший начальный интервал, затем переключиться на Ньютон safeguardedNewtonsafeguarded NewtonsafeguardedNewton или на метод секущих для ускорения. Такой подход сочетает гарантию и скорость.Лучший практический выбор — готовые «safeguarded» алгоритмы напримерBrent’smethod/ZEROINнапример Brent’s method / ZEROINнапримерBrent’smethod/ZEROIN, которые комбинируют брикетирование, секущую и интерполяцию: обычно быстро и устойчиво.Если производная легко и дешёво вычисляется какуполиномакак у полиномакакуполинома, Ньютон с хорошим стартом — предпочтителен из-за квадратичной сходимости. Но избегайте стартов близко к x = ±1 гдеf′≈0где f' ≈ 0гдеf′≈0.Если производная трудна или ненадёжна, секущая — разумный компромисс; если нужна абсолютная надёжность — бисекция.
6) Краткое сравнение по критериям
Надёжность гарантированнаясходимостьприизвестныхусловияхгарантированная сходимость при известных условияхгарантированнаясходимостьприизвестныхусловиях: бисекция > Brent/запаздывающие брикетированные методы > секущая/Ньютон ненадёжныеприплохомстартененадёжные при плохом стартененадёжныеприплохомстарте.Скорость локальнолокальнолокально: Ньютон квадратичнаяквадратичнаяквадратичная > секущая порядок 1.618порядок ~1.618порядок 1.618 > бисекция линейнаялинейнаялинейная.Требования к информации: бисекция — только f; секущая — f; Ньютон — f и f'.Чувствительность к особенностям f: Ньютон чувствителен к малому f' внашейзадачеэтоактуальновокрестности±1в нашей задаче это актуально в окрестности ±1внашейзадачеэтоактуальновокрестности±1; секущая менее чувствительна, но всё равно может не сойтись; бисекция не чувствительна.Вывод: для уравнения x^5 − 5x + 1 = 0 на −2,2−2,2−2,2 надёжно сначала получить скобки по знаку как(−2,−1),(0,1),(1,2)как (−2,−1),(0,1),(1,2)как(−2,−1),(0,1),(1,2). Для надёжного, но медленного поиска — использовать бисекцию. Для быстрой высокой точности — внутри каждого скобка сделать несколько шагов бисекции, затем переключиться на Ньютон еслистартдалекоот±1если старт далеко от ±1еслистартдалекоот±1 или на секущую; ещё лучше — воспользоваться Brent’ом, который сочетает преимущества.