Matematika/Integravimas dalimis

Integravimas dalimis keisti

Tarkime, kad funkcijos   ir   turi tolydžias išvestines. Tada:

 

Lygtis nesunkiai įrodoma prisiminus sandaugos diferenciavimo taisyklę:

 
 
 

Pavyzdžiai keisti

  •  

Čia  , o  .

  •  .

u = ln x, u'=(ln x)'=1/x,  ,  .

 
  •  .

u=x, dv=sin(x) dx, du=dx,  

 
  •  

u=arcsin(x); dv=dx;   v=x.

 

Patikriname

 
  •  

kur u=ln(x); dv=x dx; du=1/x dx;  

  •  

kur u=ln(x); dv=dx; du=1/x dx; v=x.

  •  

kur u=arctg(x); dv=dx;   v=x.

  •  

kur    ; du=2x dx;  ;  

  •  

  dv=sin(x)dx;    

 

Dar kartą integruojame dalimis.   dv=cos(x)dx;    

 

Turime, kad   Vadinasi  , tai  

  •   kur        
  •   kur    

    kur        

  •  

  kur          


  • Apskaičiuosime integralą   Jei   tai   Todėl pagal formulę ( )
 
 


  • Apskaičiuosime integralą   Jei   tai   Tada, remiantis formule,
 
Paskutinį integralą vėl skaičiuosime pagal   formulę. Jei šį kartą   tai   todėl
 
 
Vadinasi, integralą   apskaičiavome, du kartus pritaikę dalinio integravimo metodą. Nesunku suvokti, kad integralą   (n - natūrinis skaičius) galima apskaičiuoti analogiškai, taikant dalinio integravimo formulę n kartų.


  • Dabar apskaičiuosime integralą   (a=const, b=const). Iš pradžių pritaikysime formulę, tarę, kad   Gausime  
 
Paskutinį integralą skaičiuojame vėl pagal integravimo dalimis formulę, tik šį kartą   Gausime  
 
 
 
 
 
 
Vadinasi, du kartus pritaikę dalinio integravimo formulę, gavome pirmojo laipsnio (6.11) lygtį integralo I atžvilgiu. Iš tos lygties radome I.


  • Apskaičiuosime integralą   Jis apskaičiuojamas pagal   formulę, tarus, kad   Tada du=dx, v=tg x,
 


  •   Tada  
 
 
 
Taigi dešinėje pusėje gavome pradinį integralą, kurį perkėlę į kairiąją pusę, turėsime:
 
Todėl  
Analogiškai gautume:
 


  •   Darome keitinį   Tada   Tuomet turime:
 
Tokį integralą integruoti dalimis jau mokame. Pažymime   Tada
 
 


  •   Išintegruosime tokį integralą dalimis iš karto.
Pažymime   Tada
 
 

Rekurentinė formulė (neprofesionalams) keisti

Mums prireiks tokio integralo
 
išintegravimas (integruojant keičiant kintamąjį).
Sprendimas. Pažymėję   tada
 
Kai n = 1, analogiškai gauname
 


Apskaičiuosime integralą
 
(n - sveikasis teigiamas skaičius), kuris prireikia Racionaliųjų funkcijų integravime. Kai n = 1, turime integralų lentelės integralą
 
Tegu n > 1. Išreiškę 1 skaitiklyje kaip skirtumą   gausime
 
Antrame integrale taikysime integravimo dalimis metodą:
 
(v radome pagal (1.1) integravimą).
Tada (pagal  )
 
toliau,
 
iš čia
 
Tokiu budu, integralas   išreikštas per  :
 
Formulės tipo (3) vadinasi rekurentinėmis formulėmis.


  • Pavyzdys. Apskaičiuoti  
Sprendimas. Pagal rekurentinę formulę (3) turime
 
 
o
 
todėl galutinai turime
 

Rekurentinė formulė (profesionalams) keisti

Apskaičiuosime labai svarbų tolesniam dėstymui (racionaliųjų funkcijų integravimui) integralą   kai  
Išvesime rekurentinę formulę, pagal kurią integralo   skaičiavimas pakeičiamas   skaičiavimu.
Galima rašyti (kai  )
 
 
Paskutinį integralą apskaičiuosime pagal dalinio integravimo formulę, tarę, kad   Gausime  
 
 
Iš šios lygybės gauname rekurentinę formulę
 
Įsitikinsime, kad pagal (6.12) rekurentinę formulę galima apskaičiuoti integralą   su bet kokiu   Iš tikrųjų integralas   apskaičiuojamas paprastai:
 
kur  
Apskaičiavę integralą   (6.12) formulėje rašome   ir nesunkiai apskaičiuojame   Savo ruožtu, žinodami   (6.12) formulėje rašome   ir apskaičiuojame   Taip tęsdami, apskaičiuosime integralą   su bet kokiu natūriniu  


  • Pavyzdys 1. Apskaičiuoti  
Sprendimas. Pagal rekurentinę formulę (6.12) turime
 
 
 
Tada
 
 
 


  • Pavyzdys 2. Apskaičiuoti  
Sprendimas. Pagal rekurentinę formulę (6.12) gauname
 
 
 
 
Čia   integralo reikšmę paėmėme iš pirmo pavyzdžio.


  • Pavyzdys 3. Apskaičiuosime integralą   kai t kinta nuo 0 iki 6, o  . Pasinaudosime antru pavyzdžiu.
 
 
 
 
 
 
 
=2.1355728936095303100389379690846e-7=
 
Toks Free Pascal kodas:
  var a:longint; c:real;
  begin
  for a:=1 to 1000000000  do
  c:=c+0.000000006/(sqr(sqr(sqr(a*0.000000006)+64)));
  writeln(c);
  readln;
  end.
Duoda rezultatą "2.1355728921217064E-007" (kas reiškia  ) po 14 sekundžių su 4.16 GHz dažniu veikiančiu procesoriumi (kažkaip pirmus 2 kartus paleidus, duoda rezultatą po 29 sekundžių, o kai trečią ir daugiau kartų leidi FP šitą kodą, tai duoda po 14 sekundžių atsakymą). Kode sqr(x) reiškia   Kad išeiti iš Free Pascal juodo lango (su atsakymu), reikia du kartus paspausti klaviaturos klavišą "Enter" (tada sugrįštama į kodo mėlyną ekraną-langą).
Pažiūrėjau, kad ir kitus kodus pirmus 2 kartus ilgiau skaičiuoja, o trečią, ketvirtą ir t. t. greičiau skaičiuoja. Pavyzdžiui, pusę rutulio su spinduliu R=6 tūrio kodą skaičiuoja pirmus du kartus 20 sekundžių, o trečią ir velesnius kartus skaičiuoja per 7-8 sekundes (anksčiau pasirodė, kad tik pirmą kartą ilgiau, nes, kad compile'ina galvojau pirmą kartą ilgiau, o čia pasirodo ir antrą kartą ilgiau...).
Update 1. Paskui vėl pradėjo Free Pascal skaičiuoti visus kodus tik pirmą kartą ilgiau. Bet va dabar pirmą kartą šitą kodą skaičiavo maždaug 1 minutę ir 55 sekundes. O antrą ir trečią kartą skaičiavo per tą patį laiką - per 14 sekundžių. Gal dabar interneto naršyklė (Opera) apkrauta dėl to pirmą kartą taip ilgai skaičiuoja...
Toks Free Pascal kodas:
  var a:longint; c:real;
  begin
  for a:=1 to 100000000  do
  c:=c+0.00000006/sqr(sqr(sqr(a*0.00000006)+64));
  writeln(c);
  readln;
  end.
Duoda rezultatą "2.1355728787276117E-007" po maždaug 17 sekundžių per pirmus 2 kartus ir po 2 sekundžių trečią, ketvirtą ir velesnius kartus (paleidus) su 4.16 GHz dažniu veikiančiu procesoriumi. Šitame kode procesoriui reikia skaičiuoti 10 kartų mažiau (nei ankstesneme kode) ir gaunamas truputi mažiau tikslus atsakymas (vienu teisingu skaitmeniu mažiau). Tai galima daryti išvada, kad pirmus du kartus (paleidus šitą kodą) "Free Pascal" programa kažką neadekvačiai daro ir/ar skaičiuoja.

Taip pat skaitykite keisti