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


17

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

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

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

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


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

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

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

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

Відповіді:


12

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

Для обчислення похідної (матриця Якобія, 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)eif(x+εei)f(x)ε,

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

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

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

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