Недоліки наближення Ньютона-Рафсона з приблизною числовою похідною


17

Припустимо, у мене є деяка функція і я хочу знайти x таку, що f ( x ) ≈ 0 . Я можу використовувати метод Ньютона-Рафсона. Але для цього потрібно, щоб я знав похідну функцію f ′ ( x ) . Аналітичний вираз дляfxf(x)≈0f′(x) може бути недоступним. Наприклад, f може бути визначений складним фрагментом комп'ютерного коду, який звертається до бази даних експериментальних значень.ff

Але навіть якщо є складним, я можу наблизити f ' ( a ) для будь-якого конкретного a , вибравши невелике число ϵ і обчисливши f ' ( a ) ≈ f ( a + ϵ ) - f ( a )f′f′(a)aϵ .f′(a)≈f(a+ϵ)−f(a)ϵ

Я чув, що у цього підходу є чіткі недоліки, але я не знаю, що це таке. Вікіпедія натякає, що "Використання цього наближення призвело б до чогось схожого на сектантний метод, зближення якого повільніше, ніж метод Ньютона".

Чи може хтось, будь ласка, детальніше розглянути це та надати посилання, в якому особливо обговорюються проблеми з цією технікою?


5
Секантний метод є відмінною альтернативою, коли похідне дорого обчислювати. Три кроки сеансу, як правило, приблизно еквівалентні двом крокам Ньютона, а щаблі дешевші.

1
Кожен раз, коли ви обчислюєте похідну чисельно за допомогою кінцевої різниці (як ви пропонуєте), будь-який шум у функції посилюється, тому ви повинні вибирати свій епсилон ретельно. Однією з можливостей є те, що коли ви наблизитесь до рішення, перейдіть до методу бінарного підрозділу, який гарантовано конвергується до тих пір, поки f локально одноманітний.
— Майк Данлаве

2
Як згадував Андре, двоточкові числові похідні, як ви пропонуєте, еквівалентні перезапущеному методу Secant . Хоча для більш швидкої конвергенції я б запропонував так званий алгоритм Іллінойса , який є близьким родичем методу Secant і використовуватиме лише один бал за крок, на відміну від двох у вашому випадку, і не зациклюється, як Метод помилкової позиції.
— Педро

Який розмір ? Чим вище розмірність, тим ціннішою стає похідна. Ньютон-Крилов, що не містить якобін, - це варіант, який не потребує явних похідних (хоча попередня умова важлива для погано кондиціонованих систем). x
— Джед Браун

Відповіді:


12

Для позначення припустимо, що (тобто функція, що оцінюється векторною, приймає вектор як вхідний і виводить вектор такого ж розміру). Є дві проблеми: обчислювальна вартість та числова точність.f:Rn→Rn

Для обчислення похідної (матриця Якобія, J ( x ) або ( ∇ f ( x ) ) T , або все, що вам більше зручніше) за допомогою кінцевих різниць знадобиться n функцій оцінки. Якби ви могли обчислити похідну, використовуючи арифметику з плаваючою комою безпосередньо з визначення, вам доведеться обчислити коефіцієнт різниціDf(x)J(x)(∇f(x))Tn

Df(x)ei=limε→0f(x+εei)−f(x)ε

для кожного , якщо припустити, що ви не робите жодного "розумного кінцевого розмежування" (наприклад, Кертіс-Пауелл-Рейд), оскільки ви знаєте (або можете виявити) закономірність зменшення D f . Якщо n великий, це може бути багато оцінок функції. Якщо у вас є аналітичний вираз для D f , то його обчислення може бути дешевшим. Автоматичні (також відомі як алгоритмічні) методи диференціації також можуть використовуватися в деяких випадках для обчислення D f приблизно в 3 - 5 разів більше вартості оцінки функції.i=1,…,nDfnDfDf

Є також чисельні проблеми. Очевидно, що на комп’ютері ми не можемо взяти ліміт скаляра, оскільки він іде до нуля, тому, коли ми наближаємо , ми дійсно вибираємо ε, щоб бути "малим" і обчислюємоDfε

Df(x)ei≈f(x+εei)−f(x)ε,

де означає, що це наближення, і ми сподіваємось, що це дійсно гарне наближення. Обчислити це наближення в арифметиці з плаваючою точкою важко, тому що якщо ви вибрали ε занадто велике, ваше наближення може бути поганим, але якщо ви виберете ε занадто малий, може виникнути значна помилка округлення. Ці ефекти висвітлюються у≈εε статті Вікіпедії про числову диференціацію в поверхневих деталях; Більш докладні посилання можна знайти в статті.

Якщо похибка в матриці Якобіана не надто велика, ітерації Ньютона-Рафсона будуть збігатися. Детальний теоретичний аналіз див. У главі 25 Точності та стійкості числових алгоритмів Ніка Хігхема , абоDf у статті Франсуази Тиссер, на якій він ґрунтується.

Бібліотеки, як правило, піклуються про ці алгоритмічні деталі для вас, і зазвичай, бібліотечні реалізації алгоритму Ньютона-Рафсона (або його варіантів) зблизяться досить непогано, але так часто виникає проблема, яка викликає певні проблеми через недоліки вище. У скалярному випадку я використовував би метод Брента , завдяки своїй стійкості та хорошій конвергенції на практиці.(n=1)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.