5. SKAITINIS INTEGRAVIMAS IR DIFERENCIJAVIMAS Sprendžiant inžinerinius ir mokslo uždavinius, skaitinio integravimo ir diferencijavimo veiksmai atliekami gana dažnai. Pavyzdžiui, skaitinio integravimo prireikia tada, kai integralo neįmanoma apskaičiuoti analiziškai arba kai pointegralinė funkcija pateikta reikšmių lentele. Analizuojant inžinerinius duomenis, dažnai tenka skaičiuoti liestinės krypties koeficientą kuriame nors taške, todėl taikomi skaitinio diferencijavimo metodai. 5.1. Skaitinio integravimo metodai Aptarsime apibrėžtinių integralų apskaičiavimo uždavinį. Iš pradžių nagrinėsime paprastųjų apibrėžtinių integralų apskaičiavimo metodus, paskui juos taikysime apskaičiuodami kartotinius integralus. Uždavinio formulavimas. Duotas integralas ; čia ir b — integravimo rėžiai, o – pointegralinė funkcija, pateikta arba analiziškai, arba reikšmių lentele. Reikia apskaičiuoti R reikšmę tikslumu . Visų skaitinio integravimo metodų esmė yra ta, kad pointegralinė funkcija keičiama aproksimuojančiąja funkcija ir laikoma, jog . Paprastai parenkama tokia aproksimuojančioji funkcija , kad integralas būtų lengvai integruojamas analiziškai. Istoriškai plačiausiai naudojama aproksimuojančioji funkcija yra n-tosios eilės interpoliacinis polinomas, einantis per taškus , . Keičiant n reikšmę bei įvairiai parenkant taškus , gaunamos skirtingos skaitinio integravimo formulės, kurios vadinamos kvadratūrinėmis formulėmis. Kai pointegralinė funkcija keičiama interpoliaciniu polinomu, kvadratūrinės formulės skirstomos į dvi stambias klases: 1) Niutono ir Koteso kvadratūrines formules; 2) Gauso kvadratūrines formules. Pastaruoju metu pointegralinė funkcija dažnai keičiama splainu, paprastai kubiniu, ir gaunamos kvadratūrinės splainų formulės. Išvedant kvadratūrines formules, dažniausiai apskaičiuojamas ; čia — pointegralinę funkcijąaproksimuojanti funkcija. šio veiksmo rezultatas paprastai yra tiesinis darinys. Jei yra n-tosios eilės interpoliacinis polinomas, einantis per taškus , tai gauta kvadratūrinė formulė tiksliai integruoja visus polinomus iki n-tosios eilės imtinai. Todėl praktiškai labai patogu kvadratūrines formules išvesti žymaus amerikiečių matematiko R. V. Hemingo (R. W. Hamming) siūlomu metodu: ; čia — koeficientai, kurie apskaičiuojami taip, kad formulė tiksliai integruotų bazinių funkcijų sistemą. Šis metodas ypač patogus, kai pointegralinė funkcija yra pateikta reikšmių lentele. Prieš pradėdami nagrinėti konkrečias kvadratūrines formules, trumpai aptarsime jų taikymo strategiją. Literatūroje, aprašančioje skaičiavimo metodus, kvadratūrinės formulės labai dažnai pateikiamos su konkrečia jų taikymo strategija. Pavyzdžiui, norint apskaičiuoti Simpsono metodu, kvadratūrinė formulė išvedama taip. Pirmiausia intervalas taškais padalijamas į lygių dalių ir kiekvienoje jų taikoma Simpsono kvadratūrinė formulė , kurios , o . Tada visi rezultatai sumuojami ir gaunama apibendrinta Simpsono kvadratūrinė formulė: . Matome, kad ji susijusi su integravimo strategija: integravimo intervalas dalijamas į lygių dalių. Jei integravimo intervale yra sričių, kuriose pointegralinė funkcija kinta sparčiau nei kitose integravimo intervalo srityse, tai taikyti tokią strategiją būtų neprotinga. Šiuo atveju, norint apskaičiuoti integralą tam tikru tikslumu, reikėtų visame integravimo intervale imti tokį integravimo žingsnį h, kuris garantuotų reikiamą tikslumą srityse, kuriose funkcija kinta sparčiausiai, nepaisant to, kad srityse, kuriose funkcija kinta lėčiau, reikiamas tikslumas gali būti pasiektas esant didesniam integravimo žingsniui. Vadinasi, taikant šią strategiją, bus naudojama per daug pointegralinės funkcijos reikšmių, todėl padidės integravimo paklaidos. Paprastai norimą integravimo tikslumą stengiamasi pasiekti imant kuo mažiau pointegralinės funkcijos reikšmių. Todėl pastaruoju metu taikoma adaptyviojo integravimo strategija. (Apie ją kalbėsime vėliau.) Atsižvelgdami į šias pastabas, kvadratūrines formules toliau nagrinėsime nesiedami jų su minėtomis integravimo strategijomis, o integravimo strategijų algoritmus aptarsime atskirai. 5. 1.1. Niutono ir Koteso kvadratūrinės formulės Kaip jau minėta, Niutono ir Koteso kvadratūrinės formulės yra interpoliacinio tipo, kai pointegralinė funkcija keičiama interpoliaciniu polinomu, kurį nusako iš anksto fiksuoti vienodai nutolę vienas nuo kito taškai . Tarkime, kad reikia apskaičiuoti integralą . Tada n-tosios eilės Niutono ir Koteso kvadratūrinė formulė išvedama taip: 1) integravimo intervalas taškais dalijamas į n lygių dalių; čia , o ; 2) pointegralinė funkcija keičiama n-tosios eilės interpoliaciniu polinomu , einančiu per taškus , ; čia ; 3) . (1) Kaip buvo minėta, svorinius koeficientus patogu apskaičiuoti Hemingo metodu. (1) formulė turi tiksliai integruoti funkcijas . Tada, simboliu pažymėję (literatūroje paprastai vadinamas integravimo operatoriaus k-tuoju momentu), iš (1) formulės gausime lygčių sistemą (2) (2) sistemos matricos A determinantas yra Vandermondo determinantas, t. y. . Jis nelygus nuliui, jei . Vadinasi, (2) lygčių sistema yra suderinta ir turi vienintelį sprendinį. R. V. Hemingas siūlo šią sistemą spręsti atvirkštinės matricos metodu ir pateikia paprastą analizinį jos apskaičiavimo metodą. Jį čia ir aptarsime. Apibrėžkime polinomą . (3) Sudauginę ir sutraukę panašiuosius narius, gauname: . Kadangi , kai , ir , tai matricos i-toji eilutė bus . Padauginę i-tąją eilutę iš A j-tojo stulpelio, gauname: Vadinasi, . (4) Iš (4) formulės gausime koeficiento analizinę išraišką, priklausančią nuo taškų ir momentų . Ši formulė ypač patogi, kai taškai nesudaro aritmetinės progresijos, o taip dažnai būna tada, kai funkcija pateikta lentele. 1 pavyzdys. Tarkime, kad turime taškus . Hemingo metodu apskaičiuokime koeficientus , su kuriais formulė tiksliai integruoja polinomus iki antrosios eilės imtinai. Apskaičiuojame polinomų reikšmes, kai , ir momentus : , , ; , , . Pagal (4) formulę apskaičiuojame koeficientus : , , . Vadinasi, formulė , esant taškams –1, 1, 2, tiksliai integruoja polinomus iki antrosios eilės imtinai. Išvesdami Niutono ir Koteso kvadratūrines formules, pertvarkysime taip, kad svoriniai koeficientai priklausytų tik nuo n. Pavartoję keitinį , gauname: . Pažymėkime: . Tada (5) čia , o — kvadratūrinės formulės liekamasis narys. Apskaičiuoti koeficientus bus paprasčiau, jei (5) formulėje imsime ir . Tada iš (5) formulės gausime: . (6) Taikant (6) formulę, Hemingo metodu labai patogu apskaičiuoti koeficientus A ir . 2 pavyzdys. Apskaičiuokime Simpsono kvadratūrinės formulės koeficientus. Šiuo atveju ir taškai yra –1, 0, 1. Pirmiausia apskaičiuojame momentus : , , . Paskui randame polinomų , ir reikšmes: , , , , , . Tada pagal (4) formulę apskaičiuojame koeficientus : , , . Vadinasi, taikydami Simpsono metodą, turime tokius koeficientus A ir : , , , . Toliau pateikta Niutono ir Koteso kvadratūrinių formulių ir jų liekamųjų narių lentelė (48 lentelė). Joje , o — koeficientai. 48 lentelė. Niutono ir Koteso kvadratūrinių formulių bei jų liekamųjų narių lentelė integralui apskaičiuoti n A B0 B1 B2 B3 B4 B5 Kn 1 1/2 1 1 –(1/12)h3 f (2)(x) 2 1/3 1 4 1 –(1/90)h5 f (4) (x) 3 3/8 1 3 3 1 –(3/80)h5 f (4) (x) 4 2/45 7 32 12 32 7 –(8/945)h7 f (6) (x) 5 5/288 19 75 50 50 75 19 –(275/12096)h7 f (6) (x) 6 1/140 41 216 27 272 27 216 –(9/1400)h9 f (8) (x) 7 7/17280 751 3577 1323 2989 2989 1323 –(8183/518400)h9 f (8) (x) 8 4/14175 989 5888 –928 10496 –4540 10496 k8h11f (10)(x) 9 9/89600 2857 15741 1080 19344 5778 5778 k9h11f (10)(x) 10 5/299376 16067 106300 –48525 272400 –260550 427368 k10h13f (12)(x) Kai n = 1 formulė vadinama trapecijų, o kai n = 2 — Simpsono formule. Kokias išvadas galima padaryti iš 48 lentelės? 1. Niutono ir Koteso kvadratūrinių formulių koeficientai yra simetriški centro atžvilgiu, t. y. , ir jų suma lygi n. 2. Lyginės eilės Niutono ir Koteso kvadratūrinės formulės tiksliai integruoja visus polinomus iki (n + 1)-osios eilės imtinai, tuo tarpu nelyginės eilės kvadratūrinės formulės — tik iki n-tosios eilės imtinai. Ši lyginės eilės formulių savybė atsiranda dėl to, kad Niutono ir Koteso kvadratūrinėse formulėse naudojami vienodai nutolę vienas nuo kito taškai. Pavyzdžiui, Simpsono kvadratūrinė formulė tiksliai integruoja polinomus iki trečiosios eilės imtinai. Tačiau antrosios eilės kvadratūrinė formulė , kuri buvo apskaičiuota su taškais –1, 1, 2, tiksliai integruoja polinomus tik iki antrosios eilės imtinai. Vadinasi, praktiškai reikia naudoti lyginės eilės kvadratūrines formules. 3. Lyginės eilės Niutono ir Koteso kvadratūrinės formulės liekamasis narys yra proporcingas (čia k — lyginis skaičius) ir į proporcingumo koeficientą kaip daugiklis įeina (k + 2)-osios eilės pointegralinės funkcijos išvestinė. Nelyginės eilės kvadratūrinės formulės liekamasis narys proporcingas (čia l — nelyginis skaičius) ir proporcingumo koeficientas turi daugiklį, lygų pointegralinės funkcijos (l + 2)-ajai išvestinei. Reikia pabrėžti, kad integravimo intervale taikant kvadratūrinę formulę kelis kartus, suminio liekamojo nario h laipsnis yra vienetu mažesnis. Pavyzdžiui, Simpsono kvadratūrinę formulę integravimo intervale taikykime m kartų, t. y. intervalą dalykime į 2m dalių ir kiekviename intervale taikykime Simpsono formulę. Tada suminį liekamąjį narį apskaičiuosime pagal formulę . Kadangi praktiškai apskaičiuojant integralus, kvadratūrinės formulės integravimo intervale taikomos daug kartų, tai, norėdami įvertinti metodo paklaidą, h laipsnį imsime vienetu mažesnį nei 48 lentelėje. Metodo paklaidos įvertinimas. Kaip nustatyti metodo paklaidą? 48 lentelėje pateiktos liekamųjų narių išraiškos turi daugiau teorinę vertę, nes jos reikalauja įvertinti pointegralinės funkcijos aukštesnės eilės išvestines. Todėl praktikoje integravimo metodo paklaida apskaičiuojama Ričardsono ir Rombergo metodu. Tarkime, kad kvadratūrinės formulės metodo paklaida proporcinga ir proporcingumo koeficientas turi daugiklį, lygų pointegralinės funkcijos p-tosios eilės išvestinei. Simboliais ir pažymėkime integralo R reikšmes, kai naudojamas atitinkamai integravimo žingsnis h ir . Tada, laikydami, kad pointegralinės funkcijos p-tosios eilės išvestinė integravimo intervale yra pastovi, galime užrašyti: Iš šios lygčių sistemos apskaičiuojame : . (7) Remdamiesi (7) formule, gauname: . (8) Vadinasi, jei pointegralinės funkcijos p-tosios eilės išvestinė integravimo intervale yra pastovi, iš (7) formulės gaunama tiksli metodo paklaida, priešingu atveju įvertina integravimo metodo paklaidą. Taigi (8) kvadratūrinės formulės eilė yra vienetu didesnė nei kvadratūrinės formulės, pagal kurią apskaičiavome ir . Pavyzdžiui, Simpsono metodu galime tiksliai apskaičiuoti integralo, kurio pointegralinė funkcija yra 4-osios eilės polinomas, reikšmę. Išnagrinėkime pavyzdį, t. y. Simpsono metodu tiksliai apskaičiuokime . Tiksli šio integralo reikšmė lygi 4. Apskaičiuokime jo reikšmę pagal (8) formulę: , , . (4) formulė įgalina automatiškai gauti Niutono ir Koteso kvadratūrines formules. Toliau pateikta šių formulių iki 10-osios eilės imtinai koeficientų apskaičiavimo programa. Aukštesnės eilės kvadratūrinių formulių koeficientų apskaičiavimo galimybes riboja kompiuterio sveikųjų skaičių aritmetika. Norint rasti aukštesnės eilės kvadratūrinių formulių koeficientus, (4) formulės sumą reikia skaičiuoti dalimis, kad tarpiniai rezultatai būtų ne didesni už didžiausią sveikąjį skaičių, kurį kompiuteris gali įsiminti. Panagrinėjus tokius „triukus“, buvo gauti 11-tosios ir 12-tosios eilės Niutono ir Koteso kvadratūrinių formulių koeficientai. Kai , gauname tokius Niutono ir Koteso kvadratūrinės formulės koeficientus wi: i wi i wi 0 4777223/17418240 6 28404871/14515200 1 49450643/29030400 7 –17591827/14515200 2 –35608243/87091200 8 6166523/1935360 3 6166523/1935360 9 –35608243/87091200 4 –17591827/14515200 10 49450643/29030400 5 28404871/14515200 11 4777223/17418240 Kai , Niutono ir Koteso kvadratūrinės formulės koeficientai wi yra tokie: i wi i wi 0 1364651/5255250 7 14586048/875875 1 150048/79625 8 –3432753/350350 2 –1264644/875875 9 3572512/525525 3 3572512/525525 10 –1264644/875875 4 –3432753/350350 11 150048/79625 5 6 14586048/875875 –2090408/125125 12 1364651/5255250 Aptarkime kai kurias Niutono ir Koteso kvadratūrinių formulių koeficientų apskaičiavimo programos detales. Integravimo rėžiai nustatomi pagal formules čia n — kvadratūrinės formulės eilė. Tada momentai apskaičiuojami taip: kai n — lyginis skaičius, tai kai n — nelyginis skaičius, tai Kadangi taškai , tai reikšmė apskaičiuojama pagal formulę , o koeficientai — taip: c[0]:=1; x:= a; l:=0; for k:=0 to n do begin if ki then begin c[l+1]:=c[l]; for j:=l downto 1 do c[j]:=c[j-1]-c[j]*x; c[0]:=-c[0]*x; l:=l+1; end; x:=x+1 end; Niutono ir Koteso kvadratūrinių formulių koeficientų apskaičiavimo programa program nkkf; const NN=20; type mas=array[0..NN] of longint; var n,i : integer; ws,wv : mas; procedure dbd(a,b: longint; var bd: longint); { Procedūra dbd, naudodama Euklido algoritmą, apskaičiuoja sveikųjų skaičių a ir b didžiausiąjį bendrąjį daliklį. Formalūs parametrai: a,b – sveikieji skaičiai, bd – skaičių a ir b didžiausiasis bendrasis daliklis } var r,aa,bb : longint; begin aa:=a; bb:=b; r:=aa mod bb; while r0 do begin aa:=bb; bb:=r; r:=aa mod bb; end; bd:=bb; end; procedure nkf(n: integer; var ws,wv: mas); { Procedūra nkf Hemingo metodu apskaičiuoja n-tosios eilės Niutono ir Koteso kvadratūrinės formulės koeficientus. Formalūs parametrai: n – kvadratūrinės formulės eilė, ws[i] – i-tojo koeficiento skaitiklis, wv[i] – i-tojo koeficiento vardiklis } var i,j,k,l,np : integer; a,ak1,ap1,x,wi : longint; wss,wvv,bd,bmk : longint ; ms,mv,c,bs,bv : mas; begin if n > 10 then begin writeln('n turi būti ne didesnis nei 10'); exit end; { Momentų apskaičiavimas } if n mod 2 = 0 then begin a:= n div 2; ak1:= a; for k:=0 to n do begin if k mod 2 = 0 then begin ms[k]:=2*ak1; mv[k]:=k+1 end else begin ms[k]:=0; mv[k]:=1 end; ak1:=ak1*a; end end else begin a:= (n-1) div 2; ak1:= a; ap1:= a+1; for k:=0 to n do begin if k mod 2 = 0 then ms[k]:=ap1+ak1 else ms[k]:=ap1-ak1; mv[k]:=k+1; ak1:=ak1*a; ap1:=ap1*(a+1) end end; { Niutono ir Koteso kvadratūrinių formulių koeficientų apskaičiavimas } np:=n div 2; for i:=0 to np do begin { W[i](x[i]) reikšmės apskaičiavimas } wi:=1; for k:=0 to n do if ki then wi:=wi*(i-k); { Polinomo W[i](x) =(x-x[0])*(x-x[1])*...*(x-x[i-1])*(x-x[i+1])*...*(x-x[n]) =x**n+c[n-1]*x**(n-1)+...+c[1]*x+c[0] koeficientų c[i],i=n,n-1,...,0, apskaičiavimas } c[0]:=1; x:=-a; l:=0; for k:=0 to n do begin if ki then begin c[l+1]:=c[l]; for j:=l downto 1 do c[j]:=c[j-1]-c[j]*x; c[0]:=-c[0]*x; l:=l+1; end; x:=x+1 end; { Koeficientų w[0],w[1],...,w[n] apskaičiavimas } { Sandaugų c[k]*m[k], k=0,1,2,...,n, skaitiklių ir vardiklių apskaičiavimas } for k:=0 to n do begin bs[k]:=c[k]*ms[k]; bv[k]:=mv[k] end; { Trupmenų bs[0]/bv[0],bs[1]/bv[1],...,bs[n]/bv[n] sumavimas } wss:=0; wvv:=1; for k:=0 to n do begin { Trupmenos wss/wvv prastinimas } bdd(wss,wvv,bd); wss:=wss div bd; wvv:=wvv div bd; { Sumos wss/wvv+bs[k]/bv[k] apskaičiavimas } bdd(wvv,bv[k],bd); bmk:=wvv*(bv[k] div bd); wss:=wss*(bv[k] div bd)+bs[k]*(bmk div bv[k]); wvv:=bmk end; ws[i]:=wss; wv[i]:=wvv*wi; bdd(ws[i],wv[i],bd); ws[i]:=ws[i] div bd; wv[i]:=wv[i] div bd end; if n mod 2 =0 then for k:=1 to np do begin ws[np+k]:=ws[np-k]; wv[np+k]:=wv[np-k] end else for k:=0 to np do begin ws[np+k+1]:=ws[np-k]; wv[np+k+1]:=wv[np-k] end end; begin writeln('įveskite n'); read(n); writeln; writeln('n=',n); nkf(n,ws,wv); for i:=0 to n do begin writeln(ws[i],' ',wv[i]); writeln; end; end. 5.1.2. Integravimo strategijos Kaip jau buvo minėta, praktikoje tenka spręsti tokį integravimo uždavinį: apskaičiuoti tikslumu . Integruojant skaitiniu būdu, susiduriama su dviejų rūšių paklaidomis: 1) integravimo metodo paklaidomis; 2) apvalinimo paklaidomis. Kvadratūrinių formulių integravimo metodo paklaidas ir jų įvertinimą aptarėme 6.1.1 paragrafe. Apvalinimo paklaidos susijusios su pointegralinės funkcijos reikšmių apskaičiavimu. Kuo daugiau šios funkcijos reikšmių naudojama integruojant, tuo didesnė apvalinimo paklaida. Kaip matyti iš 48 lentelės, integravimo metodo paklaida yra proporcinga ; čia h — integravimo žingsnio ilgis, o p — teigiamasis sveikasis skaičius. Tuo tarpu literatūroje nurodyta, kad apvalinimo paklaida proporcinga . Tai reiškia, kad, mažinant integravimo žingsnį (didinant pointegralinės funkcijos reikšmių skaičių), metodo paklaida mažėja, o apvalinimo paklaida didėja. Aišku, kad kiekvienai kvadratūrinei formulei ir pointegralinei funkcijai galima parinkti tokią optimalią integravimo žingsnio reikšmę, su kuria metodo ir apvalinimo paklaidos yra tos pačios eilės. Vadinasi, kai integravimo žingsnio ilgis pasidaro mažesnis už šią reikšmę, apvalinimo paklaida viršija metodo paklaidą ir toliau mažinti integravimo žingsnį nėra prasmės. Metodo, kuriuo būtų galima iš anksto apskaičiuoti konkrečios kvadratūrinės formulės ir pointegralinės funkcijos optimalų integravimo žingsnį, nėra. Todėl iš šio samprotavimo galime daryti išvadą, kad reikia rinktis tokią integravimo strategiją, kuri leistų norimą integravimo tikslumą pasiekti esant mažiausiam pointegralinės funkcijos reikšmių skaičiui. Iš pradžių aptarsime ne itin racionalią, tačiau dar plačiai taikomą strategiją, kai visame integravimo intervale naudojamas to paties ilgio integravimo žingsnis, paskui — kur kas racionalesnę adaptyviojo integravimo strategiją. Vienodo žingsnio visame integravimo intervale strategija. Šią strategiją nagrinėsime imdami 4-osios eilės Niutono ir Koteso kvadratūrinę formulę. Pirmiausia sudarysime algoritmą apskaičiuoti, kai ši formulė integravimo intervale taikoma kartų, tada, juo remdamiesi, sukonstruosime algoritmą apskaičiuoti tikslumu eps. Algoritmas apskaičiuoti, kai 4-osios eilės Niutono ir Koteso formulė taikoma k kartų procedure nk4 (k:integer; a,b:real; var R:real; var sk:integer); { Formalūs parametrai: k (k=1) — skaičius, parodantis, kiek kartų taikoma kvadratūrinė formulė, a,b — integravimo rėžiai, R – integralo reikšmė, sk – integruojant apskaičiuotų pointegralinės funkcijos reikšmių skaičius} begin R:=0; x:=a; h:=(b-a)/(4*k); y0:=f(x); sk:=1; for i:=1 to k do begin y4:=f(x+4*h); R:=R+7*y0+32*f(x+h)+12*f(x+2*h)+32*f(x+3*h)+7*y4; y0:=y4; x:=x+4*h; sk:=sk+4; end; R:=2*h*R/45; end; Algoritmas integralui apskaičiuoti tikslumu eps Duota: a, b — integravimo rėžiai, eps — integravimo tikslumas, max — didžiausias leistinas pointegralinės funkcijos reikšmių skaičius. Reikia rasti: apytikslę reikšmę R, integralo R santykinę paklaidą err. begin p:=6; k:=1; z:=1+eps; {Metodo paklaida} { Simboliai Rh ir Rh2 žymi atitinkamai Rh ir Rh/2 } nk4(k,a,b,Rh,sk); { Rh apskaičiavimas } s:=sk; { Integruojant apskaičiuotų pointegralinės funkcijos reikšmių skaičius } while (abs(z)>eps) and (s 0), rr – santykinės paklaidos dydis (rr > 0), r – integralo reikšmė, er – tikrosios skaičiavimo paklaidos įvertinimas, nn – integruojant panaudotų funkcijos reikšmių kiekis, flag – patikimumo indikatorius: dydžio flag sveikoji dalis lygi skaičiui intervalų, kuriuose nebuvo pasiektas norimas tikslumas; dydžio flag trupmeninė dalis lygi pagrindinio intervalo daliai, kuriai esant buvo pasiekta ribinė nn reikšmė ( nf= nmax-8*(levmax-levout+2**(levout+1)). Pirmasis etapas Pradinių reikšmių suteikimas kintamiesiems, nepriklausantiems nuo integravimo intervalo } begin levmax:=30; levout:=6; nmax:=5000; pw:=1; for i:=1 to levout+1 do pw:=pw*2; nf:=nmax-8*(levmax-levout+pw); { Jei nn pasiekia nf reikšmę, tai pointegralinė funkcija nurodytuose integravimo rėžiuose gali buti trūki } { 8-osios eilės Niutono ir Koteso kvadratūrinės formulės koeficientai } c:=14175.; w0:=3956./c; w1:=23552./c; w2:=-3712./c; w3:=41984./c; w4:=-18160./c; { Pradinių reikšmių suteikimas kintamiesiems } flag:=0.; r:=0; cor11:=0.; er:=0.; nn:=0; lev:=0; nim:=1; poz:=1; if a tolerr) and (lev = levmax ) then flag:=flag+1; { Funkcijos reikšmių skaičius artimas ribiniam } if ( nn > nf ) then begin nf:=2*nf; levmax:=levout; flag:=flag+(b-x[0])/(b-a) end; { Tikslumo sąlyga i-tajame intervale tenkinama } r:=r+qnow; er:=er+esterr; cor11:=cor11+qdiff/1023.; { Rasti kitą intervalą } while ( (nim mod 2) 0 ) do begin nim:=nim div 2; lev:=lev-1 end; nim:=nim+1; if (lev 0. ) then begin temp:=abs(r)+er; while ( temp = abs(r) ) do begin er:=er*2.; temp:=abs(r)+er end end end; 5.1.3. Gauso kvadratūrinės formulės Niutono ir Koteso kvadratūrinėse formulėse taškai , apibrėžiantys pointegralinę funkciją aproksimuojantį polinomą, yra nutolę vienodai vienas nuo kito ir iš anksto fiksuoti, o kvadratūrinė formulė turi išraišką . (9) Šioje formulėje ir toliau šiame paragrafe patogiau nagrinėti kvadratūrines formules, kai taškų indeksas i kinta nuo 1 iki n. Atsisakykime iš anksto fiksuotų taškų ir uždavinį formuluokime taip: reikia rasti tokius taškus ir svorinius koeficientus , su kuriais (9) formulė tiksliai integruotų kiek galima aukštesnės eilės polinomus. Kadangi turime 2n laisvai kintamų parametrų, tai galime reikalauti, kad (9) formulė tiksliai integruotų visus polinomus iki (2n – 1)-osios eilės imtinai. Nagrinėjamo uždavinio nesusiaurinsime, vietoj integravimo rėžių a ir b paėmę rėžius ir 1, taigi galime nagrinėti formulę . (10) Integralą nesunku paversti integralu , taikant keitinį . (11) Tada . (12) Pirmiausia reikia atsakyti į klausimą „Ar šis uždavinys turi sprendinį ir ar jis yra vienintelis?“ Tam tikslui remiamės toliau pateiktomis teoremomis. 1 teorema. (10) kvadratūrinė formulė tiksliai integruoja visus polinomus iki (2n – 1)-osios eilės imtinai tada ir tik tada, kai: 1) daugianaris yra ortogonalus bet kuriam polinomui , kurio laipsnis , t. y. ; 2) ta formulė yra interpoliacinio tipo kvadratūrinė formulė, t. y. kai . 2 teorema. Egzistuoja vienintelis polinomas , tenkinantis 1 teoremos pirmąją sąlygą. 3 teorema. Jei yra n-tojo laipsnio polinomas, tenkinantis 1 teoremos pirmąją sąlygą, tai intervale jis turi n tikrųjų šaknų. Iš šių teoremų darome išvadą, kad (10) Gauso kvadratūrinė formulė egzistuoja ir yra vienintelė. Polinomas, tenkinantis 1 teoremos pirmąją sąlygą, yra Ležandro polinomas , kurį patogu reikšti rekurenčiomis formulėmis: , , (13) . Kaip randami Gauso kvadratūrinės formulės taškai ir svoriniai koeficientai ? Šiuos parametrus galima apskaičiuoti dviem metodais. Pirmasis metodas. Taškai sutampa su Ležandro polinomo šaknimis, o svoriniai koeficientai apskaičiuojami pagal formulę . (14) Ši formulė išvedama remiantis 1 teoremos antrąja sąlyga, Kristofelio ir Darbu tapatybe bei sąlyga, kad yra Ležandro polinomas. 1 pavyzdys. Apskaičiuokime Gauso kvadratūrinės formulės taškus bei svorinius koeficientus, kai . Pirmiausia randame 3-iosios eilės Ležandro polinomą: ; ; , . Vadinasi, ieškomieji taškai yra tokie: , , . Tada ; . Antrasis metodas (Hemingo metodas). šis metodas yra bendresnis ir remiasi tuo, kad (10) formulė turi tiksliai integruoti visus polinomus iki (2n – 1)-osios eilės imtinai. Tada iš (10) formulės gauname lygčių sistemą (15) čia . R. V. Hemingas pasiūlė originalų šios sistemos sprendimo metodą. Tarkime, kad žinome taškus , tenkinančius (15) sistemą. Apibrėžkime polinomą ; čia . Aišku, kad , . Padauginkime (15) sistemos pirmąją lygtį iš , antrąją — iš ir t. t., (n + 1)-ąją — iš ir šias lygtis sudėkime. Atsižvelgdami į tai, kad , gauname: . Procesą pakartokime pradėdami antrąja (15) sistemos lygtimi. Gausime: . Tai pakartoję n kartų, turėsime tiesinių lygčių sistemą . (16) Jeigu jos determinantas nelygus nuliui, tai, ją išsprendę, gausime polinomą, kurio šaknys yra Gauso kvadratūrinės formulės taškai. Turėdami juos ir paėmę (15) sistemos n pirmųjų lygčių, iš gautos tiesinių lygčių sistemos apskaičiuosime svorinius koeficientus . Kai (16) lygčių sistemos determinantas lygus nuliui, galimas vienas iš dviejų atvejų: arba (16) lygčių sistema yra nesuderinta ir kartu nėra tokios kvadratūrinės formulės, arba matricos rangas žemesnis už n. Šiuo atveju prie (16) lygčių sistemos prijungiamos papildomos lygtys, kurios gaunamos iš (15) sistemos, polinomo laipsnį imant aukštesnį nei . Tai reiškia, kad gaunama tikslesnė kvadratūrinė formulė. 2 pavyzdys. Apskaičiuokime Gauso kvadratūrinę formulę, kai . Pirmiausia randame momentus: ; ; ; ; ; . Apskritai Tada gauname (16) lygčių sistemą arba Jos sprendinys yra toks: , , vadinasi, daugianaris . Šio polinomo šaknys, o kartu Gauso kvadratūrinės formulės taškai yra: , ir . Svorinius koeficientus apskaičiuojame iš sistemos Žinodami, kad , ir , gauname tokį šios sistemos sprendinį: , . Antrasis metodas yra bendresnis ir gali būti taikomas išvedant kvadratūrines formules, kurių koeficientai tenkina papildomas tiesines sąlygas. Pavyzdžiui, jei pareikalautume, kad koeficientai tenkintų sąlygą , gautume Čebyšovo kvadratūrines formules, kurios egzistuoja tik tada, kai . Antrasis metodas tinka ir uždaro tipo Gauso kvadratūrinėms formulėms gauti. Jei pareikalautume, kad integravimo intervalo kraštiniai taškai priklausytų taškams xi, o kiti taškai xi ir visi svoriniai koeficientai būtų apskaičiuojami taip, kad kvadratūrinė formulė tiksliai integruotų visus polinomus iki (2n – 3)-iosios eilės imtinai, tai gautume Lobato ir Rado kvadratūrines formules. R. Lobato (R. Lobatto) jas nagrinėjo 1852 metais, o R. Rado (R. Radau) — 1880 metais. Pavyzdžiui, apskaičiuokime Lobato ir Rado kvadratūrinės formulės koeficientus, kai , o integravimo intervalas yra . Šiuo atveju kvadratūrinę formulę galime užrašyti taip: . Tada (15) lygčių sistema įgis išraišką Elementariai pertvarkę šią sistemą, eliminuokime iš jos ir . Gausime: Remdamiesi šia sistema, apskaičiuosime (16) lygčių sistemos koeficientus: Įrašę į ją momentų reikšmes ir išsprendę, gausime tokias ir reikšmes: , o . Tada Iš čia , o . Taigi kai , o integravimo intervalas yra , Lobato ir Rado kvadratūrinės formulės mazginiai taškai yra tokie: , , ir . Turėdami šiuos taškus, galime nesunkiai apskaičiuoti svorinius koeficientus: , , . Analogiškai ieškoma Lobato ir Rado kvadratūrinių formulių koeficientų, kai integravimo intervalas yra . Kadangi tos formulės taikomos konstruojant neišreikštinius Rungės ir Kutos metodus, skirtus standžioms diferencialinėms lygtims spręsti, išnagrinėkime Lobato ir Rado kvadratūrinės formulės išvedimą, kai , o integravimo intervalas yra . Aišku, kad , o momentų reikšmės yra , , , , ir . Tada (15) lygčių sistemą galima užrašyti taip: o (16) sistemą — taip: Išsprendę pastarąją sistemą, gauname: , . Apskaičiavę polinomo šaknis, randame taškų ir reikšmes: , . Pasinaudodami jomis, apskaičiuojame svorinius koeficientus: , . Pastaba [HNW87]. Jei integravimo intervalas yra , tai Lobato ir Rado kvadratūrinės formulės taškai xi yra (n – 1)-osios eilės Ležandro polinomo išvestinės šaknys arba (n – 2)-osios eilės Jakobio polinomo šaknys. Ši pastaba rodo, kad Lobato ir Rado kvadratūrinių formulių parametrai xi ir wi intervale gali būti apskaičiuojami paprasčiau nei intervale . Vadinasi, skaičiavimą supaprastinsime, jei parametrus pirmiausia apskaičiuosime intervale , o paskui juos redukuosime į intervalą . Modifikuotas Lobato ir Rado kvadratūrinių formulių išvedimo metodas 1. Remdamiesi (13) formule, randame (n – 1)-osios eilės Ležandro polinomą . 2. Pagal formulę apskaičiuojame koeficientus. 3. Randame taškus xi. Kadangi intervale taškai xi yra simetriški koordinačių pradžios atžvilgiu, o simetriškus taškus xi atitinkantys koeficientai wi yra lygūs, tai apskaičiuojame tik neneigiamus xi bei juos atitinkančius koeficientus wi. Tam tikslui randame neneigiamas šaknis ; , kai n — lyginis skaičius, ir , kai n — nelyginis skaičius. visos šaknys yra realiosios ir išsidėsčiusios intervale . Jų apskaičiavimas analogiškas polinomo šaknų apskaičiavimui, kuris nagrinėjamas toliau pateiktoje Gauso kvadratūrinės formulės dalijimo taškų ir svorinių koeficientų apskaičiavimo procedūroje kgaus. Tada neneigiami taškai xi yra , , …, , . n1+1 pažymėkime n2, t. y. n2 = n1 + 1. 4. Randame koeficientus wi. Neneigiamus taškus xi atitinkančius koeficientus wi apskaičiuojame spręsdami n2 tiesinių lygčių sistemą, kurią sudarome imdami iš viršaus (15) sistemos kas antros lygties pusę narių (dešiniąją pusę) ir prilygindami juos laisvojo nario pusei. Formaliai sistemos dw = f formavimas aprašomas taip: { Sistemos dw = f formavimas ir koeficientų w[i] apskaičiavimas} begin for j:=1 to n2 do s[j]:=1; k:=0; for i:=1 to n2 do begin for j:=1 to n2 do d[i,j]:=s[j]; f[i]:=m[k]/2; k:=k+2; for j:=1 to n2 do s[j]:=s[j]*x[j]*x[j]; end; gausas(n2,d,f,w); {Sistemos d*w=f sprendimas Gauso metodu} if (n mod 2) 0 then w[1]:=w[1]*2; end; Sistemos dw = f sprendinys sutaps su koeficientais wi, atitinkančiais neneigiamus xi. Kai n yra nelyginis, tai x1 = 0 ir šis taškas simetriškas jo paties atžvilgiu. Todėl sistemos sprendinyje apskaičiuota w1 reikšmė yra dvigubai mažesnė už tikrąją reikšmę. Vadinasi, kai n yra nelyginis, tai w1 : = 2w1. 5. Remdamiesi (12) formule, parametrus xi ir wi redukuojame į intervalą . Iš šios formulės matyti, kad koeficientai turi būti padauginti iš daugiklio , t. y. , o taškai xi apskaičiuojami pagal formulę . Turėdami neneigiamus taškus , , …, bei juos atitinkančius koeficientus , , …, intervale , visus taškus xi ir juos atitinkančius koeficientus wi intervale apskaičiuojame pagal toliau pateiktą algoritmą. { Dalijimo taškų ir svorinių koeficientų apskaičiavimas intervale [a;b] } begin for i:=1 to n2 do begin tx[i]:=x[i]; tw[i]:=w[i]; end; for i:=n2 downto 1 do begin if (n mod 2) = 0 then k:=n2+i else k:=n2+i-1; x[k]:=((bb-aa)*tx[i]+(bb+aa))/2; w[k]:=(bb-aa)*tw[i]/2; x[n2-i+1]:=(-(bb-aa)*tx[i]+(bb+aa))/2; w[n2-i+1]:=w[k]; end; end; Toliau pateikta procedūra Gauso kvadratūrinės formulės koeficientams ir taškams apskaičiuoti pirmuoju metodu. 49 ir 50 lentelėje nurodyti pagal šią programą apskaičiuoti Gauso kvadratūrinės formulės taškai ir svoriniai koeficientai penkiolikos ženklų tikslumu, kai ir . Kaip nurodyta literatūroje [KvSa74], Gauso kvadratūrinės formulės liekamasis narys integralui apskaičiuojamas pagal formulę . (17) Šią formulę praktiškai taikyti nepatogu, nes reikia įvertinti pointegralinės funkcijos 2n-tosios eilės išvestinę. Gauso kvadratūrinės formulės liekamąjį narį, kaip ir Niutono bei Koteso kvadratūrinių formulių liekamuosius narius, galima rasti Ričardsono ir Rombergo metodu. 49 lentelė. Gauso kvadratūrinė formulė, kai n = 10 x w 0,148874338981631 0,295524224714753 0,433395394129247 0,269266719309996 0,679409568299024 0,219086362515982 0,865063366688985 0,149451349150581 0,973906528517172 0,066671344308688 50 lentelė. Gauso kvadratūrinė formulė, kai n = 20 x w 0,076526521133497 0,152753387130726 0,227785851141645 0,149172986472604 0,373706088715420 0,142096109318382 0,510867001950827 0,131688638449177 0,636053680726515 0,118194531961518 0,746331906460151 0,101930119817241 0,839116971822219 0,083276741576706 0,912234428251326 0,062672048334107 0,963971927277913 0,040601429800388 0,993128599185095 0,017614007139152 Tarkime, kad pointegralinės funkcijos 2n-tosios eilės išvestinė integravimo intervale yra pastovi. Tada galima parašyti (18) čia — integralo reikšmė, gauta pritaikius n-tosios eilės Gauso kvadratūrinę formulę intervale ; — reikšmė, gauta pritaikius n-tosios eilės Gauso kvadratūrinę formulę kairiajame ir dešiniajame intervalo pusintervalyje. Iš (18) lygčių sistemos gauname: , taigi formulė (19) tiksliai integruoja visus polinomus iki 2n-tosios eilės imtinai. Jei pointegralinės funkcijos 2n-tosios eilės išvestinė integravimo intervale nėra pastovi, tai išraiška (20) įvertina n-tosios eilės Gauso kvadratūrinės formulės liekamąjį narį. 3 pavyzdys. Remdamiesi 2-osios eilės Gauso kvadratūrine formule, pagal (19) formulę tiksliai apskaičiuokime integralo reikšmę. Tiksli šio integralo reikšmė lygi 64/5. 2-osios eilės Gauso kvadratūrinės formulės taškai yra , , o svoriniai koeficientai . Tada . . . Vadinasi, . (19) ir (20) formulė leidžia Gauso kvadratūrinei formulei taikyti adaptyviojo integravimo strategiją. Tai daryti net paprasčiau nei naudojant Niutono ir Koteso kvadratūrines formules, nes nereikia saugoti dešiniojo pusintervalio taškų ir pointegralinės funkcijos reikšmių juose. Po Gauso kvadratūrinių formulių apskaičiavimo programos eina procedūra, realizuojanti 10-osios eilės Gauso kvadratūrinę formulę, kai taikoma adaptyviojo integravimo strategija. 51 lentelėje pateiktos šia programa gautos integralo , reiškiančio dviejų tankio funkcijų sąsūką, reikšmės, apskaičiuotos tikslumu, kai , ir . Šios reikšmės yra lyginamos su tiksliomis integralo reikšmėmis, kurios apskaičiuojamos pagal formulę . 51 lentelė. Dviejų tankio funkcijų sąsūkos rezultatai s n r rt 2 390 0,07677648 0,07677648 3 310 0,04986779 0,04986779 4 310 0,03568248 0,03568248 5 310 0,02714458 0,02714458 6 310 0,02154086 0,02154086 7 310 0,01763092 0,01763092 8 310 0,01477564 0,01477564 (Žr. Navickas Z. On the algebraic properties of dencities of probabilities distribution // VI tarptautinės tikimybių teorijos ir matematinės statistikos konferencijos medžiaga. – V., 1993.) Lentelės stulpelis n rodo, kiek pointegralinės funkcijos reikšmių buvo panaudota integralo reikšmei apskaičiuoti nurodytu tikslumu. Stulpeliuose r ir rt nurodytos atitinkamai skaitiniu būdu apskaičiuotos ir tikslios integralo reikšmės. Gauso kvadratūrinės formulės koeficientų ir dalijimo taškų apskaičiavimo programa program kfgaus; const nn=20; type mas=array [0..nn] of extended; var n,m,i : integer; eps : extended; x,w : mas; f : text; procedure lagpol(n:integer; var p:mas); { n-tosios eilės Ležandro polinomo apskaičiavimo procedūra. Formalūs parametrai: n – polinomo eilė, p[0..n] – polinomo koeficientų masyvas; koeficientai surašyti pradedant laisvuoju nariu } var i,m,k : integer; sm : extended; p1,p2 : mas; begin for i:=0 to n do begin p1[i]:=0; p2[i]:=0; p[i]:=0; end; if n = 1 then p[1]:=1 else begin p1[0]:=1; p2[1]:=1; for m:=2 to n do begin sm:=m; p[0]:=p1[0]*(1-sm)/sm; for k:=1 to m do p[k]:=((2*sm-1)*p2[k-1]-(sm-1)*p1[k])/sm; for i:=0 to m do begin p1[i]:=p2[i]; p2[i]:=p[i]; end; end; end; end; procedure h(n:integer; a:mas; x:extended; var b,c:extended); { n-tosios eilės polinomo ir jo išvestinės apskaičiavimo pagal Hornerio schemą procedūra. Formalūs parametrai: n – polinomo eilė, a[0..n] – polinomo koeficientų masyvas; koeficientai surašyti pradedant laisvuoju nariu, x – argumento reikšmė, b – polinomo reikšmė taške x, c – polinomo išvestinės reikšmė taške x } var i : integer; begin b:=0; c:=0; for i:=n downto 1 do begin b:=b*x+a[i]; c:=c*x+b; end; b:=b*x+a[0]; end; procedure koef(n:integer; x:extended; p:mas; var a:extended); { Gauso kvadratūrinės formulės svorinių koeficientų apskaičiavimo procedūra. Formalūs parametrai: n – svorinių koeficientų skaičius, x – dalijimo taško abscisė, p[0..n] – Ležandro n-tosios eilės polinomo koeficientai, a – svorinio koeficiento reikšmė } var b,c : extended; begin h(n,p,x,b,c); a:=2./((1.-x*x)*c*c); end; procedure lie(a1,b1:extended; n:integer; a:mas; eps:extended; var s:extended); { Polinomo šaknies tikslinimo liestinių metodu procedūra. Formalūs parametrai: (a1,b1) – šaknies izoliacijos intervalas, n – polinomo eilė, a[0..n] – polinomo koeficientų masyvas, eps – šaknies apskaičiavimo tikslumas, s – šaknies reikšmė } var z,sant,c,xn,xn1 : extended; ba,bb,c1,bc,b : extended; begin h(n,a,a1,ba,c1); h(n,a,b1,bb,c1); sant:=-ba/bb; c:=(a1+sant*b1)/(1.+sant); h(n,a,c,bc,c1); if ba*bc eps do begin h(n,a,xn,b,c); xn1:=xn-b/c; z:=abs((xn1-xn)/xn1); xn:=xn1; end; s:=xn1; end; procedure kgaus(n:integer; eps:extended; var x,w:mas; var i:integer); { Gauso kvadratūrinės formulės dalijimo taškų ir svorinių koeficientų apskaičiavimo procedūra. Formalūs parametrai: n – dalijimo taškų skaičius, eps – tikslumas, x[1..i] – dalijimo taškai, w[1..i] – svoriniai koeficientai } var n2 : integer; n5,dx,xx,b1,b2,c,a1 : extended; t : boolean; p : mas; begin n5:=n*5; dx:=1./n5; lagpol(n,p); if ((n mod 2) 0) then begin x[1]:=0; koef(n,x[1],p,w[1]); i:=1; n2:=(n+1) div 2; xx:=dx; end else begin i:=0; n2:=n div 2; xx:=0; end; while (xx 0) – absoliučiosios paklaidos dydis, rr (rr > 0) – santykinės paklaidos dydis, r – integralo reikšmė, er – tikrosios skaičiavimo paklaidos įvertinimas, nn – integruojant panaudotų funkcijos reikšmių skaičius, flag – patikimumo indikatorius: dydžio flag sveikoji dalis lygi skaičiui intervalų, kuriuose nebuvo pasiektas norimas tikslumas; dydžio flag trupmeninė dalis lygi pagrindinio intervalo daliai, kuriai esant buvo pasiekta ribinė nn reikšmė (nf= nmax-20*(levmax-levout+2**(levout+1)). Pirmasis etapas Pradinių reikšmių suteikimas kintamiesiems, nepriklausantiems nuo integravimo intervalo } begin levmax:=30; levout:=6; nmax:=5000; pw:=1; for i:=1 to levout+1 do pw:=pw*2; nf:=nmax-20*(levmax-levout+pw); { Jei nn pasiekia nf reikšmę, tai pointegralinė funkcija nurodytuose integravimo rėžiuose gali būti trūki } { Pradinių reikšmių suteikimas kintamiesiems } flag:=0.; r:=0; cor20:=0.; er:=0.; nn:=0; lev:=0; nim:=1; poz:=1; if a tolerr) and (lev = levmax ) then flag:=flag+1; { Funkcijos reikšmių skaičius artimas ribiniam } if ( nn > nf ) then begin nf:=2*nf; levmax:=levout; flag:=flag+(b-x1)/(b-a) end; { Tikslumo salyga i-tajame intervale tenkinama } r:=r+qnow; er:=er+esterr; cor20:=cor20+qdiff/(1024.*1024.-1); { Rasti kitą intervalą } while ( (nim mod 2) 0 ) do begin nim:=nim div 2; lev:=lev-1 end; nim:=nim+1; if (lev 0. ) then begin temp:=abs(r)+er; while ( temp = abs(r) ) do begin er:=er*2.; temp:=abs(r)+er end end end; 5.2. Skaitinis diferencijavimas Išnagrinėkime du funkcijos išvestinės apskaičiavimo uždavinio aspektus. 1. Funkcija pateikta reikšmių lentele . Dažniausiai tai būna eksperimento rezultatai ir reikšmės turi paklaidą. Skirtingai nei integravimas, šios paklaidos labai iškreipia diferencijavimo rezultatus. 2. Žinoma funkcijos analizinė išraiška. Funkcijos, pateiktos reikšmių lentele, diferencijavimas. Tarkime, kad funkcija pateikta reikšmių lentele ; čia . Norime apskaičiuoti tos funkcijos išvestinę taške . Galimi du sprendimo būdai. Pirmasis būdas. 1. Remdamiesi lentele , funkciją aproksimuojame funkcija . Dažniausiai funkcija yra arba polinomas, arba splainas. 2. Laikome, kad , . Tačiau reikia pabrėžti, kad nors , kai , bet gali labai skirtis nuo . Antrasis būdas. Šis būdas gali būti taikomas, kai reikia apskaičiuoti išvestines lentelės taškuose ir lentelės žingsnis yra pastovus bei lygus h. Tada taikomi dešinieji, centriniai ir kairieji skirtumai. 56, 57 ir 58 lentelėje pateiktos išvestinių bei jų liekamųjų narių (skliausteliuose) formulės, kai naudojami atitinkamai dešinieji, centriniai ir kairieji skirtumai. Šios formulės išvedamos remiantis funkcijos Teiloro eilute. Pavyzdžiui, pasinaudodami trečiaisiais dešiniaisiais skirtumais, išveskime formulę apskaičiuoti: ; ; . Iš paskutinių dviejų lygčių eliminavę , gauname: . Funkcijos diferencijavimas, kai yra žinoma jos analizinė išraiška. Tarkime, kad funkcija yra diferencijuotina intervale ir žinoma analizinė jos išraiška. Norint skaitiniu būdu apskaičiuoti tos funkcijos išvestinę taške , patogiausia taikyti Ričardsono ir Rombergo metodą. Diferencijavimas intervalo centre. Tarkime, kad Ričardsono ir Rombergo metodu reikia apskaičiuoti išvestinę taške x, be to, . Tam tikslui galime taikyti centrinius skirtumus. Šio metodo esmę paaiškinsime imdami du argumento pokyčius: ir ( ir ). Tada pažymėję ir laikydami, kad yra pastovi, galime užrašyti: . Analogiškai . Iš šių lygčių galime apskaičiuoti konstantą C: . 56 lentelė. Išvestinės skaičiavimas naudojant dešiniuosius skirtumus Išvesti-nės Antrieji skirtumai Tretieji skirtumai Ketvirtieji skirtumai Penktieji skirtumai 57 lentelė. Išvestinės skaičiavimas naudojant centrinius skirtumus Išvesti-nės Tretieji skirtumai Penktieji skirtumai Septintieji skirtumai 58 lentelė. Išvestinės skaičiavimas naudojant kairiuosius skirtumus Išvesti- nės Antrieji skirtumai Tretieji skirtumai Ketvirtieji skirtumai Penktieji skirtumai Vadinasi, formulė (35) bus tikslesnė nei arba . Nesunku įsitikinti, kad (35) formulės liekamasis narys proporcingas ir į proporcingumo koeficientą įeina . Vadinasi, (35) formulė tiksliai diferencijuoja visus polinomus iki 4-osios eilės imtinai nepriklausomai nuo ir reikšmių. Pavyzdžiui, apskaičiuokime išvestinę, kai . Aišku, kad . Dabar raskime šią išvestinės reikšmę pagal (35) formulę, kai , o . Tada , o ir . Išvestinės tikslinimo procesą analogiškai galime tęsti. Ričardsono ir Rombergo metodas paprastai apibūdinamas formulėmis. Tarkime, kad turime žingsnį ir skaičių n. Dažniausiai . Apibrėžkime žingsnius pagal formulę , . (36) Tada , , , (37) , , . Aišku, kad yra tiksliausia išvestinės reikšmė. liekamasis narys yra . Skaičiavimas pagal (37) formulę pavaizduotas 59 lentelėje. Diferencijavimas intervalo galuose. šiuo atveju skaitinis diferencijavimas yra analogiškas diferencijavimui intervalo centre. Svarbiausias skirtumas yra tas, kad reikia naudotis ne centriniais, bet kairiaisiais arba dešiniaisiais skirtumais. Be to, norint gauti tokį pat tikslumą, pravartu imti dvigubai didesnį skaičių n. Parašykime darbo formules, kuriose naudojami dešinieji skirtumai ir n = 10. ; čia , . (38) 59 lentelė. Ričardsono ir Rombergo metodas, kai naudojami centriniai skirtumai Paklaida Žingsnio ilgis 0 1 2 3 4 , . (38) , (39) , , . metodo paklaida yra .
Šį darbą sudaro 6714 žodžiai, tikrai rasi tai, ko ieškai!
★ Klientai rekomenduoja
Šį rašto darbą rekomenduoja mūsų klientai. Ką tai reiškia?
Mūsų svetainėje pateikiama dešimtys tūkstančių skirtingų rašto darbų, kuriuos įkėlė daugybė moksleivių ir studentų su skirtingais gabumais. Būtent šis rašto darbas yra patikrintas specialistų ir rekomenduojamas kitų klientų, kurie po atsisiuntimo įvertino šį mokslo darbą teigiamai. Todėl galite būti tikri, kad šis pasirinkimas geriausias!
Norint atsisiųsti šį darbą spausk ☞ Peržiūrėti darbą mygtuką!
Mūsų mokslo darbų bazėje yra daugybė įvairių mokslo darbų, todėl tikrai atrasi sau tinkamą!
Panašūs darbai
Kiti darbai
Atsisiuntei rašto darbą ir neradai jame reikalingos informacijos? Pakeisime jį kitu nemokamai.
Pirkdamas daugiau nei vieną darbą, nuo sekančių darbų gausi 25% nuolaidą.
Išsirink norimus rašto darbus ir gauk juos akimirksniu po sėkmingo apmokėjimo!