Tangentinis metodas: aprašymas. Niutono metodas (liestinės) ieškant šaknų Skaitiniai metodai: netiesinių lygčių sprendimas

Visi žmonės iš prigimties siekia žinių. (Aristotelis. Metafizika)

Skaitiniai metodai: netiesinių lygčių sprendimas

Praktikoje nuolat iškyla lygčių sprendimo problemos, pavyzdžiui, ekonomikoje, plėtojant verslą norisi žinoti, kada pelnas pasieks tam tikrą vertę, medicinoje, tiriant vaistų poveikį svarbu žinoti kada koncentracija medžiagos kiekis pasieks tam tikrą lygį ir pan.

Optimizavimo uždaviniuose dažnai reikia nustatyti taškus, kuriuose funkcijos išvestinė tampa 0, o tai yra būtina sąlyga vietinis ekstremumas.

Statistikoje konstruojant įverčius naudojant metodą mažiausių kvadratų arba metodas didžiausia tikimybė Taip pat turite išspręsti netiesines lygtis ir lygčių sistemas.

Taigi iškyla visa klasė problemų, susijusių su sprendimų paieška netiesinis lygtys, pvz., lygtys arba lygtys ir kt.

Paprasčiausiu atveju turime funkciją, apibrėžtą intervale ( a, b ) ir imant tam tikras reikšmes.

Kiekviena vertė x iš šio segmento galime palyginti skaičių, tai yra funkcinis priklausomybė, pagrindinė matematikos sąvoka.

Turime rasti reikšmę, kuriai esant jos vadinamos funkcijos šaknimis

Vizualiai turime nustatyti funkcijos grafiko susikirtimo taškąsu abscisių ašimi.

Perpus sumažinimo metodas

Paprasčiausias būdas rasti lygties šaknis yra perpus sumažinimo metodas arba dichotomija.

Šis metodas yra intuityvus ir kiekvienas spręsdamas problemą elgtųsi panašiai.

Algoritmas yra toks.

Tarkime, kad randame du taškus ir , Taip, kad jie turi skirtingaženklai, tada tarp šių taškų yra bent viena funkcijos šaknis.

Padalinkime segmentą per pusę ir įveskime vidutinis taškas .

Tada arba , arba .

Palikime tą pusę segmento, kurio galuose yra reikšmės skirtingi ženklai. Dabar šį segmentą vėl padalijame per pusę ir paliekame tą dalį, kurios ribose funkcija turi skirtingus ženklus ir pan., kad pasiektume reikiamą tikslumą.

Akivaizdu, kad palaipsniui susiaurinsime sritį, kurioje yra funkcijos šaknis, todėl ją nustatysime tam tikru tikslumu.

Atkreipkite dėmesį, kad aprašytas algoritmas taikomas bet kuriai nuolatinei funkcijai.

Perpus sumažinimo metodo pranašumai yra didelis patikimumas ir paprastumas.

Metodo trūkumas yra tai, kad prieš pradėdami jį naudoti, turite rasti du taškus, kuriuose funkcijos reikšmės turi skirtingus ženklus. Akivaizdu, kad metodas netaikomas tolygioms šaknims ir taip pat negali būti apibendrintas šiuo atveju sudėtingos šaknys ir lygčių sistemos.

Metodo konvergencijos tvarka yra tiesinė, kiekviename žingsnyje tikslumas padvigubėja, tuo tiksliau nustatoma šaknis.

Niutono metodas: teoriniai pagrindai

Klasikinis Niutono metodas arba liestinės yra tai, kad jei yra lygties šaknies aproksimacija , tada kita aproksimacija apibrėžiama kaip taške nubrėžtos funkcijos liestinės šaknis.

Funkcijos liestinės lygtis taške yra tokia:

Į liestinės lygtį įdedame ir .

Tada Niutono metodo nuoseklių skaičiavimų algoritmas yra toks:

Tangentinio metodo konvergencija yra kvadratinė, konvergencijos tvarka yra 2.

Taigi Niutono tangentinio metodo konvergencija yra labai greita.

Prisiminkite šį nuostabų faktą!

Be jokių pakeitimų metodas apibendrintas sudėtingam atvejui.

Jei šaknis yra antrojo ar didesnio dauginio šaknis, tada konvergencijos tvarka krenta ir tampa tiesinė.

1 pratimas. Naudodamiesi liestinės metodu, raskite lygties sprendimą atkarpoje (0, 2).

2 pratimas. Naudodami liestinės metodą atkarpoje (1, 3) raskite lygties sprendimą.

Niutono metodo trūkumai apima jo lokalumą, nes garantuojama, kad jis suartės savavališkam pradiniam aproksimavimui tik tada, kai visur tenkinama sąlyga , priešingoje situacijoje konvergencija vyksta tik tam tikroje šaknies kaimynystėje.

Niutono metodo trūkumas yra būtinybė skaičiuoti išvestines kiekviename žingsnyje.

Niutono metodo vizualizacija

Niutono metodas (tangentinis metodas) naudojamas, jei lygtis f(x) = 0 turi šaknį ir tenkinamos šios sąlygos:

1) funkcija y= f(x) apibrėžtas ir tęstinis ;

2) f(af(b) < 0 (funkcija paima skirtingų ženklų reikšmes segmento galuose [ a; b]);

3) dariniai f"(x) Ir f""(x) išsaugoti ženklą ant intervalo [ a; b] (t. y. funkcija f(x) segmente padidėja arba sumažėja [ a; b], išlaikant išgaubimo kryptį);

Pagrindinė metodo idėja yra tokia: segmente [ a; b] pasirenkamas toks skaičius x 0 , prie kurio f(x 0 ) turi tą patį ženklą kaip f"" (x 0 ), y., sąlyga tenkinama f(x 0 f"" (x) > 0 . Taigi pasirenkamas taškas su abscisėmis x 0 , kuriame kreivės liestinė y= f(x) segmente [ a; b] kerta ašį Jautis. Už tašką x 0 Pirma, patogu pasirinkti vieną iš segmento galų.

Panagrinėkime Niutono metodą naudodami konkretų pavyzdį.

Suteikime mums didėjančią funkciją y = f(x) =x 2-2, ištisinis atkarpoje (0;2), ir turintis f"(x) = 2 x > 0 Ir f "" (x) = 2 > 0 .

Piešimas1 . f(x) =x 2 -2

Tangento lygtis in bendras vaizdas turi idėją:

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

Mūsų atveju: y-y 0 =2x 0 · (x-x 0). Taškui x 0 pasirenkame tašką B 1 (b; f (b)) = (2,2). Nubrėžkite funkcijos liestinę y = f(x) taške B 1 ir pažymime liestinės ir ašies susikirtimo tašką Jautis taškas x 1. Gauname pirmosios liestinės lygtį: y-2=2·2(x-2), y=4x-6.

Jautis: x 1 =

Piešimas2. Pirmosios iteracijos rezultatas

y=f(x) Jautis per tašką x 1, supratome esmę B 2 =(1,5; 0,25). Dar kartą nubrėžkite funkcijos liestinę y = f(x) taške B 2 ir pažymime liestinės ir ašies susikirtimo tašką Jautis taškas x 2.

Antrosios liestinės lygtis: y-0.25=2*1.5(x-1.5), y = 3 x - 4.25.

Liestinės ir ašies susikirtimo taškas Jautis: x 2 =.

Piešimas3. Antroji Niutono metodo iteracija

Tada randame funkcijos susikirtimo tašką y=f(x) ir ašiai nubrėžtą statmeną Jautis per tašką x 2 gauname tašką B 3 ir pan.

Piešimas4. Trečias liestinės metodo žingsnis

Pirmasis šaknies apytikslis nustatymas nustatomas pagal formulę:

= 1.5.

Antrasis šaknies aproksimavimas nustatomas pagal formulę:

=

Trečiasis šaknies aproksimavimas nustatomas pagal formulę:

Taigi , iŠaknies aproksimacija nustatoma pagal formulę:

Skaičiavimai atliekami tol, kol sutampa skaičiai po kablelio, kurių reikia atsakyme, arba pasiekiamas nurodytas tikslumas e – kol įvykdoma nelygybė | xi- xi-1 | < e.

Mūsų atveju palyginkime trečiajame žingsnyje gautą aproksimaciją su tikru skaičiuotuvu apskaičiuotu atsakymu:

5 pav. 2 šaknis, apskaičiuota skaičiuotuvu

Kaip matote, jau trečiame žingsnyje gavome mažesnę nei 0,000002 klaidą.

Tokiu būdu galite bet kokiu tikslumu apskaičiuoti „2 kvadratinės šaknies“ reikšmę. Šį nuostabų metodą išrado Niutonas ir jis leidžia labai surasti šaknis sudėtingos lygtys.

Niutono metodas: taikymas C++

Šiame straipsnyje mes automatizuosime lygčių šaknų skaičiavimo procesą, parašydami konsolės programą C++ kalba. Kursime jį Visual C++ 2010 Express, tai nemokama ir labai patogi C++ kūrimo aplinka.

Pirmiausia paleiskite „Visual C++ 2010 Express“. Pasirodys programos pradžios langas. Kairiajame kampe spustelėkite „Sukurti projektą“.

Ryžiai. 1. Pagrindinis puslapis Visual C++ 2010 Express

Pasirodžiusiame meniu pasirinkite „Win32 Console Application“ ir įveskite programos pavadinimą „Newton_Method“.

Ryžiai. 2. Sukurkite projektą

// Newton.cpp metodas: apibrėžia konsolės programos įėjimo tašką

#include "stdafx.h"

#įtraukti

naudojant vardų sritį std;

float f(double x) //pateikia funkcijos f(x) = x^2-2 reikšmę

float df(float x) //pateikia išvestinę reikšmę

float d2f(float x) // antrosios išvestinės reikšmė

int _tmain(int argc, _TCHAR* argv)

int exit = 0, i=0;//išėjimo ir ciklo kintamieji

dvigubas x0,xn;//apskaičiuotos šaknies aproksimacijos

dvigubas a, b, eps // atkarpos ribos ir reikalingas tikslumas

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

cin>>a>>b; // įveskite segmento, kuriame ieškosime šaknies, ribas

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

cin>>eps; // įveskite reikiamo tikslumo skaičiavimai

if (a > b) // jei vartotojas sumaišė segmento ribas, pakeiskite jas

if (f(a)*f(b)>0) // jei funkcijos ženklai atkarpos kraštuose yra vienodi, tai čia nėra šaknies

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

jei (f(a)*d2f(a)>0) x0 = a; // norėdami pasirinkti pradžios tašką, pažymėkite f(x0)*d2f(x0)>0 ?

xn = x0-f(x0)/df(x0); // apsvarstykite pirmąjį aproksimaciją

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

while(fabs(x0-xn) > eps) // toliau skaičiuos, kol pasieksime reikiamą tikslumą

xn = x0-f(x0)/df(x0); // tiesiogiai Niutono formulė

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

cout<<"\nRoot = "<

cout<<"\nExit?=>";

) while (išeiti!=1); // kol vartotojas įves exit = 1

Pažiūrėkime, kaip tai veikia. Spustelėkite žalią trikampį viršutiniame kairiajame ekrano kampe arba paspauskite F5.

Jei įvyksta kompiliavimo klaida „Klaida LNK1123: nepavyko konvertuoti į COFF: failas netinkamas arba sugadintas“, ją galima ištaisyti įdiegus pirmąjį 1 pakeitimų paketą arba projekto nustatymuose Ypatybės -> Linker išjungiant laipsnišką susiejimą.

Ryžiai. 4. Projekto kompiliavimo klaidos sprendimas

Ieškosime funkcijos šaknų f(x) =x2-2.

Pirmiausia patikrinkime, kaip programa veikia naudojant „neteisingus“ įvesties duomenis. Segmente nėra šaknų, mūsų programa turėtų parodyti klaidos pranešimą.

Dabar turime programos langą:

Ryžiai. 5. Įvesties duomenų įvedimas

Įveskime atkarpų 3 ir 5 ribas, kurių tikslumas yra 0,05. Programa, kaip turėtų, pateikė klaidos pranešimą, kad šiame segmente nėra šaknų.

Ryžiai. 6. Klaida „Šiame segmente nėra šaknų!

Mes dar nesiruošiame išvykti, o kaip dėl pranešimo „Išeiti? įveskite „0“.

Dabar patikrinkime programą naudodami teisingus įvesties duomenis. Įveskime segmentą ir tikslumą 0,0001.

Ryžiai. 7. Šaknies apskaičiavimas reikiamu tikslumu

Kaip matome, reikiamas tikslumas buvo pasiektas jau per 4 iteraciją.

Norėdami išeiti iš programos, įveskite "Išeiti?" => 1.

Sekantinis metodas

Kad nereikėtų skaičiuoti išvestinės, Niutono metodą galima supaprastinti, pakeičiant išvestinę apytikslę vertę, apskaičiuotą iš ankstesnių dviejų taškų:

Iteracinis procesas atrodo taip:

Tai dviejų etapų kartotinis procesas, nes jis naudoja ankstesnius du, kad surastų kitą aproksimaciją.

Sekantinio metodo konvergencijos tvarka yra mažesnė nei tangentinio metodo ir yra lygi vienos šaknies atveju.

Šis puikus dydis vadinamas auksiniu pjūviu:

Patikrinkime tai, patogumo dėlei darydami prielaidą, kad .

Taigi, iki aukštesnės eilės begalinių mažųjų

Atmetus likusį terminą, gauname pasikartojimo ryšį, kurio sprendimo natūraliai ieškoma formoje .

Po pakeitimo turime: ir

Konvergencijai būtina, kad ji būtų teigiama, todėl .

Kadangi išvestinės žinios nėra būtinos, taikant tą patį skaičiavimų skaičių sekantiniu metodu (nepaisant mažesnės konvergencijos eilės), galima pasiekti didesnį tikslumą nei naudojant tangentinį metodą.

Atkreipkite dėmesį, kad šalia šaknies reikia dalyti iš nedidelio skaičiaus, o tai praranda tikslumą (ypač kelių šaknų atveju), todėl pasirinkę palyginti nedidelį skaičių, prieš atlikdami atlikite skaičiavimus ir tęskite juos tol, kol gretimų aproksimacijų skirtumo modulis sumažės.

Kai tik prasideda augimas, skaičiavimai sustabdomi ir paskutinė iteracija nenaudojama.

Ši iteracijų pabaigos nustatymo procedūra vadinama metodu Garvika.

Parabolės metodas

Panagrinėkime trijų pakopų metodą, kai aproksimacija nustatoma pagal tris ankstesnius taškus ir .

Norėdami tai padaryti, funkciją, panašiai kaip sekantinis metodas, pakeičiame interpoliacijos parabole, einančia per taškus ir .

Niutono pavidalu tai atrodo taip:

Taškas apibrėžiamas kaip viena iš šio daugianario šaknų, kuri absoliučia verte yra arčiau taško.

Parabolės metodo konvergencijos tvarka yra didesnė nei sekantinio metodo, bet mažesnė nei Niutono metodo.

Svarbus skirtumas nuo anksčiau svarstytų metodų yra tai, kad net jei realus už realų ir pradinės aproksimacijos pasirenkamos kaip tikros, parabolės metodas gali sukelti sudėtingą pradinės problemos šaknį.

Šis metodas yra labai patogus ieškant aukšto laipsnio daugianario šaknis.

Paprastas iteracijos metodas

Lygčių sprendinių paieškos problemą galima suformuluoti kaip šaknų radimo problemą: , arba kaip fiksuoto taško radimo problemą.

Leiskite ir - suspaudimas: (ypač tai, kad - suspaudimas, kaip lengva suprasti, tai reiškia).

Pagal Banacho teoremą yra unikalus fiksuotas taškas

Tai galima rasti kaip paprastos kartotinės procedūros ribą

kur pradinė aproksimacija yra savavališkas intervalo taškas.

Jei funkcija yra diferencijuojama, patogus suspaudimo kriterijus yra skaičius . Iš tiesų, pagal Lagrange’o teoremą

Taigi, jei išvestinė yra mažesnė už vieną, tai yra suspaudimas.

Būklė yra esminis, nes jei, pavyzdžiui, on , tai fiksuoto taško nėra, nors išvestinė lygi nuliui. Konvergencijos greitis priklauso nuo reikšmės. Kuo mažesnis, tuo greitesnis konvergencija.

Tegul lygties f(x)=0 šaknis atskiriama atkarpoje , su pirmąja ir antrąja išvestinėmis f’(x) ir f""(x) yra ištisiniai ir pastovaus ženklo xÎ.

Tegul kažkuriame šaknies tobulinimo etape gaunamas kitas šaknies x n aproksimavimas (pasirinktas) . Tada tarkime, kad kita aproksimacija, gauta naudojant pataisą h n , veda prie tikslios šaknies vertės

x = xn + hn. (1.2.3–6)

Skaičiavimas h n maža reikšmė, mes atstovaujame f(х n + h n) Taylor serijos forma, apsiribodami tiesiniais terminais

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

Atsižvelgiant į tai, kad f(x) = f(x n + h n) = 0, gauname f(x n) + h n f ’(x n) » 0.

Taigi h n » - f(x n)/ f’(x n). Pakeiskime vertę h nį (1.2.3-6) ir vietoj tikslios šaknies reikšmės x gauname kitą aproksimaciją

Formulė (1.2.3-8) leidžia gauti aproksimacijų seką x 1, x 2, x 3 ..., kuri tam tikromis sąlygomis konverguoja į tikslią šaknies reikšmę x, tai yra

Geometrinė Niutono metodo interpretacija yra taip
(1.2.3-6 pav.). Paimkime dešinįjį atkarpos b galą kaip pradinį aproksimaciją x 0 ir funkcijos y = f(x) grafike atitinkamame taške B 0 sukursime liestinę. Liestinės ir x ašies susikirtimo taškas imamas kaip naujas, tikslesnis aproksimacija x 1. Kartodami šią procedūrą daug kartų, galime gauti aproksimacijų seką x 0, x 1, x 2 , . . ., kuri atitinka tikslią šaknies reikšmę x.

Niutono metodo skaičiavimo formulę (1.2.3-8) galima gauti iš geometrinės konstrukcijos. Taigi stačiakampiame trikampyje x 0 B 0 x 1 kojelė
x 0 x 1 = x 0 V 0 /tga. Atsižvelgiant į tai, kad taškas B 0 yra funkcijos grafike f(x), o hipotenuzą sudaro grafiko f(x) liestinė taške B 0, gauname

(1.2.3-9)

(1.2.3-10)

Ši formulė sutampa su (1.2.3-8) n-tajam aproksimavimui.

Iš 1.2.3-6 pav. aišku, kad pasirinkus tašką a kaip pradinį aproksimaciją, kita aproksimacija x 1 bus už atkarpos, nuo kurios atskirta šaknis. x. Šiuo atveju proceso konvergencija negarantuojama. Bendruoju atveju pradinis aproksimavimas pasirenkamas pagal tokią taisyklę: pradinė aproksimacija turi būti laikoma tašku x 0 О, kuriame f(x 0)×f''(x 0)>0 , tai yra, funkcijos ir jos antrosios išvestinės ženklai sutampa.

Niutono metodo konvergencijos sąlygos suformuluotos sekančioje teoremoje.

Jei atkarpoje atskirta lygties šaknis, ir f‘(x 0) ir f‘‘(x) skiriasi nuo nulio ir išlaiko savo ženklus, kai, tada, jei tokį tašką pasirinksime kaip pradinį aproksimaciją x 0 О , Ką f(x 0).f¢¢(x 0)>0 , tada lygties šaknis f(x)=0 galima apskaičiuoti bet kokiu tikslumu.

Niutono metodo paklaidos įvertinimas nustatomas pagal šią išraišką:

(1.2.3-11)

kur yra mažiausia vertė adresu

Aukščiausia vertė adresu

Skaičiavimo procesas sustoja, jei ,

kur nurodytas tikslumas.

Be to, šios išraiškos gali būti naudojamos kaip sąlyga tam, kad būtų pasiektas nurodytas tikslumas tikslinant šaknį naudojant Niutono metodą:

Niutono metodo algoritmo schema parodyta fig. 1.2.3-7.

Kairioji pradinės lygties f(x) pusė ir jos išvestinė f’(x) algoritme yra suprojektuoti kaip atskiri programinės įrangos moduliai.

Ryžiai. 1.2.3-7. Niutono metodo algoritmo diagrama

1.2.3-3 pavyzdys Patikslinkite lygties x-ln(x+2) = 0 šaknis, naudodami Niutono metodą, su sąlyga, kad šios lygties šaknys atskirtos atkarpose x 1 О[-1.9;-1.1] ir. x 2 О [-0,9;2 ].

Pirmoji išvestinė f’(x) = 1 – 1/(x+2) išlaiko savo ženklą kiekviename iš segmentų:

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

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

Antroji išvestinė f"(x) = 1/(x+2) 2 > 0 bet kuriam x.

Taigi konvergencijos sąlygos tenkinamos. Kadangi f""(x)>0 visame leistinų verčių diapazone, tada norint išsiaiškinti pradinio aproksimavimo šaknį x 1 pasirinkite x 0 = -1,9 (nes f(-1,9) × f"(-1,9)>0). Gauname aproksimacijų seką:

Tęsdami skaičiavimus, gauname tokią pirmųjų keturių aproksimacijų seką: -1,9; –1,8552, -1,8421; -1,8414 . Funkcijos f(x) reikšmė taške x=-1,8414 yra lygi f(-1,8414)=-0,00003 .

Norėdami paaiškinti šaknį x 2 О[-0.9;2], kaip pradinį aproksimaciją pasirenkame 0 =2 (f(2)×f”(2)>0). Remdamiesi x 0 = 2, gauname aproksimacijų seką: 2,0;1,1817; 1,1462; 1.1461. Funkcijos f(x) reikšmė taške x=1,1461 lygi f(1,1461)= -0,00006.

Niutono metodas turi aukštą konvergencijos greitį, tačiau kiekviename žingsnyje reikia skaičiuoti ne tik funkcijos reikšmę, bet ir jos išvestinę.

Akordo metodas

Akordo metodo geometrinė interpretacija yra taip
(1.2.3-8 pav.).

Nubrėžkime linijos atkarpą per taškus A ir B. Kitas aproksimacija x 1 yra stygos susikirtimo su 0x ašimi taško abscisė. Sukurkime tiesios atkarpos lygtį:

Nustatykime y=0 ir raskime reikšmę x=x 1 (kita apytikslė vertė):

Pakartokime skaičiavimo procesą, kad gautume kitą aproksimaciją iki šaknies - x 2 :

Mūsų atveju (1.2.11 pav.) o akordo metodo skaičiavimo formulė turės formą

Ši formulė galioja, kai taškas b laikomas fiksuotu tašku, o taškas a veikia kaip pradinis aproksimacija.

Panagrinėkime kitą atvejį (1.2.3-9 pav.), kai .

Tiesios linijos lygtis šiuo atveju turi formą

Kitas aproksimacija x 1, kai y = 0

Tada pasikartojanti akordo metodo formulė šiuo atveju turi formą

Pažymėtina, kad stygos metodu fiksuotasis taškas pasirenkamas kaip atkarpos, kuriai tenkinama sąlyga f (x)∙f¢¢ (x)>0, pabaiga.

Taigi, jei taškas a laikomas fiksuotu tašku , tada x 0 = b veikia kaip pradinė aproksimacija, ir atvirkščiai.

Pakankamos sąlygos, užtikrinančios lygties f(x) = 0 šaknies apskaičiavimą naudojant stygos formulę, bus tokios pat kaip ir tangentiniam metodui (Niutono metodas), tik vietoj pradinės aproksimacijos pasirenkamas fiksuotas taškas. Akordo metodas yra Niutono metodo modifikacija. Skirtumas tas, kad kitas Niutono metodo aproksimavimas yra liestinės susikirtimo su 0X ašimi taškas, o stygos metodu - stygos susikirtimo taškas su 0X ašimi - aproksimacijos suartėja su šaknimi iš skirtingų pusių. .

Akordo metodo paklaidos įvertinimas pateikiamas išraiška

(1.2.3-15)

Iteracijos proceso, naudojant akordo metodą, pabaigos sąlyga

(1.2.3-16)

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

1.2.3-4 pavyzdys. Išsiaiškinkite lygties šaknį e x – 3x = 0, atskirtą atkarpoje 10 -4 tikslumu.

Patikrinkime konvergencijos sąlygą:

Todėl a=0 turėtų būti pasirinktas kaip fiksuotas taškas, o x 0 =1 turėtų būti imtasi kaip pradinė aproksimacija, nes f(0)=1>0 ir f(0)*f"(0)>0.

Kalbant apie funkcijos sumažinimą, svarbiausia yra sėkmingas pradinės aproksimacijos pasirinkimas. Žinoma, to sugalvoti neįmanoma bendroji taisyklė, kuris būtų patenkintas visais atvejais, t.y. visoms įmanomoms netiesinėms funkcijoms Kiekvieną kartą reikia ieškoti savo sprendimo. Žemiau siūlome kai kurių metodų rinkinį, kaip rasti apytikslius pradinius aproksimacijas, kurios praktiškai gali būti atskaitos taškas ieškant patenkinamų aproksimacijų konkrečioje užduotyje.

9.6.1. Tinklelio paieška. Šis metodas yra ypač efektyvus, kai yra nedidelis faktinių netiesinių parametrų skaičius. Dažnai funkcijos yra suprojektuotos taip, kad kai kurių parametrų (kuriuos vadiname netiesinėmis) reikšmės yra fiksuotos, likusieji parametrai tampa linijiniai.

Tada nurodę apatines ir viršutines netiesinių parametrų ribas, tam tikru žingsniu galima surūšiuoti šių netiesinių parametrų reikšmių tinklelio parinktis ir nustatyti tiesinę regresiją, kuri lemia mažiausią netiesinių parametrų sumą. kvadratai.

Kaip pavyzdį apsvarstykite funkciją

Čia tikrasis netiesinis parametras bus . Tarkime, kad žinoma. Tegul h yra parametro žingsnis. Apskaičiuokime tiesinę regresiją

kur kiekvienam iš jų randame mažiausią kvadratų sumą. Mažiausias iš jų atitinka optimalų pradinį aproksimaciją. Iš esmės žingsnis, nuo kurio priklauso tinklelio „tankis“, gali skirtis, todėl sumažinus h reikšmę, parametrų reikšmes galima rasti bet kokiu tikslumu.

9.6.2. Modelio transformacija.

Kartais, tam tikra transformacija, modelis gali būti sumažintas iki tiesinio arba gali būti sumažintas faktinių netiesinių parametrų skaičius (žr. 6.2.3 skyrių). Parodykime, kaip tai galima pasiekti naudojant logistinės kreivės pavyzdį

Atlikdami atvirkštinę transformaciją atitinkamose regresijos lygtyse, gauname

Žymėdami gauname naują funkciją, kurios linijinių parametrų skaičius padidėjo nuo vieno iki dviejų. Naujojo modelio parametro įvertinimą galima rasti, pavyzdžiui, naudojant ankstesnį metodą.

Čia tikslinga padaryti tokią pastabą apie regresijos modelių transformacijas. Reikėtų nepamiršti, kad klaida, kuri buvo adityvinė pradinėje lygtyje, paprastai po transformacijos nebebus adityvinė.

Naudodami Taylor serijos išplėtimą ir pažymėdami transformaciją, gauname nepaisydami užsakymo sąlygų

Iš to išplaukia

Paskutinę lygybę galima paimti kaip pagrindą analizuojant problemą naudojant transformuotą modelį.

9.6.3. Mėginio padalijimas į subimtis.

Norėdami rasti pradinį aproksimaciją, visą imtį galite padalyti į subimtis (su maždaug vienodais tūriais), kur yra nežinomų parametrų skaičius. Kiekvienai imčiai randame y ir X vidurkius, kuriuos atitinkamai pažymime m. Išspręskime netiesinių lygčių sistemą

Šios sistemos sprendimas bus pradinis parametrų apytikslis nustatymas. Akivaizdu, kad norint šis metodas Norint „dirbti“, ši netiesinių lygčių sistema turi būti išspręsta gana lengvai, pavyzdžiui, analitiškai.

9.6.4. Taylor serijos išplėtimas nepriklausomuose kintamuosiuose.

Kvadratų sumos iteracinio minimizavimo pagrindas yra regresijos funkcijos išplėtimas Taylor serijoje iki tiesinių parametrų terminų. Norint rasti apytikslį pradinį aproksimaciją, kartais naudinga regresijos aproksimavimo procedūra, išplečiant ją į Teiloro eilutę nepriklausomuose kintamuosiuose. Paprastumo dėlei manysime, kad jis yra vienmatis. Tegul yra vidutinė vertė, tada apytikslė

Žymime , taigi gauname tiesinį modelį

Leisti būti mažiausiųjų kvadratų įverčiai šio parametrų tiesinė regresija. Pradiniais aproksimais imsime netiesinės lygčių sistemos sprendinį atžvilgiu

Sunkiai mokykloje spręsdami lygtis matematikos pamokose, daugelis mokinių dažnai būna įsitikinę, kad laiką švaisto visiškai veltui, tačiau toks įgūdis gyvenime pravers ne tik nusprendusiems sekti Dekarto pėdomis, Euleris arba Lobačevskis.

Praktikoje, pavyzdžiui, medicinoje ar ekonomikoje, dažnai pasitaiko situacijų, kai specialistui reikia išsiaiškinti, kada konkretaus vaisto veikliosios medžiagos koncentracija paciento kraujyje pasieks reikiamą lygį arba reikia skaičiuoti laiką, reikalingą gydymui. tam tikras verslas, kad jis taptų pelningas.

Dažniau mes kalbame apie sprendžiant įvairių tipų netiesines lygtis. Skaitmeniniai metodai leidžia tai padaryti kuo greičiau, ypač naudojant kompiuterį. Jie buvo gerai ištirti ir jau seniai įrodė savo veiksmingumą. Tai apima Niutono tangentinį metodą, kuris yra šio straipsnio tema.

Problemos pareiškimas

Šiuo atveju yra funkcija g, kuri yra apibrėžta atkarpoje (a, b) ir jame įgauna tam tikras reikšmes, ty kiekvienas x, priklausantis (a, b), gali būti susietas su konkrečiu skaičiumi g (x).

Iš intervalo tarp taškų a ir b (įskaitant galus) reikia nustatyti visas lygties šaknis, kurioms funkcija nustatoma į nulį. Akivaizdu, kad tai bus y = g(x) ir OX susikirtimo taškai.

Kai kuriais atvejais patogiau g(x)=0 pakeisti panašiu, pvz., g 1 (x) = g 2 (x). Šiuo atveju grafikų g 1 (x) ir g 2 (x) susikirtimo taškų abscisės (x reikšmė) veikia kaip šaknys.

Sprendimas netiesinė lygtis taip pat svarbus optimizavimo problemoms, kurioms sąlyga vietinis ekstremumas- funkcijos išvestinę pasukti į 0. Kitaip tariant, tokią problemą galima sumažinti iki lygties p(x) = 0 šaknų, kur p(x) yra identiškas g"(x).

Sprendimo metodai

Kai kurių tipų netiesinių lygčių, tokių kaip kvadratinės arba paprastos trigonometrinės lygtys, šaknis galima rasti gana paprastais būdais. Visų pirma, kiekvienas moksleivis žino formules, kurias naudojant galima lengvai rasti taškų, kuriuose išnyksta kvadratinis trinaris, argumento reikšmes.

Netiesinių lygčių šaknų ištraukimo metodai paprastai skirstomi į analitinius (tiesioginius) ir iteracinius. Pirmuoju atveju norimas sprendimas turi formulės formą, pagal kurią, atlikus tam tikrą skaičių aritmetinių operacijų, galima rasti norimų šaknų reikšmę. Panašūs metodai buvo sukurti eksponentiniam, trigonometriniam, logaritminiam ir paprastam algebrines lygtis. Likusiam atvejui turite naudoti specialius skaitmeninius metodus. Juos nesunku įgyvendinti naudojant kompiuterius, kurie leidžia reikiamu tikslumu surasti šaknis.

Tai apima vadinamuosius skaitmeninis metodas liestinės. Pastarąjį XVII amžiaus pabaigoje pasiūlė didysis mokslininkas Izaokas Niutonas. Vėlesniais šimtmečiais metodas buvo ne kartą tobulinamas.

Lokalizacija

Skaitiniai sudėtingų lygčių, neturinčių analitinių sprendimų, sprendimo metodai paprastai atliekami 2 etapais. Pirmiausia turite juos lokalizuoti. Šią operaciją sudaro tokių OX segmentų radimas, kuriuose yra viena sprendžiamos lygties šaknis.

Panagrinėkime segmentą. Jei g(x) neturi nutrūkimų ir galutiniuose taškuose įgauna skirtingų ženklų reikšmes, tai tarp a ir b arba juose yra bent 1 lygties šaknis g(x) = 0. būti unikalus, reikalaujama, kad g(x) nebūtų monotoniškas. Kaip žinoma, ji turės šią savybę, jei g’(x) ženklas yra pastovus.

Kitaip tariant, jei g(x) neturi nutrūkimų ir monotoniškai didėja arba mažėja, o jo reikšmės galiniuose taškuose neturi tų pačių ženklų, tada g(x) yra 1 ir tik 1 šaknis.

Tačiau turėtumėte žinoti, kad šis kriterijus nebus taikomas kelių lygčių šaknims.

Lygties sprendimas perpus

Prieš svarstant sudėtingesnes skaitines liestines ir jų atmainas, verta susipažinti su labiausiai paprastu būdu identifikuojant šaknis. Jis vadinamas dichotomija ir reiškia intuityvų šaknų radimą remiantis teorema, kad jei g(x), tolydžioje, tenkinama skirtingų ženklų sąlyga, tai nagrinėjamame segmente yra bent 1 šaknis g( x) = 0.

Norėdami jį rasti, turite padalyti atkarpą per pusę ir pažymėti vidurio tašką kaip x 2. Tada galimi du variantai: g(x 0) * g(x 2) arba g(x 2) * g(x 1) yra lygūs arba mažesni už 0. Renkamės tą, kuriai viena iš šių nelygybių yra teisinga. Kartojame aukščiau aprašytą procedūrą, kol ilgis tampa mažesnis už tam tikrą iš anksto pasirinktą reikšmę, kuri lemia lygties šaknies nustatymo tikslumą.

Metodo pranašumai yra jo patikimumas ir paprastumas, tačiau trūkumas yra būtinybė iš pradžių nustatyti taškus, kuriuose g(x) įgauna skirtingus ženklus, todėl jo negalima naudoti tolygių dauginių šaknims. Be to, jis neapibendrina lygčių sistemos arba jei kalbame apie sudėtingas šaknis.

1 pavyzdys

Norime išspręsti lygtį g(x) = 2x 5 + x - 1 = 0. Kad ilgai nereikėtų ieškoti tinkamo segmento, grafiką sudarome, naudodamiesi, pavyzdžiui, gerai žinoma Excel programa. . Matome, kad vertės iš intervalo geriau paimti kaip šaknies lokalizavimo segmentą. Galime būti tikri, kad joje yra bent viena reikiamos lygties šaknis.

g"(x) = 10x 4 + 1, t. y. tai yra monotoniškai didėjanti funkcija, todėl pasirinktame segmente yra tik 1 šaknis.

Mes pakeičiame galutinius taškus į lygtį. Turime atitinkamai 0 ir 1. Pirmajame žingsnyje kaip sprendimą priimame tašką 0,5. Tada g(0,5) = -0,4375. Tai reiškia, kad kitas segmentas, skirtas perpus sumažinti, bus . Jo vidurio taškas yra 0,75. Jame funkcijos reikšmė yra 0,226. Atsižvelgiame į atkarpą ir jos vidurį, esantį taške 0,625. Apskaičiuojame g(x) reikšmę 0,625. Jis lygus -0,11, ty neigiamas. Remdamiesi šiuo rezultatu, pasirenkame segmentą. Gauname x = 0,6875. Tada g(x) = -0,00532. Jei sprendimo tikslumas yra 0,01, tai galime manyti, kad norimas rezultatas yra 0,6875.

Teorinis pagrindas

Šis šaknų radimo būdas naudojant Niutono tangentinį metodą yra populiarus dėl labai greito konvergencijos.

Jis pagrįstas įrodytu faktu, kad jei x n yra šaknies f(x) = 0 aproksimacija, taigi f" C 1, tada kitas aproksimavimas bus taške, kur f(x) liestinės lygtis yra lygus nuliui, t.y.

Pakeiskite x = x n+1 ir nustatykite y į nulį.

Tada liestinės atrodo taip:

2 pavyzdys

Pabandykime pasinaudoti klasikinis metodas Niutono liestinės ir rasti bet kokios netiesinės lygties sprendimą, kurį sunku arba neįmanoma rasti analitiškai.

Tegul x 3 + 4x - 3 = 0 šaknis reikia nustatyti tam tikru tikslumu, pavyzdžiui, 0,001. Kaip žinoma, bet kurios funkcijos grafikas nelyginio laipsnio daugianario pavidalu turi bent kartą kirsti OX ašį, t. y. nekyla abejonių dėl šaknų egzistavimo.

Prieš spręsdami mūsų pavyzdį liestinės metodu, sudarome grafiką f(x) = x 3 + 4x - 3 taškais. Tai labai lengva padaryti, pavyzdžiui, naudojant „Excel“ skaičiuoklių procesorių. Iš gauto grafiko bus aišku, kad jis nesikerta su OX ašimi ir funkcija y = x 3 + 4x - 3 didėja monotoniškai. Galime būti tikri, kad lygtis x 3 + 4x - 3 = 0 turi sprendimą ir ji yra unikali.

Algoritmas

Bet koks lygčių sprendimas liestinės metodu prasideda f "(x) skaičiavimu. Turime:

Tada antroji išvestinė bus x * 6.

Naudodamiesi šiomis išraiškomis, galime parašyti formulę, skirtą lygties šaknims identifikuoti naudodami liestinės metodą formoje:

Toliau turite pasirinkti pradinį aproksimaciją, t. y. pradėti nustatyti, kuris taškas laikomas pasikartojančio proceso pradžios tašku (tūris x 0). Mes atsižvelgiame į segmento galus. Naudosime tą, kuriai yra teisinga sąlyga, kad funkcija ir jos 2-oji išvestinė taške x 0 yra skirtingų ženklų. Kaip matome, pakeičiant x 0 = 0 jis sulaužomas, tačiau x 0 = 1 yra gana tinkamas.

tada jei mus domina liestinės metodo sprendimas e tikslumu, tai reikšmė x n gali būti laikoma atitinkančia uždavinio reikalavimus, su sąlyga, kad nelygybė |f(x n) / f’(x n)|< e.

Pirmajame liestinės etape turime:

  • x 1 = x 0 - (x 0 3 + 4x 0 - 3) / (3x 0 2 + 4) = 1 - 0,2857 = 0,71429;
  • kadangi sąlyga neįvykdyta, judame toliau;
  • gauname naują x 2 reikšmę, kuri yra lygi 0,674;
  • pastebime, kad funkcijos reikšmės ir jos išvestinės santykis x 2 yra mažesnis nei 0,0063, sustabdome procesą.

Tangento metodas programoje Excel

Ankstesnį pavyzdį galite išspręsti daug lengviau ir greičiau, jei ne atliksite skaičiavimų rankiniu būdu (skaičiuotuvu), o pasinaudosite galimybėmis stalo procesorius iš Microsoft.

Norėdami tai padaryti naudodami „Excel“, turite sukurti naujas puslapis ir užpildykite jo langelius tokiomis formulėmis:

  • į C7 rašome „= DEGREE (B7;3) + 4 * B7 - 3“;
  • į D7 įrašome „= 4 + 3 * DEGREE (B7;2)“;
  • E7 rašome „= (DEGREE (B7;3)- 3 + 4 * B7) / (3* DEGREE (B7;2) + 4)“;
  • D7 įvedame išraišką „=B7 - E7“;
  • B8 įvedame sąlygos formulę „=IF(E7< 0,001;"Завершение итераций"; D7)».

Konkrečios problemos langelyje B10 atsiras užrašas „Iteracijos užbaigimas“, o norėdami išspręsti problemą, turėsite paimti skaičių, parašytą langelyje, esančiame viena eilute aukščiau. Taip pat galite pasirinkti jam atskirą „ištempiamą“ stulpelį, ten įvedę formulę-sąlygą, pagal kurią ten bus rašomas rezultatas, jei turinys viename ar kitame B stulpelio langelyje įgaus formą „Iteracijų užbaigimas“.

Diegimas Pascal

Pabandykime gauti netiesinės lygties y = x 4 - 4 - 2 * x sprendimą, naudojant tangentinį Paskalio metodą.

Naudojame pagalbinę funkciją, kuri padės atlikti apytikslį skaičiavimą f"(x) = (f(x + delta) - f(x)) / delta. Kaip sąlygą iteraciniam procesui užbaigti pasirenkame įvykdymą nelygybė |x 0 -x 1 |< некого малого числа. В Паскале его запишем, как abs(x0 - x1)<= epsilon.

Programa išsiskiria tuo, kad nereikalauja rankinio išvestinės apskaičiavimo.

Akordo metodas

Panagrinėkime kitą būdą, kaip nustatyti netiesinių lygčių šaknis. Iteracijos procesas susideda iš to, kad kaip nuoseklūs f(x) = 0 norimos šaknies aproksimacijos, imamos stygos susikirtimo su galinių taškų a ir b abscisėmis taškų reikšmės su OX, žymimas x 1, ..., x n. Turime:

Taške, kuriame styga kerta OX ašį, išraiška bus parašyta taip:

Tegul antroji išvestinė yra teigiama x £ (priešingas atvejis bus sumažintas iki nagrinėjamo, jei parašysime f(x) = 0). Šiuo atveju grafikas y = f(x) yra kreivė, išgaubta apačioje ir esanti žemiau stygos AB. Gali būti 2 atvejai: kai funkcija taške a turi teigiamą reikšmę arba taške b yra neigiama.

Pirmuoju atveju mes pasirenkame galą a kaip fiksuotą, o tašką b laikome x 0. Tada nuoseklūs aproksimacijos pagal aukščiau pateiktą formulę sudaro seką, kuri monotoniškai mažėja.

Antruoju atveju galas b fiksuojamas ties x 0 = a. Kiekviename iteracijos etape gautos x reikšmės sudaro seką, kuri didėja monotoniškai.

Taigi galime teigti, kad:

  • akordų metodu – fiksuotas atkarpos galas, kuriame nesutampa funkcijos ir jos antrosios išvestinės ženklai;
  • Šaknies x - x m - aproksimacijos yra iš jos toje pusėje, kur f(x) turi ženklą, kuris nesutampa su f"" (x) ženklu.

Iteracijos gali būti tęsiamos tol, kol bus įvykdytos šaknų artumo sąlygos šiame ir ankstesniame iteracijos etape modulo abs(x m - x m - 1)< e.

Modifikuotas metodas

Kombinuotas akordų ir liestinių metodas leidžia nustatyti lygties šaknis, priartinant jas iš skirtingų pusių. Ši reikšmė, kurioje grafikas f(x) kerta OX, leidžia patikslinti sprendimą daug greičiau, nei naudojant kiekvieną metodą atskirai.

Tarkime, kad turime rasti f(x)=0 šaknis, jei jos egzistuoja . Galite taikyti bet kurį iš aukščiau aprašytų metodų. Tačiau geriau išbandyti jų derinį, kuris žymiai pagerins šaknies tikslumą.

Nagrinėjame atvejį su pradine aproksimacija, atitinkančia sąlygą, kad pirmas ir antrasis išvestiniai yra skirtingų ženklų konkrečiame taške x.

Esant tokioms sąlygoms, netiesinių lygčių sprendimas liestinės metodu leidžia rasti šaknį su pertekliumi, jei x 0 =b, o metodas naudojant akordus su fiksuotu galu b leidžia rasti apytikslę šaknį su trūkumu.

Naudojamos formulės:

Dabar intervale reikia ieškoti reikiamos šaknies x. Kitame žingsnyje šiam segmentui turite pritaikyti kombinuotą metodą. Taip elgdamiesi gauname tokios formos formules:

Jei pirmasis ir antrasis vediniai turi skirtingus ženklus, tada, samprotuodami panašiai, norėdami paaiškinti šaknį, gauname tokias pasikartojančias formules:

Naudojama sąlyga yra apskaičiuotoji nelygybė| b n +1 - a n +1 |< e. Иными словами, на практике приходится находить решение при помощи двух методов, но на каждом шаге требуется выяснять, насколько полученные результаты близки друг другу.

Jei aukščiau nurodyta nelygybė yra teisinga, tada kaip netiesinės lygties šaknį tam tikrame segmente paimkite tašką, kuris yra tiksliai pusiaukelėje tarp sprendinių, rastų konkrečiame iteracijos etape.

Kombinuotas metodas lengvai įgyvendinamas TURBO PASCAL aplinkoje. Jei tikrai norite, galite pabandyti atlikti visus skaičiavimus naudodami lentelės metodą programoje „Excel“.

Pastaruoju atveju keli stulpeliai skiriami uždaviniui spręsti naudojant akordus ir atskirai Isaaco Newtono pasiūlytam metodui.

Šiuo atveju kiekviena eilutė naudojama skaičiavimams įrašyti konkrečiame iteracijos etape naudojant du metodus. Tada kairėje sprendimo srities pusėje aktyviame darbo puslapyje paryškinamas stulpelis, kuriame įvedamas kiekvieno metodo kito iteracinio žingsnio verčių skirtumo modulio apskaičiavimo rezultatas. Kitas gali būti naudojamas skaičiavimų rezultatams įvesti naudojant loginės konstrukcijos „IF“ skaičiavimo formulę, naudojamą norint išsiaiškinti, ar sąlyga yra teisinga, ar ne.

Dabar jūs žinote, kaip išspręsti sudėtingas lygtis. Tangentinis metodas, kaip jau matėte, įgyvendinamas gana paprastai tiek Pascal, tiek Excel. Todėl visada galite nustatyti lygties, kurią sunku arba neįmanoma išspręsti, šaknis naudodami formules.