Įvadas

Sprendžiant mokslinius ir inžinerinius uždavinius, dažnai reikia matematiškai apibūdinti kokią nors dinaminę sistemą. Tai geriausia padaryti formoje diferencialines lygtis (DU) arba diferencialinių lygčių sistemos. Dažniausiai ši problema iškyla sprendžiant uždavinius, susijusius su cheminių reakcijų ir įvairių perdavimo reiškinių (šilumos, masės, impulso) – šilumos perdavimo, maišymo, džiovinimo, adsorbcijos – kinetikos modeliavimu, aprašant makro- ir mikrodalelių judėjimą.

Kai kuriais atvejais diferencialinė lygtis gali būti transformuota į formą, kurioje aukščiausia išvestinė yra aiškiai išreikšta. Ši rašymo forma vadinama lygtimi, išspręsta atsižvelgiant į didžiausią išvestinę (šiuo atveju aukščiausios išvestinės nėra dešinėje lygties pusėje):

Įprastos diferencialinės lygties sprendimas yra funkcija y(x), kuri bet kokiam x tenkina šią lygtį tam tikrame baigtiniame arba begaliniame intervale. Diferencialinės lygties sprendimo procesas vadinamas diferencialinės lygties integravimu.

Istoriškai pirmasis ir labiausiai paprastu būdu Skaitinis Koši uždavinio sprendimas pirmos eilės ODE yra Eulerio metodas. Jis pagrįstas išvestinės aproksimavimu priklausomų (y) ir nepriklausomų (x) kintamųjų baigtinių prieaugių santykiu tarp vienodo tinklelio mazgų:

kur y i+1 yra norima funkcijos reikšmė taške x i+1.

Eulerio metodo tikslumas gali būti pagerintas, jei integralui aproksimuoti naudojama tikslesnė integravimo formulė - trapecijos formos formulė.

Pasirodo, ši formulė yra netiesioginė y i+1 atžvilgiu (ši reikšmė yra ir kairėje, ir dešinėje išraiškos pusėse), tai yra, tai lygtis y i+1 atžvilgiu, kurią galima išspręsti, pavyzdžiui, skaitiniu būdu, naudojant kokį nors iteracinį metodą (tokioje formoje tai gali būti laikoma paprastojo iteracijos metodo iteracine formule).

Kursinio darbo sudėtis: Kursinis darbas susideda iš trijų dalių. Pirmoje dalyje pateikiamas trumpas metodų aprašymas. Antroje dalyje – problemos formulavimas ir sprendimas. Trečioje dalyje - programinės įrangos diegimas kompiuterine kalba

Kursinio darbo tikslas: išnagrinėti du diferencialinių lygčių sprendimo būdus - Eilerio-Koši metodą ir patobulintą Eilerio metodą.

1. Teorinė dalis

Skaitmeninis diferencijavimas

Diferencialinė lygtis yra lygtis, turinti vieną ar daugiau išvestinių. Atsižvelgiant į nepriklausomų kintamųjų skaičių, diferencialinės lygtys skirstomos į dvi kategorijas.

    Įprastosios diferencialinės lygtys (ODE)

    Dalinės diferencialinės lygtys.

Paprastosios diferencialinės lygtys yra tos lygtys, kuriose yra viena ar daugiau norimos funkcijos išvestinių. Jie gali būti parašyti kaip

nepriklausomas kintamasis

Aukščiausia eilė, įtraukta į (1) lygtį, vadinama diferencialinės lygties tvarka.

Paprasčiausia (tiesinė) ODE yra (1) eilės lygtis, išspręsta išvestinės atžvilgiu

Diferencialinės lygties (1) sprendimas yra bet kokia funkcija, kuri ją pakeitus į lygtį paverčia ją tapatybe.

Pagrindinė problema, susijusi su linijiniu ODE, yra žinoma kaip Kasha problema:

Raskite (2) lygties sprendimą funkcijos, atitinkančios pradinę sąlygą (3), forma.

Geometriškai tai reiškia, kad reikia rasti integralinę kreivę, einantį per tašką ), kai įvykdoma lygybė (2).

Skaitinis Kasha problemos požiūriu reiškia: reikia sudaryti funkcijų reikšmių lentelę, atitinkančią (2) lygtį ir pradinę sąlygą (3) segmente su tam tikru žingsniu. Paprastai manoma, kad yra pradinė būklė nurodyta kairiajame segmento gale.

Paprasčiausias skaitinis diferencialinės lygties sprendimo būdas yra Eulerio metodas. Jis pagrįstas idėja grafiškai sudaryti diferencialinės lygties sprendimą, tačiau šis metodas taip pat suteikia galimybę rasti norimą funkciją skaitine forma arba lentelėje.

Tegu pateikta (2) lygtis su pradine sąlyga, tai yra, iškelta Kasha problema. Pirmiausia išspręskime šią problemą. Paprasčiausiu būdu suraskite apytikslę sprendimo reikšmę tam tikrame taške, kur yra gana mažas žingsnis. Lygtis (2) kartu su pradine sąlyga (3) nurodo norimos integralinės kreivės liestinės kryptį taške su koordinatėmis

Tangento lygtis turi formą

Judėdami pagal šią liestinę, gauname apytikslę sprendimo vertę taške:

Turėdami apytikslį sprendinį taške, galite pakartoti anksčiau aprašytą procedūrą: nubrėžkite tiesę, einančią per šį tašką su kampiniu koeficientu, ir iš jo raskite apytikslę sprendinio reikšmę taške.

. Atkreipkite dėmesį, kad ši linija nėra liestinė tikrosios integralinės kreivės, nes taškas mums nepasiekiamas, tačiau jei jis yra pakankamai mažas, gautos apytikslės reikšmės bus artimos tikslioms sprendimo reikšmėms.

Tęsdami šią mintį, sukurkime vienodai išdėstytų taškų sistemą

Reikiamos funkcijos verčių lentelės gavimas

Eulerio metodas susideda iš cikliško formulės taikymo

1 pav. Eulerio metodo grafinė interpretacija

Skaitmeninio diferencialinių lygčių integravimo metodai, kai sprendiniai gaunami iš vieno mazgo į kitą, vadinami žingsnis po žingsnio. Eulerio metodas yra paprasčiausias žingsnis po žingsnio metodų atstovas. Bet kurio laipsniško metodo ypatybė yra ta, kad pradedant nuo antrojo žingsnio, pradinė reikšmė formulėje (5) pati yra apytikslė, tai yra, kiekvieno tolesnio žingsnio paklaida sistemingai didėja. Dažniausiai naudojamas žingsnis po žingsnio metodų, skirtų apytiksliai skaitiniam ODE sprendimui, tikslumui įvertinti yra metodas, kai du kartus pereinama tam tikra atkarpa su žingsniu ir su žingsniu.

1.1 Patobulintas Eulerio metodas

Pagrindinė šio metodo idėja: kita vertė, apskaičiuota pagal (5) formulę, bus tikslesnė, jei išvestinės vertė, tai yra tiesės, pakeičiančios integralią kreivę atkarpoje, kampinis koeficientas, nebus apskaičiuojamas. išilgai kairiojo krašto (ty taške), bet segmento centre. Bet kadangi išvestinės tarp taškų reikšmė neskaičiuojama, pereiname prie dvigubų atkarpų su centru, kuriame yra taškas, o tiesės lygtis įgauna tokią formą:

O formulė (5) įgauna formą

Formulė (7) taikoma tik , todėl iš jos negalima gauti reikšmių, todėl jos randamos Eilerio metodu, o norėdami gauti tikslesnį rezultatą, daro taip: nuo pat pradžių, naudodami (5) formulę jie randa vertę

(8)

Taške ir tada randama pagal (7) formulę su žingsniais

(9)

Kai rado tolimesnius skaičiavimus adresu pagamintas pagal formulę (7)

Diferencialinė sistema lygtys vadinamos formos sistema

kur x yra nepriklausomas argumentas,

y i - priklausoma funkcija, ,

y i | x=x0 =y i0 – pradinės sąlygos.

Funkcijos yi (x), pakeitus lygčių sistema virsta tapatybe vadinama sprendžiant diferencialinių lygčių sistemą.

Skaitiniai metodai diferencialinių lygčių sistemų sprendimas.


Antros eilės diferencialinė lygtis vadinama formos lygtimi



Iškviečiama funkcija y(x), kurią pakeitus lygtis tampa tapatybe sprendžiant diferencialinę lygtį.

Skaitmeniškai ieškomas konkretus (2) lygties sprendimas, kuris tenkintų nurodytas pradines sąlygas, tai yra, išspręsta Koši problema.

Skaitmeniniam sprendimui antros eilės diferencialinė lygtis paverčiama dviejų pirmos eilės diferencialinių lygčių sistema ir sumažinama iki mašinos vaizdas (3). Tam įvedama nauja nežinoma funkcija, kairėje kiekvienos sistemos lygties pusėje paliekamos tik pirmosios nežinomų funkcijų išvestinės, o dešiniosiose išvestinių neturėtų būti

. (3)


Funkcija f 2 (x, y 1 , y) formaliai įvedama į sistemą (3), kad toliau parodytais metodais būtų galima išspręsti savavališką pirmos eilės diferencialinių lygčių sistemą. Panagrinėkime kelis skaitinius sistemos (3) sprendimo būdus. Apskaičiuotos i+1 integravimo žingsnio priklausomybės yra tokios. Norint išspręsti n lygčių sistemą, skaičiavimo formulės pateiktos aukščiau. Norint išspręsti dviejų lygčių sistemą, patogu skaičiavimo formules parašyti be dvigubų indeksų tokia forma:

  1. Eulerio metodas.

    y 1,i+1 =y 1,i +hf 1 (x i , y 1,i , y i),

    y i+1 =y i +hf 2 (x i, y 1,i, y i),

  2. Ketvirtosios eilės Runge-Kutta metodas.

    y 1,i+1 =y 1,i +(m 1 +2m 2 +2m 3 +m 4)/6,

    y i+1 =y i +(k 1 +2k 2 +2k 3 +k 4)/6,

    m 1 = hf 1 (x i , y 1, i , y i),

    k 1 = hf 2 (x i , y 1, i , y i),

    m 2 = hf 1 (x i + h/2, y 1, i + m 1 / 2, y i + k 1 / 2),

    k 2 = hf 2 (x i + h/2, y 1, i + m 1 / 2, y i + k 1 / 2),

    m 3 = hf 1 (x i + h/2, y 1, i + m 2 / 2, y i + k 2 / 2),

    k 3 = hf 2 (x i + h/2, y 1, i + m 2 / 2, y i + k 2 / 2),

    m 4 = hf 1 (x i + h, y 1, i + m 3, y i + k 3),

    k 4 = hf 2 (x i + h, y 1, i + m 3, y i + k 3),

    kur h yra integravimo žingsnis. Į pradines sąlygas skaitmeninės integracijos metu atsižvelgiama nuliniame žingsnyje: i=0, x=x 0, y 1 =y 10, y=y 0.

Bandomoji užduotis už kreditinį darbą.

Vieno laisvės laipsnio virpesiai

Tikslas. Antros eilės diferencialinių lygčių ir pirmosios eilės diferencialinių lygčių sistemų skaitinių metodų studija.

Pratimas. Skaitmeniškai ir analitiškai raskite:

  1. judėjimo dėsnis materialus taškas ant spyruoklės x(t),
  2. srovės I(t) kitimo svyravimo grandinėje (RLC grandinėje) dėsnį 1 ir 2 lentelėse nurodytiems režimams. Sukurkite reikiamų funkcijų grafikus.

Užduočių parinktys.


Režimų lentelė



Užduočių parinktys ir režimų numeriai:

  1. taško judėjimas
  2. RLC - grandinė


Išsamiau panagrinėkime diferencialinių lygčių sudarymo ir jų suvedimo į mašininę formą, kad apibūdintume kūno judėjimą spyruoklėje ir RLC grandinėje.


  1. Pavadinimas, darbo tikslas ir užduotis.
  2. Matematinis aprašymas, algoritmas (struktograma) ir programos tekstas.
  3. Šeši priklausomybės grafikai (trys tikslūs ir trys apytiksliai) x(t) arba I(t), išvados apie darbą.

Leiskite mums žinoti įvesties dinaminę seką X(įvesties signalas) ir modelis (įvesties signalo pavertimo išvesties signalu būdas). Mes svarstome išėjimo signalo nustatymo problemą y(t) (žr. 10.1 pav.).

Dinaminės sistemos modelį galima pavaizduoti diferencialine lygtimi. Pagrindinė dinamikos lygtis:

y" = f(x(t), y(t), t) .

Pradinės sąlygos nuliniu momentu yra žinomos t 0 : y(t 0) , x(t 0) . Norėdami nustatyti išvesties signalą, atkreipkite dėmesį, kad pagal išvestinės apibrėžimą:

Mes žinome sistemos padėtį taške „1“, turime nustatyti sistemos padėtį taške „2“. Taškai vienas nuo kito atskirti atstumu Δ t(10.2 pav.). Tai yra, sistemos elgsena apskaičiuojama žingsnis po žingsnio. Iš taško „1“ peršokame (diskretiškai) į tašką „2“, atstumą tarp taškų išilgai ašies t paskambino skaičiavimo žingsnis Δ t .

Ryžiai. 10.2. Būsimos sistemos būsenos skaičiavimo iliustracija
Eulerio metodas vienu žingsniu

Paskutinė formulė vadinama Eulerio formule.

Akivaizdu, kad ateityje išsiaiškinsime sistemos būklę y(t + Δ t) , tai būtina dabartinei sistemos būsenai y(t) pridėti pakeitimą Δ y, praėjo per laiką Δ t .

Dar kartą apsvarstykime šį svarbų ryšį, išvesdami jį iš geometrinių samprotavimų (10.3 pav.).

Ryžiai. 10.3. Geometrinė Eulerio metodo iliustracija

Tegul A yra taškas, kuriame žinoma sistemos būsena. Tai yra „tikroji“ sistemos būsena.

Taške A nubrėžiame sistemos trajektorijos liestinę. Tangentas yra funkcijos išvestinė f(x(t), y(t), t) pagal kintamąjį t. Išvestinę taške visada nesunku apskaičiuoti, užtenka į formulę pakeisti žinomus kintamuosius (šiuo metu jie žinomi „esant“). y" = f(x(t), y(t), t) .

Atkreipkite dėmesį, kad pagal apibrėžimą išvestinė yra susijusi su liestinės pasvirimo kampu: y" = tg( α ) , o tai reiškia kampą α lengva apskaičiuoti ( α = arctan( y" ) ) ir nubrėžkite liestinę.

Nubrėžkite liestinę, kol ji susikirs su linija t + Δ t. Momentas t + Δ t atitinka „ateities“ sistemos būseną. Nubrėžkite liniją, lygiagrečią ašiai t nuo taško A iki susikirtimo su linija t + Δ t. Tiesės sudaro statųjį trikampį ABC, kurio viena kraštinė lygi Δ t(garsus). Kampas taip pat žinomas α . Tada antroji koja stačiakampėje trikampis ABC lygus: a = Δ t tg( α ) . Dabar nesunku apskaičiuoti taško B ordinatę. Jį sudaro du segmentai y(t) Ir a. Ordinatės simbolizuoja sistemos padėtį taške y(t + Δ t) . Tai yra y(t + Δ t) = y(t) + a arba toliau y(t + Δ t) = y(t) + Δ t tg( α ) arba, pakeisdami toliau, turime: y(t + Δ t) = y(t) + Δ t · y" ir, galiausiai y(t + Δ t) = y(t) + Δ t · f(x(t), y(t), t) . Vėl gavome Eulerio formulę (iš geometrinių svarstymų).

Ši formulė gali duoti tikslius rezultatus tik esant labai mažam Δ t(pasakyta Δ t>0). Prie Δ t≠0 formulė parodo tikrosios vertės neatitikimą y ir apskaičiuotas, lygus ε , todėl jame turėtų būti apytikslis lygybės ženklas arba jis turėtų būti parašytas taip:

y(t + Δ t) = y(t) + Δ t · f(x(t), y(t), t) + ε .

Iš tikrųjų. Dar kartą pažvelkite į pav. 10.3. Protiškai perkelkime liniją t + Δ tį kairę (tiesą sakant, mes priartinsime Δ reikšmę t iki nulio). Kaip nesunku pastebėti, atstumas BB * = ε , tai klaida! bus sumažintas. Riboje (ties Δ t>0) klaidos reikšmė ε bus lygus nuliui.

Taigi, realiąją kreivę pakeičiant tiesia linija (liestinė) atkarpoje Δ t, įvedame į sprendimą klaidą, kuri atsiduria ne taške „2“ (žr. 10.2 pav.), o šalia, taške „3“. Akivaizdu, kad šis skaitmeninis metodas turi skaičiavimo klaidą kiekviename žingsnyje ε .

Iš paveikslo matyti, kad kuo mažesnė Δ reikšmė t, tuo mažesnė bus skaičiavimo klaida ε . Tai yra, norint apskaičiuoti sistemos elgesį per bet kokį ilgą laiką (pavyzdžiui, nuo t 0 iki t k), kad sumažintumėte paklaidą kiekviename žingsnyje, atlikite veiksmus Δ t laikykite jį kuo mažesnį. Kad pasiektum tašką t k linijos segmentas (t k – t 0) padalintas į Δ ilgio segmentus t; taip viskas susitvarkys N = (t k – t 0)/Δ t žingsniai. Skaičiuodami turėsite taikyti Eulerio formulę kiekvienam žingsniui, ty N kartą. Tačiau atminkite, kad klaidos ε i ant kiekvieno i-tąjį žingsnį (paprasčiausiu atveju) jie sumuojasi, o bendra paklaida greitai susikaupia (žr. 10.4 pav.). Ir tai yra reikšmingas šio metodo trūkumas. Nors naudojant šį metodą galima gauti (skaitine forma) bet kurios diferencialinės lygties (įskaitant ir analitiškai neišsprendžiamas) sprendimą. Sumažinus žingsnį gauname tikslesnius sprendimus, tačiau nereikėtų pamiršti, kad žingsnių skaičiaus padidinimas lemia skaičiavimo kaštus ir sumažina našumą. Be to, kai didelis skaičius iteracijų, į skaičiavimą įvedama dar viena reikšminga klaida dėl riboto kompiuterių tikslumo ir apvalinimo klaidų.

Ryžiai. 10.4. Didinant bendrą Eulerio metodo klaidą per kelis veiksmus

1 užduotis. Duota diferencialinė lygtis y" = 2ty . Nustatoma pradinė sistemos padėtis: y(0) = 1 . Reikia surasti y(t), tai yra sistemos elgsena per laiko intervalą t nuo 0 iki 1.

Analitinis 1 uždavinio sprendimo metodas

y" = 2ty .

Naudodami kintamųjų atskyrimo metodą randame:

y" /y = 2t

Integruosime nuo 0 iki t i, tada pagal integravimo taisykles turime:

Gautas analitinis sprendimas pasižymi tuo, kad jis yra absoliučiai tikslus, tačiau jei lygtis pasirodys kokia nors sudėtinga, sprendimas nebus rastas. Analitinis sprendimas nėra universalus.

Skaitinis 1 uždavinio sprendimo metodas

Skaitinis sprendimo metodas daro prielaidą, kad skaičiavimas bus atliktas pagal Eilerio formulę keliais iš eilės žingsniais. Kiekviename žingsnyje sprendimas turi savo paklaidą (žr. 10.2 pav.), nes kiekviename žingsnyje kreivė pakeičiama tiesia atkarpa.

Taikant algoritminį įgyvendinimą, skaičiavimas įgyvendinamas cikle, kuriame t(skaitiklis t) Ir y :

Metodo diegimo kompiuteryje blokinė schema parodyta fig. 10.5.

Ryžiai. 10.5. Eilerio metodo įgyvendinimo blokinė schema

Diegiant „Stratum“, įrašas atrodys taip (simbolio „~“ buvimas, kai t ):

Ieškokime vertės y anksčiau svarstytas pavyzdys skaitine forma intervale nuo T= nuo 0 iki T= 1. Paimkime žingsnių skaičių n= 10, tada didinimo žingsnis Δ t bus: Δ t= (1 0)/ n= (1 0)/10 = 0,1.

10.1 lentelė.
Skaitinis lygties apskaičiavimas Eilerio metodu
ir kiekvieno veiksmo rezultato palyginimas su tiksliu sprendimu
i t i y i = y i 1 + y" i 1 · Δ t y" i = 2t i · y i Δ y i = y" i · Δ t y i + 1 = y i + Δ y i y tiksli = exp ( t i 2)
0 0.0 1 0 0 1 1
1 0.1 1 0.2 0.02 1.02 1.0101
2 0.2 1.02 0.408 0.0408 1.0608 1.0408
3 0.3 1.061 0.636 0.0636 1.1246 1.0942
4 0.4 1.124 0.900 0.0900 1.2140 1.1735
5 0.5 1.214 1.214 0.1214 1.3354 1.2840
6 0.6 1.336 1.603 0.1603 1.4963 1.4333
7 0.7 1.496 2.095 0.2095 1.7055 1.6323
8 0.8 1.706 2.729 0.2729 1.9789 1.8965
9 0.9 1.979 3.561 0.3561 2.3351 2.2479
10 1.0 2.335 4.669 0.4669 2.8019 2.7183

Atkreipkite dėmesį, kad skaitiniu būdu apskaičiuota vertė ( y i+ 1 ) skiriasi nuo tikslaus ( y tiksli ), ir klaida (stulpelių skirtumas y i+ 1 ir y tiksli ) didėja skaičiavimo metu taip pat, kaip parodyta Fig. 10.4.

Dabar apskaičiuokime santykinę paklaidą σ už apskaičiuotą vertę y(1) gautas skaitiniu būdu, lyginant su teoriniu tiksliu y teorija pagal šią formulę:

σ = (1 y skaičiuok. / y teorinis) · 100 %

ir palyginti σ esant skirtingoms Δ reikšmėms t .

Jei pakeisime žingsnio reikšmę Δ t, pavyzdžiui, sumažinkite žingsnį, tada santykinė skaičiavimo paklaida taip pat sumažės. Tai yra tai, ką jūs gaunate skaičiuodami vertę y(1) su skirtingos reikšmėsžingsnis (žr. 10.2 lentelę).

10.2 lentelė.
Priklausomybė nuo klaidų
apskaičiavimas pagal žingsnio dydį Δ t
Δ t y skaičiuok. (1) y teorija (1) σ
1/10 2.3346 2.7183 14%
1/20 2.5107 2.7183 8%
1/100 2.6738 2.7183 2%

Kaip matome, mažėjant žingsniui Δ t santykinė paklaida mažėja, vadinasi, didėja skaičiavimo tikslumas.

Atkreipkite dėmesį, kad pakeitus žingsnį 10 kartų (nuo 1/10 iki 1/100), klaidos reikšmė pasikeičia maždaug 10 kartų (nuo 14% iki 2%). Pakeitus žingsnį 100 kartų, klaida taip pat sumažės maždaug 100 kartų. Kitaip tariant, žingsnio dydis ir paklaida Eulerio metodui yra tiesiškai susiję. Jei norite sumažinti klaidą 10 kartų, sumažinkite žingsnį 10 kartų ir atitinkamai padidinkite skaičiavimų skaičių 10 kartų. Šis faktas matematikoje dažniausiai žymimas simboliu ε = Ot) , o Eulerio metodas vadinamas pirmos eilės tikslumo metodu.

Kadangi Eulerio metodu paklaida yra gana didelė ir kaupiasi nuo žingsnio iki žingsnio, o tikslumas proporcingas skaičiavimų skaičiui, Eulerio metodas dažniausiai naudojamas grubiems skaičiavimams, sistemos elgsenai įvertinti iš esmės. Norint atlikti tikslius kiekybinius skaičiavimus, naudojami tikslesni metodai.

Pastabos

  1. Kiekvienas skaitinis metodas turi tikslumą, nes rezultatas skiriasi nuo teorinio. Metodo tikslumas priklauso nuo žingsnio dydžio. Skirtingi metodai turi skirtingą tikslumą. Tikslumo priklausomybės nuo žingsnio dydžio tvarka žymima kaip O(h). Eulerio metodas turi pirmos eilės tikslumą, o paklaidos priklausomybė nuo žingsnio dydžio yra tiesinė.
  2. Jei, mažinant žingsnį, riba y n siekia prasmės y teorija , tada sakoma, kad metodas susilieja. Mokslininkus domina metodo konvergencijos greitis.
  3. Metodas turi būti tvarus. Stabilumas siejamas su tam tikru kritiniu žingsnio dydžiu. Kai atsiranda nestabilumas, kokybinis skaičiavimo vaizdas visiškai iškraipomas, rezultatas yra „laisvas“.
  4. Renkantis metodą, pirmiausia rekomenduojama pasiekti stabilumą, o stabilumo srityje – rezultato konvergenciją. Stabilumas užtikrina kokybišką vaizdą. Konvergencija suteikia kiekybinį rezultatą (taip pat žr. 10.10 pav.).

Išdėstyti pastraipose. Paaiškinkime 1–4 pavyzdžiu.

Pavyzdys. Leisti

Kokybiškai šios lygtys apibūdina šilumos mainų tarp dviejų kūnų, kurių temperatūra tam tikru momentu yra žymima kaip A Ir B. Iš viso A Ir B laike kintantys kintamieji t. Sistemos veikimo nustatymas reiškia, kad reikia išsiaiškinti, kaip pasikeis temperatūra A(t) Ir B(t) .

Intuityviai aišku, kad esant pradiniam temperatūrų skirtumui A= 8 ir B= 5 kūno temperatūros laikui bėgant turėtų palaipsniui išsilyginti, nes karštesnis kūnas atiduos energiją šaltesniam, o jo temperatūra sumažės, o šaltesnis gaus energiją iš karštesnio, o jo temperatūra pakils. Šilumos mainų procesas baigsis (ty pokyčiai sustos), kai abiejų kūnų temperatūros taps vienodos.

Atlikime elgesio skaičiavimus A(t) Ir B(t) su skirtingais žingsnių dydžiais Δ t .

Mes imsime skirtingų dydžių žingsnius Δ t ir raskite atitinkamas reikšmes A Ir B laiku pagal šias Eilerio formules:

A naujas = A ankstesnė + ( B ankstesnė ¶ A ankstesnis) Δ t ,
B naujas = B ankstesnė + ( A ankstesnė ¶ B ankstesnis) Δ t .

Skaičiavimas ties Δ t= 2 (10.3 lentelė).

Pastebimas „laisvumo“ fenomenas (žr. 10.6 pav.). Netvarus sprendimas. Iš fizinių priežasčių akivaizdu, kad du kūnai negali taip elgtis šilumos mainų procese.

Ryžiai. 10.6. Sistema elgiasi gerai
negerai. Sprendimas yra nestabilus

Skaičiavimas ties Δ t= 1 (10.4 lentelė).

10.4 lentelė.
Temperatūros pokytis
kūnai skaitiniais
apskaičiavimas 1 žingsniais

žingsnis
t A B
0 0 8 5
1 1 5 8
2 2 8 5

Stebima sistemos sprendimo elgsena ant stabilumo ribos (žr. 10.7 pav.).

Ryžiai. 10.7. Sistema elgiasi gerai
negerai. Sprendimas yra ant tvarumo slenksčio

Skaičiavimas ties Δ t= 0,5 (10,5 lentelė).

10.5 lentelė.
Temperatūros pokytis
kūnai skaitiniais
skaičiavimas 0,5 žingsniais

žingsnis
t A B
0 0 8 5
1 0.5 6.5 6.5
2 1.0 6.5 6.5

Sprendimas yra stabilus ir atitinka teisingą kokybinį vaizdą (žr. 10.8 pav.). Kūno temperatūros palaipsniui artėja viena prie kitos ir laikui bėgant tampa vienodos. Tačiau sprendimas vis tiek turi didelę klaidą.

Ryžiai. 10.8. Sistema elgiasi kokybiškai teisingai.
Sprendime (sistemos elgesyje) yra didelė klaida

Skaičiavimas ties Δ t= 0,1 (10.6 lentelė).

10.6 lentelė.
Temperatūros pokytis
kūnai skaitiniais
apskaičiavimas 0,1 žingsniais

žingsnis
t A B
0 0 8 5
1 0.1 7.7 5.3
2 0.2 7.46 5.54
3 0.3 7.27 5.73
4 0.4 7.12 5.88
5 0.5 7.00 6.00

Tirpalas yra stabilus. Sprendimas tikslesnis (žr. 10.9 pav.).

Ryžiai. 10.9. Sistema elgiasi kokybiškai teisingai.
Kiekybinis sprendimas yra tikslesnis

Žingsnio dydžio keitimo vaidmuo parodytas fig. 10.10.

Ryžiai. 10.10. Skaičiavimo žingsnio dydžio ir metodo stabilumo bei jo tikslumo ryšys (naudojant pavyzdį)

Fizikinės chemijos katedra SFU (RSU)
SKAITINIAI METODAI IR PROGRAMAVIMAS
Medžiaga paskaitų kursui
Lektorius – str. Rev. Ščerbakovas I. N.

Įprastųjų DIFERENCINIŲ LYGČIŲ SPRENDIMAS

Problemos formulavimas

Sprendžiant mokslinius ir inžinerinius uždavinius, dažnai reikia matematiškai apibūdinti kokią nors dinaminę sistemą. Tai geriausia padaryti diferencialinių lygčių forma ( DU) arba diferencialinių lygčių sistemos. Dažniausiai ši problema iškyla sprendžiant su kinetikos modeliavimu susijusias problemas cheminės reakcijos ir įvairūs perdavimo reiškiniai (šiluma, masė, impulsas) – šilumos mainai, maišymasis, džiovinimas, adsorbcija, aprašant makro- ir mikrodalelių judėjimą.

Paprastoji diferencialinė lygtis n-osios eilės (ODE) yra tokia lygtis, kurioje yra viena ar daugiau norimos funkcijos y(x) išvestinių:

Čia y(n)žymi kokios nors funkcijos y(x) n eilės išvestinę, x yra nepriklausomas kintamasis.

Kai kuriais atvejais diferencialinė lygtis gali būti transformuota į formą, kurioje aukščiausia išvestinė yra aiškiai išreikšta. Ši žymėjimo forma vadinama lygtimi, išspręsta atsižvelgiant į didžiausią išvestinę priemonę(šiuo atveju aukščiausios išvestinės nėra dešinėje lygties pusėje):

Būtent tokia įrašymo forma yra priimta kaip standartinis svarstant skaitmeninius ODE sprendimo būdus.

Tiesinė diferencialinė lygtis yra lygtis, kuri yra tiesinė funkcijos y(x) ir visų jos išvestinių atžvilgiu.

Pavyzdžiui, žemiau yra linijiniai ODE pirmasis ir antrasis užsakymai

Įprastos diferencialinės lygties sprendimas yra funkcija y(x), kuri bet kokiam x tenkina šią lygtį tam tikrame baigtiniame arba begaliniame intervale. Diferencialinės lygties sprendimo procesas vadinamas integruojant diferencialinę lygtį.

Bendras ODE sprendimas N-toje eilėje yra n savavališkų konstantų C 1 , C 2 , …, C n

Tai akivaizdžiai išplaukia iš to, kad neapibrėžtas integralas lygus integrando antidarinei plius integravimo konstanta

Kadangi n-osios eilės diferencialinėms lygtims išspręsti būtina n integracijų, tai bendrame sprendime atsiranda n integravimo konstantų.

Privatus sprendimas ODE gaunama iš bendrosios, jei integravimo konstantoms suteikiamos tam tikros reikšmės, apibrėžiant kai kurias papildomas sąlygas, kurių skaičius leidžia apskaičiuoti visas neapibrėžtas integravimo konstantas.

Tikslus (analitinis) sprendimas Diferencialinės lygties (bendroji arba specialioji) reiškia, kad reikia gauti norimą sprendimą (funkcija y(x)) išraiškos forma iš elementariųjų funkcijų. Tai ne visada įmanoma net pirmos eilės lygtims.

Skaitinis sprendimas DE (dalytuvas) susideda iš funkcijos y(x) ir jos išvestinių apskaičiavimo kai kuriuose duotus taškus, gulėti ant tam tikro segmento. Tai yra, iš tikrųjų formos n-osios eilės diferencialinės lygties sprendimas gaunamas šios skaičių lentelės pavidalu (didžiausios išvestinės verčių stulpelis apskaičiuojamas pakeičiant reikšmes į lygtis):

Pavyzdžiui, pirmosios eilės diferencialinės lygties sprendimų lentelėje bus du stulpeliai - x ir y.

Iškviečiamas abscisių reikšmių rinkinys, kuriame nustatoma funkcijos reikšmė Tinklelis, kuriame yra apibrėžta funkcija y(x). Pačios koordinatės vadinamos tinklelio mazgai. Dažniausiai patogumui jie naudojami vienodos tinkleliai, kuriame skirtumas tarp gretimų mazgų yra pastovus ir vadinamas tinklelio tarpai arba integracijos žingsnis diferencialinė lygtis

arba , i= 1, …, N

Norėdami nustatyti privatus sprendimas būtina nustatyti papildomas sąlygas, kurios leis skaičiuoti integravimo konstantas. Be to, tokių sąlygų turėtų būti lygiai n. Pirmos eilės lygtims - viena, antrajai - 2 ir t.t. Priklausomai nuo to, kaip jie nurodomi sprendžiant diferencialines lygtis, yra trijų tipų problemos:

· Cauchy problema (pradinė problema): Reikia rasti kažką panašaus privatus sprendimas diferencialinė lygtis, kuri tenkina tam tikrą pradinės sąlygos nurodytos viename taške:

tai yra tam tikra nepriklausomo kintamojo reikšmė (x 0) ir funkcijos bei visų jos išvestinių iki eilės (n-1) reikšmė šiame taške. Šis taškas (x 0) vadinamas pirminis. Pavyzdžiui, jei sprendžiamas 1 eilės DE, pradinės sąlygos išreiškiamos skaičių pora (x 0 , y 0)

Tokia problema iškyla sprendžiant ODE, kurie apibūdina, pavyzdžiui, cheminių reakcijų kinetiką. Šiuo atveju yra žinomos medžiagų koncentracijos pradiniu laiko momentu ( t = 0), ir reikia rasti medžiagų koncentracijas po tam tikro laiko ( t). Kaip pavyzdį taip pat galime paminėti šilumos perdavimo arba masės perdavimo (difuzijos) problemą, materialaus taško judėjimo, veikiant jėgoms, lygtį ir kt.

· Ribinės vertės problema . Šiuo atveju funkcijos ir (ar) jos išvestinių reikšmės yra žinomos daugiau nei viename taške, pavyzdžiui, pradiniu ir galutiniu laiko momentais, ir būtina rasti konkretų diferencialinės lygties sprendimą. tarp šių taškų. Pačios papildomos sąlygos šiuo atveju vadinamos regioninis (ribinė) sąlygos. Natūralu, kad ribinės vertės problemą galima išspręsti bent 2 eilės ODE. Žemiau pateikiamas antros eilės ODE pavyzdys su ribinėmis sąlygomis (nurodomos funkcijos reikšmės dviejuose skirtinguose taškuose):

· Sturm-Liouville problema (savosios vertės problema). Šio tipo problemos yra panašios į ribinės vertės problemas. Sprendžiant juos, reikia išsiaiškinti, kokiomis bet kurio parametro reikšmėmis yra sprendimas DU tenkina ribines sąlygas (savąsias reikšmes) ir funkcijas, kurios yra kiekvienos parametro reikšmės DE sprendimas (savosios funkcijos). Pavyzdžiui, daugelis kvantinės mechanikos problemų yra savosios vertės problemos.

Skaitiniai pirmosios eilės ODE Koši uždavinio sprendimo metodai

Panagrinėkime keletą skaitinių sprendimo būdų Cauchy problemos(pradinė problema) pirmos eilės įprastosios diferencialinės lygtys. Įrašykime šią lygtį bendras vaizdas, išspręsta išvestinės atžvilgiu (dešinė lygties pusė nepriklauso nuo pirmosios išvestinės):

(6.2)

Būtina rasti funkcijos y reikšmes tam tikruose tinklelio taškuose, jei žinomos pradinės reikšmės, kur yra funkcijos y(x) reikšmė pradiniame taške x 0.

Transformuokime lygtį padaugindami iš d x

O kairę ir dešinę puses integruojame tarp i-ojo ir i+ 1-ojo tinklelio mazgų.

(6.3)

Gavome sprendinio i+1 integravimo mazge konstravimo išraišką per x ir y reikšmes i-ajame tinklelio mazge. Tačiau sunkumas slypi tame, kad integralas dešinėje yra netiesiogiai pateiktos funkcijos integralas, kurį galima rasti analitine forma bendras atvejis neįmanomas. Skaitiniai ODE sprendimo metodai įvairiais būdais apytiksliai (priartinkite) šio integralo reikšmę, kad sukurtumėte ODE skaitmeninės integracijos formules.

Iš daugelio metodų, sukurtų sprendžiant pirmosios eilės ODE, mes svarstome metodus ir . Jie yra gana paprasti ir suteikia pradinį supratimą apie šios problemos sprendimo būdus skaitinio sprendimo rėmuose.

Eulerio metodas

Istoriškai pirmasis ir paprasčiausias būdas skaitmeniniu būdu išspręsti Koši problemą pirmos eilės ODE yra Eulerio metodas. Jis pagrįstas išvestinės aproksimavimu pagal baigtinių priklausomo ( y) ir nepriklausomas ( x) kintamieji tarp vienodo tinklelio mazgų:

kur y i+1 yra norima funkcijos reikšmė taške x i+1.

Jei dabar transformuosime šią lygtį ir atsižvelgsime į integravimo tinklelio vienodumą, gautume iteracinę formulę, pagal kurią galėtume apskaičiuoti y i+1, jei y i žinomas taške x i:

Lyginant Eilerio formulę su bendra išraiška Gauta anksčiau, aišku, kad apytiksliai integralo skaičiavimui Eulerio metodu naudojama paprasčiausia integravimo formulė - stačiakampių formulė išilgai kairiojo segmento krašto.

Grafiškai interpretuoti Eulerio metodą taip pat lengva (žr. paveikslėlį žemiau). Iš tiesų, remiantis sprendžiamos lygties () forma, išplaukia, kad reikšmė yra funkcijos y(x) išvestinės reikšmė taške x=x i - , taigi yra lygi liestine funkcijos y(x) grafiko liestinės kampas taške x =x i .

taisyklingas trikampis nuotraukoje galite rasti

Iš čia kyla Eulerio formulė. Taigi Eulerio metodo esmė – funkciją y(x) integravimo atkarpoje pakeisti tiesia linija, liečiančia grafiką taške x=x i. Jei norima funkcija labai skiriasi nuo tiesinės integravimo segmente, skaičiavimo klaida bus didelė. Eulerio metodo klaida yra tiesiogiai proporcinga integravimo žingsniui:

Klaida~h

Skaičiavimo procesas sudarytas taip. Esant nurodytoms pradinėms sąlygoms x 0 Ir y 0 galima apskaičiuoti

Taigi funkcijos y(x) reikšmių lentelė sudaroma tam tikru žingsniu ( h) pagal x segmente. Klaida apibrėžiant vertę y(x i)šiuo atveju, kuo mažesnis pasirinktas žingsnio ilgis, tuo jis bus mažesnis h(kuris nustatomas pagal integravimo formulės tikslumą).

Didelės h atveju Eulerio metodas yra labai netikslus. Sumažėjus integravimo žingsniui, jis pateikia vis tikslesnį aproksimaciją. Jei segmentas per didelis, tada kiekviena sekcija padalijama į N integravimo segmentų ir kiekvienam iš jų pritaikoma Eulerio formulė su žingsniu, tai yra integravimo žingsnis h imamas mažesnis nei tinklelio žingsnis, kuriame sprendimas Yra nusiteikęs.

Pavyzdys:

Naudodami Eilerio metodą, sukurkite apytikslį šios Koši problemos sprendimą:

Tinklelyje su 0,1 žingsniu intervale (6,5)

Sprendimas:

Ši lygtis jau parašyta Standartinė forma, išspręstas norimos funkcijos išvestinės atžvilgiu.

Todėl sprendžiamai lygčiai turime

Paimkime integravimo žingsnį, lygų tinklelio žingsniui h = 0,1. Tokiu atveju kiekvienam tinklelio mazgui bus apskaičiuojama tik viena reikšmė (N=1). Pirmųjų keturių tinklelio mazgų skaičiavimai bus tokie:

Visi rezultatai (penktos dešimtosios tikslumu) pateikiami trečiame stulpelyje – h =0,1 (N =1). Palyginimui, antrame lentelės stulpelyje pateikiamos reikšmės, apskaičiuotos pagal šios lygties analitinį sprendimą .

Antroje lentelės dalyje parodyta gautų sprendinių santykinė paklaida. Matyti, kad esant h =0.1 paklaida yra labai didelė, pirmajam mazgui x =0.1 siekia 100%.

1 lentelė Lygties sprendimas Eulerio metodu (stulpeliams nurodytas integravimo žingsnis ir integravimo atkarpų skaičius N tarp tinklelio mazgų)

xTikslus
sprendimas
0,1 0,05 0,025 0,00625 0,0015625 0,0007813 0,0001953
1 2 4 16 64 128 512
0 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000
0,1 0,004837 0,000000 0,002500 0,003688 0,004554 0,004767 0,004802 0,004829
0,2 0,018731 0,010000 0,014506 0,016652 0,018217 0,018603 0,018667 0,018715
0,3 0,040818 0,029000 0,035092 0,037998 0,040121 0,040644 0,040731 0,040797
0,4 0,070320 0,056100 0,063420 0,066920 0,069479 0,070110 0,070215 0,070294
0,5 0,106531 0,090490 0,098737 0,102688 0,105580 0,106294 0,106412 0,106501
0,6 0,148812 0,131441 0,140360 0,144642 0,147779 0,148554 0,148683 0,148779
0,7 0,196585 0,178297 0,187675 0,192186 0,195496 0,196314 0,196449 0,196551
0,8 0,249329 0,230467 0,240127 0,244783 0,248202 0,249048 0,249188 0,249294
0,9 0,306570 0,287420 0,297214 0,301945 0,305423 0,306284 0,306427 0,306534
1 0,367879 0,348678 0,358486 0,363232 0,366727 0,367592 0,367736 0,367844

Apskaičiuotų funkcijų reikšmių santykinės paklaidos skirtingoms valandoms

x h 0,1 0,05 0,025 0,00625 0,0015625 0,0007813 0,0001953
N 1 2 4 16 64 128 512
0,1 100,00% 48,32% 23,76% 5,87% 1,46% 0,73% 0,18%
0,2 46,61% 22,55% 11,10% 2,74% 0,68% 0,34% 0,09%
0,3 28,95% 14,03% 6,91% 1,71% 0,43% 0,21% 0,05%
0,4 20,22% 9,81% 4,83% 1,20% 0,30% 0,15% 0,04%
0,5 15,06% 7,32% 3,61% 0,89% 0,22% 0,11% 0,03%
0,6 11,67% 5,68% 2,80% 0,69% 0,17% 0,09% 0,02%
0,7 9,30% 4,53% 2,24% 0,55% 0,14% 0,07% 0,02%
0,8 7,57% 3,69% 1,82% 0,45% 0,11% 0,06% 0,01%
0,9 6,25% 3,05% 1,51% 0,37% 0,09% 0,05% 0,01%
1 5,22% 2,55% 1,26% 0,31% 0,08% 0,04% 0,01%

Sumažinkime integravimo žingsnį per pusę, h = 0,05, šiuo atveju kiekvienam tinklelio mazgui skaičiavimas bus atliktas dviem etapais (N = 2). Taigi pirmajam mazgui x = 0,1 gauname:

(6.6)

Pasirodo, ši formulė yra netiesioginė y i+1 atžvilgiu (ši reikšmė yra ir kairėje, ir dešinėje išraiškos pusėse), tai yra, tai lygtis y i+1 atžvilgiu, kurią galima išspręsti, pavyzdžiui, skaitiniu būdu, naudojant kokį nors iteracinį metodą (tokioje formoje tai gali būti laikoma paprastojo iteracijos metodo iteracine formule). Tačiau galite tai padaryti kitaip ir maždaug apskaičiuokite funkcijos reikšmę mazge aš+1 naudojant įprastą formulę:

,

kurią vėliau galima naudoti skaičiuojant pagal (6.6).

Tai suteikia metodą Guna arba Eulerio metodas su perskaičiavimu. Kiekvienam integravimo mazgui atliekama tokia skaičiavimų grandinė

(6.7)

Dėl tikslesnės integravimo formulės Hün metodo paklaida yra proporcinga integravimo žingsnio kvadratui.

Klaida~h 2

Gün metodu naudojamas metodas naudojamas vadinamiesiems metodams konstruoti prognozė ir korekcija, kuris bus aptartas vėliau.

Pavyzdys:

Atlikime () lygties skaičiavimus Hiun metodu.

Su integravimo žingsniu h = 0,1 pirmame tinklelio mazge x 1 gauname:

Kuris yra daug tikslesnis nei vertės, gautos naudojant Eulerio metodą su tuo pačiu integravimo žingsniu. 2 lentelėje pateikti palyginamieji Eulerio ir Gün metodų skaičiavimų rezultatai, kai h = 0,1.

2 lentelė Lygties sprendimas Eulerio ir Gün metodais

x Tikslus Gün metodu Eulerio metodas
y rel. klaida y rel. klaida
0 0,000000 0,00000 0,00000
0,1 0,004837 0,00500 3,36% 0,00000 100,00%
0,2 0,018731 0,01903 1,57% 0,01000 46,61%
0,3 0,040818 0,04122 0,98% 0,02900 28,95%
0,4 0,070320 0,07080 0,69% 0,05610 20,22%
0,5 0,106531 0,10708 0,51% 0,09049 15,06%
0,6 0,148812 0,14940 0,40% 0,13144 11,67%
0,7 0,196585 0,19721 0,32% 0,17830 9,30%
0,8 0,249329 0,24998 0,26% 0,23047 7,57%
0,9 0,306570 0,30723 0,21% 0,28742 6,25%
1 0,367879 0,36854 0,18% 0,34868 5,22%

Atkreipkime dėmesį į reikšmingą Hün metodo skaičiavimų tikslumo padidėjimą, palyginti su Eulerio metodu. Taigi mazgui x =0,1, Huyn metodu nustatytas funkcijos reikšmės santykinis nuokrypis pasirodo 30 (!) kartų mažesnis. Toks pat skaičiavimų tikslumas naudojant Eulerio formulę pasiekiamas, kai integravimo atkarpų skaičius N yra apytiksliai 30. Vadinasi, naudojant Hün metodą tokiu pat tikslumu, kompiuteriui prireiks maždaug 15 kartų mažiau laiko nei naudojant Eulerio metodą. .

Tirpalo stabilumo tikrinimas

ODE sprendimas tam tikrame x i taške vadinamas stabiliu, jei šiame taške randama funkcijos reikšmė y i mažėjant integracijos žingsniui keičiasi mažai. Todėl norint patikrinti stabilumą, reikia atlikti du vertės skaičiavimus ( y i) – su integravimo žingsniu h ir su sumažintu (pavyzdžiui, dviejų) žingsnių dydžiu

Kaip stabilumo kriterijų galite naudoti gauto sprendinio santykinio pokyčio mažumą, kai integravimo žingsnis sumažinamas (ε yra iš anksto nustatyta maža reikšmė)

Šį patikrinimą galima atlikti visiems sprendimams visame verčių diapazone x. Jei sąlyga neįvykdoma, žingsnis vėl dalijamas pusiau ir randamas naujas sprendimas ir pan. kol bus gautas stabilus tirpalas.

Runge-Kutta metodai

Dar labiau pagerinti pirmosios eilės ODE sprendimo tikslumą galima padidinus apytikslio integralo skaičiavimo tikslumą išraiškoje.

Jau matėme pranašumą, kai aproksimuojant šį integralą galima pereiti nuo integravimo naudojant stačiakampio formulę () prie trapecijos formulės ().

Naudodami gerai patikrintą Simpsono formulę, galite gauti dar tikslesnę formulę, kaip išspręsti Koši problemą pirmos eilės ODE - Runge-Kutta metodu, plačiai naudojamu skaičiavimo praktikoje.

Adamso kelių žingsnių ODE sprendimo metodų pranašumas yra tas, kad kiekviename mazge apskaičiuojama tik viena dešiniosios ODE pusės reikšmė – funkcija F(x,y). Trūkumai apima tai, kad neįmanoma pradėti kelių žingsnių metodo nuo vieno pradžios taško, nes atliekant skaičiavimus naudojant k žingsnio formulę, reikia žinoti funkcijos reikšmę k mazguose. Todėl pirmuosiuose mazguose x 1, x 2, ..., x k-1 reikia gauti (k-1) sprendimą, naudojant kokį nors vieno žingsnio metodą, pavyzdžiui, metodą.

Eulerio metodas. Patobulintas Eulerio metodas.
Klasikinis Runge-Kutta metodas

Nepagailėta skaičiavimo matematikos ir diferencialinių lygčių! Šiandien pamokoje mokysimės pagrindų apytiksliai skaičiavimaišioje matematinės analizės dalyje, po kurios prieš jus šiltai atsivers storos, labai storos knygos šia tema. Kadangi skaičiavimo matematika dar neaplenkė difuzijos pusės =)

Pavadinime išvardyti metodai yra skirti Uždaryti sprendimų paieška diferencialines lygtis, nuotolinio valdymo sistemos ir trumpas dažniausiai pasitaikančios problemos aprašymas yra toks:

Pasvarstykime pirmos eilės diferencialinė lygtis, kurį reikia rasti privatus sprendimas, atitinkanti pradinę sąlygą. Ką tai reiškia? Tai reiškia, kad turime rasti funkcija (manoma, kad jos egzistavimas), kuris tenkina šį skirtumą. lygtis, o kurios grafikas eina per tašką.

Tačiau čia yra problema: neįmanoma atskirti kintamųjų lygtyje. Jokiu būdu mokslui nežinoma. O jei įmanoma, tada išeina nepalaužiamas integralas. Tačiau yra konkretus sprendimas! Ir čia į pagalbą ateina apytikslių skaičiavimų metodai, leidžiantys su dideliu (ir dažnai su aukščiausiu) tiksliai „imituoti“ funkciją per tam tikrą intervalą.

Eulerio ir Runge-Kutta metodų idėja yra pakeisti grafiko dalį nutrūkusi linija, o dabar išsiaiškinsime, kaip ši idėja įgyvendinama praktiškai. Ir mes ne tik išsiaiškinsime, bet ir tiesiogiai įgyvendinsime =) Pradėkime nuo istoriškai pirmojo ir paprasčiausio metodo. ...Ar norite susidoroti su sudėtinga diferencialine lygtimi? To aš irgi nenoriu :)

Pratimas

Raskite tam tikrą diferencialinės lygties sprendimą, atitinkantį pradinę sąlygą, naudodami Eulerio metodą atkarpoje su žingsniu. Sukurkite apytikslio sprendimo lentelę ir grafiką.

Išsiaiškinkime. Pirma, mes turime įprastą tiesinė lygtis, kurį galima išspręsti naudojant standartinius metodus, todėl labai sunku atsispirti pagundai nedelsiant rasti tikslų sprendimą:

– kiekvienas gali patikrinti ir įsitikinti, kad ši funkcija atitinka pradinę sąlygą ir yra lygties šaknis.

Ką reikėtų daryti? Reikia surasti ir statyti nutrūkusi linija, kuris apytiksliai atitinka funkcijos grafiką ant intervalo. Kadangi šio intervalo ilgis yra lygus vienetui, o žingsnis yra , tada mūsų nutrūkusi linija sudarys iš 10 segmentų:

Be to, laikotarpis jau žinomas – tai atitinka pradinę sąlygą. Be to, akivaizdžios kitų taškų „X“ koordinatės:

Belieka tik surasti . Nė vienas diferenciacija Ir integracija– tik sudėtis ir daugyba! Kiekviena paskesnė „žaidimo“ vertė gaunama iš ankstesnės naudojant paprastą pasikartojantis formulė:

Įsivaizduokime diferencialinę lygtį tokia forma:

Taigi:

„Mes atsipalaiduojame“ nuo pradinės būklės:

Štai mes einame:

Skaičiavimo rezultatus patogu suvesti į lentelę:

O pačius skaičiavimus automatizuoti Excel programoje – mat matematikoje svarbu ne tik laimėti, bet ir greita pabaiga :)

Remdamiesi 2 ir 3 stulpelių rezultatais, brėžinyje pavaizduosime 11 taškų ir 10 atkarpų, jungiančių gretimus taškus. Palyginimui pavaizduosiu tikslų dalinį sprendimą :


Reikšmingas paprasto Eulerio metodo trūkumas yra tai, kad paklaida yra per didelė ir nesunku pastebėti, kad klaida linkusi kauptis – kuo toliau nuo taško, tuo daugiausia aproksimacijos ir tiesos neatitikimas tampa didesnis. Tai galima paaiškinti pačiu principu, kuriuo Euleris grindė savo metodą: atkarpos yra lygiagrečios Aktualus liestinė į funkcijos grafiką taškuose. Šis faktas, beje, irgi aiškiai matosi iš piešinio.

Kaip galite pagerinti aproksimaciją? Pirma mintis yra patobulinti skaidinį. Padalinkime segmentą, pavyzdžiui, į 20 dalių. Tada veiksmas bus toks: , ir visiškai aišku, kad nutrūkusi 20 nuorodų linija kur kas tiksliau apytikslis konkretus sprendimas. Naudojant tą patį Excel, nebus sunku apdoroti 100-1000 ir net milijoną (!) tarpinių segmentų, tačiau paklauskime savęs: ar įmanoma KOKYBEI patobulinti metodą?

Tačiau prieš atskleisdamas šią problemą, negaliu apsisaugoti ties vardu, kuris šiandien buvo paminėtas kelis kartus. Skaitymas Leonhardo Eulerio biografija, tiesiog nuostabu, kiek neįtikėtinai daug žmogus gali nuveikti savo gyvenime! Palyginti, prisiminiau tik K.F. Gausas. ...Tad pasistengsime neprarasti motyvacijos mokytis ir naujiems atradimams :))

Patobulintas Eulerio metodas

Panagrinėkime tą patį pavyzdį: diferencialinė lygtis, konkretus sąlygą tenkinantis sprendimas, intervalas ir jo padalijimas į 10 dalių
( – kiekvienos dalies ilgis).

Tobulinimo tikslas yra priartinti polilinijos „raudonus kvadratus“ prie atitinkamų tikslaus sprendimo „žalių taškų“ .

O modifikacijos idėja yra tokia: segmentai turi būti lygiagrečiai liestinė, kurios nubrėžtos į funkcijos grafiką ne kairiuose kraštuose, ir skirsnių intervalų „viduryje“. Tai, žinoma, pagerins aproksimacijos kokybę.

Sprendimo algoritmas veikia taip pat, tačiau formulė, kaip galite spėti, tampa sudėtingesnė:
, Kur

Vėl pradedame šokti nuo konkretaus sprendimo ir iškart randame 1-ąjį „išorinės“ funkcijos argumentą:

Dabar randame savo „monstrą“, kuris pasirodė ne toks baisus - atkreipkite dėmesį, kad tai yra ta pati funkcija , apskaičiuotas kitame taške:

Gautą rezultatą padauginame iš skaidymo žingsnio:

Taigi:

Algoritmas žengia į antrąjį etapą, todėl nepatingėsiu ir išsamiai aprašysiu:

Mes svarstome porą ir randame 1-ąjį „išorinės“ funkcijos argumentą:

Apskaičiuojame ir randame antrąjį argumentą:

Apskaičiuokime vertę:

ir jo produktas per žingsnį:

Skaičiavimus tikslinga atlikti Excel programoje (pakartokite formules pagal tą pačią schemą - žiūrėkite aukščiau esantį vaizdo įrašą) ir apibendrinkite rezultatus lentelėje:


Skaičius patartina suapvalinti iki 4-5-6 skaitmenų po kablelio. Dažnai tam tikros užduoties sąlygomis yra tiesioginis nurodymas, kokiu tikslumu turėtų būti atliktas apvalinimas. Stipriai „sulenktas“ vertes sumažinau iki 6 skaitmenų.

Remiantis 2 ir 3 stulpelių rezultatais (kairėje) statykime nutrūkusi linija, o palyginimui vėl parodysiu tikslaus sprendimo grafiką :


Rezultatas žymiai pagerėjo! – raudoni kvadratėliai praktiškai „pasislėpę“ už tikslaus sprendimo žalių taškų.

Tačiau tobulumui ribų nėra. Viena galva gerai, bet dvi geriau. Ir vėl vokiškai:

Klasikinis 4 eilės Runge-Kutta metodas

Jo tikslas yra „raudonuosius kvadratus“ dar labiau priartinti prie „žalių taškų“. Klausiate, kur dar arčiau? Daugelyje, ypač fizinių, studijų, 10 ar net 50 yra IŠ PAGRINDINĖS svarbos. tikslūs po kablelio. Ne, tokį tikslumą galima pasiekti naudojant paprastą Eulerio metodą, bet KIEK dalių teks padalyti intervalą?! ...Nors su šiuolaikine skaičiavimo galia tai nėra problema - tūkstančiai kinų stokerių erdvėlaivis garantuota!

Ir, kaip teisingai rodo pavadinimas, naudojant Runge-Kutta metodą kiekviename žingsnyje turėsime apskaičiuoti funkcijos reikšmę 4 kartus (priešingai nei dvigubas skaičiavimas ankstesnėje pastraipoje). Tačiau ši užduotis yra gana įveikiama, jei samdote kinus. Kiekviena paskesnė „žaidimo“ reikšmė gaunama iš ankstesnės - gaudome formules:
, Kur , Kur:

Pasiruošę? Na tada pradedam :))


Taigi:

Pirmoji eilutė yra užprogramuota, ir aš nukopijuoju tokias formules:


Nemaniau, kad taip greitai įveiksiu Runge-Kutta metodą =)

Brėžinyje nėra prasmės, nes jis nebėra reprezentatyvus. Padarykime geresnį analitinį palyginimą tikslumu trys metodai, nes kai žinomas tikslus sprendimas , tada nuodėmė nepalyginti. Funkcijų reikšmės mazginiuose taškuose lengvai apskaičiuojamos programoje „Excel“ - formulę įvedame vieną kartą ir pakartojame likusiai.

Žemiau esančioje lentelėje apibendrinsiu vertes (kiekvienam iš trijų metodų) ir atitinkamas absoliučios klaidos apytiksliai skaičiavimai:


Kaip matote, Runge-Kutta metodas jau suteikia 4-5 teisingus skaitmenis po kablelio, palyginti su 2 teisingais patobulinto Eulerio metodo skaičiais po kablelio! Ir tai nėra atsitiktinumas:

– „Įprasto“ Eulerio metodo paklaida neviršija žingsnis pertvaros. Ir iš tikrųjų – pažiūrėkite į kairiausią klaidų stulpelį – po kablelio yra tik vienas nulis, o tai rodo, kad tikslumas yra 0,1.

– Patobulintas Eulerio metodas garantuoja tikslumą: (pažiūrėkite į 2 nulius po kablelio viduriniame klaidos stulpelyje).

– Ir galiausiai klasikinis Runge-Kutta metodas užtikrina tikslumą .

Pateikti klaidų įverčiai teoriškai yra griežtai pagrįsti.

Kaip galite pagerinti apytikslį tikslumą DAUGIAU? Atsakymas yra visiškai filosofinis: kokybė ir (arba) kiekybė =) Visų pirma, yra kitų, tikslesnių Runge-Kutta metodo modifikacijų. Kiekybinis būdas, kaip jau buvo pažymėta, yra žingsnio mažinimas, t.y. dalijant segmentą į didesnį skaičių tarpinių segmentų. Ir padidėjus šiam skaičiui, linija nutrūko vis labiau atrodys kaip tikslaus sprendimo grafikas Ir riboje- sutaps su juo.

Matematikoje ši savybė vadinama kreivės tiesinamumas. Beje (maža offtopic), ne viską galima „ištiesinti“ - rekomenduoju perskaityti įdomiausius, kuriuose „tyrimo srities“ sumažinimas nereiškia, kad supaprastinamas tyrimo objektas.

Taip jau susiklostė, kad išanalizavau tik vieną diferencialinę lygtį ir dėl to porą papildomų komentarų. Ką dar reikia nepamiršti praktikoje? Problemos teiginyje jums gali būti pasiūlytas skirtingas segmentas ir skirtingas skaidinys, o kartais randama tokia formuluotė: „rasti naudojant metodą... ...intervale, padalijant jį į 5 dalis“. Tokiu atveju turite rasti skaidinio veiksmą , tada vadovaukitės įprasta sprendimo schema. Beje, pradinė sąlyga turėtų būti tokios formos: , tai yra, „x nulis“, kaip taisyklė, sutampa su kairiuoju segmento galu. Vaizdžiai tariant, nutrūkusi linija visada „išeina“ iš taško.

Neabejotinas nagrinėjamų metodų pranašumas yra tai, kad jie taikomi lygtims su labai sudėtinga dešiniąja puse. Ir absoliutus trūkumas yra tas, kad ne kiekvienas difuzorius gali būti pateiktas tokia forma.

Bet beveik viską šiame gyvenime galima pataisyti! – juk išnagrinėjome tik mažą dalelę temos, o mano frazė apie storas, labai storas knygas buvo visai ne juokas. Yra daug įvairių apytikslių diferencialinių lygčių ir jų sistemų sprendimų būdų, kuriuose, be kita ko, naudojami iš esmės skirtingi metodai. Taigi, pavyzdžiui, gali būti konkretus sprendimas apytikslis pagal laipsnio eilutes. Tačiau tai yra kitos dalies straipsnis.

Tikiuosi, kad man pavyko paįvairinti nuobodžią skaičiavimo matematiką, ir jums tai buvo įdomu!

Ačiū už dėmesį!


Uždaryti