Пређи на садржај

Њутн-Рафсонов метод

С Википедије, слободне енциклопедије
Илустрација Њутновог метода.

У нумеричкој анализи, Њутн-Рафсонов метод, такође познат и као Њутнов метод, назван по Исаку Њутну и Џозефу Рафсону, је алгоритам за проналажење нула који производи сукцесивно боље апроксимације нула (или корена) реалне функције. Најосновнија верзија почиње са реалном функцијом f, њеним изводом f и почетном претпоставком x0 за нулу функције f. Ако f задовољава одређене претпоставке и почетна претпоставка је близу, онда је

боља апроксимација нуле од x0. Геометријски, (x1, 0) је пресек са x-осом тангенте графика функције f у тачки (x0, f(x0)): то јест, побољшана претпоставка, x1, је јединствена нула линеарне апроксимације функције f у почетној претпоставци, x0. Процес се понавља као

док се не достигне довољно прецизна вредност. Број тачних цифара се отприлике удвостручује са сваким кораком. Овај алгоритам је први у класи Хаусхолдерових метода, а наследио га је Халијев метод. Метод се такође може проширити на комплексне функције и на системе једначина.

Сврха Њутновог метода је проналажење нуле функције. Идеја је да се почне са почетном претпоставком о нули, апроксимира функција њеном тангентом у близини те претпоставке, а затим се нула линеарне апроксимације узме као следећа претпоставка за нулу функције. Ово ће обично бити ближе нули функције од претходне претпоставке, а метод се може итерирати.

Илустрација Њутновог метода
xn+1 је боља апроксимација од xn за нулу x функције f (плава крива)

Најбоља линеарна апроксимација произвољне диференцијабилне функције у близини тачке је тангента на криву, са једначином

Нула ове линеарне функције, место где она сече -осу, може се узети као ближа апроксимативна нула :

Илустрација Њутновог метода
Итерација обично побољшава апроксимацију

Процес се може започети са било којом произвољном почетном претпоставком , иако ће генерално захтевати мање итерација да конвергира ако је претпоставка близу једне од нула функције. Метод ће обично конвергирати ако је . Штавише, за нулу вишеструкости 1, конвергенција је барем квадратна (погледати Брзина конвергенције) у некој довољно малој околини нуле: број тачних цифара апроксимације се отприлике удвостручује са сваким додатним кораком. Више детаља се може наћи у одељку #Анализа § Notes испод.

Хаусхолдерови методи су слични, али имају виши ред за још бржу конвергенцију. Међутим, додатна израчунавања потребна за сваки корак могу успорити укупне перформансе у поређењу са Њутновим методом, посебно ако су или његови изводи рачунски скупи за евалуацију.

Историја

[уреди | уреди извор]

У старовавилонском периоду (19–16. век п. н. е.), страница квадрата познате површине могла се ефикасно апроксимирати, а претпоставља се да је то рађено коришћењем посебног случаја Њутновог метода, описаног алгебарски испод, итеративним побољшањем почетне процене; еквивалентан метод се може наћи у делу Метрика Херона Александријског (1–2. век н.е.), па се често назива Херонов метод.[1] Најранија позната појава типа Њутн-Рафсоновог метода може се пратити до рада персијског астронома и математичара Џамшида ал Кашија (1380–1429). У својој значајној публикацији из 1427. године, Miftāḥ al-Ḥisāb (مفتاح الحساب, у преводу Кључ аритметике)), описао је варијанту овог итеративног метода.[2] Џамшид ал Каши је користио метод за решавање xPN = 0 како би пронашао корене од N, метод који је био алгебарски еквивалентан Њутновом методу, а сличан метод је пронађен у делу Trigonometria Britannica, коју је објавио Хенри Бригс 1633. године.[3] Рад Ал-Кашија заснован је на ранијим доприносима полихистора ал-Бирунија (973–1048) и математичара Шарафа ал-Дина ал-Тусија (1135–1213). Доприноси ал-Кашија остали су вековима у великој мери непознати западној научној заједници, све до рада Франсоа Вијета (1540–1603). Године 1600, Вијет је поново открио технику сличну ал-Кашијевој у контексту решавања скаларних полиномских једначина шестог степена.[4] Најранији штампани опис методе први пут се појавио отприлике у раду Исака Њутна у De analysi per aequationes numero terminorum infinitas (написано 1669, објављено 1711. од стране Вилијама Џоунса) и у De metodis fluxionum et serierum infinitarum (написано 1671, преведено и објављено као Метод флуксија 1736. од стране Џона Колсона).[5][6] Међутим, иако је Њутн дао основне идеје, његов метод се разликује од модерног метода датог горе. Он је метод примењивао само на полиноме, почињући са почетном проценом корена и издвајајући низ корекција грешке. Користио је сваку корекцију да препише полином у терминима преостале грешке, а затим је решавао за нову корекцију занемарујући чланове вишег степена. Није експлицитно повезао метод са изводима нити представио општу формулу. Њутн је овај метод примењивао и на нумеричке и на алгебарске проблеме, производећи Тејлорове редове у другом случају.

Њутн је можда извео свој метод из сличног, мање прецизног метода математичара Франсоа Вијета, међутим, та два метода нису иста.[5] Суштина Вијетовог сопственог метода може се наћи у раду математичара Шарафа ал-Дина ал-Тусија.[7]

Јапански математичар Секи Кова користио је облик Њутновог метода 1680-их за решавање једначина са једном променљивом, иако је веза са рачуном недостајала.[8]

Њутнов метод је први пут објављен 1685. године у A Treatise of Algebra both Historical and Practical Џона Волиса.[9] Године 1690, Џозеф Рафсон је објавио поједностављен опис у Analysis aequationum universalis.[10] Рафсон је такође примењивао метод само на полиноме, али је избегао Њутнов досадан процес преписивања извлачећи сваку сукцесивну корекцију из оригиналног полинома. Ово му је омогућило да изведе поновно употребљив итеративни израз за сваки проблем. Коначно, 1740. године, Томас Симпсон је описао Њутнов метод као итеративни метод за решавање општих нелинеарних једначина користећи рачун, суштински дајући опис изнад. У истој публикацији, Симпсон такође даје генерализацију на системе од две једначине и напомиње да се Њутнов метод може користити за решавање проблема оптимизације постављањем градијента на нулу.

Артур Кејли је 1879. године у The Newton–Fourier imaginary problem први уочио потешкоће у генерализацији Њутновог метода на комплексне корене полинома степена већег од 2 и комплексне почетне вредности. Ово је отворило пут проучавању теорије итерација рационалних функција.

Практична разматрања

[уреди | уреди извор]

Њутнов метод је моћна техника — ако је извод функције у нули различит од нуле, онда је конвергенција најмање квадратна: како се метод приближава нули, разлика између нуле и апроксимације се квадрира (број тачних цифара се отприлике удвостручује) у сваком кораку. Међутим, постоје неке потешкоће са методом.

Потешкоће у израчунавању извода функције

[уреди | уреди извор]

Њутнов метод захтева да се извод може директно израчунати. Аналитички израз за извод можда није лако добити или може бити скуп за евалуацију. У таквим ситуацијама, може бити прикладно апроксимирати извод коришћењем нагиба праве кроз две оближње тачке на функцији. Коришћење ове апроксимације резултирало би нечим сличним методу сечице, чија је конвергенција спорија од Њутновог метода.

Неуспех метода да конвергира ка нули

[уреди | уреди извор]

Важно је прегледати доказ квадратне конвергенције Њутновог метода пре његове примене. Конкретно, треба прегледати претпоставке направљене у доказу. За ситуације где метод не успева да конвергира, то је зато што претпоставке направљене у овом доказу нису испуњене.

На пример, у неким случајевима, ако се први извод не понаша добро у околини одређене нуле, могуће је да Њутнов метод неће конвергирати без обзира на то где је иницијализација постављена. У неким случајевима, Њутнов метод се може стабилизовати коришћењем узастопне над-релаксације, или се брзина конвергенције може повећати коришћењем истог метода.

У робусној имплементацији Њутновог метода, уобичајено је поставити ограничења на број итерација, ограничити решење на интервал за који се зна да садржи нулу и комбиновати метод са робуснијим методом за проналажење нула.

Спора конвергенција за нуле вишеструкости веће од 1

[уреди | уреди извор]

Ако нула која се тражи има вишеструкост већу од један, стопа конвергенције је само линеарна (грешке се смањују за константан фактор у сваком кораку) осим ако се не предузму посебни кораци. Када постоје две или више нула које су близу једна другој, може бити потребно много итерација пре него што се итерације довољно приближе једној од њих да би квадратна конвергенција била очигледна. Међутим, ако је вишеструкост m нуле позната, следећи модификовани алгоритам чува квадратну стопу конвергенције:[11]

Ово је еквивалентно коришћењу узастопне над-релаксације. С друге стране, ако вишеструкост m нуле није позната, могуће је проценити m након извођења једне или две итерације, а затим користити ту вредност за повећање стопе конвергенције. Ако је вишеструкост m нуле коначна, онда ће g(x) = f(x)/f(x) имати нулу на истом месту са вишеструкошћу 1. Примена Њутновог метода за проналажење нуле g(x) враћа квадратну конвергенцију у многим случајевима, иако генерално укључује други извод f(x). У посебно једноставном случају, ако је f(x) = xm, онда је g(x) = x/m и Њутнов метод проналази нулу у једној итерацији са

Спора конвергенција

[уреди | уреди извор]

Функција f(x) = x2 има нулу у 0.[12] Пошто је f непрекидно диференцијабилна у својој нули, теорија гарантује да ће Њутнов метод иницијализован довољно близу нуле конвергирати. Међутим, пошто је извод f нула у нули, квадратна конвергенција није загарантована теоријом. У овом конкретном примеру, Њутнова итерација је дата са

Из овога је видљиво да би Њутнов метод могао бити иницијализован било где и конвергирати ка нули, али само линеарном брзином. Ако се иницијализује на 1, биле би потребне десетине итерација пре него што се постигне тачност од десет цифара.

Функција f(x) = x + x4/3 такође има нулу у 0, где је непрекидно диференцијабилна. Иако први извод f није нула у нули, други извод f ′′ тамо не постоји, тако да се квадратна конвергенција не може гарантовати. У ствари, Њутнова итерација је дата са

Из овога се може видети да је брзина конвергенције суперлинеарна, али субквадратна. Ово се може видети у следећим табелама, од којих лева показује Њутнов метод примењен на горњу функцију f(x) = x + x4/3, а десна показује Њутнов метод примењен на f(x) = x + x2. Квадратна конвергенција у итерацији приказана десно илустрована је редовима величине у растојању од итерације до праве нуле (0,1,2,3,5,10,20,39,...), који се приближно удвостручују од реда до реда. Док је конвергенција лево суперлинеарна, ред величине се множи само са око 4/3 од реда до реда (0,1,2,4,5,7,10,13,...).

xn x + x4/3
n
xn x + x2
n
1 2 1 2
1.4286 × 10−1 2.1754 × 10−1 3.3333 × 10−1 4.4444 × 10−1
1.4669 × 10−2 1.8260 × 10−2 6.6666 × 10−2 7.1111 × 10−2
9.0241 × 10−4 9.8961 × 10−4 3.9216 × 10−3 3.9369 × 10−3
2.5750 × 10−5 2.6511 × 10−5 1.5259 × 10−5 1.5259 × 10−5
2.4386 × 10−7 2.4539 × 10−7 2.3283 × 10−10 2.3283 × 10−10
5.0366 × 10−10 5.0406 × 10−10 5.4210 × 10−20 5.4210 × 10−20
1.3344 × 10−13 1.3344 × 10−13 2.9387 × 10−39 2.9387 × 10−39

Брзина конвергенције се разликује од броја итерација потребних да се достигне дата тачност. На пример, функција f(x) = x20 − 1 има нулу у 1. Пошто је f ′(1) ≠ 0 и f је глатка, познато је да ће свака Њутнова итерација која конвергира ка 1 конвергирати квадратно. Међутим, ако се иницијализује на 0.5, првих неколико итерација Њутновог метода су приближно 26214, 24904, 23658, 22476, споро опадајући, при чему је тек 200. итерација 1.0371. Следеће итерације су 1.0103, 1.00093, 1.0000082 и 1.00000000065, што илуструје квадратну конвергенцију. Ово наглашава да квадратна конвергенција Њутнове итерације не значи да је потребно само неколико итерација; ово важи само када је низ итерација довољно близу нуле.[13]

Конвергенција зависи од иницијализације

[уреди | уреди извор]

Функција f(x) = x(1 + x2)−1/2 има нулу у 0. Њутнова итерација је дата са

Из овога се може видети да постоје три могућа феномена за Њутнову итерацију. Ако се иницијализује стриктно између ±1, Њутнова итерација ће конвергирати (супер-)квадратно ка 0; ако се иницијализује тачно на 1 или −1, Њутнова итерација ће бесконачно осциловати између ±1; ако се иницијализује било где другде, Њутнова итерација ће дивергирати.[14] Иста ова трихотомија се јавља за f(x) = arctan x.[12]

У случајевима када функција има више нула, може бити тешко контролисати, путем избора иницијализације, коју нулу (ако иједну) Њутнов метод идентификује. На пример, функција f(x) = x(x2 − 1)(x − 3)e−(x − 1)2/2 има нуле у −1, 0, 1 и 3.[15] Ако се иницијализује на −1.488, Њутнова итерација конвергира ка 0; ако се иницијализује на −1.487, дивергира ка ; ако се иницијализује на −1.486, конвергира ка −1; ако се иницијализује на −1.485, дивергира ка −∞; ако се иницијализује на −1.4843, конвергира ка 3; ако се иницијализује на −1.484, конвергира ка 1. Оваква суптилна зависност од иницијализације није неуобичајена; често се проучава у комплексној равни у облику Њутновог фрактала.

Дивергенција чак и када је иницијализација близу нуле

[уреди | уреди извор]

Размотримо проблем проналажења нуле функције f(x) = x1/3. Њутнова итерација је

Осим ако се Њутнов метод не иницијализује тачно у нули 0, види се да низ итерација неће конвергирати. На пример, чак и ако се иницијализује на разумно тачној претпоставци од 0.001, првих неколико итерација су −0.002, 0.004, −0.008, 0.016, достижући 1048.58, −2097.15, ... до 20. итерације. Овај неуспех конвергенције није у супротности са аналитичком теоријом, пошто у овом случају f није диференцијабилна у својој нули.

У горњем примеру, неуспех конвергенције се огледа у неуспеху f(xn) да се приближи нули како се n повећава, као и у чињеници да се узастопне итерације све више удаљавају једна од друге. Међутим, функција f(x) = x1/3ex2 такође има нулу у 0. Њутнова итерација је дата са

У овом примеру, где f опет није диференцијабилна у нули, свака Њутнова итерација која не почиње тачно у нули ће дивергирати, али са оба xn + 1xn и f(xn) која конвергирају ка нули.[16] Ово се види у следећој табели која приказује итерације са иницијализацијом 1:

xn f(xn)
1 0.36788
1.6 9.0416 × 10−2
1.9342 2.9556 × 10−2
2.2048 1.0076 × 10−2
2.4396 3.5015 × 10−3
2.6505 1.2307 × 10−3
2.8437 4.3578 × 10−4
3.0232 1.5513 × 10−4

Иако конвергенција xn + 1xn у овом случају није веома брза, може се доказати из итерационе формуле. Овај пример истиче могућност да критеријум за заустављање Њутновог метода заснован само на малој вредности xn + 1xn и f(xn) може погрешно идентификовати нулу.

Осцилаторно понашање

[уреди | уреди извор]
Тангенте функције x3 − 2x + 2 у 0 и 1 секу x-осу у 1 и 0 респективно, илуструјући зашто Њутнов метод осцилује између ових вредности за неке почетне тачке.

Лако је пронаћи ситуације за које Њутнов метод бескрајно осцилује између две различите вредности. На пример, да би Њутнов метод примењен на функцију f осциловао између 0 и 1, потребно је само да тангента на f у 0 сече x-осу у 1 и да тангента на f у 1 сече x-осу у 0.[16] Ово је случај, на пример, ако је f(x) = x3 − 2x + 2. За ову функцију, чак је случај да ће Њутнова итерација иницијализована довољно близу 0 или 1 асимптотски осциловати између ових вредности. На пример, Њутнов метод иницијализован на 0.99 даје итерације 0.99, −0.06317, 1.00628, 0.03651, 1.00196, 0.01162, 1.00020, 0.00120, 1.000002, и тако даље. Ово понашање је присутно упркос постојању нуле функције f приближно једнаке −1.76929.

Недефинисаност Њутновог метода

[уреди | уреди извор]

У неким случајевима, није чак ни могуће извести Њутнову итерацију. На пример, ако је f(x) = x2 − 1, онда је Њутнова итерација дефинисана са

Дакле, Њутнов метод се не може иницијализовати у 0, пошто би то учинило x1 недефинисаним. Геометријски, то је зато што је тангента на f у 0 хоризонтална (тј. f ′(0) = 0), и никада не сече x-осу.

Чак и ако је иницијализација изабрана тако да Њутнова итерација може почети, исти феномен може блокирати да се итерација настави неограничено.

Ако f има некомплетан домен, могуће је да Њутнов метод пошаље итерације изван домена, тако да је немогуће наставити итерацију.[16] На пример, функција природног логаритма f(x) = ln x има нулу у 1, и дефинисана је само за позитивно x. Њутнова итерација у овом случају је дата са

Дакле, ако се итерација иницијализује на e, следећа итерација је 0; ако се итерација иницијализује на вредности већој од e, онда је следећа итерација негативна. У оба случаја, метод се не може наставити.

Претпоставимо да функција f има нулу у α, тј., f(α) = 0, и f је диференцијабилна у околини од α.

Ако је f непрекидно диференцијабилна и њен извод је различит од нуле у α, онда постоји околина од α таква да за све почетне вредности x0 у тој околини, низ (xn) ће конвергирати ка α.[17]

Ако је f непрекидно диференцијабилна, њен извод је различит од нуле у α, и има други извод у α, онда је конвергенција квадратна или бржа. Ако други извод није 0 у α онда је конвергенција само квадратна. Ако трећи извод постоји и ограничен је у околини од α, онда:

где

Ако је извод 0 у α, онда је конвергенција обично само линеарна. Конкретно, ако је f двапут непрекидно диференцијабилна, f(α) = 0 и f″(α) ≠ 0, онда постоји околина од α таква да, за све почетне вредности x0 у тој околини, низ итерација конвергира линеарно, са брзином 1/2.[18] Алтернативно, ако је f(α) = 0 и f(x) ≠ 0 за xα, x у околини U од α, где је α нула вишеструкости r, и ако је fCr(U), онда постоји околина од α таква да, за све почетне вредности x0 у тој околини, низ итерација конвергира линеарно.

Међутим, чак ни линеарна конвергенција није загарантована у патолошким ситуацијама.

У пракси, ови резултати су локални, и околина конвергенције није позната унапред. Али постоје и неки резултати о глобалној конвергенцији: на пример, дата је десна околина U+ од α, ако је f двапут диференцијабилна у U+ и ако је f ≠ 0, f · f″ > 0 у U+, онда, за свако x0 у U+ низ xk је монотоно опадајући ка α.

Доказ квадратне конвергенције за Њутнов итеративни метод

[уреди | уреди извор]

Према Тејлоровој теореми, свака функција f(x) која има непрекидан други извод може се представити развојем око тачке која је близу нуле функције f(x). Претпоставимо да је ова нула α. Онда је развој f(α) око xn следећи:

где је Лагранжов облик остатка Тејлоровог реда

где је ξn између xn и α.

Пошто је α нула, ово постаје:

Дељењем једначине са f(xn) и преуређивањем добија се

Подсећајући се да је xn + 1 дефинисано са

налази се да

То јест,

Узимањем апсолутне вредности обе стране добија се

Ова једначина показује да је ред конвергенције најмање квадратан ако су задовољени следећи услови:

  1. f(x) ≠ 0; за свако xI, где је I интервал [α − |ε0|, α + |ε0|];
  2. f″(x) је непрекидно, за свако xI;
  3. M |ε0| < 1

где је M дато са

Ако ови услови важе,

Фуријеови услови

[уреди | уреди извор]

Претпоставимо да је f(x) конкавна функција на интервалу, која је строго растућа. Ако је негативна на левом крају и позитивна на десном крају, теорема о средњој вредности гарантује да постоји нула ζ функције f негде у интервалу. Из геометријских принципа, може се видети да је Њутнова итерација xi која почиње на левом крају монотоно растућа и конвергентна, неопходно ка ζ.[19]

Жозеф Фурије је увео модификацију Њутновог метода која почиње на десном крају:

Овај низ је монотоно опадајући и конвергентан. Преласком на лимес у овој дефиницији, може се видети да лимес yi такође мора бити нула ζ.[19]

Дакле, у случају конкавне растуће функције са нулом, иницијализација је у великој мери ирелевантна. Њутнова итерација која почиње било где лево од нуле ће конвергирати, као и Фуријеова модификована Њутнова итерација која почиње било где десно од нуле. Тачност у било ком кораку итерације може се директно одредити из разлике између локације итерације са леве стране и локације итерације са десне стране. Ако је f двапут непрекидно диференцијабилна, може се доказати коришћењем Тејлорове теореме да

показујући да ова разлика у локацијама конвергира квадратно ка нули.[19]

Све наведено се може проширити на системе једначина у више променљивих, иако су у том контексту релевантни појмови монотоности и конкавности суптилнији за формулисање.[20] У случају појединачних једначина у једној променљивој, горе наведена монотона конвергенција Њутновог метода се такође може генерализовати да замени конкавност позитивношћу или негативношћу на произвољном изводу вишег реда од f. Међутим, у овој генерализацији, Њутнова итерација је модификована тако да се заснива на Тејлоровим полиномима уместо на тангенти. У случају конкавности, ова модификација се поклапа са стандардним Њутновим методом.[21]

Грешка за n>1 променљивих

[уреди | уреди извор]

Ако тражимо нулу једне функције онда је грешка вектор чије компоненте задовољавају где је квадратна форма: евалуирана у нули (где је Хесијан матрица другог извода).

Коришћење Њутновог метода за израчунавање квадратних корена

[уреди | уреди извор]

Њутнов метод је један од многих познатих метода за израчунавање квадратних корена. За дати позитиван број a, проблем проналажења броја x таквог да је x2 = a еквивалентан је проналажењу нуле функције f(x) = x2a. Њутнова итерација дефинисана овом функцијом дата је са

Ово се поклапа са "Вавилонским" методом проналажења квадратних корена, који се састоји од замене апроксимативног корена xn аритметичком средином xn и axn. Извођењем ове итерације, могуће је израчунати квадратни корен до било које жељене тачности користећи само основне аритметичке операције.

Следеће три табеле приказују примере резултата овог израчунавања за проналажење квадратног корена броја 612, са итерацијом иницијализованом на вредностима 1, 10 и −20. Сваки ред у колони "xn" добија се применом претходне формуле на унос изнад њега, на пример

xn f(xn) xn f(xn) xn f(xn)
1 −611 10 −512 −20 −212
306.5 9.3330 × 104 35.6 655.36 −25.3 28.09
154.2483686786 2.3180 × 104 26.3955056180 84.722 −24.7448616601 0.30818
79.1079978644 5.6461 × 103 24.7906354925 2.5756 −24.7386345374 3.8777 × 10−5
43.4221286822 1.2735 × 103 24.7386882941 2.6985 × 10−3 −24.7386337537 6.1424 × 10−13
28.7581624288 215.03 24.7386337538 2.9746 × 10−9
25.0195385369 13.977
24.7402106712 7.8024 × 10−2
24.7386338040 2.4865 × 10−6
24.7386337537 2.5256 × 10−15

Тачне цифре су подвучене. Види се да се са само неколико итерација може добити решење тачно на много децималних места. Прва табела показује да је то тачно чак и ако је Њутнова итерација иницијализована врло нетачном претпоставком од 1.

Приликом израчунавања било ког ненултог квадратног корена, први извод f мора бити различит од нуле у нули, и f је глатка функција. Дакле, чак и пре било каквог израчунавања, познато је да свака конвергентна Њутнова итерација има квадратну брзину конвергенције. Ово се у горњим табелама огледа у чињеници да када се Њутнова итерација приближи нули, број тачних цифара се приближно удвостручује са сваком итерацијом.

Решење cos(x) = x3 помоћу Њутновог метода

[уреди | уреди извор]

Размотримо проблем проналажења позитивног броја x за који важи cos x = x3. Ово можемо преформулисати као проналажење нуле функције f(x) = cos(x) − x3. Имамо f(x) = −sin(x) − 3x2. Пошто је cos(x) ≤ 1 за свако x и x3 > 1 за x > 1, знамо да наше решење лежи између 0 и 1.

Почетна вредност 0 ће довести до недефинисаног резултата, што илуструје важност коришћења почетне тачке близу решења. На пример, са почетном претпоставком x0 = 0.5, низ дат Њутновим методом је:

Тачне цифре су подвучене у горњем примеру. Конкретно, x6 је тачан на 12 децималних места. Видимо да се број тачних цифара након децималне запете повећава са 2 (за x3) на 5 и 10, што илуструје квадратну конвергенцију.

Вишедимензионалне формулације

[уреди | уреди извор]

Системи једначина

[уреди | уреди извор]

k променљивих, k функција

[уреди | уреди извор]

Њутнов метод се може користити и за решавање система од k једначина, што се своди на проналажење (симултаних) нула k непрекидно диференцијабилних функција <math>f:\R^k\to \R.</math> Ово је еквивалентно проналажењу нула једне векторске функције <math>F:\R^k\to \R^k.</math> У формулацији датој горе, скалари xn се замењују векторима xn, и уместо дељења функције f(xn) њеним изводом f(xn), потребно је лево помножити функцију F(xn) инверзом њене k × k Јакобијеве матрице JF(xn).[22][23][24] Ово резултира изразом

или, решавањем система линеарних једначина

за непознату xn + 1xn.[25]

k променљивих, m једначина, са m > k

[уреди | уреди извор]

k-димензионална варијанта Њутновог метода се може користити за решавање система од више од k (нелинеарних) једначина ако алгоритам користи генерализовани инверз не-квадратне Јакобијеве матрице J+ = (JTJ)−1JT уместо инверза од J. Ако нелинеарни систем нема решење, метод покушава да пронађе решење у смислу нелинеарних најмањих квадрата. Погледати Гаус-Њутнов алгоритам за више информација.

На пример, следећи скуп једначина треба решити за вектор тачака за дати вектор познатих вредности .

вектор функције, и Јакобијева матрица, за итерацију k, и вектор познатих вредности, ; су дефинисани испод.

Приметите да је ; могло бити преписано да апсорбује и тиме елиминише Y из једначина. Једначине које треба решити за сваку итерацију су

и

Итерације треба понављати док вредност довољно мала да задовољи захтеве апликације.

Ако је вектор иницијално изабран да буде то јест, и и је изабрано да буде 1.10−3, онда пример конвергира након четири итерације до вредности

Итерације

[уреди | уреди извор]

Следеће итерације су направљене током решавања.

Конвергентни низ итерација
Корак Променљива
Вредност
0 x =
f(x) =
1 J =
c =
x =
f(x) =
2 J =
c =
x =
f(x) =
3 J =
c =
x =
f(x) =
4 J =
c =
x =
f(x) =

Комплексне функције

[уреди | уреди извор]
Басени привлачења за x5 − 1 = 0; тамнија боја значи више итерација за конвергенцију.

Када се ради са комплексним функцијама, Њутнов метод се може директно применити за проналажење њихових нула.[26] Свака нула има басен привлачења у комплексној равни, скуп свих почетних вредности које узрокују да метод конвергира ка тој одређеној нули. Ови скупови се могу мапирати као на приказаној слици. За многе комплексне функције, границе басена привлачења су фрактали.

У неким случајевима постоје региони у комплексној равни који нису ни у једном од ових басена привлачења, што значи да итерације не конвергирају. На пример,[27] ако се користи реалан почетни услов за тражење корена x2 + 1, све наредне итерације ће бити реални бројеви и стога итерације не могу конвергирати ни ка једном корену, пошто су оба корена нереална. У овом случају скоро сви реални почетни услови воде ка хаотичном понашању, док неки почетни услови итерирају или ка бесконачности или ка понављајућим циклусима било које коначне дужине.

Керт Макмулен је показао да ће за било који могући чисто итеративни алгоритам сличан Њутновом методу, алгоритам дивергирати на неким отвореним регионима комплексне равни када се примени на неки полином степена 4 или вишег. Међутим, Макмулен је дао генерално конвергентан алгоритам за полиноме степена 3.[28] Такође, за било који полином, Хабард, Шлајхер и Садерленд су дали метод за одабир скупа почетних тачака тако да ће Њутнов метод сигурно конвергирати барем у једној од њих.[29]

У Банаховом простору

[уреди | уреди извор]

Још једна генерализација је Њутнов метод за проналажење нуле функционала F дефинисаног у Банаховом простору. У овом случају формулација је

где је F(Xn) Фрешеов извод израчунат у Xn. Потребно је да Фрешеов извод буде ограничено инвертибилан у сваком Xn да би метод био применљив. Услов за постојање и конвергенцију ка нули дат је Њутн-Канторовичевом теоремом.[30]

Неш-Мозерова итерација

[уреди | уреди извор]

Током 1950-их, Џон Неш је развио верзију Њутновог метода коју је применио на проблем конструкције изометричних улагања општих Риманових многострукости у Еуклидски простор. Проблем „губитка извода“, присутан у овом контексту, учинио је стандардну Њутнову итерацију неприменљивом, јер се није могла наставити неодређено (а камоли конвергирати). Нешово решење је укључивало увођење оператора изглађивања у итерацију. Успео је да докаже конвергенцију свог изглађеног Њутновог метода, у сврху доказивања теореме о имплицитној функцији за изометрична улагања. Током 1960-их, Јирген Мозер је показао да су Нешове методе довољно флексибилне да се примене на проблеме изван изометричног улагања, посебно у небеској механици. Од тада, велики број математичара, укључујући Михаила Громова и Ричарда Хамилтона, пронашли су генерализоване апстрактне верзије Неш-Мозерове теорије.[31][32] У Хамилтоновој формулацији, Неш-Мозерова теорема представља генерализацију Њутновог метода у Банаховом простору која се одвија у одређеним Фрешеовим просторима.

Модификације

[уреди | уреди извор]

Квази-Њутнови методи

[уреди | уреди извор]

Када је Јакобијан недоступан или прескуп за израчунавање у свакој итерацији, може се користити квази-Њутнов метод.

Чебишевљев метод трећег реда

[уреди | уреди извор]

Пошто Тејлорови развоји вишег реда нуде тачније локалне апроксимације функције f, разумно је питати се зашто се Њутнов метод ослања само на Тејлорову апроксимацију другог реда. У 19. веку, руски математичар Пафнутиј Чебишев је истраживао ову идеју развијајући варијанту Њутновог метода која је користила кубне апроксимације.[33][34][35]

Над p-адским бројевима

[уреди | уреди извор]

У p-адској анализи, стандардни метод за показивање да полиномска једначина у једној променљивој има p-адски корен је Хенселова лема, која користи рекурзију из Њутновог метода на p-адским бројевима. Због стабилнијег понашања сабирања и множења у p-адским бројевима у поређењу са реалним бројевима (конкретно, јединична кугла у p-адским бројевима је прстен), конвергенција у Хенселовој леми може се гарантовати под много једноставнијим хипотезама него у класичном Њутновом методу на реалној правој.

Њутнов метод се може генерализовати са q-аналогом уобичајеног извода.[36]

Модификовани Њутнови методи

[уреди | уреди извор]

Мелијева процедура

[уреди | уреди извор]

Нелинеарна једначина генерално има више решења. Али ако почетна вредност није одговарајућа, Њутнов метод можда неће конвергирати ка жељеном решењу или може конвергирати ка истом решењу које је раније пронађено. Када смо већ пронашли N решења једначине <math>f(x)=0</math>, онда се следећа нула може пронаћи применом Њутновог метода на следећу једначину:[37][38]

Овај метод се примењује за добијање нула Беселове функције друге врсте.[39]

Хиранова модификована Њутнова метода

[уреди | уреди извор]

Хиранова модификована Њутнова метода је модификација која чува конвергенцију Њутновог метода и избегава нестабилност.[40] Развијена је за решавање комплексних полинома.

Интервални Њутнов метод

[уреди | уреди извор]

Комбиновање Њутновог метода са интервалном аритметиком је веома корисно у неким контекстима. Ово пружа критеријум за заустављање који је поузданији од уобичајених (који су мала вредност функције или мала варијација променљиве између узастопних итерација). Такође, ово може детектовати случајеве где Њутнов метод теоретски конвергира, али нумерички дивергира због недовољне прецизности покретног зареза (ово је типичан случај за полиноме великог степена, где врло мала промена променљиве може драматично променити вредност функције; видети Вилкинсонов полином).[41][42]

Размотримо fШаблон:Mathcal1(X), где је X реалан интервал, и претпоставимо да имамо интервално проширење F од f, што значи да F узима као улаз интервал YX и даје као излаз интервал F(Y) такав да:

Такође претпостављамо да 0 ∉ F(X), па f има највише једну нулу у X. Тада дефинишемо интервални Њутнов оператор са:

где је mY. Приметите да хипотеза о F имплицира да је N(Y) добро дефинисан и да је интервал (видети интервална аритметика за више детаља о интервалним операцијама). Ово природно води до следећег низа:

Теорема о средњој вредности осигурава да ако постоји нула функције f у Xk, онда је она такође у Xk + 1. Штавише, хипотеза о F′ осигурава да је Xk + 1 највише половина величине од Xk када је m средина од Y, тако да овај низ конвергира ка [x*, x*], где је x* нула функције f у X.

Ако F(X) стриктно садржи 0, употреба проширеног интервалног дељења производи унију два интервала за N(X); вишеструке нуле се стога аутоматски одвајају и ограничавају.

Проблеми минимизације и максимизације

[уреди | уреди извор]

Њутнов метод се може користити за проналажење минимума или максимума функције f(x). Извод је нула у минимуму или максимуму, тако да се локални минимуми и максимуми могу пронаћи применом Њутновог метода на извод.[43] Итерација постаје:

Мултипликативни инверзи бројева и степених редова

[уреди | уреди извор]

Важна примена је Њутн-Рафсонова подела, која се може користити за брзо проналажење реципрочне вредности броја a, користећи само множење и одузимање, то јест броја x таквог да је 1/x = a. Можемо то преформулисати као проналажење нуле функције f(x) = 1/xa. Имамо f(x) = −1/x2.

Њутнова итерација је

Дакле, Њутнова итерација захтева само два множења и једно одузимање.

Овај метод је такође веома ефикасан за израчунавање мултипликативног инверза степеног реда.

Решавање трансцендентних једначина

[уреди | уреди извор]

Многе трансцендентне једначине се могу решити до произвољне прецизности коришћењем Њутновог метода. На пример, проналажење кумулативне функције расподеле вероватноће, као што је нормална расподела, да би се уклопила у познату вероватноћу, генерално укључује интегралне функције без познатих начина за решавање у затвореном облику. Међутим, израчунавање извода потребних за њихово нумеричко решавање Њутновим методом је генерално познато, што омогућава нумеричка решења. За пример, погледајте нумеричко решење инверзне кумулативне функције нормалне расподеле.

Нумеричка верификација за решења нелинеарних једначина

[уреди | уреди извор]

Нумеричка верификација за решења нелинеарних једначина је успостављена вишеструким коришћењем Њутновог метода и формирањем скупа кандидатских решења.

Следи пример могуће имплементације Њутновог метода у програмском језику Пајтон (верзија 3.x) за проналажење нуле функције f која има извод f_prime.

Почетна претпоставка ће бити x0 = 1 а функција ће бити f(x) = x2 − 2 тако да је f(x) = 2x.

Свака нова итерација Њутновог метода биће означена са x1. Током израчунавања провераваћемо да ли именилац (yprime) постаје премали (мањи од epsilon),, што би био случај ако је f(xn) ≈ 0, пошто би у супротном могла бити уведена велика грешка.

def f(x):             
	return x**2 - 2   # f(x) = x^2 - 2

def f_prime(x):
	return 2*x        # f'(x) = 2x

def newtons_method(x0, f, f_prime, tolerance, epsilon, max_iterations):
    """Њутнов метод

    Args:
      x0:              Почетна претпоставка
      f:               Функција чију нулу покушавамо да пронађемо
      f_prime:         Извод функције
      tolerance:       Заустави се када се итерације промене за мање од овога
      epsilon:         Не делити бројем мањим од овога
      max_iterations:  Максималан број итерација за израчунавање
    """
    for _ in range(max_iterations):
        y = f(x0)
        yprime = f_prime(x0)

        if abs(yprime) < epsilon:         # Прекини ако је именилац премали
            break
        x1 = x0 - y / yprime             # Изврши Њутново израчунавање

        if abs(x1 - x0) <= tolerance:    # Заустави се када је резултат унутар жељене толеранције
            return x1                    # x1 је решење унутар толеранције и максималног броја итерација

        x0 = x1                          # Ажурирај x0 да би се процес поново покренуо

    return None                          # Њутнов метод није конвергирао

Референце

[уреди | уреди извор]
  1. ^ Fowler, David; Robson, Eleanor (1998). „Апроксимације квадратног корена у старој вавилонској математици: YBC 7289 у контексту”. Historia Mathematica. 25 (4): 366—378. doi:10.1006/hmat.1998.2209Слободан приступ. 
  2. ^ Morshed, Md Sarowar (2022), Augmented Newton Method for Optimization: Global Linear Rate and Momentum Interpretation [Проширена Њутнова метода за оптимизацију: Глобална линеарна стопа и интерпретација момента], arXiv, doi:10.48550/ARXIV.2205.11033, Приступљено 2025-07-08 
  3. ^ Ypma, Tjalling J. (1995). „Historical Development of the Newton-Raphson Method” [Историјски развој Њутн-Рафсоновог метода]. SIAM Review. 37 (4): 531—551. ISSN 0036-1445. JSTOR 2132904. doi:10.1137/1037125. 
  4. ^ Morshed, Md Sarowar (2022), Augmented Newton Method for Optimization: Global Linear Rate and Momentum Interpretation [Проширена Њутнова метода за оптимизацију: Глобална линеарна стопа и интерпретација момента], arXiv, doi:10.48550/ARXIV.2205.11033, Приступљено 2025-07-08 
  5. ^ а б Cajori, Florian (1911). „Historical Note on the Newton-Raphson Method of Approximation” [Историјска белешка о Њутн-Рафсоновом методу апроксимације]. The American Mathematical Monthly. 18 (2): 29—32. ISSN 0002-9890. JSTOR 2973939. doi:10.2307/2973939. 
  6. ^ Guicciardini, Niccolò (2009). Isaac Newton on Mathematical Certainty and Method [Исак Њутн о математичкој сигурности и методи]. Transformations (на језику: енглески). Cambridge, Mass: MIT Press. стр. 158—159. ISBN 978-0-262-01317-8. OCLC 282968643. 
  7. ^ Ypma, Tjalling J. (1995). „Historical Development of the Newton-Raphson Method” [Историјски развој Њутн-Рафсоновог метода]. SIAM Review. 37 (4): 531—551. ISSN 0036-1445. JSTOR 2132904. doi:10.1137/1037125. 
  8. ^ „Takakazu Seki - Biography” [Такаказу Секи - Биографија]. Maths History (на језику: енглески). Приступљено 2024-11-27. 
  9. ^ Wallis, John (1685). A Treatise of Algebra, both Historical and Practical [Трактат о алгебри, историјски и практични]. Oxford: Richard Davis. doi:10.3931/e-rara-8842. 
  10. ^ Raphson, Joseph (1697). Analysis Æequationum Universalis (на језику: латински) (2nd изд.). London: Thomas Bradyll. doi:10.3931/e-rara-13516. 
  11. ^ „Accelerated and Modified Newton Methods” [Убрзани и модификовани Њутнови методи]. Архивирано из оригинала 24. 5. 2019. г. Приступљено 4. 3. 2016. 
  12. ^ а б J. E. Dennis, Jr. and Robert B. Schnabel. Numerical methods for unconstrained optimization and nonlinear equations. SIAM
  13. ^ Anthony Ralston and Philip Rabinowitz. A first course in numerical analysis, second edition
  14. ^ Yuri Nesterov. Lectures on convex optimization, second edition. Springer Optimization and its Applications, Volume 137.
  15. ^ Süli & Mayers 2003.
  16. ^ а б в Kenneth L. Judd. Numerical methods in economics. MIT Press
  17. ^ Ryaben'kii, Victor S.; Tsynkov, Semyon V. (2006), A Theoretical Introduction to Numerical Analysis [Теоријски увод у нумеричку анализу], CRC Press, стр. 243, ISBN 9781584886075 .
  18. ^ Süli & Mayers 2003, Exercise 1.6
  19. ^ а б в Ostrowski, A. M. (1973). Solution of equations in Euclidean and Banach spaces [Решење једначина у Еуклидским и Банаховим просторима]. Pure and Applied Mathematics. 9 (Third edition of 1960 original изд.). New York–London: Academic Press. MR 0359306. Zbl 0304.65002. 
  20. ^ Ortega and Rheinboldt, Section 13.3
  21. ^ Traub, J. F. (1964). Iterative methods for the solution of equations [Итеративни методи за решавање једначина]. Prentice-Hall Series in Automatic Computation. Englewood Cliffs, NJ: Prentice-Hall, Inc. MR 0169356. Zbl 0121.11204. 
  22. ^ Burden, Burton; Fairs, J. Douglas; Reunolds, Albert C (јул 1981). Numerical Analysis [Нумеричка анализа] (на језику: енглески) (2nd изд.). Boston, MA, United States: Prindle, Weber & Schmidt. стр. 448—452. ISBN 0-87150-314-X. OCLC 1036752194. 
  23. ^ Evans, Gwynne A. (1995). Practical Numerical AnalysisНеопходна слободна регистрација [Практична нумеричка анализа] (на језику: енглески). Chichester: John Wiley & Sons. стр. 30—33. ISBN 0471955353. OCLC 1319419671. 
  24. ^ Demidovich, Boris Pavlovich; Maron, Isaak Abramovich (1981). Computational Mathematics [Рачунска математика] (на језику: енглески) (Third изд.). Moscow: MIR Publishers. стр. 460—478. ISBN 9780828507042. 
  25. ^ Kiusalaas, Jaan (март 2013). Numerical Methods in Engineering with Python 3 [Нумеричке методе у инжењерству са Пајтоном 3] (3rd изд.). New York: Cambridge University Press. стр. 175—176. ISBN 978-1-107-03385-6. 
  26. ^ Henrici, Peter (1974). Applied and Computational Complex Analysis [Примењена и рачунска комплексна анализа]. 1. Wiley. ISBN 9780471598923. 
  27. ^ Strang, Gilbert (јануар 1991). „A chaotic search for i [Хаотична потрага за i]. The College Mathematics Journal. 22 (1): 3—12. JSTOR 2686733. doi:10.2307/2686733. 
  28. ^ McMullen, Curt (1987). „Families of rational maps and iterative root-finding algorithms” [Фамилије рационалних мапа и итеративни алгоритми за проналажење корена] (PDF). Annals of Mathematics. Second Series. 125 (3): 467—493. JSTOR 1971408. doi:10.2307/1971408. 
  29. ^ Hubbard, John; Schleicher, Dierk; Sutherland, Scott (октобар 2001). „How to find all roots of complex polynomials by Newton's method”Неопходна новчана претплата [Како пронаћи све корене комплексних полинома Њутновим методом]. Inventiones Mathematicae. 146 (1): 1—33. Bibcode:2001InMat.146....1H. ISSN 0020-9910. S2CID 12603806. doi:10.1007/s002220100149. 
  30. ^ Yamamoto, Tetsuro (2001). „Historical Developments in Convergence Analysis for Newton's and Newton-like Methods” [Историјски развој у анализи конвергенције за Њутнове и Њутну сличне методе]. Ур.: Brezinski, C.; Wuytack, L. Numerical Analysis: Historical Developments in the 20th Century [Нумеричка анализа: Историјски развој у 20. веку]. North-Holland. стр. 241—263. ISBN 0-444-50617-9. 
  31. ^ Hamilton, Richard S. (1982). „The inverse function theorem of Nash and Moser” [Теорема о инверзној функцији Неша и Мозера]. Bulletin of the American Mathematical Society. New Series. 7 (1): 65—222. MR 0656198. Zbl 0499.58003. doi:10.1090/s0273-0979-1982-15004-2Слободан приступ. 
  32. ^ Gromov, Mikhael (1986). Partial differential relations [Парцијалне диференцијалне релације]. Ergebnisse der Mathematik und ihrer Grenzgebiete (3). 9. Berlin: Springer-Verlag. ISBN 3-540-12177-3. MR 0864505. doi:10.1007/978-3-662-02267-2. 
  33. ^ Chebyshev, Pafnutii L'vovich; Bernshtein, Sergei Natanovich (1947). Polnoe sobranie sochinenii [Комплетна сабрана дела]. Izd-vo Akademii nauk SSSR. 
  34. ^ Ahmadi, Amir Ali; Chaudhry, Abraar; Zhang, Jeffrey (2024). „Higher-order Newton methods with polynomial work per iteration” [Њутнови методи вишег реда са полиномским радом по итерацији]. Advances in Mathematics (на језику: енглески). 452: 109808. arXiv:2311.06374Слободан приступ. doi:10.1016/j.aim.2024.109808. 
  35. ^ Hartnett, Kevin (2025-03-24). „Three Hundred Years Later, a Tool from Isaac Newton Gets an Update” [Триста година касније, алат Исака Њутна добија надоградњу]. Quanta Magazine (на језику: енглески). Приступљено 2025-04-03. 
  36. ^ Rajković, Predrag M.; Stanković, Miomir S.; Marinković, Slađana D. (2002). „Mean value theorems in $q$-calculus” [Теореме о средњој вредности у $q$-рачуну]. Matematicki Vesnik. 54 (3–4): 171—178. 
  37. ^ Press et al. 2007
  38. ^ Stoer, Josef; Bulirsch, Roland (1980). Introduction to numerical analysisНеопходна слободна регистрација [Увод у нумеричку анализу]. стр. 279. OCLC 1244842246. 
  39. ^ Zhang, Shanjie; Jin, Jianming (1996). Computation of Special Functions [Израчунавање специјалних функција]. Wiley. ISBN 9780471119630. 
  40. ^ Murota, Kazuo (1982). „Global Convergence of a Modified Newton Iteration for Algebraic Equations” [Глобална конвергенција модификоване Њутнове итерације за алгебарске једначине]. SIAM Journal on Numerical Analysis. 19 (4): 793—799. Bibcode:1982SJNA...19..793M. doi:10.1137/0719055. 
  41. ^ Moore, R. E. (1979). Methods and applications of interval analysis.  (Vol. 2). Siam.
  42. ^ Hansen, E. (1978). Interval forms of Newtons method. Computing, 20(2), 153–163.
  43. ^ Boyd, Stephen; Vandenberghe, Lieven (2004). Convex optimization [Конвексна оптимизација]. Cambridge: Cambridge University Press. ISBN 0-521-83378-7. MR 2061575. Zbl 1058.90049. doi:10.1017/CBO9780511804441. 

Литература

[уреди | уреди извор]

Спољашње везе

[уреди | уреди извор]