Alkuperäinen likiarvo. Tangenttimenetelmä: kuvaus. Sovellus neliöjuuren laskemiseen

Alkuperäinen likiarvo. Tangenttimenetelmä: kuvaus. Sovellus neliöjuuren laskemiseen

Sama kuin approksimaatio. Termiä P. käytetään joskus siinä mielessä, että kohde tuodaan lähemmäksi (esimerkiksi alkukirjain P.) ... Matemaattinen tietosanakirja

Newtonin menetelmä- Newtonin menetelmä, Newtonin algoritmi (tunnetaan myös tangenttimenetelmänä) on iteratiivinen numeerinen menetelmä tietyn funktion juuren (nollan) löytämiseksi. Ensimmäisenä menetelmää ehdotti englantilainen fyysikko, matemaatikko ja tähtitieteilijä Isaac Newton... ... Wikipedia

Yksi tangenttimenetelmä

Gauss-Newtonin menetelmä- Newtonin menetelmä (tunnetaan myös tangenttimenetelmänä) on iteratiivinen numeerinen menetelmä tietyn funktion juuren (nollan) löytämiseksi. Menetelmän ehdotti ensimmäisenä englantilainen fyysikko, matemaatikko ja tähtitieteilijä Isaac Newton (1643 1727) nimellä ... ... Wikipedia

Newton-Raphsonin menetelmä- Newtonin menetelmä (tunnetaan myös tangenttimenetelmänä) on iteratiivinen numeerinen menetelmä tietyn funktion juuren (nollan) löytämiseksi. Menetelmän ehdotti ensimmäisenä englantilainen fyysikko, matemaatikko ja tähtitieteilijä Isaac Newton (1643 1727) nimellä ... ... Wikipedia

Newton-Raphsonin menetelmä- Newtonin menetelmä (tunnetaan myös tangenttimenetelmänä) on iteratiivinen numeerinen menetelmä tietyn funktion juuren (nollan) löytämiseksi. Menetelmän ehdotti ensimmäisenä englantilainen fyysikko, matemaatikko ja tähtitieteilijä Isaac Newton (1643 1727) nimellä ... ... Wikipedia

Tangenttimenetelmä- Newtonin menetelmä (tunnetaan myös tangenttimenetelmänä) on iteratiivinen numeerinen menetelmä tietyn funktion juuren (nollan) löytämiseksi. Menetelmän ehdotti ensimmäisenä englantilainen fyysikko, matemaatikko ja tähtitieteilijä Isaac Newton (1643 1727) nimellä ... ... Wikipedia

Tangenttimenetelmä (Newtonin menetelmä)- Newtonin menetelmä (tunnetaan myös tangenttimenetelmänä) on iteratiivinen numeerinen menetelmä tietyn funktion juuren (nollan) löytämiseksi. Menetelmän ehdotti ensimmäisenä englantilainen fyysikko, matemaatikko ja tähtitieteilijä Isaac Newton (1643 1727) nimellä ... ... Wikipedia

Tangenttimenetelmä- Newtonin menetelmä (tunnetaan myös tangenttimenetelmänä) on iteratiivinen numeerinen menetelmä tietyn funktion juuren (nollan) löytämiseksi. Menetelmän ehdotti ensimmäisenä englantilainen fyysikko, matemaatikko ja tähtitieteilijä Isaac Newton (1643 1727) nimellä ... ... Wikipedia

Yhtälöiden numeerinen ratkaisu- ja niiden järjestelmät koostuvat yhtälön tai yhtälöjärjestelmän juuren tai juurien likimääräisestä määrityksestä, ja niitä käytetään tapauksissa, joissa tarkan arvon laskeminen on mahdotonta tai erittäin työlästä. Sisältö 1 Tehtäväselostus 2 Numeeriset menetelmät ... Wikipedia

Peräkkäinen approksimaatiomenetelmä- menetelmä matemaattisten ongelmien ratkaisemiseksi käyttämällä approksimaatiosarjaa, joka konvergoi ratkaisuun ja muodostetaan rekursiivisesti (eli jokainen uusi approksimaatio lasketaan edellisen perusteella; alkuperäinen approksimaatio valitaan ... ... Suuri Neuvostoliiton tietosanakirja

Newtonin menetelmä (tangentit) juurien löytämiseksi

Tämä on keksitty iteratiivinen menetelmä Isaac Newton(Isaak Newton) noin 1664. Tätä menetelmää kutsutaan kuitenkin joskus Newton-Raphson-menetelmäksi, koska Raphson keksi saman algoritmin useita vuosia myöhemmin kuin Newton, mutta hänen artikkelinsa julkaistiin paljon aikaisemmin.

Tehtävä on seuraava. Kun yhtälö:

Tämä yhtälö on ratkaistava, tai tarkemmin sanottuna, löydettävä yksi sen juurista (olettaen, että juuri on olemassa). Oletetaan, että se on jatkuva ja vaihteluvälillä.

Algoritmi

Algoritmin syöttöparametri on funktion lisäksi myös alkuperäinen likiarvo- jotkut , joista algoritmi alkaa edetä.

Lasketaan jo , lasketaan se seuraavasti. Piirretään tangentti funktion kuvaajalle pisteessä , ja etsitään tämän tangentin ja abskissa-akselin leikkauspiste. asetetaan se yhtä suureksi kuin löydetty piste ja toistetaan koko prosessi alusta.

Seuraava kaava on helppo saada:

On intuitiivisesti selvää, että jos toiminto on tarpeeksi "hyvä" (sileä) ja sijaitsee riittävän lähellä juuria, se on vielä lähempänä haluttua juuria.

Lähentymisnopeus on neliöllinen, mikä suhteellisesti tarkoittaa, että tarkkojen numeroiden määrä likimääräisessä arvossa kaksinkertaistuu jokaisella iteraatiolla.

Sovellus neliöjuuren laskemiseen

Tarkastellaan Newtonin menetelmää neliöjuuren laskennan esimerkillä.

Jos korvaamme , niin lausekkeen yksinkertaistamisen jälkeen saamme:

Ensimmäinen tyypillinen versio ongelmasta on, kun annetaan murtoluku ja sinun on laskettava sen juuri tietyllä tarkkuudella:

kaksinkertainen n; cin >> n; const double EPS = 1E-15 ; kaksinkertainen x = 1; for (;; ) ( double nx = (x + n / x) / 2 ; if (abs (x - nx)< EPS) break ; x = nx; } printf ("%.15lf" , x) ;

Toinen yleinen versio ongelmasta on, kun sinun on laskettava kokonaisluvun juuri (etsi tietylle juuri suurin sellainen, että ). Tässä joudutaan hieman muuttamaan algoritmin pysäytysehtoa, koska voi käydä niin, että se alkaa "hyppäämään" lähelle vastausta. Siksi lisäämme ehdon, että jos arvo edellisessä vaiheessa laski, mutta nykyisessä vaiheessa yrittää nostaa, niin algoritmi on pysäytettävä.

int n; cin >> n; int x = 1; bool vähentynyt = false ; for (;; ) ( int nx = (x + n / x) >> 1 ; if (x == nx || nx > x && vähentynyt) tauko ; vähennetty = nx< x; x = nx; } cout << x;

Lopuksi esittelemme kolmannen vaihtoehdon - pitkän aritmeettisen tapauksen tapauksessa. Koska luku voi olla melko suuri, on järkevää kiinnittää huomiota alkuperäiseen likiarvoon. On selvää, että mitä lähempänä juurta se on, sitä nopeammin tulos saavutetaan. On melko yksinkertaista ja tehokasta ottaa luku alustavaksi likiarvoksi, jossa on luvun bittien määrä. Tässä on Java-koodi, joka osoittaa tämän vaihtoehdon:

BigInteger n; // syöttää tiedot Isokokonaisluku a = Isokokonaisluku.ONE.siirtoVasen(n.bitPituus()/2); boolean p_dec = false ; for (;; ) ( BigInteger b = n.jakaa (a) .lisää (a) .shiftRight (1 ) ; if (a.vertaaTo (b) == 0 || a.vertaaTo (b)< 0 && p_dec) break ; p_dec = a.compareTo (b) >0; a = b; )

Esimerkiksi tämä koodin versio toimii millisekunnissa olevan luvun, mutta jos poistamme parannetun alkuperäisen likiarvon valinnan (aloita vain merkillä ), se suoritetaan noin millisekunnissa.

Olkoon yhtälön f(x)=0 juuri janalla erotettu ensimmäisellä ja toisella derivaatalla f’(x) ja f""(x) ovat jatkuvia ja vakiomerkkisiä xÎ:lle.

Olkoon juuren tarkentamisen jossain vaiheessa seuraava juuren x n approksimaatio saadaan (valittu) . Oletetaan sitten, että seuraava approksimaatio saadaan korjauksella h n , johtaa juuren tarkaan arvoon

x = xn + hn. (1.2.3-6)

Laskenta h n pieni arvo, edustamme f(х n + h n) Taylor-sarjan muodossa, rajoittuen lineaarisiin termeihin

f(x n + h n) »f(x n) + h n f’(x n). (1.2.3-7)

Ottaen huomioon, että f(x) = f(x n + h n) = 0, saadaan f(x n) + h n f ’(x n) » 0.

Tästä syystä h n » - f(x n)/ f’(x n). Korvataan arvo h n in (1.2.3-6) ja juuren tarkan arvon sijaan x saamme toisen likiarvon

Kaavan (1.2.3-8) avulla voimme saada sarjan approksimaatioita x 1, x 2, x 3 ..., joka tietyissä olosuhteissa konvergoi juuren täsmälliseen arvoon x, tuo on

Newtonin menetelmän geometrinen tulkinta on seuraava
(Kuva 1.2.3-6). Otetaan janan b oikea pää alkuperäiseksi approksimaatioksi x 0 ja muodostetaan tangentti vastaavaan pisteeseen B 0 funktion y = f(x) kuvaajalle. Tangentin ja x-akselin leikkauspiste otetaan uudeksi, tarkemmaksi approksimaatioksi x 1. Tämän menettelyn toistaminen monta kertaa antaa meille mahdollisuuden saada sarjojen likiarvot x 0, x 1, x 2 , . . ., joka pyrkii juuren tarkaan arvoon x.

Newtonin menetelmän laskentakaava (1.2.3-8) saadaan geometrisesta konstruktiosta. Siis suorakulmaisessa kolmiossa x 0 B 0 x 1 jalka
x 0 x 1 = x 0 V 0 /tga. Ottaen huomioon, että piste B 0 on funktion kuvaajassa f(x), ja hypotenuusan muodostaa graafin tangentti f(x) pisteessä B 0, saamme

(1.2.3-9)

(1.2.3-10)

Tämä kaava on sama kuin (1.2.3-8) n:nnelle approksimaatiolle.

Kuvasta 1.2.3-6 käy selvästi ilmi, että pisteen a valinta alkuperäiseksi approksimaatioksi voi johtaa siihen, että seuraava approksimaatio x 1 on sen segmentin ulkopuolella, josta juuri erotetaan x. Tässä tapauksessa prosessin lähentymistä ei taata. Alkuapproksimaatio valitaan yleensä seuraavan säännön mukaisesti: alkulikiarvoksi tulee ottaa piste x 0 О, jossa f(x 0)×f''(x 0)>0 , eli funktion ja sen toisen derivaatan etumerkit täsmäävät.

Newtonin menetelmän konvergenssin ehdot on muotoiltu seuraavassa lauseessa.

Jos yhtälön juuri erotetaan segmentillä, ja f’(x 0) ja f’’(x) eroavat nollasta ja säilyttävät merkkinsä, kun, niin jos valitsemme tällaisen pisteen alkuperäiseksi approksimaatioksi x 0 О , Mitä f(x 0).f¢¢(x 0)>0 , sitten yhtälön juuri f(x) = 0 voidaan laskea millä tahansa tarkkuudella.

Newtonin menetelmän virhearvio määräytyy seuraavalla lausekkeella:

(1.2.3-11)

missä on pienin arvo klo

Korkein arvo klo

Laskentaprosessi pysähtyy, jos ,

missä on määritetty tarkkuus.

Lisäksi seuraavat lausekkeet voivat toimia ehtona tietyn tarkkuuden saavuttamiselle, kun juuria jalostetaan Newtonin menetelmällä:

Newton-menetelmän algoritmin kaavio on esitetty kuvassa. 1.2.3-7.

Alkuperäisen yhtälön f(x) vasen puoli ja sen derivaatta f’(x) algoritmissa on suunniteltu erillisiksi ohjelmistomoduuleiksi.

Riisi. 1.2.3-7. Newtonin menetelmän algoritmikaavio

Esimerkki 1.2.3-3. Tarkenna yhtälön x-ln(x+2) = 0 juuria Newtonin menetelmällä edellyttäen, että tämän yhtälön juuret erotetaan segmenteistä x 1 О[-1.9;-1.1] ja x 2 О [-0,9;2].

Ensimmäinen derivaatta f’(x) = 1 – 1/(x+2) säilyttää etumerkkinsä jokaisessa segmentissä:

f'(x)<0 при хÎ [-1.9; -1.1],

f’(x)>0 kohdassa xО [-0,9; 2].

Toinen derivaatta f"(x) = 1/(x+2) 2 > 0 mille tahansa x:lle.

Näin ollen konvergenssiehdot täyttyvät. Koska f""(x)>0 koko sallittujen arvojen alueella, niin alkuperäisen approksimation juuren selventämiseksi x 1 valitse x 0 = -1,9 (koska f(-1,9)×f”(-1,9)>0). Saamme sarjan likiarvoja:

Jatkamalla laskelmia, saamme seuraavan neljän ensimmäisen approksimaatiosarjan: -1,9; –1,8552, -1,8421; -1,8414 . Funktion f(x) arvo pisteessä x=-1,8414 on yhtä suuri kuin f(-1,8414)=-0,00003 .

Selventämään juuren x 2 О[-0.9;2] aloituslikiarvoksi valitaan 0 =2 (f(2)×f”(2)>0). Perustuen x 0 = 2, saamme sarjan approksimaatioita: 2.0;1.1817; 1,1462; 1,1461. Funktion f(x) arvo pisteessä x=1.1461 on yhtä suuri kuin f(1.1461)= -0.00006.

Newtonin menetelmällä on korkea konvergenssinopeus, mutta jokaisessa vaiheessa se edellyttää funktion arvon lisäksi myös sen derivaatan laskemista.

Sointumenetelmä

Sointumenetelmän geometrinen tulkinta on seuraava
(Kuva 1.2.3-8).

Piirretään jana pisteiden A ja B kautta. Seuraava approksimaatio x 1 on jänteen ja 0x-akselin leikkauspisteen abskissa. Muodostetaan suoran janan yhtälö:

Asetetaan y=0 ja etsitään arvo x=x 1 (seuraava approksimaatio):

Toistetaan laskentaprosessi saadaksesi seuraavan likiarvon juureen - x 2 :

Meidän tapauksessamme (kuva 1.2.11) ja sointumenetelmän laskentakaava näyttää tältä

Tämä kaava pätee, kun piste b on otettu kiinteäksi pisteeksi ja piste a toimii alkuperäisenä approksimaationa.

Tarkastellaan toista tapausta (kuva 1.2.3-9), jolloin .

Tämän tapauksen suorayhtälöllä on muoto

Seuraava likiarvo x 1, kun y = 0

Sitten sointumenetelmän toistuva kaava tässä tapauksessa on muoto

On huomattava, että sointumenetelmässä kiinteä piste valitaan sen janan loppupääksi, jolle ehto f (x)∙f¢¢ (x)>0 täyttyy.

Jos siis piste a otetaan kiinteäksi pisteeksi , silloin x 0 = b toimii alkuperäisenä approksimaationa ja päinvastoin.

Riittävät olosuhteet, jotka varmistavat yhtälön f(x) = 0 juuren laskemisen sointukaavalla, ovat samat kuin tangenttimenetelmällä (Newtonin menetelmä), vain alkuperäisen approksimoinnin sijaan valitaan kiinteä piste. Sointumenetelmä on muunnos Newtonin menetelmästä. Erona on se, että Newtonin menetelmässä seuraava approksimaatio on tangentin leikkauspiste 0X-akselin kanssa, ja jännemenetelmässä - jänteen leikkauspiste 0X-akselin kanssa - approksimaatiot konvergoivat juureen eri puolilta. .

Sointumenetelmän virhearvio saadaan lausekkeesta

(1.2.3-15)

Edellytys iterointiprosessin lopettamiselle sointumenetelmällä

(1.2.3-16)

Tapauksessa M1<2m 1 , то для оценки погрешности метода может быть использована формула | x n -x n -1 |£e.

Esimerkki 1.2.3-4. Selvitä yhtälön juuri e x – 3x = 0, erotettuna segmentillä tarkkuudella 10 -4.

Tarkastellaan konvergenssiehtoa:

Kiinteäksi pisteeksi tulee siis valita a=0 ja alkulikiarvoksi x 0 =1, koska f(0)=1>0 ja f(0)*f"(0)>0.

Funktion minimoimisen ongelmassa alkuapproksimaation onnistunut valinta on ensiarvoisen tärkeää, ja on tietysti mahdotonta keksiä yleistä sääntöä, joka olisi tyydyttävä kaikissa tapauksissa, eli kaikille mahdollisille epälineaarisille funktioille. Joka kerta sinun on etsittävä oma ratkaisusi. Alla ehdotamme joukon menetelmiä karkeiden alkuapproksimaatioiden löytämiseksi, jotka käytännössä voivat toimia lähtökohtana etsittäessä tyydyttäviä approksimaatioita tietystä ongelmasta.

9.6.1. Verkkohaku. Tämä menetelmä on erityisen tehokas pienellä määrällä todellisia epälineaarisia parametreja. Usein funktiot suunnitellaan siten, että kun joidenkin parametrien arvot (jota kutsumme epälineaariseksi) ovat kiinteät, loput parametrit muuttuvat lineaariseksi.

Kun on sitten määritetty epälineaaristen parametrien ala- ja ylärajat, on tietyllä askeleella mahdollista luetella vaihtoehdot näiden epälineaaristen parametrien itse arvojen ruudukossa ja tunnistaa lineaarinen regressio, joka johtaa neliöiden vähimmäissummaan. .

Harkitse esimerkkinä funktiota

Tässä todellinen epälineaarinen parametri on . Sanotaan, että se tiedetään. Olkoon h parametrin askel. Lasketaan lineaariset regressiot

josta löydämme kunkin niistä neliöjen vähimmäissumman. Pienin niistä vastaa optimaalista alkuperäistä approksimaatiota. Periaatteessa askel, josta ruudukon "tiheys" riippuu, voi vaihdella, joten h:n arvoa pienentämällä parametriarvot voidaan löytää millä tahansa tarkkuudella.

9.6.2. Mallin muunnos.

Joskus malli voidaan pienentää jollain muunnolla lineaariseksi tai todellisten epälineaaristen parametrien määrää voidaan vähentää (katso kohta 6.2.3). Osoitetaan, kuinka tämä voidaan saavuttaa käyttämällä esimerkkiä logistisesta käyrästä

Suorittamalla käänteinen muunnos vastaaville regressioyhtälöille saadaan

Merkitsemällä päästään uuteen funktioon, jonka lineaaristen parametrien määrä on kasvanut yhdestä kahteen. Uuden mallin parametrin arvio löytyy esimerkiksi edellisellä menetelmällä.

Tässä on aiheellista tehdä seuraava huomautus regressiomallien muunnoksista. On syytä muistaa, että virhe, joka oli additiivinen alkuperäisessä yhtälössä, ei yleisesti ottaen ole enää additiivinen muunnoksen jälkeen.

Käyttämällä Taylor-sarjan laajennusta ja merkitsemällä muunnoksia saamme laiminlyömällä tilausehdot

Seuraa, että

Viimeinen yhtälö voidaan ottaa pohjaksi ongelman analysointiin muunnetulla mallilla.

9.6.3. Näytteen jakaminen osanäytteisiin.

Löytääksesi alkuperäisen likiarvon, voit jakaa koko näytteen osaotoksiin (suunnilleen yhtä suurilla tilavuuksilla), jossa on tuntemattomien parametrien lukumäärä. Jokaiselle osanäytteelle saadaan keskiarvot yli y:n ja yli X, jotka merkitsemme vastaavasti m. Ratkaistaan ​​epälineaarinen yhtälöjärjestelmä

Ratkaisu tähän järjestelmään on parametrien alkuperäinen approksimaatio. Ilmeisesti, jotta tämä menetelmä "toimiisi", on välttämätöntä, että tämä epälineaarinen yhtälöjärjestelmä voidaan ratkaista melko helposti, esimerkiksi analyyttisesti.

9.6.4. Taylor-sarjan laajennus riippumattomissa muuttujissa.

Neliöiden summan iteratiivisen minimoinnin perustana on Taylor-sarjan regressiofunktion laajentaminen parametrien lineaarisiin termeihin. Karkean alkuperäisen approksimation löytämiseksi on joskus hyödyllistää laajentamalla se Taylor-sarjaksi riippumattomissa muuttujissa. Yksinkertaisuuden vuoksi oletetaan, että se on yksiulotteinen. Olkoon keskiarvo, sitten likimääräinen

Merkitsemme , jolloin pääsemme lineaariseen malliin

Olkoon tämän lineaarisen regression parametrien pienimmän neliösumman arviot. Alkuarvioinneiksi otamme epälineaarisen yhtälöjärjestelmän ratkaisun suhteessa

Kaikki ihmiset luonnostaan ​​pyrkivät tietoon. (Aristoteles. Metafysiikka)

Numeeriset menetelmät: epälineaaristen yhtälöiden ratkaiseminen

Yhtälöiden ratkaisuongelmia tulee käytännössä jatkuvasti esille, esimerkiksi taloustieteessä yritystä kehitettäessä halutaan tietää milloin voitto saavuttaa tietyn arvon, lääketieteessä huumeiden vaikutuksia tutkiessa on tärkeää tietää, milloin keskittyminen aine saavuttaa tietyn tason jne.

Optimointiongelmissa on usein tarpeen määrittää pisteet, joissa funktion derivaatasta tulee 0, mikä on välttämätön ehto paikallinenääripää.

Tilastoissa arvioita laadittaessa pienimmän neliösumman tai suurimman todennäköisyyden menetelmällä on myös ratkaistava epälineaarisia yhtälöitä ja yhtälöjärjestelmiä.

Joten ratkaisujen löytämiseen liittyy kokonainen luokka ongelmia epälineaarinen yhtälöt, kuten yhtälöt tai yhtälöt jne.

Yksinkertaisimmassa tapauksessa meillä on funktio määritetty välille ( a, b) ja ottamalla tietyt arvot.

Jokainen arvo x tästä segmentistä voimme verrata numeroa, tämä on toimiva riippuvuus, matematiikan keskeinen käsite.

Meidän on löydettävä arvo, jolla näitä kutsutaan funktion juuriksi

Visuaalisesti meidän on määritettävä funktiokaavion leikkauspisteabskissa-akselin kanssa.

Puolitusmenetelmä

Yksinkertaisin tapa löytää yhtälön juuret on puolitusmenetelmä tai kaksijakoisuus.

Tämä menetelmä on intuitiivinen ja jokainen toimisi samalla tavalla ongelmaa ratkaiseessaan.

Algoritmi on seuraava.

Oletetaan, että löydämme kaksi pistettä ja Sellainen, että heillä on eri merkkejä, niin näiden pisteiden välissä on ainakin yksi funktion juuri.

Jaetaan segmentti kahtia ja syötetään sisään keskiverto piste .

Sitten joko , tai .

Jätetään se puolet segmentistä, jonka päissä olevilla arvoilla on eri etumerkit. Nyt jaetaan tämä segmentti jälleen kahtia ja jätetään se osa, jonka rajalle funktiolla on erilaiset merkit jne. vaaditun tarkkuuden saavuttamiseksi.

Ilmeisesti kavennetaan asteittain aluetta, jolla funktion juuri sijaitsee, ja siksi määritämme sen tietyllä tarkkuudella.

Huomaa, että kuvattu algoritmi soveltuu kaikille jatkuville funktioille.

Puolitusmenetelmän etuja ovat sen korkea luotettavuus ja yksinkertaisuus.

Menetelmän haittana on se, että ennen kuin aloitat sen käytön, sinun on löydettävä kaksi pistettä, joissa funktioarvoilla on eri etumerkit. On selvää, että menetelmää ei voida soveltaa parillisen monikertaisuuden juurille, eikä sitä voida myöskään yleistää monimutkaisten juurien tapaukseen ja yhtälöjärjestelmiin.

Menetelmän konvergenssijärjestys on lineaarinen, jokaisessa vaiheessa tarkkuus kaksinkertaistuu; mitä enemmän iteraatioita tehdään, sitä tarkemmin juuri määritetään.

Newtonin menetelmä: teoreettiset perusteet

Newtonin klassinen menetelmä tai tangentit on, että jos on jokin approksimaatio yhtälön juureen , niin seuraava approksimaatio määritellään pisteeseen piirretyn funktion tangentin juureksi.

Funktion tangenttiyhtälö pisteessä on muotoa:

Tangenttiyhtälössä laitamme ja .

Sitten Newtonin menetelmän peräkkäisten laskelmien algoritmi on seuraava:

Tangenttimenetelmän konvergenssi on neliöllinen, konvergenssin kertaluku on 2.

Siten Newtonin tangenttimenetelmän konvergenssi on erittäin nopea.

Muista tämä upea tosiasia!

Menetelmä yleistetään monimutkaiseen tapaukseen ilman muutoksia.

Jos juuri on toisen tai suuremman monikertaisuuden juuri, konvergenssin kertaluku putoaa ja muuttuu lineaariseksi.

Harjoitus 1. Etsi tangenttimenetelmällä ratkaisu janan (0, 2) yhtälöön.

Harjoitus 2. Etsi tangenttimenetelmällä ratkaisu janan (1, 3) yhtälöön.

Newtonin menetelmän haittoja ovat sen paikallisuus, koska se on taatusti konvergoiva mielivaltaiselle aloitusapproksimaalille vain, jos ehto täyttyy kaikkialla , päinvastaisessa tilanteessa konvergenssi tapahtuu vain tietyllä juuren alueella.

Newtonin menetelmän haittana on tarve laskea derivaatat jokaisessa vaiheessa.

Newtonin menetelmän visualisointi

Newtonin menetelmää (tangenttimenetelmää) käytetään, jos yhtälö f(x) = 0 on juuri ja seuraavat ehdot täyttyvät:

1) toiminto y= f(x) määritelty ja jatkuva osoitteessa ;

2) f(af(b) < 0 (funktio ottaa eri etumerkkien arvot segmentin päistä [ a; b]);

3) johdannaiset f"(x) Ja f""(x) säilytä merkki välissä [ a; b] (eli toiminto f(x) joko kasvaa tai laskee segmentillä [ a; b], samalla kun säilytetään kuperuuden suunta);

Menetelmän pääidea on seuraava: segmentillä [ a; b] tällainen numero on valittu x 0 , jossa f(x 0 ) on sama merkki kuin f"" (x 0 ), eli ehto täyttyy f(x 0 f"" (x) > 0 . Siten valitaan piste, jossa on abskissa x 0 , jossa käyrän tangentti y= f(x) segmentillä [ a; b] leikkaa akselin Härkä. Per piste x 0 Ensinnäkin on kätevää valita yksi segmentin päistä.

Tarkastellaan Newtonin menetelmää tietyllä esimerkillä.

Annetaan meille kasvava funktio y = f(x) =x 2-2, jatkuva segmentillä (0;2), ja jolla on f"(x) = 2 x > 0 Ja f "" (x) = 2 > 0 .

Piirustus1 . f(x) = x 2-2

Tangenttiyhtälöllä yleisessä muodossa on seuraava esitys:

y-y 0 = f" (x 0)·(x-x 0).

Meidän tapauksessamme: y-y 0 = 2x 0 · (x-x 0). Pisteelle x 0 valitsemme pisteen B1(b; f(b)) = (2,2). Piirrä funktiolle tangentti y = f(x) pisteessä B 1 ja merkitsee tangentin ja akselin leikkauspistettä Härkä piste x 1. Saamme ensimmäisen tangentin yhtälön: y-2 = 2.2(x-2), y = 4x-6.

Ox: x 1 =

Piirustus2. Ensimmäisen iteroinnin tulos

y=f(x) Härkä pisteen läpi x 1, ymmärrämme pointin B 2 =(1,5; 0,25). Piirrä funktiolle tangentti uudelleen y = f(x) pisteessä B 2 ja merkitsee tangentin ja akselin leikkauspistettä Härkä piste x 2.

Toisen tangentin yhtälö: y-0.25=2*1.5(x-1.5), y = 3 x - 4.25.

Tangentin ja akselin leikkauspiste Ox: x 2 =.

Piirustus3. Newtonin menetelmän toinen iteraatio

Sitten löydämme funktion leikkauspisteen y=f(x) ja kohtisuora, joka on piirretty akseliin nähden Härkä pisteen x 2 kautta saamme pisteen B 3 ja niin edelleen.

Piirustus4. Tangenttimenetelmän kolmas vaihe

Juuren ensimmäinen likiarvo määritetään kaavalla:

= 1.5.

Juuren toinen approksimaatio määritetään kaavalla:

=

Juuren kolmas approksimaatio määritetään kaavalla:

Täten , i Juuren th approksimaatio määritetään kaavalla:

Laskutoimituksia suoritetaan, kunnes vastauksessa tarvittavat desimaalit täsmäävät tai saavutetaan määritetty tarkkuus e - kunnes epäyhtälö täyttyy | xi- xi-1 | < e.

Meidän tapauksessamme verrataan kolmannessa vaiheessa saatua likiarvoa laskimella laskettuun todelliseen vastaukseen:

Kuva 5. 2:n juuri laskettuna laskimella

Kuten näet, jo kolmannessa vaiheessa saimme virheen, joka oli alle 0,000002.

Tällä tavalla voit laskea "neliöjuuren 2" arvon millä tahansa tarkkuudella. Tämän merkittävän menetelmän keksi Newton, ja sen avulla voit löytää erittäin monimutkaisten yhtälöiden juuret.

Newtonin menetelmä: sovellus C++:ssa

Tässä artikkelissa automatisoimme yhtälöiden juurten laskentaprosessin kirjoittamalla konsolisovelluksen C++:lla. Kehitämme sen Visual C++ 2010 Expressissä, tämä on ilmainen ja erittäin kätevä C++-kehitysympäristö.

Aloitetaan ensin Visual C++ 2010 Express. Ohjelman aloitusikkuna tulee näkyviin. Napsauta vasemmassa kulmassa "Luo projekti".

Riisi. 1. Visual C++ 2010 Express -kotisivu

Valitse näkyviin tulevasta valikosta "Win32 Console Application" ja kirjoita sovelluksen nimi "Newton_Method".

Riisi. 2. Luo projekti

// Newton.cpp-menetelmä: määrittää konsolisovelluksen aloituspisteen

#include "stdafx.h"

#sisältää

käyttäen nimiavaruutta std;

float f(double x) //palauttaa funktion arvon f(x) = x^2-2

float df(float x) //palauttaa derivaatan arvon

float d2f(float x) // toisen derivaatan arvo

int _tmain(int argc, _TCHAR* argv)

int exit = 0, i=0;//muuttujat exitille ja silmukalle

double x0,xn;//lasketut approksimaatiot juurelle

kaksinkertainen a, b, eps; // segmentin rajat ja vaadittu tarkkuus

cout<<"Please input \n=>";

cin>>a>>b; // syötä sen segmentin rajat, josta etsimme juuria

cout<<"\nPlease input epsilon\n=>";

cin>>eps; // syötä vaadittu laskentatarkkuus

if (a > b) // jos käyttäjä on sekoittanut segmentin rajat, vaihda ne

jos (f(a)*f(b)>0) // jos funktion etumerkit janan reunoilla ovat samat, niin tässä ei ole juuria

cout<<"\nError! No roots in this interval\n";

jos (f(a)*d2f(a)>0) x0 = a; // Valitse aloituspiste valitsemalla f(x0)*d2f(x0)>0 ?

xn = x0-f(x0)/df(x0); // harkitse ensimmäistä approksimaatiota

cout<<++i<<"-th iteration = "<

while(fabs(x0-xn) > eps) // jatkaa laskentaa, kunnes saavutamme vaaditun tarkkuuden

xn = x0-f(x0)/df(x0); // suoraan Newtonin kaava

cout<<++i<<"-th iteration = "<

cout<<"\nRoot = "<

cout<<"\nExit?=>";

) while (poistu!=1); // kunnes käyttäjä kirjoittaa exit = 1

Katsotaan kuinka se toimii. Napsauta vihreää kolmiota näytön vasemmassa yläkulmassa tai paina F5.

Jos tapahtuu käännösvirhe "Virhevirhe LNK1123: epäonnistuminen muuntamisessa COFF-tiedostoksi: tiedosto on virheellinen tai vahingoittunut", tämä voidaan korjata joko asentamalla ensimmäinen Service Pack 1 tai valitsemalla projektin asetuksista Properties -> Linker inkremental linking.

Riisi. 4. Projektin käännösvirheen ratkaiseminen

Etsimme funktion juuria f(x) =x2-2.

Ensin tarkistetaan sovelluksen suorituskyky "väärillä" syötetiedoilla. Segmentillä ei ole juuria, ohjelman pitäisi näyttää virheilmoitus.

Meillä on nyt sovellusikkuna:

Riisi. 5. Syöttötietojen syöttäminen

Esitetään janan 3 ja 5 rajat ja tarkkuus on 0,05. Ohjelma tuotti odotetusti virheilmoituksen, että tällä segmentillä ei ole juuria.

Riisi. 6. Virhe "Tällä segmentillä ei ole juuria!"

Emme aio vielä lähteä, joten entä viesti "Poistu?" syötä "0".

Tarkastetaan nyt sovellus oikeiden syöttötietojen avulla. Syötetään segmentti ja tarkkuus 0,0001.

Riisi. 7. Juuren laskenta vaaditulla tarkkuudella

Kuten näemme, vaadittu tarkkuus saavutettiin jo 4. iteraatiossa.

Poistu sovelluksesta kirjoittamalla "Poistu?" => 1.

Sekantti menetelmä

Derivaatan laskemisen välttämiseksi Newtonin menetelmää voidaan yksinkertaistaa korvaamalla derivaatta kahdesta edellisestä pisteestä lasketulla approksimaatiolla:

Iteratiivinen prosessi näyttää tältä:

Tämä on kaksivaiheinen iteratiivinen prosessi, koska se käyttää kahta edellistä löytääkseen seuraavan likiarvon.

Sekanttimenetelmän konvergenssijärjestys on pienempi kuin tangenttimenetelmän ja on yhtä suuri yhden juuren tapauksessa.

Tätä merkittävää määrää kutsutaan kultaiseksi suhteeksi:

Tarkistakaamme tämä, olettaen mukavuuden vuoksi, että .

Siten jopa korkeamman kertaluvun infinitesimaaleihin asti

Jäljelle jäävä termi hylätään, saadaan toistuvuusrelaatio, jonka ratkaisua haetaan luonnollisesti muodossa .

Vaihtamisen jälkeen meillä on: ja

Lähentymisen kannalta on välttämätöntä, että se on positiivinen, joten .

Koska derivaatan tuntemusta ei vaadita, voidaan samalla laskennamäärällä sekanttimenetelmässä (pienemmästä konvergenssista huolimatta) saavuttaa suurempi tarkkuus kuin tangenttimenetelmässä.

Huomaa, että juuren lähellä sinun on jaettava pienellä numerolla, mikä johtaa tarkkuuden menettämiseen (etenkin useiden juurien tapauksessa), joten kun olet valinnut suhteellisen pienen luvun, suorita laskelmat ennen suorittamista ja jatka niitä, kunnes viereisten approksimaatioiden välisen eron moduuli pienenee.

Heti kun kasvu alkaa, laskelmat lopetetaan eikä viimeistä iteraatiota käytetä.

Tätä iteraatioiden lopun määrittämismenettelyä kutsutaan tekniikaksi Garvika.

Paraabeli menetelmä

Tarkastellaan kolmivaiheista menetelmää, jossa approksimaatio määritetään kolmella edellisellä pisteellä , ja .

Tätä varten korvaamme sekanttimenetelmän tapaan funktion interpolaatioparaabelilla, joka kulkee pisteiden läpi ja .

Newtonin muodossa se näyttää tältä:

Piste määritellään yhdeksi tämän polynomin juurista, joka on itseisarvoltaan lähempänä pistettä.

Paraabelimenetelmän konvergenssiaste on korkeampi kuin sekanttimenetelmän, mutta pienempi kuin Newtonin menetelmän.

Tärkeä ero aiemmin tarkasteltuihin menetelmiin verrattuna on se, että vaikka todellinen reaaliksi ja lähtöapproksimaatiot valitaan todellisiksi, paraabelimenetelmä voi johtaa alkuperäisen ongelman monimutkaiseen juureen.

Tämä menetelmä on erittäin kätevä löytää korkean asteen polynomien juuret.

Yksinkertainen iterointimenetelmä

Yhtälöiden ratkaisujen löytämisen ongelma voidaan muotoilla juurien löytämisen ongelmaksi: , tai kiinteän pisteen löytämisen ongelmaksi.

Antaa ja - pakkaus: (erityisesti se, että - pakkaus, kuten on helppo nähdä, tarkoittaa sitä).

Banachin lauseen mukaan on olemassa ainutlaatuinen kiinteä piste

Se voidaan löytää yksinkertaisen iteratiivisen proseduurin rajana

jossa alkuperäinen approksimaatio on mielivaltainen piste välissä.

Jos funktio on differentioituva, kätevä pakkauskriteeri on numero . Todellakin, Lagrangen lauseen mukaan

Siten, jos derivaatta on pienempi kuin yksi, se on pakkaus.

Kunto on olennainen, koska jos esimerkiksi on , niin kiinteää pistettä ei ole, vaikka derivaatta on nolla. Konvergenssin nopeus riippuu arvosta . Mitä pienempi, sitä nopeampi konvergenssi.

näkymät