Išspręskite netiesinę lygtį naudodami Niutono metodą internete. Kursinis darbas: Niutono metodas netiesinėms lygtims spręsti



Pagrindiniai žodžiai:

Darbo tikslas: studijuoti netiesinių lygčių su vienu nežinomuoju sprendimo būdus ir išbandyti juos eksperimentiniame darbe.

Darbo tikslai:

  1. Išanalizuoti specializuotą literatūrą ir pasirinkti racionaliausius netiesinių lygčių sprendimo būdus, leidžiančius visiems abiturientams giliai studijuoti ir įsisavinti šią temą.
  2. Sukurti kai kuriuos netiesinių lygčių sprendimo metodologijos aspektus naudojant IKT.
  3. Išnagrinėkite netiesinių lygčių sprendimo būdus:

‒ Žingsnis metodas

‒ Perpus sumažinimo metodas

‒ Niutono metodas

Įvadas.

Be matematinio raštingumo neįmanoma sėkmingai įsisavinti fizikos, chemijos, biologijos ir kitų dalykų uždavinių sprendimo metodų. Visas gamtos mokslų kompleksas yra sukurtas ir plėtojamas remiantis matematinėmis žiniomis. Pavyzdžiui, daugelio aktualių matematinės fizikos problemų tyrimas lemia poreikį išspręsti netiesines lygtis. Netiesinių lygčių sprendimas yra būtinas netiesinėje optikoje, plazmos fizikoje, superlaidumo teorijoje ir žemos temperatūros fizikoje. Literatūros šia tema yra pakankamai, tačiau daug vadovėlių ir straipsnių vidurinės mokyklos mokiniui sunku suprasti. Šiame darbe aptariami netiesinių lygčių sprendimo metodai, kurie gali būti naudojami sprendžiant taikomąsias fizikos ir chemijos problemas. Įdomus aspektas – informacinių technologijų taikymas sprendžiant lygtis ir matematikos uždavinius.

Žingsnis metodas.

Tegu reikia išspręsti netiesinę F(x)=0 formos lygtį. Taip pat tarkime, kad mums suteiktas tam tikras paieškos intervalas. Reikia rasti h ilgio intervalą [a,b], kuriame yra pirmoji lygties šaknis, pradedant nuo kairiosios paieškos intervalo ribos.

Ryžiai. 1. Žingsnis metodas

Yra keletas būdų, kaip išspręsti tokią problemą. Žingsnis yra pats paprasčiausias iš skaitinių nelygybių sprendimo būdų, tačiau norint pasiekti aukštą tikslumą, reikia žymiai sumažinti žingsnį, o tai labai padidina skaičiavimo laiką. Lygčių sprendimo šiuo metodu algoritmas susideda iš dviejų etapų.

etapas. Šaknų atskyrimas.

Šiame etape nustatomos sekcijos, kurių kiekvienoje yra tik viena lygties šaknis. Yra keletas šio etapo įgyvendinimo variantų:

  • Pakeičiame X reikšmes (geriausia gana mažu žingsniu) ir pamatome, kur funkcija keičia ženklą. Jei funkcija pakeitė savo ženklą, tai reiškia, kad srityje tarp ankstesnės ir dabartinės X reikšmės yra šaknis (jei funkcija nekeičia jos padidėjimo/sumažėjimo pobūdžio, galime sakyti, kad yra tik vienas šaknis šiame intervale).
  • Grafinis metodas. Sudarome grafiką ir įvertiname, kuriuose intervaluose yra viena šaknis.
  • Panagrinėkime konkrečios funkcijos savybes.

IIetapas. Šaknų tobulinimas.

Šiame etape išsiaiškinta anksčiau nustatytos lygties šaknų reikšmė. Paprastai šiame etape naudojami iteraciniai metodai. Pavyzdžiui, puselių metodas (dichotomija) arba Niutono metodas.

Padalijimo per pusę metodas

Greitas ir gana paprastas skaitinis lygčių sprendimo būdas, pagrįstas nuosekliu intervalo, kuriame yra vienintelė lygties šaknis F(x) = 0, siaurinimu, kol pasiekiamas nurodytas tikslumas E. Šis metodas dažniausiai naudojamas sprendžiant kvadratines lygtis ir aukštesnių laipsnių lygtys. Tačiau šis metodas turi reikšmingą trūkumą – jei segmente [a,b] yra daugiau nei viena šaknis, tuomet gerų rezultatų pasiekti nepavyks.

Ryžiai. 2. Dichotomijos metodas

Šio metodo algoritmas yra toks:

‒ Nustatykite naują šaknies x aproksimaciją atkarpos [a;b] viduryje: x=(a+b)/2.

‒ Raskite funkcijos reikšmes taškuose a ir x: F(a) ir F(x).

‒ Patikrinkite sąlygą F(a)*F(x)

‒ Pereikite prie 1 veiksmo ir dar kartą padalinkite segmentą per pusę. Tęskite algoritmą iki sąlygos |F(x)|

Niutono metodas

Tiksliausias iš skaitinio sprendimo būdų; tinka sprendžiant labai sudėtingas lygtis, tačiau ją apsunkina būtinybė kiekviename žingsnyje skaičiuoti išvestines. yra tai, kad jei x n yra lygties šaknies aproksimacija , tada kita aproksimacija apibrėžiama kaip funkcijos f(x) liestinės, nubrėžtos taške x n, šaknis.

Funkcijos f(x) liestinės lygtis taške x n yra tokia:

Į liestinės lygtį įdedame y = 0 ir x = x n +1.

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.

Be jokių pakeitimų metodas apibendrintas sudėtingam atvejui. Jei šaknis x i yra antrojo ar didesnio dauginio šaknis, tada konvergencijos tvarka krenta ir tampa tiesinė.

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 metodas (tangentinis metodas) paprastai naudojamas, kai lygtis f(x) = 0 turi šaknį ir tenkinamos šios sąlygos:

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

2) f(a) f(b) (funkcija atkarpos galuose įgauna skirtingų ženklų reikšmes [ 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į);

Metodo reikšmė 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, kurioje 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 šį algoritmą naudodami konkretų pavyzdį.

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

Mūsų atveju liestinės lygtis turi tokią formą: y-y 0 =2x 0 · (x-x 0). IN kaip tašką 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 =

Ryžiai. 3. Funkcijos f(x) grafiko pirmosios liestinės sudarymas

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 susikirtimo tašką Jautis taškas x 2.

Antrosios liestinės lygtis: y-2,25 = 2*1,5 (x-1,5), y = 3x - 4,25. Liestinės ir ašies susikirtimo taškas Jautis: x 2 =.

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.

Ryžiai. 4. Funkcijos f(x) grafiko antrosios liestinės sudarymas

Pirmasis šaknies apytikslis nustatymas nustatomas pagal formulę:

= 1.5.

Antrasis šaknies aproksimavimas nustatomas pagal formulę:

=

Trečiasis šaknies aproksimavimas nustatomas pagal formulę:

Taigi ,t.yŠ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|

Mūsų atveju palyginkime trečiajame žingsnyje gautą aproksimaciją su tikruoju atsakymu. Kaip matote, jau trečiame žingsnyje gavome klaidą, mažesnę nei 0,000002.

Lygties sprendimas naudojant CADMathCAD

Paprasčiausioms formos lygtims f(x) = 0 MathCAD sprendimas randamas naudojant funkciją šaknis.

šaknis (f (X 1 , x 2 , … ) , X 1 , a, b ) - grąžina vertę X 1 , priklausantis segmentui [ a, b ] , kurioje išraiška arba funkcija f (X ) eina į 0. Abu šios funkcijos argumentai turi būti skaliariniai. Funkcija grąžina skaliarą.

Ryžiai. 5. Netiesinės lygties sprendimas MathCAD (šakninė funkcija)

Jei pritaikius šią funkciją įvyksta klaida, tai gali reikšti, kad lygtis neturi šaknų arba lygties šaknys yra toli nuo pradinės aproksimacijos, reiškinys turi lokalų maks Ir min tarp pradinės aproksimacijos ir šaknų.

Norint nustatyti klaidos priežastį, būtina išnagrinėti funkcijos grafiką f(x). Tai padės išsiaiškinti lygties šaknų buvimą f(x) = 0 ir, jei jie yra, tada apytiksliai nustatykite jų reikšmes. Kuo tiksliau pasirinkta pradinė šaknies aproksimacija, tuo greičiau bus rasta tiksli jos reikšmė.

Jei pradinė aproksimacija nežinoma, patartina naudoti funkciją išspręsti . Be to, jei lygtyje yra keli kintamieji, po raktinio žodžio išspręsti reikia nurodyti kintamųjų, kurių atžvilgiu lygtis sprendžiama, sąrašą.

Ryžiai. 6. Netiesinės lygties sprendimas MathCAD (sprendimo funkcija)

Išvada

Tyrimo metu buvo nagrinėjami tiek matematiniai metodai, tiek lygčių sprendimas programuojant CAD sistemoje MathCAD. Skirtingi metodai turi savų privalumų ir trūkumų. Reikėtų pažymėti, kad konkretaus metodo naudojimas priklauso nuo pradinių pateiktos lygties sąlygų. Tos lygtys, kurias galima gerai išspręsti mokykloje žinomais faktorizavimo metodais ir pan., nėra prasmės spręsti sudėtingesniais metodais. Fizikai ir chemijai svarbūs taikomosios matematikos uždaviniai, reikalaujantys sudėtingų skaičiavimo operacijų sprendžiant lygtis, sėkmingai išsprendžiami, pavyzdžiui, programuojant. Gerai juos išspręsti naudojant Niutono metodą.

Norėdami paaiškinti šaknis, galite naudoti kelis tos pačios lygties sprendimo būdus. Būtent šis tyrimas ir buvo šio darbo pagrindas. Tuo pačiu nesunku suprasti, kuris metodas yra sėkmingiausias sprendžiant kiekvieną lygties etapą, o kurio metodo šiame etape geriau nenaudoti.

Išstudijuota medžiaga, viena vertus, padeda plėsti ir pagilinti matematikos žinias bei ugdyti domėjimąsi matematika. Kita vertus, planuojantiems įgyti technines ir inžinerines profesijas, svarbu mokėti spręsti realias matematikos problemas. Todėl šis darbas svarbus tolesniam mokymuisi (pavyzdžiui, aukštojoje mokykloje).

Literatūra:

  1. Mityakov S. N. Informatika. Mokomosios ir metodinės medžiagos rinkinys. - N. Novgorodas: Nižnij Novgorodas. valstybė tech. universitetas, 2006 m
  2. Vainberg M. M., Trenogin V. A. Netiesinių lygčių šakotųjų sprendinių teorija. M.: Nauka, 1969. - 527 p.
  3. Bronšteinas I. N., Semendyajevas K. A. Matematikos vadovas inžinieriams ir technikos kolegijų studentams - M.: Nauka, 1986 m.
  4. Omelchenko V.P., Kurbatova E.V. Matematika: vadovėlis. - Rostovas n/d.: Feniksas, 2005 m.
  5. Savin A.P. Enciklopedinis jauno matematiko žodynas. - M.: Pedagogika, 1989 m.
  6. Korn G., Korn T. Matematikos vadovas mokslininkams ir inžinieriams. - M.: Nauka, 1973 m.
  7. Kiryanov D. Mathcad 15 / MathcadPrime 1.0. - Sankt Peterburgas: BHV-Peterburgas, 2012 m.
  8. Chernyak A., Chernyak Zh., Domanova Yu Aukštoji matematika, pagrįsta Mathcad. Bendras kursas. - Sankt Peterburgas: BHV-Peterburgas, 2004 m.
  9. Porshnev S., Belenkova I. Skaitiniai metodai, pagrįsti Mathcad. - Sankt Peterburgas: BHV-Peterburgas, 2012 m.

Pagrindiniai žodžiai: netiesinės lygtys, taikomoji matematika, CAD MathCAD, Niutono metodas, žingsninis metodas, dichotomijos metodas..

Anotacija: Straipsnis skirtas netiesinių lygčių sprendimo metodams, įskaitant MathCAD kompiuterinio projektavimo sistemos naudojimą. Nagrinėjamas žingsninis metodas, puselių ir Niutono metodai, pateikti detalūs šių metodų taikymo algoritmai, atlikta lyginamoji šių metodų analizė.

Pavyzdžiui:

Nustatykime užduotį surasti galiojašios lygties šaknis.

Ir jų tikrai yra! – iš straipsnių apie funkcijų grafikai Ir aukštosios matematikos lygtys tu puikiai žinai, koks tvarkaraštis daugianario funkcija nelyginis laipsnis kerta ašį bent kartą, todėl mūsų lygtis turi bent jau viena tikra šaknis. Vienas. Arba du. Arba trys.

Pirmiausia reikia patikrinti prieinamumą racionalusšaknys. Pagal atitinkama teorema, tik skaičiai 1, –1, 3, –3 gali pretenduoti į šį „titulą“, o tiesioginiu pakeitimu nesunku įsitikinti, kad nė vienas iš jų „netinka“. Taigi neracionalios vertybės išlieka. Galima rasti 3 laipsnio daugianario iracionaliąją šaknį (-es). tiksliai (išreikšti per radikalus) naudojant vadinamąjį Cardano formulės Tačiau šis metodas yra gana sudėtingas. Tačiau 5-ojo ir aukštesnio laipsnio daugianariams apskritai nėra bendro analizės metodo, be to, praktikoje yra daug kitų lygčių, kuriose tikslios vertės neįmanoma gauti tikrų šaknų (nors jos egzistuoja).

Tačiau taikomuose (pavyzdžiui, inžinerija) problemų, daugiau nei priimtina naudoti apskaičiuotas apytiksles vertes su tam tikru tikslumu.

Nustatykime savo pavyzdžio tikslumą. Ką tai reiškia? Tai reiškia, kad turime rasti TOKIĄ apytikslę šaknies reikšmę (šaknys) kuriame mes Garantuojame, kad klysime ne daugiau kaip 0,001 (viena tūkstantoji dalis) .

Visiškai aišku, kad sprendimas negali būti pradėtas „atsitiktinai“, todėl pirmame žingsnyje šaknys atskiras. Atskirti šaknį reiškia rasti pakankamai mažą (dažniausiai vieną) segmentą, kuriam priklauso ši šaknis ir ant kurio nėra kitų šaknų. Paprasčiausias ir prieinamiausias grafinis šaknų atskyrimo metodas. Pastatykime taškas po taško funkcijos grafikas :

Iš brėžinio matyti, kad lygtis, matyt, turi vieną realią šaknį, priklausančią segmentui. Šio intervalo pabaigoje funkcija paima skirtingų ženklų reikšmes: , ir iš fakto funkcijos tęstinumas segmente Iš karto matomas elementarus šaknies patikslinimo būdas: intervalą padalijame per pusę ir pasirenkame segmentą, kurio galuose funkcija įgauna skirtingus ženklus. Šiuo atveju akivaizdu, kad tai segmentas. Gautą intervalą padalijame per pusę ir vėl pasirenkame segmentą „skirtingas ženklas“. Ir taip toliau. Tokie nuoseklūs veiksmai vadinami iteracijos. Tokiu atveju jie turėtų būti atliekami tol, kol atkarpos ilgis tampa mažesnis nei dvigubai didesnis už skaičiavimo tikslumą, o paskutinio „skirtingo ženklo“ segmento vidurys turėtų būti pasirinktas kaip apytikslė šaknies reikšmė.

Nagrinėjama schema gavo natūralų pavadinimą - pusiau padalijimo metodas. Ir šio metodo trūkumas yra greitis. Lėtai. Labai lėtas. Bus per daug iteracijų, kol pasieksime reikiamą tikslumą. Tobulėjant kompiuterinėms technologijoms, tai, žinoma, nėra problema, tačiau matematika yra tai, ko reikia, kad būtų galima ieškoti racionaliausių sprendimų.

Ir vienas iš veiksmingesnių būdų apytikslę šaknies reikšmę rasti yra tiksliai tangentinis metodas. Trumpa geometrinė metodo esmė yra tokia: pirma, naudojant specialų kriterijų (daugiau apie tai šiek tiek vėliau) pasirenkamas vienas iš segmento galų. Šis galas vadinamas pradinėšaknies aproksimacija, mūsų pavyzdyje: . Dabar nubrėžiame funkcijos grafiko liestinę ties abscisėmis (mėlynas taškas ir violetinė liestinė):

Ši liestinė kirto x ašį geltoname taške ir atkreipkite dėmesį, kad pirmuoju žingsniu mes beveik „pataikėme į šaknį“! Taip ir bus pirmašaknų požiūris. Toliau geltoną nuleidžiame statmenai funkcijos grafikui ir „gauname“ iki oranžinio taško. Per oranžinį tašką vėl nubrėžiame liestinę, kuri susikirs su ašimi dar arčiau šaknies! Ir taip toliau. Nesunku suprasti, kad naudojant tangentinį metodą, mes artėjame prie tikslo šuoliais ir tikslumui pasiekti prireiks kelių iteracijų.

Kadangi liestinė apibrėžiama per funkcijos išvestinė, tada ši pamoka atsidūrė skiltyje „Išvestiniai produktai“ kaip viena iš jos taikomųjų programų. Ir nesigilinant į detales teorinis metodo pagrindimas, apsvarstysiu techninę problemos pusę. Praktiškai aukščiau aprašyta problema iškyla maždaug tokia formuluote:

1 pavyzdys

Grafiniu metodu raskite intervalą, kuriame yra tikroji lygties šaknis. Naudodami Niutono metodą, gaukite apytikslę šaknies reikšmę 0,001 tikslumu

Čia yra užduoties „taupioji versija“, kurioje iš karto nurodomas vienos galiojančios šaknies buvimas.

Sprendimas: pirmame žingsnyješaknis turėtų būti atskirta grafiškai. Tai galima padaryti braižant (žr. iliustracijas aukščiau), tačiau šis metodas turi nemažai trūkumų. Pirma, tai nėra faktas, kad grafikas yra paprastas (iš anksto nežinome), o programinė įranga ne visada yra po ranka. Ir antra (išvada nuo 1 d.), su didele tikimybe rezultatas bus net ne schematinis brėžinys, o apytikslis piešinys, kas, žinoma, nėra gerai.

Na, kam mums reikia bereikalingų sunkumų? Įsivaizduokime lygtis formoje ATSARGIAI sudarykite grafikus ir pažymėkite brėžinyje šaknį („X“ grafikų susikirtimo taško koordinatė):

Akivaizdus pranašumas šis metodas yra tai, kad šių funkcijų grafikai sudaromi ranka daug tiksliau ir daug greičiau. Beje, atkreipkite dėmesį tiesiai kirto kubinė parabolė viename taške, o tai reiškia, kad pasiūlyta lygtis iš tikrųjų turi tik vieną tikrąją šaknį. Pasitikėk, bet patikrink ;-)

Taigi, mūsų „klientas“ priklauso segmentui ir „iš akies“ yra maždaug lygus 0,65-0,7.

Antrame žingsnyje reikia rinktis pradinis aproksimacijašaknis Paprastai tai yra vienas iš segmento galų. Pradinis apytikslis skaičiavimas turi atitikti šią sąlygą:

Raskime pirma Ir antra išvestinės funkcijos :

ir patikrinkite kairįjį segmento galą:

Taigi nulis „netinka“.

Patikrinkite dešinįjį segmento galą:

- Viskas gerai! Mes pasirenkame kaip pradinį aproksimaciją.

Trečiame žingsnyje Mūsų laukia kelias į šaknis. Kiekvienas paskesnis šaknies apytikslis apskaičiavimas apskaičiuojamas iš ankstesnių duomenų, naudojant toliau pateiktą informaciją pasikartojantis formulės:

Procesas baigiasi, kai įvykdoma sąlyga, kur yra iš anksto nustatytas skaičiavimų tikslumas. Dėl to „n-oji“ aproksimacija laikoma apytiksle šaknies reikšme: .

Toliau pateikiami įprasti skaičiavimai:

(paprastai apvalinama iki 5–6 skaitmenų po kablelio)

Kadangi gauta vertė yra didesnė nei , pereiname prie 1-osios šaknies aproksimacijos:

Skaičiuojame:

, todėl reikia pereiti prie 2 aproksimacijos:

Pereikime į kitą etapą:

, taigi, iteracijos baigtos, o 2-asis aproksimacija turėtų būti laikoma apytiksle šaknies reikšme, kuri, atsižvelgiant į nurodytą tikslumą, turėtų būti suapvalinta iki tūkstantosios:

Praktikoje patogu skaičiavimų rezultatus suvesti į lentelę, norint kiek sutrumpinti įrašą, trupmena dažnai žymima:

Jei įmanoma, geriau atlikti pačius skaičiavimus „Excel“ - tai daug patogiau ir greičiau:

Atsakymas: tikslumas iki 0,001

Leiskite jums priminti, kad ši frazė reiškia faktą, kad vertindami padarėme klaidą tikroji prasmėšaknis ne daugiau kaip 0,001. Tie, kurie abejoja, gali pasiimti mikroskaičiuotuvą ir dar kartą pakeisti apytikslę reikšmę 0,674 kairėje lygties pusėje.

Dabar „nuskaitykime“ dešinįjį lentelės stulpelį iš viršaus į apačią ir pastebėkime, kad vertės absoliučia verte nuolat mažėja. Šis efektas vadinamas konvergencija metodas, leidžiantis savavališkai dideliu tikslumu apskaičiuoti šaknį. Bet konvergencija ne visada vyksta – ji užtikrinama nemažai sąlygų, apie kurią nutylėjau. Visų pirma, turi būti segmentas, ant kurio yra izoliuota šaknis pakankamai mažas– kitaip reikšmės keisis atsitiktinai ir negalėsime užbaigti algoritmo.

Ką daryti tokiais atvejais? Patikrinkite, ar tenkinamos nurodytos sąlygos (žr. nuorodą aukščiau) ir, jei reikia, sumažinkite segmentą. Taigi, santykinai kalbant, jei analizuojamame pavyzdyje intervalas mums netiko, tai turėtume apsvarstyti, pavyzdžiui, segmentą. Praktikoje esu susidūręs su tokiais atvejais, ir ši technika tikrai padeda! Tą patį reikia padaryti, jei abu „plataus“ segmento galai neatitinka sąlygos (t. y. nė vienas iš jų netinka kaip pradinis aproksimacija).

Tačiau paprastai viskas veikia kaip laikrodis, nors ir be spąstų:

2 pavyzdys

Grafiškai nustatykite lygties realių šaknų skaičių, atskirkite šias šaknis ir, naudodami Niutono metodą, tiksliai suraskite apytiksles šaknų reikšmes.

Problemos sąlyga tapo pastebimai griežtesnė: pirma, joje yra stipri užuomina, kad lygtis neturi vienos šaknies, antra, išaugo tikslumo reikalavimas, trečia, su funkcijos grafiku. daug sunkiau susidoroti.

Ir todėl sprendimas Pradėkime nuo taupymo gudrybės: įsivaizduokite lygtį formoje ir nubrėžkite grafikus:


Iš brėžinio matyti, kad mūsų lygtis turi dvi realias šaknis:

Algoritmas, kaip suprantate, turi būti „sukamas“ du kartus. Bet taip yra net sunkiausiais atvejais, kartais reikia ištirti 3-4 šaknis.

1) Naudojant kriterijų Išsiaiškinkime, kurį atkarpos galą pasirinkti kaip pradinį pirmosios šaknies aproksimaciją. Funkcijų išvestinių radimas :

Kairiojo segmento galo testavimas:

- atsirado!

Taigi tai yra pradinis apytikslis skaičiavimas.

Mes patobulinsime šaknį naudodami Niutono metodą, naudodami pasikartojančią formulę:
- iki trupmenos modulo bus ne mažesnis už reikalaujamą tikslumą:

Ir čia žodis „modulis“ įgyja neiliuzinę reikšmę, nes reikšmės yra neigiamos:


Dėl tos pačios priežasties turėtumėte parodyti didesnį dėmesį pereidami prie kiekvieno kito apytikslio:

Nepaisant gana aukšto tikslumo reikalavimo, procesas vėl baigėsi 2-uoju aproksimavimu: , todėl:

Tikslumas iki 0,0001

2) Raskime apytikslę šaknies reikšmę.

Mes patikriname, ar kairiajame segmento gale nėra utėlių:

, todėl jis netinka kaip pradinis aproksimacija.

n netiesinių algebrinių arba transcendentinių lygčių su n formos nežinomųjų sistemų sprendimų paieškos problema

f 1 (x 1, x 2, … x n) = 0,

f 2(x 1, x 2, … x n) = 0,

……………………

f n (x 1 , x 2 ,… x n ) = 0,

plačiai svarstoma skaičiavimo praktikoje. Panašios lygčių sistemos gali atsirasti, pavyzdžiui, netiesinių fizinių sistemų skaitmeninio modeliavimo metu jų stacionarių būsenų paieškos etape. Daugeliu atvejų (6.1) formos sistemos gaunamos netiesiogiai, sprendžiant kokią nors kitą skaičiavimo problemą. Pavyzdžiui, bandydami sumažinti kelių kintamųjų funkciją, galite ieškoti tų taškų daugiamatėje erdvėje, kur funkcijos gradientas yra lygus nuliui. Tokiu atveju reikia išspręsti lygčių sistemą (6.1) su kairiosiomis kraštinėmis - gradiento projekcijomis į koordinačių ašis.

Vektorinėje žymėjime sistemą (6.1) galima parašyti kompaktiškesne forma

vektoriaus funkcijų stulpelis, simbolis () T žymi transponavimo operaciją

Netiesinių lygčių sistemos sprendimų paieška yra daug sudėtingesnė užduotis nei vienos netiesinės lygties sprendimas. Nepaisant to, daug iteracinių netiesinių lygčių sprendimo metodų gali būti išplėsti ir netiesinių lygčių sistemoms.

Paprastas iteracijos metodas

Paprastas netiesinių lygčių sistemų iteracijos metodas iš esmės yra to paties pavadinimo metodo apibendrinimas vienai lygčiai. Jis pagrįstas tuo, kad lygčių sistema (6.1) redukuojama į formą

x 1 = g 1 (x 1, x 2, … , x n) , x 2 = g 2 (x 1, x 2, … , x n) ,

……………………

x n= g n(x 1 , x 2 , … , x n) ,

o iteracijos atliekamos pagal formules

x 1 (k + 1 ) = g 1 (x 1 (k ), x 2 (k ), ... , x n (k )), x 2 (k + 1 ) = g 2 (x 1 (k ), x 2 (k ), … , x n (k )) ,

……………………………

x n (k + 1) = g n (x 1 (k), x 2 (k), ..., x n (k)).

Čia viršutinis indeksas nurodo apytikslį skaičių. Iteracinis procesas (6.3) prasideda tam tikru pradiniu aproksimavimu

(x 1 (0) ,x 2 (0) ,… ,x n (0) ) ir tęskite iki prieaugio modulių

visi argumentai po vienos k iteracijos netaps mažesni už nurodytą reikšmę ε : x i (k + 1 ) − x i (k )< ε дляi = 1,2,… ,n .

Nors paprastas iteracijos metodas tiesiogiai veda prie sprendimo ir jį lengva programuoti, jis turi du reikšmingus trūkumus. Vienas iš jų – lėta konvergencija. Kitas dalykas yra tas, kad jei pradinis aproksimacija pasirenkama toli nuo tikrojo sprendinio (X 1,X 2,…,X n), tada konvergencija

metodas negarantuojamas. Akivaizdu, kad pradinio aproksimavimo, kuris nėra paprastas net vienai lygčiai, parinkimo problema netiesinėms sistemoms tampa labai sudėtinga.

Išspręskite netiesinių lygčių sistemą:

(x...

) =0

F n (x 1...

x n) = 0 .

Tiesioginių bendrosios formos netiesinių sistemų sprendimo būdų nėra. Tik kai kuriais atvejais sistema (4.1) gali būti išspręsta tiesiogiai. Pavyzdžiui, dviejų lygčių atveju kartais galima vieną nežinomąjį išreikšti kita ir taip redukuoti uždavinį iki vienos netiesinės lygties sprendimo vienos nežinomosios atžvilgiu.

Iteraciniai metodai dažniausiai naudojami netiesinių lygčių sistemoms spręsti.

Niutono metodas

Esant vienai lygčiai F(x) = 0, Niutono metodo algoritmas buvo nesunkiai gaunamas kreivės y = F(x) liestinės lygtis. Niutono metodas lygčių sistemoms yra pagrįstas funkcijų F 1 (x 1 ...x n) išplėtimu Taylor serijoje ir terminais, kuriuose yra

esami antrosios (ir aukštesnės eilės) dariniai atmetami. Tegul apytikslės sistemos (4.1) nežinomųjų reikšmės yra lygios

atsakingas a 1 ,a 2 ,.....,a n . Užduotis yra rasti žingsnius (pagal

redagavimai) prie šių verčių

x 1, x 2,...,

x n , kurio dėka sistemos sprendimas

temos bus parašytos taip:

x 1 = a 1 + x 1,

x 2 = a 2+

x 2, .... ,x n = a n + x n.

Išplėskime kairiąsias lygčių (4.1) puses, atsižvelgdami į Teiloro serijos plėtinį, apsiribodami tik tiesiniais santykinės dėsniais.

tiksliai žingsniais:

F1 (x1 ... xn ) ≈ F1 (a1 ... an ) +

∂ F 1

x 1+

+ ∂ F 1

xn,

∂x

∂x

F2 (x1 ... xn ) ≈ F2 (a1 ... an ) +

∂ F 2

x 1+

∂ F 2

xn,

∂x

∂x

...................................

F n(x 1 ... x n) ≈ F n(a 1 ... a n) +

∂Fn

x 1+

∂Fn

xn.

∂x

∂x

Pakeitę į sistemą (4.1), gauname tokią tiesinių algebrinių lygčių sistemą prieaugiams:

∂ F 1

∂ F 1

+ ∂ F 1

= –F ,

∂x

∂x

∂x

∂ F 2

∂ F 2

∂ F 2

= –F ,

∂x

∂x

∂x

..............................

∂Fn

∂Fn

∂Fn

= −F .

∂x

∂x

∂x

Vertės F 1...

dariniai

yra skaičiuojami

x 2 = a 2, …x n = a n.

Sistemos (4.3) determinantas yra Jakobinis:

∂ F 1

∂ F 1

∂x

∂x

∂ F 2

∂ F 2

J = ∂x

∂x.

… … … …

∂ F n… … ∂ F n∂ x 1 ∂ x n

x 1 = a 1,

Kad egzistuotų unikalus sistemos sprendimas, kiekvienos iteracijos metu Jacobian turi būti ne lygus nuliui.

Taigi, iteracinis lygčių sistemos sprendimo Niutono metodu procesas susideda iš prieaugių x 1 , x 2 , ..., x n nustatymo iki nežinomųjų verčių kiekvienoje iteracijoje, sprendžiant tiesinių algebrinių lygčių sistemą ( 4.3). Skaičiavimas sustoja, jei visi prieaugiai tampa maži absoliučia verte: maxx i< ε . В ме-

Taikant Niutono metodą, geras pradinės aproksimacijos pasirinkimas taip pat yra svarbus norint užtikrinti gerą konvergenciją. Konvergencija blogėja, kai sistemoje didėja lygčių skaičius.

Pavyzdžiui, apsvarstykite galimybę naudoti Niutono metodą dviejų lygčių sistemai išspręsti:

∂ ∂ F 1. x

Dešinėje pusėje esantys dydžiai apskaičiuojami x = a,y = b.

Jei sąlygos bus įvykdytos

y-b

< εи

x−a

duotam M, tada

rodomos x ir y reikšmės,

kitaip

yra išvada

x , y , M .

VALSTYBINĖ UGDYMO ĮSTAIGA

„Padniestrės valstybinis universitetas pavadintas. T.G. Ševčenka"

Rybnitsa filialas

Fizikos, matematikos ir informatikos katedra

Kursiniai darbai

disciplinoje: „Problemų sprendimo dirbtuvės kompiuteriu“

"Niutono metodas netiesinėms lygtims spręsti"

Užbaigta:

3 kurso studentas;

330-oji grupė

specialybės: „Informatika“

su papildomais anglų kalbos specialybę

Nistor A.G.

Patikrinta:

mokytojas Panchenko T. A.


Norint įdiegti kompiuterius į visas žmogaus veiklos sritis, įvairių profilių specialistai turi įvaldyti kompiuterinių technologijų naudojimo įgūdžius. Didėja universiteto studentų rengimo lygis, kurie nuo pirmųjų kursų supažindinami su kompiuterių naudojimu ir paprasčiausiais skaitiniais metodais, jau nekalbant apie tai, kad kursinių ir diplominių projektų įgyvendinimas, kompiuterinių technologijų naudojimas tampa norma. daugumoje universitetų.

Kompiuterinės technologijos dabar naudojamos ne tik inžineriniuose skaičiavimuose ir ekonomikos moksluose, bet ir tokiose tradiciškai nematematinėse specialybėse kaip medicina, kalbotyra, psichologija. Šiuo atžvilgiu galima teigti, kad kompiuterių naudojimas tapo plačiai paplitęs. Atsirado didelė specialistų kategorija – kompiuterių vartotojai, kuriems reikalingos žinios apie kompiuterių naudojimą savo pramonėje – gebėjimai dirbti su esama programine įranga, taip pat sukurti savo programinę įrangą, pritaikytą konkrečiai problemai spręsti. Ir čia vartotojui į pagalbą ateina aukšto lygio programavimo kalbų ir skaitmeninių metodų aprašymai.

Skaitinius metodus paprastai kuria ir tiria aukštos kvalifikacijos matematikai. Daugumai vartotojų pagrindinė užduotis yra suprasti pagrindines idėjas ir metodus, funkcijas ir programas. Tačiau vartotojai nori dirbti su kompiuteriu ne tik kaip itin išmaniąja skaičiuokle, bet ir kaip asistentu kasdieniame darbe, informacijos saugykla su greita ir tvarkinga prieiga, taip pat grafinės informacijos šaltiniu ir procesoriumi. Visas šias šiuolaikinio kompiuterio funkcijas ketinu pademonstruoti šiame kursiniame darbe.

Tikslai ir uždaviniai.

Šio kursinio darbo tikslas – Niutono metodu ištirti ir įdiegti programiniame produkte netiesinių lygčių sprendimą. Darbą sudaro trys skyriai, išvados ir priedas. Pirma dalis yra teorinė ir joje pateikiama bendra informacija apie Niutono metodą. Antroji – praktinė dalis. Čia aprašome Niutono metodą, analizuotą konkrečiais pavyzdžiais. Trečioji skirta programos testavimui ir rezultatų analizei. Galiausiai pateikiama išvada apie atliktą darbą.

Šio kursinio darbo tikslas – Niutono metodo programinis įgyvendinimas netiesinėms lygtims spręsti.

Norėdami tai padaryti, turite atlikti šias užduotis:

1. Studijuoti reikiamą literatūrą.

2. Peržiūrėkite esamus netiesinių lygčių sprendimo būdus.

3. Išstudijuokite Niutono metodą netiesinėms lygtims spręsti.

4. Apsvarstykite netiesinių lygčių sprendimą Niutono metodu, naudodami konkrečius pavyzdžius.

5. Parengti netiesinių lygčių sprendimo Niutono metodu programą.

6. Išanalizuokite rezultatus.

Apsvarstykite netiesinės lygties šaknų radimo problemą

(1) lygties šaknys yra tos x reikšmės, kurias pakeitus, ji paverčiama tapatybe. Tik pačioms paprasčiausioms lygtims galima rasti sprendimą formulių pavidalu, t.y. analitinė forma. Dažniau lygtis reikia spręsti apytiksliais metodais, tarp kurių labiausiai paplitę dėl kompiuterių atsiradimo yra skaitiniai metodai.

Šaknų paieškos apytiksliais metodais algoritmą galima suskirstyti į du etapus. Pirmajame etape tiriama šaknų vieta ir atliekamas jų atskyrimas. Surandama sritis, kurioje yra lygties šaknis arba pradinė aproksimacija iki šaknies x 0. Paprasčiausias būdas išspręsti šią problemą yra ištirti funkcijos f(x) grafiką. Bendruoju atveju, norint ją išspręsti, būtina panaudoti visas matematinės analizės priemones.

Bent vienos (1) lygties šaknies egzistavimas rastame segmente išplaukia iš Bolzano sąlygos:

f(a)*f(b)<0 (2)

Tai reiškia, kad funkcija f(x) yra ištisinė šiame intervale. Tačiau ši sąlyga neatsako į klausimą apie lygties šaknų skaičių tam tikrame intervale. Jei funkcijos tęstinumo reikalavimas yra papildytas jos monotoniškumo reikalavimu, o tai išplaukia iš pirmosios išvestinės ženklo pastovumo, tada galime teigti, kad tam tikrame segmente yra viena šaknis.

Lokalizuojant šaknis taip pat svarbu žinoti pagrindines šio tipo lygčių savybes. Pavyzdžiui, prisiminkime kai kurias algebrinių lygčių savybes:

kur yra tikrieji koeficientai.

a) n laipsnio lygtis turi n šaknų, tarp kurių gali būti ir tikroji, ir kompleksinė. Sudėtingos šaknys sudaro sudėtingas konjuguotas poras, todėl lygtis turi lyginį tokių šaknų skaičių. Jei n yra nelyginis, yra bent viena tikroji šaknis.

b) Teigiamų realiųjų šaknų skaičius yra mažesnis arba lygus kintamųjų ženklų skaičiui koeficientų sekoje. Pakeitus x į –x (3) lygtyje, galime tuo pačiu būdu įvertinti neigiamų šaknų skaičių.

Antrajame (1) lygties sprendimo etape, naudojant gautą pradinį aproksimaciją, konstruojamas iteracinis procesas, leidžiantis tam tikru iš anksto nustatytu tikslumu patikslinti šaknies reikšmę. Iteracinis procesas susideda iš nuoseklaus pradinio aproksimavimo tobulinimo. Kiekvienas toks žingsnis vadinamas iteracija. Dėl iteracijos proceso randama apytikslių lygties šaknų reikšmių seka. Jei ši seka artėja prie tikrosios šaknies x vertės, kai n auga, tai kartotinis procesas suartėja. Teigiama, kad pasikartojantis procesas susilieja bent iki eilės m, jei įvykdoma ši sąlyga:

, (4)


kur C>0 yra tam tikra konstanta. Jei m=1, tai kalbame apie pirmos eilės konvergenciją; m=2 – apie kvadratinį, m=3 – apie kubinį konvergenciją.

Iteraciniai ciklai baigiasi, jei tam tikros leistinos paklaidos atveju įvykdomi absoliučių arba santykinių nuokrypių kriterijai:

arba nedidelis neatitikimas:

Šis darbas skirtas netiesinių lygčių sprendimo algoritmui Niutono metodu tirti.

1.1 Esamų netiesinių lygčių sprendimo metodų apžvalga

Yra daug skirtingų netiesinių lygčių sprendimo būdų, kai kurie iš jų pateikiami žemiau:

1)Iteracijos metodas. Sprendžiant netiesinę lygtį iteracijos metodu, naudosime lygtį, parašytą forma x=f(x). Nurodoma pradinė argumento reikšmė x 0 ir tikslumas ε. Pirmoji sprendinio x 1 aproksimacija randama iš išraiškos x 1 =f(x 0), antrasis - x 2 =f(x 1) ir t.t. Bendruoju atveju i+1 aproksimaciją randame naudodami formulę xi+1 =f(xi). Šią procedūrą kartojame iki |f(xi)|>ε. Iteracijos metodo konvergencijos sąlyga |f"(x)|<1.

2)Niutono metodas. Sprendžiant netiesinę lygtį Niutono metodu, nurodoma pradinė argumento reikšmė x 0 ir tikslumas ε. Tada taške (x 0 ,F(x 0)) nubrėžiame grafiko F(x) liestinę ir nustatome liestinės susikirtimo su x 1 ašimi tašką. Taške (x 1 ,F(x 1)) vėl sukonstruojame liestinę, randame kitą norimo sprendinio x 2 aproksimaciją ir t.t. Šią procedūrą kartojame iki |F(xi)| > ε. Norėdami nustatyti liestinės susikirtimo tašką (i+1) su abscisių ašimi, naudojame tokią formulę x i+1 =x i -F(x i)\ F’(x i). Tangentinio metodo F(x 0)∙F""(x)>0 konvergencijos sąlyga ir kt.

3). Dichotomijos metodas. Sprendimo būdas yra palaipsniui dalijantis pradinį neapibrėžties intervalą per pusę pagal formulę C k = a k + b k /2.

Norint pasirinkti reikiamą iš dviejų gautų segmentų, reikia rasti funkcijos reikšmę gautų segmentų galuose ir atsižvelgti į tą, kurioje funkcija pakeis savo ženklą, tai yra sąlyga f ( a k) * f (in k) turi būti patenkintas<0.

Segmento padalijimo procesas vykdomas tol, kol esamo neapibrėžties intervalo ilgis yra mažesnis už nurodytą tikslumą, tai yra

į - a į< E. Тогда в качестве приближенного решения уравнения будет точка, соответствующая середине интервала неопределённости.

4). Akordo metodas. Metodo idėja yra ta, kad atkarpoje sudaroma styga, sujungianti funkcijos y=f(x) grafiko lanko galus ir tašką c, stygos susikirtimą su x- ašis, laikoma apytiksle šaknies reikšme

c = a – (f(a)Х (a-b)) / (f(a) – f(b)),

c = b - (f(b)Х (a-b)) / (f(a) - f(b)).

Kitas aproksimavimas ieškomas intervale arba priklausomai nuo funkcijų reikšmių ženklų taškuose a, b, c

x* O, jei f(c)H f(a) > 0;

x* O, jei f(c)Х f(b)< 0 .


Jei f"(x) nekeičia ženklo į , tada pažymėdami c=x 1 ir laikant a arba b pradine aproksimacija, gauname kartotines stygos metodo formules su fiksuotu dešiniuoju arba kairiuoju tašku.

x 0 =a, x i+1 = x i - f(x i)(b-x i) / (f(b)-f(x i), kai f "(x)Х f "(x) > 0;

x 0 =b, x i+1 = x i - f(x i)(x i -a) / (f(x i)-f(a), kai f "(x)Х f "(x)< 0 .

Akordo metodo konvergencija yra tiesinė.

1.2 Niutono metodo algoritmas

Sukurkime efektyvų lygties šaknų skaičiavimo algoritmą. Pateikiame pradinę aproksimaciją. Šioje vietoje apskaičiuokime funkcijos reikšmę ir jos išvestinę. Pažvelkime į grafinę metodo iliustraciją:

.


(8)

Tęsdami šį procesą, gauname garsiąją Niutono formulę:

(9)

Čia yra paprasčiausia rekursyvi paprogramės funkcija:

funkcija X_Newt(x,eps:real):reali;

y:=x-f(x)/f1(x);

jei abs(f(x)) > eps

tada X_Newt:=X_Newt(y,eps)

Niutono metodui (liestinėms) būdingas kvadratinis konvergencijos greitis, t.y. Kiekvienos iteracijos metu teisingų ženklų skaičius padvigubėja. Tačiau šis metodas ne visada duoda norimą rezultatą. Panagrinėkime šį klausimą išsamiau.

Paverskime (1) lygtį į lygiavertę formos lygtį:

Tangentinio metodo atveju . Jei žinoma pradinė aproksimacija šaknies x=x 0, tai sekančią aproksimaciją rasime iš lygties x 1 =g(x 0), tada x 2 =g(x 1),... Tęsdami šį procesą, gauname paprastos iteracijos metodo pasikartojančią formulę

x k+1 =g(x k) (11)

Iteracinis procesas tęsiasi tol, kol įvykdomos sąlygos (5–7).

Ar aprašytas skaičiavimo procesas visada veda prie norimo sprendimo? Kokiomis sąlygomis jis susilies? Norėdami atsakyti į šiuos klausimus, vėl pereikime prie metodo geometrinės iliustracijos.

Lygties šaknis vaizduojama funkcijų y=x ir y=g(x) susikirtimo tašku. Kaip matyti iš fig. 3(a), jei sąlyga tenkinama, tai procesas suartėja, kitu atveju jis išsiskiria (3(b) pav.).


Taigi, norint, kad kartotinis procesas būtų konvergentiškas ir duotų norimą rezultatą, turi būti įvykdyta ši sąlyga:

Perėjimas nuo lygties f(x)=0 į lygtį x=g(x) gali būti atliekamas įvairiais būdais. Šiuo atveju svarbu, kad pasirinkta funkcija g(x) atitiktų sąlygą (12). Pavyzdžiui, jei funkcija f(x) padauginama iš savavališkos konstantos q ir kintamasis x pridedamas prie abiejų (1) lygties pusių, tada g(x)=q*f(x)+x. Pasirinkime tokią konstantą q, kad algoritmo konvergencijos greitis būtų didžiausias. Jei 1

Niutono metodas turi aukštą konvergencijos greitį, tačiau jis ne visada sutampa. Konvergencijos sąlyga, kur g(x) = x – f(x)/ f’(x), sumažinama iki reikalavimo.

Praktiniuose skaičiavimuose svarbu pasirinkti pradinę vertę kuo artimesnę norimai reikšmei, o programoje įdiegti „kilpos apsaugą“.

Metodo trūkumas yra tas, kad kiekviename žingsnyje reikia apskaičiuoti ne tik funkciją, bet ir jos išvestinę. Tai ne visada patogu. Viena iš Niutono metodo modifikacijų – išvestinę skaičiuoti tik per pirmą iteraciją:

(13)

Kitas modifikavimo būdas – išvestinę pakeisti baigtiniu skirtumu

(14)

Tada (15)

Geometrinė šio Niutono algoritmo pakeitimo prasmė yra ta, kad nuo liestinės pereiname prie sekanto. Sekantinis metodas konvergencijos greičio atžvilgiu yra prastesnis už Niutono metodą, tačiau nereikalauja išvestinės skaičiavimo. Atkreipkite dėmesį, kad pradiniai aproksimacijos sekanto metodu gali būti išdėstyti skirtingose ​​šaknies pusėse arba toje pačioje pusėje.

Užrašykime Niutono metodo algoritmą bendra forma.

1. Nustatykite pradinį aproksimaciją x (0), kad sąlyga būtų įvykdyta

f(x (0))*f''(x (0))>0. (16)

Nustatykite nedidelį teigiamą skaičių ε kaip skaičiavimų tikslumą. Nustatyti k = 0.

2. Apskaičiuokite x (k+1) naudodami (9) formulę:


.

3. Jei | x (k+1) – x (k) |< ε, то процесс вычисления прекратить и положить х* = x (k+1) . Kitu atveju padidinkite k 1 (k = k + 1) ir pereikite prie 2 veiksmo.

Išspręskime keletą netiesinių lygčių rankiniu būdu, naudodami Niutono metodą, o tada palyginkime rezultatus su gautais diegiant programinės įrangos produktą.

1 pavyzdys

sin x 2 + cosx 2 - 10x. = 0.

F’(x) = 2x cosx 2 - 2x sinx 2 - 10.

F’’(x) = 2 cosx 2 - 4x 2 sinx 2 - 2sinx 2 - 4x 2 cosx 2 = cosx 2 (2-4x 2) - sinx 2 (2 + 4x 2).


Dabar, remdamiesi grafiku, paimkime pirmąją apytikslę šaknį ir patikrinkime sąlygą (16): f(x (0)) * f’’(x (0)) > 0.

Tegu x (0) = 0,565, tada f(0,565)*f''(0,565) = -4. 387 * (-0,342) = 1,5 > 0,

Sąlyga įvykdyta, todėl imame x (0) = 0,565.

k x(k) f(x(k)) f'(x(k)) | x(k+1) – x(k) |
0 0. 565 -4. 387 -9. 982 0. 473
1 0. 092 0. 088 -9. 818 0. 009
2 0. 101 0. 000 -9. 800 0. 000
3 0. 101

Iš to išplaukia, kad lygties šaknis yra x = 0,101.

2 pavyzdys

Išspręskite lygtį naudodami Niutono metodą.

cos x – e -x2/2 + x - 1 = 0

Skaičiavimai turėtų būti atliekami ε = 0,001 tikslumu.

Apskaičiuokime pirmąją funkcijos išvestinę.

F’(x) = 1 – sin x + x*e -x2/2 .

Dabar apskaičiuokime antrąją funkcijos išvestinę.

F’’(x) = e -x2/2 *(1-x 2) – cos x.

Sukurkime apytikslį šios funkcijos grafiką.

Dabar, remdamiesi grafiku, paimkime pirmąją apytikslę šaknį ir patikrinkime sąlygą (16): f(x (0)) * f’’(x (0)) > 0.

Tegul x (0) = 2, tada f(2)*f''(2) = 0,449 * 0,010 = 0,05 > 0,

Sąlyga įvykdyta, todėl imsime x (0) = 2.

Dabar sukurkime verčių lentelę, kad išspręstume šią lygtį.

k x(k) f(x(k)) f'(x(k)) | x(k+1) – x(k) |
0 2 0. 449 0. 361 1. 241
1 -0. 265 0. 881 0. 881 0. 301
2 -0. 021 0. 732 0. 732 0. 029
3 0. 000 0. 716 0. 716 0. 000
4 1. 089

Iš to išplaukia, kad lygties šaknis yra x = 1,089.

3 pavyzdys

Išspręskite lygtį naudodami Niutono metodą.

Skaičiavimai turėtų būti atliekami ε = 0,001 tikslumu.

Apskaičiuokime pirmąją funkcijos išvestinę.

F’(x) = 2*x + e -x .

Dabar apskaičiuokime antrąją funkcijos išvestinę.

F’’(x) = 2 - e -x .

Sukurkime apytikslį šios funkcijos grafiką.


Dabar, remdamiesi grafiku, paimkime pirmąją apytikslę šaknį ir patikrinkime sąlygą (16): f(x (0)) * f’’(x (0)) > 0.

Tegu x (0) = 1, tada f(2)*f''(2) = 0. 632 * 1, 632 = 1, 031 > 0,

Dabar sukurkime verčių lentelę, kad išspręstume šią lygtį.

k x(k) f(x(k)) f'(x(k)) | x(k+1) – x(k) |
0 1, 000 0, 632 2, 368 0, 267
1 0, 733 0, 057 1, 946 0, 029
2 0, 704 0, 001 1, 903 0, 001
3 0, 703

Iš to išplaukia, kad lygties šaknis yra x = 0,703.

Išspręskite lygtį naudodami Niutono metodą.

cos x –e -x/2 +x-1=0.

Apskaičiuokime pirmąją funkcijos išvestinę.


F’(x) = -sin x + e -x/2 /2+1.

Dabar apskaičiuokime antrąją funkcijos išvestinę.

F’’(x) = -cos x - e -x/2/4.

Sukurkime apytikslį šios funkcijos grafiką.

Dabar, remdamiesi grafiku, paimkime pirmąją apytikslę šaknį ir patikrinkime sąlygą (16): f(x (0)) * f’’(x (0)) > 0.

Tegu x (0) = 1, tada f(2)*f''(2) = -0. 066 * (-0,692) = 0,046 > 0,

Sąlyga įvykdyta, todėl imsime x (0) = 1.

Dabar sukurkime verčių lentelę, kad išspręstume šią lygtį.

k x(k) f(x(k)) f'(x(k)) | x(k+1) – x(k) |
0 1, 000 -0. 066 0. 462 0. 143
1 1. 161 -0. 007 0. 372 0. 018
2 1. 162 0. 0001. 0. 363 0. 001
3 1. 162

Iš to išplaukia, kad lygties šaknis yra x = 1,162.

5 pavyzdys

Išspręskite lygtį naudodami Niutono metodą.

2+e x - e -x =0.

Apskaičiuokime pirmąją funkcijos išvestinę.

F’(x) = e x +e -x .

Dabar apskaičiuokime antrąją funkcijos išvestinę.

F''(x) = e x -e -x .

Sukurkime apytikslį šios funkcijos grafiką.

Dabar, remdamiesi grafiku, paimkime pirmąją apytikslę šaknį ir patikrinkime sąlygą (16): f(x (0)) * f’’(x (0)) > 0.

Tegu x (0) = 1, tada f(2)*f’’(2) = 0, 350 * 2, 350 = 0, 823 > 0,

Sąlyga įvykdyta, todėl imsime x (0) = 1.

Dabar sukurkime verčių lentelę, kad išspręstume šią lygtį.

k x(k) f(x(k)) f'(x(k)) | x(k+1) – x(k) |
0 1, 000 0, 350 3, 086 0, 114
1 0, 886 0, 013 2, 838 0, 005
2 0, 881 0, 001 2, 828 0, 000
3 0, 881

Iš to išplaukia, kad lygties šaknis yra x = 0,881.

3.1 Programos aprašymas

Ši programa skirta dirbti tekstiniu ir grafiniu režimu. Jį sudaro Graph modulis, Crt, trys funkcijos ir trys procedūros.

1. Crt modulis skirtas valdyti ekrano teksto režimus, išplėstinius klaviatūros kodus, spalvas, langus ir garsą;

2. Graph modulis skirtas grafinių objektų valdymui;

3. procedūra GrafInit – inicijuoja grafikos režimą;

4. funkcija VF – apskaičiuoja funkcijos reikšmę;

5. funkcija f1 – apskaičiuoja funkcijos pirmosios išvestinės reikšmę;

6. funkcija X_Newt – įgyvendina lygties sprendimo algoritmą Niutono metodu.

7. procedūra FGraf – įgyvendina duotosios funkcijos f(x) grafiko konstravimą;

Ots=35 – konstanta, kuri apibrėžia taškų skaičių įtraukimui nuo monitoriaus ribų;

fmin, fmax – didžiausios ir minimalios funkcijos reikšmės;

SetColor(4) – procedūra, kuri paletės pagalba nustato esamą grafinio objekto spalvą, šiuo atveju ji yra raudona;

SetBkColor(9) yra procedūra, kuri nustato esamą fono spalvą naudojant paletę, šiuo atveju šviesiai mėlyną.

8. Procedūra MaxMinF – apskaičiuos didžiausią ir mažiausią funkcijos f(x) reikšmes.

Linija – procedūra, kuri nubrėžia liniją iš taško su koordinatėmis (x1, y1) į tašką su koordinatėmis (x2, y2);

MoveTo – procedūra, perkelianti rodyklę (CP) į tašką su koordinatėmis (x, y);

TextColor(5) – procedūra, kuri nustato esamą simbolių spalvą, šiuo atveju ji yra rožinė;

Outtexty(x, y, 'styga') – procedūra, kuri išveda eilutę, prasidedančią nuo pozicijos (x, y)

CloseGraph yra procedūra, kuri uždaro grafikos sistemą.

3.2 Programos testavimas

Programai išbandyti paimsime pavyzdžius, kurie buvo išspręsti praktinėje darbo dalyje, kad palygintume rezultatus ir patikrintume, ar programa veikia teisingai.

1) sin x 2 + cosx 2 - 10x. = 0.

Įveskite a = -1

Įveskite b=1

= [-1, 1]

(funkcijų diagramos išvestis)


Gauname: x=0,0000002

2) cos x – e -x2/2 + x - 1 = 0.

Ši programa apskaičiuoja netiesinės lygties šaknis, naudodama Niutono metodą eps tikslumu ir nubrėžia apytikslį atkarpos funkcijos grafiką.

Įveskite a = -3

Įveskite b=3

= [-3, 3]

(funkcijų diagramos išvestis)

Niutono metodu rastos lygties šaknis:

Patikrinkime gautą atsakymą pakeisdami į lygtį.

Gauname: x=-0,0000000

3) x 2 - e -x = 0.

Ši programa apskaičiuoja netiesinės lygties šaknis, naudodama Niutono metodą eps tikslumu ir nubrėžia apytikslį atkarpos funkcijos grafiką.

Įveskite a = -1

Įveskite b=1

= [-1, 1]

Įveskite skaičiavimo tikslumą eps=0. 01

(funkcijų diagramos išvestis)

Niutono metodu rastos lygties šaknis:

Patikrinkime gautą atsakymą pakeisdami į lygtį.

Gauname: x=0,0000000

4) cos x –e -x/2 +x-1=0.

Ši programa apskaičiuoja netiesinės lygties šaknis, naudodama Niutono metodą eps tikslumu ir nubrėžia apytikslį atkarpos funkcijos grafiką.

Įveskite a = -1,5

Įveskite b=1,5

= [-1,5, 1,5 ]

Įveskite skaičiavimo tikslumą eps=0. 001

(funkcijų diagramos išvestis)

Niutono metodu rastos lygties šaknis:


Patikrinkime gautą atsakymą pakeisdami į lygtį.

Gauname: x=0,0008180

5) -2+e x - e -x =0.

Ši programa apskaičiuoja netiesinės lygties šaknis, naudodama Niutono metodą eps tikslumu ir nubrėžia apytikslį atkarpos funkcijos grafiką.

Įveskite a = -0,9

Įveskite b=0,9

= [-0,9, 0,9]

Įveskite skaičiavimo tikslumą eps=0. 001

(funkcijų diagramos išvestis)

Niutono metodu rastos lygties šaknis:

Patikrinkime gautą atsakymą pakeisdami į lygtį.

Darbo tikslas buvo sukurti programą, kuri Niutono metodu apskaičiuoja netiesinės lygties šaknį. Remdamiesi tuo, galime daryti išvadą, kad tikslas buvo pasiektas, nes jam įgyvendinti buvo išspręstos šios užduotys:

1. Išstudijuota reikiama literatūra.

2. Apžvelgti esami netiesinių lygčių sprendimo būdai.

3. Ištirtas Niutono metodas netiesinėms lygtims spręsti.

4. Netiesinių lygčių sprendimas Niutono metodu nagrinėjamas naudojant pavyzdį.

5. Programa buvo išbandyta ir derinama.

Naudotos literatūros sąrašas

1. B.P. Demidovičius, I.A. Maronas. Skaičiavimo matematikos pagrindai. – Maskva, red. „Mokslas“; 1970 m.

2. V.M. Veržbitskis. Skaitiniai metodai (tiesinė algebra ir netiesinės lygtys). – Maskva, „Aukštoji mokykla“; 2000 m.

3. N.S.Bachvalovas, A.V.Lapinas, E.V.Čižonkovas. Skaitiniai metodai uždaviniuose ir pratybose. – Maskva, „Aukštoji mokykla“; 2000 m.

4. Matthews, John, G., Fink, Curtis, D. Skaitiniai metodai MATLAB, 3 leidimas - Maskva, „Villas“; 2001 m.

Niutono metodas (tangentinis metodas)

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Î.

Tarkime, kad tam tikru šaknies tikslinimo žingsniu gaunamas kitas šaknies x n artėjimas (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 in (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. Tokiu 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 sąlyga tam, kad būtų pasiektas nurodytas tikslumas, kai tikslinama šaknis 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 suprojektuotos 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 patikslinti š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 stygos metodo formulė šiuo atveju turi formą

Pažymėtina, kad fiksuotas taškas stygos metodu 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.



Ar jums patiko straipsnis? Pasidalinkite su draugais!