Loading [MathJax]/jax/output/HTML-CSS/jax.js
Skip to main content
LibreTexts - Ukrayinska

4.1: Метод Ньютона

У главі 3 ми дізналися, як перша та друга похідні функції впливають на її графік. У цьому розділі ми досліджуємо інші застосування похідної.

Розв'язування рівнянь є однією з найважливіших речей, які ми робимо в математиці, але ми напрочуд обмежені в тому, що можемо вирішити аналітично. Наприклад, рівняння, такі прості, якx5+x+1=0 абоcosx=x не можуть бути розв'язані алгебраїчними методами з точки зору звичних функцій. На щастя, існують методи, які можуть дати нам приблизні рішення подібних рівнянь. Ці методи зазвичай можуть дати правильне наближення до стільки знаків після коми, скільки нам подобається. У розділі 1.5 ми дізналися про метод бісекції. Цей розділ присвячений іншій техніці (яка, як правило, працює швидше), яка називається Метод Ньютона.

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

альтальтальт

Малюнок4.1.1: Демонстрація геометричної концепції за методом Ньютона

Ми починаємо метод Ньютона з початкової здогадки про те, де знаходиться корінь. Назвіть цеx0. (Див4.1.1a. Рис.) Намалюйте дотичну лінію до графіка(x0,f(x0)) і подивіться, де вона відповідаєx осі -. Назвіть цей пунктx1. Потім повторіть процес — намалюйте дотичну лінію до графіка(x1,f(x1)) та подивіться, де вона відповідаєx осі -. (Див4.1.1b. Рис.) Назвіть цей пунктx2. Повторіть процес ще разx3, щоб отриматиx4, і т.д. ця послідовність точок часто сходиться досить швидко до кореняf.

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

$y=f' (x_0) (х-х_0) +ф (x_0).\]

Ця лінія перетинаєx вісь -колиy=0, аx значення —значення, де вона перетинається, - це те, що ми називалиx1. Так давайтеy=0 іx замініть наx1, даючи рівняння:

0=f(x0)(x1x0)+f(x0).

Тепер вирішуйте дляx1:

x1=x0f(x0)f(x0).

Оскільки ми повторюємо той самий геометричний процес, щоб знайтиx2 зx1, у нас є

x2=x1f(x1)f(x1).

Загалом, задавши наближенняxn, ми можемо знайти наступне наближенняxn+1, наступне:

xn+1=xnf(xn)f(xn).

Підсумовуємо цей процес наступним чином.

Ключова ідея 5: Метод Ньютона

fДозволяти диференційовні функції на інтерваліI з коренем вI. Щоб наблизити значення кореня, з точністю доd десяткових знаків:

  1. Виберіть значенняx0 як початкове наближення кореня. (Це часто робиться, дивлячись на графікf.)
  2. Створюйте послідовні наближення ітераційно; задавши наближенняxn, обчислити наступне наближенняxn+1 як xn+1=xn fracf(xn)f(xn).
  3. Зупиняйте ітерації, коли послідовні наближення не відрізняються в першихd знаках після коми.

Примітка: Метод Ньютона не є непогрішним. Послідовність наближених значень може не сходитися, або вона може сходитися настільки повільно, що людина «обманюється» в мисленні певне наближення краще, ніж є насправді. Ці питання будуть розглянуті в кінці розділу.}

Давайте практикуємо метод Ньютона на конкретному прикладі.

Приклад4.1.1: Using Newton's Method

Наблизимо дійсний коріньx3x21=0, з точністю до перших 3 знаків після десяткового числа, використовуючи метод Ньютона і початкове наближенняx0=1.}

Рішення

Для початку обчислюємоf(x)=3x22x. Потім застосовуємо алгоритм методу Ньютона, викладеного в Key Idea 5.

x1=1f(1)f(1)=11312131221=2,x2=2f(2)f(2)=22322132222=1.625,x3=1.625f(1.625)f(1.625)=1.6251.62531.6252131.625221.6251.48579.x4=1.48579f(1.48579)f(1.48579)1.46596x5=1.46596f(1.46596)f(1.46596)1.46557

Ми виконали 5 ітерацій методу Ньютона, щоб знайти корінь з точністю до перших 3 знаків після коми; наше остаточне наближення -1.465. точне значення кореня, до шести знаків після коми, є1.465571; Виявляється, що нашx5 точний до більш ніж просто 3 знаків після коми.

Графікf(x) наведено на рисунку4.1.2. З графіка ми бачимо, що наше початкове наближення неx0=1 було особливо точним; ближче припущення було бx0=1.5. Наш вибір базувався на простоті початкового розрахунку, і показує, що метод Ньютона може бути досить надійним, щоб нам не довелося робити дуже точне початкове наближення.

альт

Малюнок4.1.2: Графікf(x)=x3x21 у прикладі4.1.1.

Ми можемо автоматизувати цей процес на калькуляторі, який має ключ Ans, який повертає результат попереднього розрахунку. Почніть з натискання,1 а потімEnter. (Ми щойно ввели нашу початкову здогадку,x0=1.) Тепер обчислюйте

$\ текст {Ans} -\ frac {f (\ textt {Ans})} {f' (\ текст {Ans})}\]

шляхом введення наступного і багаторазового натисканняEnter клавіші:

Ans(Ans3Ans21)/(3Ans22Ans)

Щоразу, коли ми натискаємо клавішу\ texttt {Enter}, ми знаходимо послідовні наближення,,,x1x2,\ dots, і кожен з них наближається до кореня. Насправді, як тільки ми проходимо повз навколоx7 або близько того, наближення, здається, не змінюються. Вони насправді змінюються, але зміна досить далеко праворуч від десяткової крапки, що вона не відображається на дисплеї калькулятора. Коли це станеться, ми можемо бути досить впевнені, що знайшли точне наближення.

Використання калькулятора таким чином робить обчислення простими; багато ітерацій можна обчислити дуже швидко.

Приклад4.1.2: Using Newton's Method to find where functions intersect

Використовуйте метод Ньютона, щоб наблизити рішення доcosx=x, з точністю до 5 знаків після десяткової коми.

Рішення

Метод Ньютона надає метод розв'язуванняf(x)=0; він не є (безпосередньо) методом розв'язання рівнянь подібногоf(x)=g(x). Однак це не проблема; ми можемо переписати останнє рівняння,f(x)g(x)=0 а потім використовувати метод Ньютона.

Таким чином, ми переписуємоcosx=x якcosxx=0. Написано таким чином, ми знаходимо коріньf(x)=cosxx. Обчислюємоf(x)=sinx1. Далі нам знадобиться стартове значення,x0. Розглянемо Малюнок4.1.3, деf(x)=cosxx зображено графіки. x0=0.75Здається, що досить близько до кореня, тому ми будемо використовувати це як нашx0. (На малюнку також показані графікиy=cosx іy=x, намальовані пунктирними лініями. Зверніть увагу, як вони перетинаються з тим жеx значенням, що і колиf(x)=0.)

альт

Малюнок4.1.3: Графікf(x)=cosxx використовується для пошуку початкового наближення його кореня.

Ми теперx1 обчислюємо іx2 т.д. формулаx1 для

x1=0.75cos(0.75)0.75sin(0.75)10.7391111388.

Застосуйте метод Ньютона ще раз, щоб знайтиx2:

x2=0.7391111388cos(0.7391111388)0.7391111388sin(0.7391111388)10.7390851334.

Ми можемо продовжувати цей шлях, але насправді найкраще автоматизувати цей процес. На калькуляторі з клавішею Ans ми б почали з натискання 0.75, потімEnter, введення нашого початкового наближення. Потім вводимо:

Ans - (cos(Ans)-Ans)/(-sin(Ans)-1).

Багаторазове натисканняEnter клавіші дає послідовні наближення. Швидко знаходимо:

x3=0.7390851332x4=0.7390851332.

Наші наближенняx2 іx3 не відрізнялися принаймні перші 5 знаків після десяткової, так що ми могли б зупинитися. Однак скористатися нашим калькулятором описаним способом нескладно, тому знайти неx4 складе труднощів. Цікаво подивитися, як ми знайшли наближення, точне до такої кількості десяткових знаків, скільки відображає наш калькулятор, всього за 4 ітерації.

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

x = .75
while true
oldx = x
x = x - (cos(x)-x)/(-sin(x)-1)
print x
if abs(x-oldx) < .0000000001
break

Цей код обчислює іx1x2 т.д., зберігаючи кожен результат у зміннійx. Попереднє наближення зберігається в зміннійoldx. Ми продовжуємо цикл до тих пір, поки різниця між двома послідовними наближеннямиabs(x-oldx), не буде менше, ніж деякі малі допуски, в даному випадку,.0000000001.

Конвергенція методу Ньютона

Що слід використовувати для початкового припущенняx0? Як правило, чим ближче до фактичного кореня початкова здогадка, тим краще. Однак слід уникати деяких початкових здогадок. Наприклад, розглянемо приклад,4.1.1 де ми шукали корінь доf(x)=x3x21. Вибір бувx0=0 би особливо поганим вибором. Розглянемо Малюнок4.1.4f(x), де зображений разом з його дотичною лінією вx=0. Так якf(0)=0, дотична лінія горизонтальна і не перетинається зx віссю —. Графічно ми бачимо, що метод Ньютона виходить з ладу.

альт

\ Рисунок4.1.4: Графікf(x)=x3x21, який показує, чому початкове наближенняx0=0 методу Ньютона не вдається.

Ми також можемо аналітично бачити, що це не вдається. Так як

x1=0f(0)f(0)

іf(0)=0, ми бачимо, щоx1 це не дуже чітко визначено.

Ця проблема також може виникнути, якщо, наприклад, виявиться, щоf(x5)=0. Регулювання початкового наближенняx0 на дуже невелику суму, швидше за все, усуне проблему.

Також можливо, що метод Ньютона не сходиться, тоді як кожне наступне наближення чітко визначено. Розглянемоf(x)=x1/3, як показано на малюнку4.1.5. Зрозуміло, що корінь єx=0, але давайте наблизимо це сx0=0.1. Малюнок4.1.5a показує графічно розрахунокx1; зверніть увагу, як він знаходиться далі від кореня ніжx0. Цифри4.1.5b і (4.1.5c) показують обчисленняx2 іx3, які ще далі; наші послідовні наближення погіршуються. (Виявляється, в цьому конкретному прикладі кожне наступне наближення вдвічі більше від істинної відповіді, ніж попереднє наближення.)

альтальтальт

Рисунок4.1.5: Метод Ньютона не може знайти коріньf(x)=x1/3, незалежно від виборуx0.} \ label {fig:Ньют4}

Немає «виправлення» цієї проблеми; Метод Ньютона просто не спрацює, і потрібно використовувати інший метод.

Хоча метод Ньютона не завжди працює, він працює «більшу частину часу», і це, як правило, дуже швидко. Як тільки наближення наближаються до кореня, Метод Ньютона може вдвічі збільшити кількість правильних знаків після коми при кожному наступному наближенні. Курс з числового аналізу познайомить читача з більш ітераційними методами пошуку коренів, а також дасть більш детальну інформацію про сильні та слабкі сторони методу Ньютона.

Автори та атрибуція