Zakaj je metoda Runge Kutta natančnejša? Runge-kutta metode

Metode Runge-Kutty(pogosto napačno imenovan Metode Runge-Kutta oz Metode Runge-Kutta) je pomembna družina numeričnih algoritmov za reševanje navadnih diferencialnih enačb in njihovih sistemov. Te iterativne metode eksplicitnega in implicitnega približnega izračuna sta okoli leta 1900 razvila nemška matematika K. Runge in M. V. Kutta.

Formalno je metoda Runge-Kutta modificirana in popravljena Eulerjeva metoda, ki predstavlja sheme točnosti drugega reda. Obstajajo standardne sheme tretjega reda, ki se ne uporabljajo široko. Najpogosteje uporabljena in implementirana v različnih matematičnih paketih (Maple, MathCAD, Maxima) je standardna shema četrtega reda. Včasih se pri izračunih s povečano natančnostjo uporabljajo sheme petega in šestega reda. Konstruiranje vezij višjega reda vključuje velike računske težave. Metode sedmega reda morajo imeti vsaj devet stopenj, metode osmega reda pa 11 stopenj. Čeprav vezja devetega reda nimajo velikega praktičnega pomena, ni znano, koliko stopenj je potrebnih za dosego tega reda natančnosti. Podoben problem obstaja za vezja desetega in višjih redov.

Klasična metoda Runge-Kutta četrtega reda

Metoda Runge-Kutta četrtega reda je tako razširjena, da jo pogosto imenujemo preprosto metoda Runge-Kutta.

Numerična rešitev tega primera daje čisto nič pod pogojem | r(z) |< 1 z z = h\lambda. Veliko jih je r klical območje absolutne stabilnosti. Zlasti se metoda imenuje A-stabilenče vse r z \textrm(Re)(z)< 0 so v območju absolutne stabilnosti. Funkcija stabilnosti eksplicitne metode Runge-Kutta je polinom, zato eksplicitne metode Runge-Kutta načeloma ne morejo biti stabilne.

Če ima metoda vrstni red str, potem funkcija stabilnosti izpolnjuje pogoj r(z) = \textrm(e)^z + O(z^(p+1)) pri z \ na 0. Tako je zanimivo razmerje polinomov dane stopnje, ki najbolje približa eksponentno funkcijo. Te relacije so znane kot Padéjeve aproksimacije. Padéjev približek s števcem eksponenta m in imenovalec stopnje n A-stabilen, če in samo če m \le n \le m + 2.

s-stopenjska Gauss-Legendrejeva metoda z redom 2s, zato je njegova funkcija stabilnosti Padéjev približek m=n=s. Iz tega sledi, da je metoda A-stabilna. To kaže, da so A-stabilne Runge-Kutta metode lahko poljubno visokega reda. V nasprotju s tem vrstni red A-stabilnosti Adamsove metode ne more preseči dveh.

Izgovorjava

V skladu s slovničnimi normami ruskega jezika je priimek Kutta zavrnjen, zato pravijo: "Runge - metoda Kutta." Pravila ruske slovnice zahtevajo, da se zavrnejo vsi priimki (vključno z moškimi), ki se končajo na -a, -ya, pred katerimi je soglasnik. Edina izjema so priimki francoskega izvora s poudarkom na zadnjem zlogu, kot sta Dumas, Zola. Vendar pa včasih obstaja neprilagodljiva različica "metode Runge-Kutta" (na primer v knjigi).

Primer rešitve v algoritemskih programskih jezikih

javni razred MainClass ( javni statični void main(String args) ( int k = 2; dvojni Xo, Yo, Y1, Zo, Z1; dvojni k1, k2, k4, k3, h; dvojni q1, q2, q4, q3; / * *Začetni pogoji */ Xo = 2; // korak System.out.println("\tX\t\tZ");<1.0; Xo += h){ k1 = h * f(Xo, Yo, Zo); q1 = h * g(Xo, Yo, Zo); k2 = h * f(Xo + h/2.0, Yo + q1/2.0, Zo + k1/2.0); q2 = h * g(Xo + h/2.0, Yo + q1/2.0, Zo + k1/2.0); k3 = h * f(Xo + h/2.0, Yo + q2/2.0, Zo + k2/2.0); q3 = h * g(Xo + h/2.0, Yo + q2/2.0, Zo + k2/2.0); k4 = h * f(Xo + h, Yo + q3, Zo + k3); q4 = h * g(Xo + h, Yo + q3, Zo + k3); Z1 = Zo + (k1 + 2.0*k2 + 2.0*k3 + k4)/6.0; Y1 = Yo + (q1 + 2.0*q2 + 2.0*q3 + q4)/6.0; System.out.println("\t" + r(Xo + h, k) + "\t\t" + r(Y1 ,k) + "\t\t" + r(Z1 ,k)); Yo = Y1; Zo = Z1; } } /** * функция для округления и отбрасывания "хвоста" */ public static double r(double value, int k){ return (double)Math.round((Math.pow(10, k)*value))/Math.pow(10, k); } /** * функции, которые получаются из системы */ public static double f(double x, double y, double z){ return (Math.cos(3*x) - 4*y); } public static double g(double x, double y, double z){ return (z); } }

z uporabo sistema; z uporabo System.Collections.Generic; imenski prostor PRJ_RungeKutta ( ///

/// Izvedba metode Runge - Kutta za navadno diferencialno enačbo /// javni abstraktni razred RungeKutta ( /// /// Trenutni čas /// javni dvojni t; ////// Zahtevana rešitev Y je rešitev sama, Y[i] je i-ti derivat rešitve /// javni dvojni Y;/// /// Notranje spremenljivke /// /// dvojno YY, Y1, Y2, Y3, Y4; zaščiten dvojni FY; /// Notranje spremenljivke ////// /// Konstruktor /// /// sistemska dimenzija public RungeKutta(uint N) ( Init(N); ) /// javni RungeKutta()() /// /// /// Dodelitev pomnilnika za delovna polja /// /// Dimenzije polja zaščitena praznina Init(uint N) ( Y = nova dvojna [N]; YY = nova dvojna [N]; Y1 = nova dvojna [N]; Y2 = nova dvojna [N]; Y3 = nova dvojna [N]; Y4 = nova dvojna [N];< Y.Length; i++) Y[i] = Y0[i]; } /// /// Nastavitev začetnih pogojev /// /// Začetni čas /// Začetno stanje /// public void SetInit(double t0, double Y0) ( t = t0; if (Y == null) Init((uint)Y0.Length); for (int i = 0; i/// Izračun desnih strani sistema /// trenutni čas /// vektor rešitve desna stran< 0) return; // рассчитать Y1 Y1 = F(t, Y); for (i = 0; i < Y.Length; i++) YY[i] = Y[i] + Y1[i] * (dt / 2.0); // рассчитать Y2 Y2 = F(t + dt / 2.0, YY); for (i = 0; i < Y.Length; i++) YY[i] = Y[i] + Y2[i] * (dt / 2.0); // рассчитать Y3 Y3 = F(t + dt / 2.0, YY); for (i = 0; i < Y.Length; i++) YY[i] = Y[i] + Y3[i] * dt; // рассчитать Y4 Y4 = F(t + dt, YY); // рассчитать решение на новом шаге for (i = 0; i < Y.Length; i++) Y[i] = Y[i] + dt / 6.0 * (Y1[i] + 2.0 * Y2[i] + 2.0 * Y3[i] + Y4[i]); // рассчитать текущее время t = t + dt; } } class TMyRK: RungeKutta { public TMyRK(uint N) { Init(N); } /// abstraktno javno dvojno F(dvojno t, dvojno Y); /// /// /// /// Naslednji korak metode Runge-Kutta /// /// Desna stran javna preglasitev dvojni F(dvojni t, dvojni Y) ( FY = Y; FY = -Y; vrni FY; ) /// /// Primer uporabe /// static public void Test() ( // Časovni korak dvojni dt = 0,001; // Objekt metode TMyRK task = new TMyRK(2); // Definirajte začetne pogoje y(0)=0, y"(0)=1 task double Y0 = ( 0, 1 ); // Nastavite začetne pogoje naloge task.SetInit(0, Y0); // rešite do 15 sekund medtem (task.t);<= 15) { Console.WriteLine("Time = {0:F5}; Func = {1:F8}; d Func / d x = {2:F8}", task.t, task.Y, task.Y); // вывести t, y, y" // рассчитать на следующем шаге, шаг интегрирования task.NextStep(dt); } Console.ReadLine(); } } class Program { static void Main(string args) { TMyRK.Test(); } } }

Program C# uporablja abstraktni razred RungeKutta, v katerem je treba preglasiti abstraktno metodo F, ki podaja desne strani enačb.

Primer rešitve v okolju MATLAB

Reševanje sistemov diferencialnih enačb z metodo Runge-Kutta je ena najpogostejših numeričnih metod reševanja v tehniki. Ena od njegovih sort je implementirana v okolju MATLAB - metoda Dormand-Prince. Če želite rešiti sistem enačb, morate najprej napisati funkcijo, ki izračunava odpeljanke, tj. funkcije y = g(x,y,z) in z = cos(3x) - 4y = f(x,y,z), kot je navedeno zgoraj. V enem od imenikov, do katerih lahko dostopate iz sistema MATLAB, morate ustvariti besedilno datoteko z imenom (npr. runge.m z naslednjo vsebino (za različico MATLAB 5.3):

Ime datoteke in ime funkcije se morata ujemati, lahko pa je karkoli, kar še ni bilo uporabljeno.

Nato morate ustvariti glavno datoteko z imenom, npr. glavni.m, ki bo opravil glavne izračune. Ta glavna datoteka bo vsebovala naslednje besedilo:

jasno; clc; % Počisti pomnilnik in zaslon h = 0,1; % korak integracije x_fin = 8; % Končni integracijski čas y0 = 0,8; % Začetna vrednost funkcije Dy0 = 2; % Začetna vrednost odvoda funkcije = ode45("runge", , ); % Runge – izris metode Kutta(x, y, "LineWidth", 2); mreža; % Gradnja grafa in mrežne legende ("y(x)", "y""(x)", 0); % Legenda na grafikonu

Ker je MATLAB matrično usmerjen, je reševanje metode Runge-Kutta zelo enostavno za celo vrsto x kot na primer v danem primeru programa. Tukaj je rešitev graf funkcije znotraj časov od 0 do x_fin. Spremenljivke x in l, pridobljen kot rezultat funkcije ODE45, obstajajo vektorji vrednosti. Očitno je rešitev zgoraj navedenega posebnega primera drugi element x, od prve vrednosti 0 , korak integracije h = 0,1, in vrednost obresti x = 0,1. Naslednji vnos v ukaznem oknu MATLAB bo dal rešitev, ki jo iščete:

Odgovor: y1 = 0,98768

Napišite oceno o članku "Metoda Runge-Kutty"

Povezave

Odlomek, ki opisuje metodo Runge-Kutta

"Ne veš, Bolkonski," se je Bilibin obrnil k princu Andreju, "da vse grozote francoske vojske (skoraj sem rekel ruske vojske) niso nič v primerjavi s tem, kar je ta moški naredil med ženskami."
»La femme est la compagne de l"homme, [Ženska je človekova prijateljica]," je rekel princ Hippolyte in skozi lorgneto začel gledati svoje dvignjene noge.
Bilibin in naši ljudje so bruhnili v smeh, ko so pogledali v Ippolitove oči. Princ Andrej je videl, da je ta Ippolit, za katerega je (moral je priznati) skoraj ljubosumen na svojo ženo, v tej družbi norčav.
"Ne, moram te pogostiti s Kuraginom," je Bilibin tiho rekel Bolkonskemu. – Šarmanten je, ko govori o politiki, morate videti ta pomen.
Usedel se je k Hipolitu in, nabravši gube na čelu, začel z njim pogovor o politiki. Princ Andrej in drugi so obkolili oba.
»Le cabinet de Berlin ne peut pas exprimer un sentiment d" alliance,« je začel Hippolyte in vse pomembno pogledal, »sans exprimer ... comme dans sa derieniere note ... vous comprenez ... vous comprenez ... et puis si sa Majeste l"Empereur ne deroge pas au principe de notre alliance... [Berlinski kabinet ne more izraziti svojega mnenja o zavezništvu, ne da bi izrazil... kot v zadnji opombi... razumete... razumete.. ... če pa Njegovo Veličanstvo cesar ne spremeni bistva našega zavezništva ...]
"Attendez, je n"ai pas fini...," je rekel princu Andreju in ga prijel za roko. "Je suppose que l"intervention sera plus forte que la non intervention." Et ...« Umolknil je. – On ne pourra pas imputer a la fin de non recevoir notre depeche du 28 novembre. Voila komentar tout cela finira. [Počakaj, nisem končal. Mislim, da bo posredovanje močnejše od neposredovanja. In... Nemogoče je obravnavati zadevo kot zaključeno, če naša depeša z dne 28. novembra ne bo sprejeta. Kako se bo vse to končalo?]
In izpustil je roko Bolkonskega, kar je pokazalo, da je zdaj popolnoma končal.
»Demosten, je te reconnais au caillou que tu as cache dans ta bouche d"or! [Demosten, prepoznam te po kamenčku, ki ga skrivaš v svojih zlatih ustnicah!] - je rekel Bilibin, čigar čepica las se je premikala na njegovi glavi z užitek
Vsi so se smejali. Hipolit se je smejal najglasneje od vseh. Očitno je trpel, dušil se je, a se ni mogel upreti divjemu smehu, ki je raztegnil njegov vedno nepremični obraz.
"No, gospodje," je rekel Bilibin, "Bolkonski je moj gost v hiši in tukaj v Brunnu, in želim mu privoščiti, kolikor lahko, vse radosti življenja tukaj." Če bi bili v Brunnu, bi bilo enostavno; ampak tukaj, dans ce vilain trou morave [v tej grdi moravski luknji], je težje, in vse vas prosim za pomoč. Il faut lui faire les honneurs de Brunn. (Moramo mu pokazati Brunna.) Ti prevzameš gledališče, jaz – družbo, ti, Hipolit, seveda – ženske.
– Moramo mu pokazati Amelie, ljubka je! - je rekel eden od naših in mu poljubil konice prstov.
"Na splošno je treba tega krvoločnega vojaka," je dejal Bilibin, "preobrniti k bolj humanim pogledom."
»Gospodje, verjetno ne bom izkoristil vaše gostoljubnosti, zdaj pa je čas, da grem,« je rekel Bolkonski in pogledal na uro.
- kje?
- Za cesarja.
- O! o! o!
- No, zbogom, Bolkonski! Zbogom, princ; »Pridi prej na večerjo,« so se zaslišali glasovi. - Poskrbeli bomo za vas.
"Ko govorite s cesarjem, poskušajte čim bolj pohvaliti red pri dostavi zalog in poti," je rekel Bilibin in pospremil Bolkonskega v sprednjo dvorano.
"In rad bi pohvalil, vendar ne morem, kolikor vem," je z nasmehom odgovoril Bolkonski.
- No, na splošno govorite čim več. Njegova strast so občinstva; sam pa ne mara govoriti in ne zna, kakor boste videli.

Na odhodu je cesar Franc samo pozorno gledal v obraz kneza Andreja, ki je stal na določenem mestu med avstrijskimi častniki, in mu pokimal s svojo dolgo glavo. Toda po odhodu iz včerajšnjega krila je adjutant Bolkonskemu vljudno prenesel cesarjevo željo, da bi ga sprejel.
Cesar Franc ga je sprejel, stoječ sredi sobe. Pred začetkom pogovora je princa Andreja presenetilo, da je bil cesar videti zmeden, da ni vedel, kaj naj reče, in je zardel.
– Povej mi, kdaj se je začela bitka? – je naglo vprašal.
Princ Andrej je odgovoril. Temu vprašanju so sledila druga, enako preprosta vprašanja: »Ali je Kutuzov zdrav? Pred koliko časa je zapustil Krems?« itd. Cesar je govoril s takšnim izrazom, kot da bi bil njegov cel cilj samo postaviti določeno število vprašanj. Odgovori na ta vprašanja, kot je bilo preveč očitno, ga niso mogli zanimati.
– Ob kateri uri se je začela bitka? - vprašal je cesar.
»Ne morem povedati vašemu veličanstvu, kdaj se je začela bitka od spredaj, toda v Dürensteinu, kjer sem bil, je vojska začela napad ob 6. uri zvečer,« je rekel Bolkonski, ki se je vzbudil in hkrati ob predpostavki, da mu bo uspelo predstaviti že pripravljeno v njegovi glavi pravi opis vsega, kar je vedel in videl.
Toda cesar se je nasmehnil in ga prekinil:
- Koliko milj?
- Od kod in kam, vaše veličanstvo?
– Od Durensteina do Kremsa?
- Tri milje in pol, vaše veličanstvo.
-So Francozi zapustili levi breg?
»Kot so poročali izvidniki, so zadnji prestopili tisto noč na raftih.
– Ali je v Kremsu dovolj krme?
– Krma ni bila dobavljena v tej količini...
Cesar ga je prekinil.
– Kdaj je bil ubit general Schmit?...
- Ob sedmih, mislim.
- Ob 7. uri. Zelo žalostno! Zelo žalostno!
Cesar se je zahvalil in se priklonil. Princ Andrej je prišel ven in takoj so ga z vseh strani obkrožili dvorjani. Od vseh strani so ga gledale prijazne oči in slišale so se mile besede. Včerajšnji adjutant mu je očital, da ni ostal v palači, in mu ponudil svoj dom. Pristopil je vojni minister in mu čestital za red Marije Terezije 3. stopnje, ki mu ga je podelil cesar. Cesarin komornik ga je povabil k njenemu veličanstvu. Tudi nadvojvodinja ga je hotela videti. Ni vedel, komu naj odgovori, in si je vzel nekaj sekund, da je zbral misli. Ruski odposlanec ga je prijel za ramo, ga odpeljal k oknu in začel z njim govoriti.
V nasprotju z Bilibinovimi besedami je bila novica, ki jo je prinesel, sprejeta z veseljem. Na sporedu je bilo zahvalno bogoslužje. Kutuzova je Marija Terezija odlikovala z velikim križem, celotna vojska pa je prejela odlikovanja. Bolkonski je prejemal vabila z vseh strani in je moral vse dopoldne obiskovati glavne dostojanstvenike Avstrije. Ko je končal svoje obiske ob petih zvečer in v mislih sestavil pismo očetu o bitki in o svojem potovanju v Brunn, se je princ Andrej vrnil domov k Bilibinu. Na verandi hiše, ki jo je zasedal Bilibin, je stala bricka, napol napolnjena s stvarmi, in Franz, Bilibinov služabnik, je s težavo vlekel svoj kovček, prišel skozi vrata.
Pred odhodom k Bilibinu je princ Andrej šel v knjigarno, da bi si nabavil knjige za na pot, in sedel v trgovini.
Kaj se je zgodilo? « je vprašal Bolkonski.
- Ah, Erlaucht? - je rekel Franz in s težavo naložil kovček v ležalnik. – Wir ziehen noch weiter. Der Bosewicht ist schon wieder hinter uns her! [Ah, vaša ekscelenca! Gremo še dlje. Zlobnež nam je že spet za petami.]
Kaj se je zgodilo? Kaj? - je vprašal princ Andrej.
Bilibin je prišel naproti Bolkonskemu. Na Bilibinovem vedno mirnem obrazu je bilo razburjenje.
»Non, non, avouez que c"est charmant," je rekel, "cette histoire du pont de Thabor (most na Dunaju). Ils l"ont passe sans coup ferir. [Ne, ne, priznajte, da je to veselje, ta zgodba z mostom Tabor. Prečkali so jo brez odpora.]
Princ Andrej ni razumel ničesar.
- Od kod si, da ne veš, kar vedo že vsi kočijaži v mestu?
- Jaz sem od nadvojvodinje. Tam nisem slišal ničesar.
– In ali nisi videl, da se zlagajo povsod?
- Nisem videl ... Toda kaj je narobe? – je nestrpno vprašal princ Andrej.
-Kaj je narobe? Dejstvo je, da so Francozi prečkali most, ki ga Auesperg brani, in most ni bil razstreljen, tako da Murat zdaj teče po cesti v Brunn, danes pa bodo jutri tukaj.
Kako je tukaj? Kako to, da niso razstrelili mostu, ko je bil miniran?
– In to je tisto, kar vas sprašujem. Nihče, niti sam Bonaparte, tega ne ve.
Bolkonski je skomignil z rameni.
"Če pa se most prečka, to pomeni, da je vojska izgubljena: odrezana bo," je dejal.
"V tem je stvar," je odgovoril Bilibin. - Poslušaj. Francozi vstopajo na Dunaj, kot sem vam rekel. Vse je zelo dobro. Naslednji dan, to je včeraj, gospoda maršala: Murat Lann in Belliard, sedite na konja in pojdite na most. (Upoštevajte, da so vsi trije Gaskonci.) Gospodje,« pravi eden, »saj veste, da je most Tabor miniran in protiminiran in da je pred njim mogočna tete de pont in petnajst tisoč vojakov, ki jim je bilo ukazano da razstreli most in nas ne spusti noter.” Toda naš suvereni cesar Napoleon bo zadovoljen, če zavzamemo ta most. Mi trije bomo šli in zavzeli ta most. »Gremo,« pravijo drugi; in se odpravijo in zavzamejo most, ga prečkajo in zdaj z vso vojsko na tej strani Donave gredo proti nam, proti vam in proti vašim sporočilom.
"Nič več šale," je žalostno in resno rekel princ Andrej.
Ta novica je bila žalostna in hkrati prijetna za princa Andreja.
Takoj ko je zvedel, da je ruska vojska v tako brezizhodnem položaju, se mu je zazdelo, da je prav on usojen, da popelje rusko vojsko iz tega položaja, da je tu on, tisti Toulon, ki ga bo izpeljal iz vrste neznanih častnikov in mu odprejo prvo pot do slave! Ko je poslušal Bilibina, je že razmišljal, kako bo, ko bo prišel v vojsko, na vojaškem svetu predstavil mnenje, ki bo samo rešilo vojsko, in kako bo samo njemu zaupana izvedba tega načrta.
"Ne hecaj se," je rekel.
"Ne šalim se," je nadaljeval Bilibin, "nič ni pravičnejšega in bolj žalostnega." Ti gospodje pridejo sami na most in dvigajo bele rute; Zagotavljajo, da je premirje in da se bodo oni, maršali, pogajali s knezom Auerspergom. Dežurni jih spusti v tete de pont. [utrdba mostu.] Pripovedujejo mu tisoče gaskonskih neumnosti: pravijo, da je vojne konec, da je cesar Franc določil sestanek z Bonapartejem, da hočejo videti kneza Auersperga, pa tisoč Gaskonadov itd. Častnik pošlje po Auersperga; Ti gospodje se objemajo s častniki, se šalijo, sedijo na topovih, medtem pa francoski bataljon neopazno vstopi na most, vrže vreče z vnetljivimi snovmi v vodo in se približa tete de pont. Končno se pojavi sam generalpodpolkovnik, naš dragi princ Auersperg von Mautern. »Dragi sovražnik! Cvet avstrijske vojske, junak turških vojn! Sovražnosti je konec, lahko si podamo roko ... Cesar Napoleon gori od želje, da bi priznal kneza Auersperga.« Z eno besedo, ti gospodje, ne zaman Gaskonci, zasipajo Auersperga z lepimi besedami, tako ga premami njegova tako hitro vzpostavljena intimnost s francoskimi maršali, tako zaslepljen od pogleda na Muratov plašč in nojevo perje, qu"il n" y voit que du feu, et oubl celui qu"il devait faire faire sur l"ennemi. [Da vidi le njihov ogenj in pozabi na svoj, ki ga je bil dolžan odpreti proti sovražniku.] (Bilibin kljub živahnosti svojega govora ni pozabil narediti premora po tem geslu, da bi dal čas, da ga oceni.) Francoski bataljon naleti na tete de pont, topovi so prikovani in most je zavzet. Ne, ampak kar je najboljše,« je nadaljeval in se umiril v svojem navdušenju nad čarom lastne zgodbe, »da je narednik, ki je bil pripisan tistemu topu, na znak katerega naj bi se prižgale mine in razstrelil most. , ta narednik, ko je videl, da francoske čete tečejo proti mostu, je hotel streljati, vendar je Lann potegnil roko stran. Narednik, ki je bil očitno pametnejši od svojega generala, pride do Auersperga in reče: "Knez, varajo vas, to so Francozi!" Murat vidi, da je zadeva izgubljena, če sme narednik spregovoriti. Začudeno se obrne k Auerspergu (pravemu Gaskoncu): »Ne priznam v svetu tako opevane avstrijske discipline,« pravi, »in dovoliš, da se nižji rang tako pogovarja s tabo!« C"est genial. Le prince d"Auersperg se pique d"honneur et fait mettre le sergent aux arrets. Non, mais avouez que c"est charmant toute cette histoire du pont de Thabor. Ce n"est ni betise, ni lachete... [To je briljantno. Knez Auersperg je užaljen in odredi aretacijo narednika. Ne, priznajte, lepa je vsa ta zgodba z mostom. To ni le neumnost, ni samo podlost ...]
»Est trahison peut etre, [Morda izdaja,« je rekel princ Andrej in si živo predstavljal sive plašče, rane, dim smodnika, zvoke streljanja in slavo, ki ga čaka.
– Ni plus. "Cela met la cour dans de trop mauvais draps," je nadaljeval Bilibin. - Ce n"est ni trahison, ni lachete, ni betise; c"est comme a Ulm... - Zdelo se je, da razmišlja in išče izraz: - c"est... c"est du Mack. Nous sommes mackes, [Tudi št. To postavlja sodišče v najbolj absurden položaj; To ni niti izdaja, niti zlobnost niti neumnost; to je kot v Ulmu, to je ... to je Makovshchina. Potopili smo se sami. ] - je sklenil z občutkom, da je rekel un mot, in to svež mot, tak mot, ki se bo ponavljal.
Do tedaj nabrane gube na njegovem čelu so se v znak zadovoljstva hitro razblinile in rahlo nasmejan je začel pregledovati svoje nohte.
-Kam greš? - je nenadoma rekel in se obrnil k princu Andreju, ki je vstal in se odpravil v svojo sobo.
- Grem.
- kje?
- V vojsko.
- Ja, hotel si ostati še dva dni?
- In zdaj grem.
In princ Andrej, ko je dal ukaz za odhod, je odšel v svojo sobo.
"Veš kaj, draga moja," je rekel Bilibin in vstopil v svojo sobo. - Mislil sem nate. zakaj greš
In da bi dokazali neizpodbitnost tega argumenta, so vse gube izginile z obraza.
Princ Andrej je vprašujoče pogledal sogovornika in ni odgovoril.
- Zakaj greš? Vem, da mislite, da je vaša dolžnost, da se pridružite vojski zdaj, ko je vojska v nevarnosti. To razumem, mon cher, c"est de l"heroisme. [draga moja, to je junaštvo.]
"Sploh ne," je rekel princ Andrej.
- Ampak ti si un philoSophiee, [filozof], bodi to popolnoma, poglej na stvari z druge strani in videl boš, da je tvoja dolžnost, nasprotno, skrbeti zase. Prepusti drugim, ki za nič več niso sposobni ... Ni ti bilo ukazano, da se vrneš, in nisi bil izpuščen od tod; zatorej moreš ostati in iti z nami, kamorkoli nas zanese nesrečna usoda. Pravijo, da gredo v Olmutz. In Olmutz je zelo lepo mesto. In ti in jaz se bova skupaj mirno vozila v mojem vozičku.
"Nehaj se šaliti, Bilibin," je rekel Bolkonski.
– Iskreno in prijateljsko vam povem. sodnik Kam in zakaj boš šel zdaj, ko lahko ostaneš tukaj? Čaka vas ena od dveh stvari (zbral je kožo nad levim templjem): ali ne dosežete vojske in bo sklenjen mir, ali poraz in sramota s celotno vojsko Kutuzova.
In Bilibinu se je zrahljala koža, saj je čutil, da je njegova dilema neizpodbitna.
"Ne morem soditi o tem," je hladno rekel princ Andrej, vendar je pomislil: "Grem, da rešim vojsko."
»Mon cher, vous etes un heros, [Draga moja, ti si junak,« je rekel Bilibin.

Iste noči, ko se je priklonil vojnemu ministru, je Bolkonski odšel v vojsko, ne da bi vedel, kje jo bo našel, in se bal, da bi ga na poti v Krems prestregli Francozi.
V Brünnu se je vse dvorno prebivalstvo pakiralo, bremena pa so bila že poslana v Olmütz. V bližini Etzelsdorfa je princ Andrej zapeljal na cesto, po kateri se je ruska vojska premikala z največjo naglico in v največjem neredu. Cesta je bila tako natrpana z vozovi, da se ni dalo voziti s kočijo. Ko je kozaški poveljnik vzel konja in kozaka, je princ Andrej, lačen in utrujen, prehiteval vozove, odpeljal, da bi našel vrhovnega poveljnika in njegov voz. Med potjo so ga dosegle najbolj zlovešče govorice o položaju vojske in pogled na naključno bežečo vojsko je te govorice potrdil.

Bistvo Eulerjeve metode je prehod od infinitezimalnih prirastkov v enačbi do končnih: (1)

tiste. pri zamenjavi odvoda s približno končno diferencialno relacijo:

kjer je h = ∆x - korak integracije.

Od tu (3)

Če upoštevamo približno rešitev v točki kot nove začetne pogoje, lahko uporabimo formulo (3), da poiščemo vrednost želene funkcije y(x) na naslednji točki. V splošnem primeru je Eulerjeva formula videti takole: (4)

Eulerjevo metodo lahko geometrično interpretiramo takole: funkcija y(x) nadomesti z lomljeno črto, ki predstavlja segmente tangent na to funkcijo v vozliščih (slika 5.1).

riž. 5.1. Eulerjeva metoda

Prednosti Eulerjeve metode so njena preprostost in jasnost, slabosti pa sorazmerno nizka natančnost (ima natančnost prvega reda) in sistematično kopičenje napak. Natančnost in stabilnost rešitve sta v veliki meri odvisni od velikosti koraka integracije. Za oceno napake in izbiro koraka lahko uporabimo Rungejevo formulo .

Runge-Kutta metode drugega reda

Runge-Kutta metode drugega reda temeljijo na razširitvi funkcije y(x) v Taylorjevo vrsto in upoštevanju njenih prvih treh členov (do vključno z drugim odvodom).

Metoda Runge-Kutta drugega reda s polnim korakom se izvaja po formuli:

Njegova geometrijska razlaga (slika 6.1.) je naslednja:

1. Približno izračunajte vrednost funkcije v točki x i +h z uporabo Eulerjeve formule in naklon integralne krivulje na tej točki

2. Poiščite povprečni naklon pri koraku h:

3. Z uporabo tega naklona je podana vrednost y i +1 po formuli (6.1.).


Formula metode Runge-Kutta drugega reda s polovičnim korakom izgleda kot

Obstajajo tudi druge eksplicitne metode v enem koraku. Tako so obravnavana Eulerjeva metoda (1.15) in njene spremenjene različice (1.22), (1.23) in (1.25), (1.26) posebni primeri metod prvega in drugega reda, ki pripadajo razredu Metode Runge-Kutta. Te metode za izračun vrednosti uporabljajo vrednost y i, kot tudi vrednosti funkcij f(x, y) za nekatere posebej izbrane vrednosti in u. Na njihovi podlagi je mogoče sestaviti diferenčne sheme različnih stopenj natančnosti.

Metoda Runge-Kutta četrtega reda se pogosto uporablja.

Zapišimo algoritem te metode v obliki

Tako ta metoda Runge-Kutta zahteva štirikratni izračun desne strani na vsakem koraku f(x, Y) enačba (1.9). Skupna napaka te metode je vrednost O( h 4).

Metoda Runge–Kutta (1.27) zahteva več izračunov v primerjavi z Eulerjevo metodo in njenimi modifikacijami, vendar se to obrestuje s povečano natančnostjo, ki omogoča izračune z velikimi koraki. Z drugimi besedami, za pridobitev rezultatov z enako natančnostjo pri Eulerjevi metodi bo potreben bistveno manjši korak kot pri metodi Runge–Kutta (1.27).

Opravimo primerjalno oceno obravnavanih metod Runge–Kutta na preprostem primeru, ki nam omogoča tudi natančno rešitev.

Primer. Rešite Cauchyjev problem

rešitev. Formuliran Cauchyjev problem je mogoče rešiti z metodami, znanimi iz predmeta višje matematike. Če izpustimo izračune, zapišemo končni izraz za natančno rešitev ob upoštevanju danega začetnega pogoja:

Zdaj pa rešimo ta problem numerično z uporabo zgoraj obravnavanih metod. Rezultati izračuna so podani v tabeli. 1.1. Analiza rešitve nam omogoča, da sledimo rasti napake z naraščanjem xi. Kot je razvidno iz tabele. 1.1 je najbolj natančna rešitev pridobljena z metodo Runge–Kutta četrtega reda. pri Xi = 1Napaka je manjša od 0,003 %. Za spremenjene Eulerjeve metode je napaka pri Xi= 1 je približno 1 %, za samo Eulerjevo metodo pa skoraj 18 %. Zato za velike X Eulerjeva metoda lahko vodi do še večjih napak, zato je v takih primerih bolje uporabiti numerične metode višjih stopenj natančnosti.

Tabela 1.1

Rezultati izračuna xi različne metode

S padajočim korakom h Lokalna napaka Eulerjeve metode se bo zmanjšala, povečalo pa se bo število vozlišč, kar bo negativno vplivalo na točnost rezultatov. Zato se Eulerjeva metoda uporablja relativno redko z majhnim številom računskih točk. Najpogosteje uporabljena enostopenjska metoda je metoda Runge–Kutta.

Obravnavane metode Runge–Kutta lahko uporabimo tudi za reševanje sistemov diferencialnih enačb. Pokažimo to na primeru sistema dveh enačb za želene funkcije oblike

Postavimo začetne pogoje v obliki

Po analogiji z (1.27) zapišemo formulo Runge–Kutta za sistem dveh enačb:

Tudi Cauchyjevi problemi za enačbe višjega reda so reducirani na reševanje sistemov enačb. Na primer, upoštevajte Cauchyjev problem za enačbo drugega reda

Predstavimo drugo neznano funkcijo. Nato se formulirani Cauchyjev problem nadomesti z naslednjim:

Na koncu še enkrat opozorimo na posebnost enostopenjskih metod, ki je, da je za pridobitev rešitve na vsakem novem računskem vozlišču dovolj, da imamo vrednost mrežne funkcije le na prejšnjem vozlišču. To vam omogoča, da neposredno začnete šteti, ko i = 0 na podlagi znanih začetnih vrednosti. Poleg tega ta funkcija omogoča spreminjanje koraka na kateri koli točki med procesom izračuna, kar omogoča konstrukcijo numeričnih algoritmov s samodejno izbiro koraka.

Recimo, da moramo najti rešitev diferencialne enačbe

l’ = f(t, l),

ki izpolnjuje začetni pogoj

y'(t 0) = l 0 .

Načelo, na katerem temelji metoda Runge–Kutta, je mogoče razložiti, tako kot načelo, na katerem temelji Eulerjeva metoda, z uporabo razširitve funkcije v Taylorjev niz

Da držim Taylorjevega tiča v vrsti n-th reda, je treba izračunati n-th derivat odvisne spremenljivke. Pri uporabi modificirane Eulerjeve metode je bilo za pridobitev drugega odvoda v obliki končne razlike dovolj poznati naklon krivulje na koncih obravnavanega intervala. Za izračun tretjega odvoda v obliki končne razlike je potrebno imeti vrednosti drugega odvoda na vsaj dveh točkah. Za to je potrebno dodatno določiti naklon krivulje na neki vmesni točki v intervalu h, torej med tn in n 1 t+ . Očitno je, da višji kot je vrstni red izračunanega derivata, več dodatnih točk bo treba izračunati znotraj intervala. Ker obstaja več načinov za lociranje notranjih točk in izbiro relativnih uteži za najdene odvode, metoda Runge–Kutta v bistvu združuje celotno družino metod za reševanje diferencialnih enačb.

Najpogostejši je metoda četrtega reda, ki vsebuje vse pogoje serije Taylor, vključno z h 4. Izračuni s to klasično metodo so narejeni po formulah:

Eulerjeva metoda in njena modifikacija sta v bistvu Runge-Kuttina metoda prvega oziroma drugega reda. Višja natančnost metode Runge–Kutta vam omogoča povečanje stopnje integracije h. Dovoljena napaka na koraku določa njegovo največjo vrednost. V paketih aplikacijske programske opreme se izbira korakov pogosto izvede samodejno. Da bi to naredili, se izračuni najprej izvedejo v korakih h, nato pa - v korakih h/2.

Za oceno napake izračunov s koraki h/2 lahko vzamete približno formulo

kjer je izračunana vrednost v korakih h/2; y n– izračunana vrednost v korakih h. primer: l’ = xy.

Pri izvajanju metod Runge-Kutta na računalniku se za vsako točko izvede dvojno štetje. Če vrednosti, dobljene v tem primeru, ustrezajo izrazu (5.4), potem za točko t n+1 korak se podvoji, drugače se razpolovi. Vendar je treba zapomniti, da je izraz (5.4) približen in v neugodnih pogojih lahko dobite popolnoma napačne rezultate, čeprav je v večini primerov stanje v redu.

PRIBLIŽNO REŠEVANJE NAVADNIH DIFERENCIALNIH ENAČB IN SISTEMOV.

Diferencialne enačbe so glavno matematično orodje za modeliranje in analizo različnih pojavov in procesov v znanosti in tehnologiji.

Metode za njihovo reševanje so razdeljene v dva razreda:

    analizne metode, pri katerih dobimo rešitev v obliki analiznih funkcij;

    numerične (približne) metode, kjer zahtevane integralne krivulje dobimo v obliki tabel njihovih numeričnih vrednosti.

Uporaba analitičnih metod omogoča preučevanje dobljenih rešitev z metodami matematične analize in oblikovanje ustreznih zaključkov o lastnostih modeliranega pojava ali procesa. Na žalost je mogoče takšne metode uporabiti za reševanje precej omejenega števila resničnih problemov. Numerične metode omogočajo pridobitev približne rešitve skoraj vsakega problema z določeno natančnostjo.

Reši diferencialno enačbo

numerična metoda pomeni, da za dano zaporedje argumentov
in številke
, brez definiranja analitične oblike funkcije
, poiščite vrednosti
, ki izpolnjuje pogoje:

Oglejmo si tri najpogostejše integracijske metode za reševanje praktičnih numeričnih problemov: Eulerjevo metodo, Runge-Kutta metodo in Adamsovo metodo.

§8.1. Eulerjeva metoda.

Ta metoda ima nizko natančnost in se uporablja predvsem za približne izračune. Vendar pa so ideje, na katerih temelji Eulerjeva metoda, izhodišča za številne druge numerične metode.

Naj bo podana diferencialna enačba z začetnim pogojem (Cauchyjev problem)

,
(7.2)

in so izpolnjeni pogoji za obstoj in edinstvenost rešitve.

Piccardov izrek(izrek o obstoju in edinstvenosti rešitve Cauchyjevega problema).

Če je v enačbi (7.1) funkcija
je zvezna v pravokotniku in izpolnjuje v
Lipschitzevo stanje

kje
je Lipschitzeva konstanta, potem obstaja edinstvena rešitev
,
, enačba (7.1), ki izpolnjuje pogoj
, Kje
,
V
.

Treba je najti rešitev
Cauchyjev problem (7.2) na intervalu
.

Izbira koraka - dovolj majhen, enak
, zgradimo sistem ekvidistančnih točk

IN enako integralno krivuljo
, ki poteka skozi točko
, Eulerjevo lomljeno premico približno nadomestimo z oglišči
(slika 7.1).

Polilinijska povezava
, sklenjena med in
, nagnjen proti osi
pod kotom . Tangens tega kota se izračuna po formuli:

.

Po pretvorbi dobimo Eulerjevo formulo:

Izračun vrednosti
se izvede z uporabo formule (7.3), kot sledi. Na podlagi danih začetnih pogojev
in verjeti
v izrazu (7.3) se izračuna vrednost

(7.4)

Nato določite vrednost argumenta po formuli
, z uporabo najdene vrednosti in vstavimo v formulo (7.3)
izračunajte naslednjo približno vrednost integralne krivulje
, Kako

(7.5)

Početi isto, ko
določi vse druge vrednosti , vključno z zadnjo vrednostjo, ki se ujema z vrednostjo argumenta
.

Tako, ko povežemo točke na koordinatni ravnini z ravnimi segmenti, dobimo lomljeno črto z oglišči v točkah.

Zapišimo razširitev
v seriji Taylor:

Ob upoštevanju formul (7.3) in (7.6) dobimo

Za izbiro koraka lahko uporabite razmerje (7.7). . Običajno korak so izbrani tako, da
, Kje - določena natančnost.

Eulerjevo metodo lahko uporabimo za reševanje sistemov diferencialnih enačb.

Naj bo podan sistem dveh enačb prvega reda

(7.8)

z začetnimi pogoji

Treba je najti rešitev za ta Cauchyjev problem. S podobnim razmišljanjem dobimo formule za izračun v obliki:

(7.9)

kje - korak integracije.

Pri izračunih se predpostavlja, da
in
. Kot rezultat uporabe računske sheme (7.9) dobimo približen prikaz integralnih krivulj
in
v obliki dveh Eulerjevih črt, zgrajenih iz dobljenih tabel
.

Prednost Eulerjeve metode je njena enostavnost in visoka hitrost iskanja rešitve. Slabosti Eulerjeve metode so nizka natančnost in sistematično kopičenje napak, saj pri izračunu vrednosti v vsakem naslednjem koraku začetni podatki niso točni in vsebujejo napake, odvisno od netočnosti prejšnjih izračunov.

§8.2. Metoda Runge-Kutta.

Ta metoda je ena najpogostejših numeričnih metod za integracijo navadnih diferencialnih enačb. V primerjavi z zgoraj opisano Eulerjevo metodo ima metoda Runge-Kutta večjo natančnost, vendar nizko hitrost iskanja rešitve, saj metoda spada v razred večstopenjskih metod.

, (7.10)

z začetnim stanjem

. (7.11)

Izberimo korak in zaradi kratkosti uvajamo zapis
,
, Kje
.

Poglejmo številke:

(7.12)

Po metodi Runge-Kutta zaporedne vrednosti želeno funkcijo se določijo s formulo:

. (7.13)

Napaka metode Runge-Kutta, podana s formulo (7.13), je na vsakem koraku vrednost reda (ob predpostavki, da
.

Formulo (7.13) imenujemo tudi formula Runge-Kutta četrtega reda natančnosti.

Poleg formule (7.13) obstajajo še druge formule tipa Runge-Kutta z drugimi stopnjami točnosti. Zlasti formula
- Runge-Kutta formula drugega reda natančnosti. Ta formula na vsakem koraku daje napako v velikosti .

Za določitev pravilne izbire koraka v praksi se dvojno preračunavanje običajno uporablja na vsaki stopnji dveh korakov. Glede na trenutno pravilno vrednost
, izračunaj
na dva načina: najprej korak za korakom , nato pa v korakih
. Če odstopanje med dobljenimi rezultati ne presega dovoljene napake, potem korak za to stopnjo je pravilno izbrana in vrednost, dobljena z njeno pomočjo, se lahko vzame kot
. V nasprotnem primeru se korak zmanjša za polovico. To računalniško vezje je enostavno programirati na računalniku.

Metoda Runge-Kutta se lahko uporablja tudi za reševanje sistemov diferencialnih enačb. Razmislite o Cauchyjevem problemu za sistem dveh diferencialnih enačb:

z začetnimi pogoji

Formule metode Runge-Kutta za ta sistem bodo imele obliko:

Metoda Runge-Kutta ima veliko natančnost in se kljub delovni intenzivnosti pogosto uporablja pri numeričnem reševanju diferencialnih enačb in sistemov. Pomembna prednost te metode je možnost uporabe spremenljivega koraka, ki omogoča upoštevanje lokalnih značilnosti želene funkcije.

§8.3. Adamsova metoda.

To metodo numerične integracije je razvil Adams leta 1855 na zahtevo slavnega angleškega topničarja Bashfortha, ki se je ukvarjal z balistiko. Ta metoda je bila pozneje pozabljena in jo je v začetku 20. stoletja ponovno odkril norveški matematik Störmer. Popularizacija Adamsove metode in njeno nadaljnje izboljšanje je povezano z imenom A.N. Krylova.

Naj bo podana diferencialna enačba prvega reda

, (7.14)

z začetnim stanjem

. (7.15)

Naj
- sistem enakomerno razporejenih vrednosti s koraki in
. To je očitno

. (7.16)

Zapišimo drugo Newtonovo interpolacijsko formulo do razlik četrtega reda:

kje
.

V formuli (7.17) funkcija zamenjati z izpeljanko , dobimo:

Ker
, nato zamenjamo (7.18) v (7.16), dobimo:

Po preobrazbah bomo imeli:

Formula (7.19) se imenuje Adamsova ekstrapolacijska formula.

Za začetek iterativnega procesa morate poznati začetne vrednosti
, tako imenovani začetni segment, ki ga na podlagi začetnega pogoja (7.15) določimo z neko numerično metodo (na primer metoda Runge-Kutta). Poznavanje pomenov
iz (7.14) ugotovijo
in ustvarite tabelo razlik:

Nadaljnji pomeni
želeno rešitev je mogoče izračunati korak za korakom z uporabo Adamsove formule (7.19) in po potrebi dopolniti tabelo razlik (7.20).

Za delo na računalniku se Adamsova formula uporablja v odprti obliki. Ker

potem imamo po vnosu podobnih pogojev:

(7.21)

V praksi korak je izbrana tako, da je količino mogoče zanemariti

.

Adamsova metoda se zlahka razširi na sisteme diferencialnih enačb. Napaka metode Adams je istega reda kot metoda Runge-Kutta.

Najnovejši materiali v razdelku:

Glavni junaki
Glavni junaki "Pasjega srca" Kaj je bilo presajeno v Sharikova

Veliki ruski pisatelj je splošno znan po svojih briljantnih in hkrati humornih delih. Njegove knjige so že dolgo razstavljene na citate ...

Južna zvezna univerza
Južna zvezna univerza

21. maja je Južna zvezna univerza gostila otvoritev “Vrelišče” - prostor za kolektivno delo. "Boiling Points" so ustvarjeni s podporo...

Pojav radioaktivnosti, ki ga je odkril Becquerel, nakazuje, da ... A Kako se imenuje kritična masa urana
Pojav radioaktivnosti, ki ga je odkril Becquerel, nakazuje, da ... A Kako se imenuje kritična masa urana

Test št. 5 Možnost 1 Pojav radioaktivnosti, ki ga je odkril Becquerel, kaže, da... A. Vse snovi so sestavljene iz nedeljivih...