Matematika/Kreiviniai integralai

Šis straipsnis yra apie pirmojo ir antrojo tipo kreivinius integralus.

Pirmojo tipo kreivinis integralasKeisti

Pirmojo tipo kreivinis integralas naudojamas dvimačio ar trimačio lanko masės apskaičiavimui. Galima apskaičiuoti masę, kai ji pastovi ar kai kinta pagal tam tikrą funkciją. Jeigu masė pastovi, tai jos skaičiavimas sutampa su lanko ilgio skaičiavimu.

  •   kai kreivė L apibrėžta lygtimi y=y(x), o  
 
  • Kai kreivė L apibrėžta parametrinėmis lygtimis       tai   todėl
 
  • Kai prametrinėmis lygtimis         apibrėžta erdvinė kreivė L, tai
 
  • Kai kreivė L polinėje koordinačių sistemoje apibrėžta lygtimi     tai   ir
 

PavyzdžiaiKeisti

  • Apskaičiuokime integralą   kai L - prabolės   lankas nuo taško (0; 0) iki taško (1; 1/2).
Remdamiesi sąlyga   randame y'=x,   Pritaikę pirmą formulę, gauname

   

kur    


  • Apskaičiuosime kreivinį integralą   kur AB - parabolės   lankas nuo taško (0; 0) iki taško (2; 2).
Turime

  Pagal pirmą formulę gauname  


  • Apskaičiuokime kreivės     lanko L masę, kai tankis kreivės taške yra tiesiog proporcingas to taško ordinatei (y) ir atvirkščiai proporcingas kvadratinei šakniai iš to taško abscisės ( ), be to, taške   jo (tankio) reikšmė lygi 8 g/cm.
Kreivės lanko masę, kai to lanko tankis lygus  , apskaičiuosime pagal formulę  
Pagal uždavinio sąlyga, tankis lygus   čia k - proporcingumo koeficientas. Kadangi  , kai     tai iš lygybės   gauname: k=3. Tuomet, pagal formule,
 
Norėdami apskaičiuoti šį integralą, taikysime pirmą formulę. Iš sąlygos   turime   ir  
Tuomet
 
 
kur            
Arba galėjome apskaičiuoti integruodami dalimis:
 
 
 
kur        
 
cikloidė
  • Apskaičiuokime integralą   kai L - pirmoji cikloidės     arka.

Taikome antrą formulę. Randame:         Tuomet  

Pirmąjį integralą integruojame dalimis, pažymėdami         gauname

 

Antrąjį integralą apskaičiuojame taikydami formulę     reiškia

 

Todėl bendras integralas lygus:
 


  • Reikia apskaičiuoti integralą   pagal vieną viją susuktos linijos:        

Pagal trečią formulę gauname:    


  • Apskaičiuosime integralą   kur AB - dalis logoritminės kreivės   nuo   iki  

Pagal pirmą formulę     kur  


  • Apskaičiuosime kreivinį integralą   kur AB - dalis apskritimo      
Kadangi

    tai pagal antrą formulę gauname  


  • Apskaičiuokime   kai L - apskritimas    
Integralą apskaičiuokime, Dekatro koordinates pakeitę polinėmis. Kreivės L lygtis šioje koordinačių sistemoje yra     Randame    

Tuomet    

Kreivės lanko ilgisKeisti

Kreivės lanko ilgis randamas pagal šitas formules:

  •   kai kreivė L apibrėžta lygtimi y=y(x), o  
 
  • Kai kreivė L apibrėžta parametrinėmis lygtimis       tai   todėl
 
Elementariausias pavyzdis, kai reikia perrašyti funkcija   parametrinėmis lygtimis. Tuomet pasirenkame (suteikiame parametrus iksui ir igrikui)  . Gauname išvestines  . Vadinasi integralas atrodys taip:
 
  • Kai prametrinėmis lygtimis         apibrėžta erdvinė kreivė L, tai
 
  • Kai kreivė L polinėje koordinačių sistemoje apibrėžta lygtimi     tai   ir
 


Kreivės lanko ilgio formulių išvedimas
  • Rasime dabar kreivės lanko ilgį tuo atveju, kai kreivės užrašyta paramtetrinėmis lygtimis:
 
čia   ir   - netrūkios funkcijos su netrūkiomis išvestinėmis, be to   užduotoje srityje nevirsta nuliu. Šituo atveju lygtys (4) nusako tam tikrą funkciją   netrūkią ir turinčią netrūkią išvestinę
 
Tegu   Tada, įstatę integrale (2) keitinį
 
gausime:
 


  • Kreivės lanko ilgis polinėse koordinatėse.
Tegu polinėse koordinatėse kreivės lygtis apibūdinama
 
kur   - poliarinis spindulys,   - poliarinis kampas.
Užrašysime perėjimo formules iš poliarinių koordinačių į dekarto koordinates:
 
Jeigu čia vietoje   įstatyti jo išraišką (8) per   tai gausime lygtis
 
Šias lygtis galima nagrinėti kaip kreivės parametrines lygtis ir kreivės lanko ilgio apskaičiavimui pritaikyti (5) formulę. Tam rasime išvestines nuo x ir y per parametrą  :
 
Tada
 
Todėl,
 
Čia patiems mažiausiems (nes matematikai sudaugina ir sudeda mintyse):
 
 


Baigdami išspręsime pavyzdį, kai   surasdami spiralės lanko ilgį:
 
 
 
 
 
 
 
 
 
=95,562904188437929879480297191115-2,6(6)=92,896237521771263212813630524448;
čia   ir   arba  
Va čia "Free Pascal" kodas:
   var
   a:longint;
   c:real;
   begin
   for a:=1 to 628318531  do
   c:=c+0.00000001*sqrt(sqr(sqr(a*0.00000001))+sqr(a*2.0/100000000));
   writeln(c);
   readln;
   end.
kuris duoda atsakymą 92,8962378457359 po 16 sekundžių su 2,6 GHz procesoriumi. Optimizuotas šio kodo variantas:
   var
   a:longint;
   c,b:real;
   begin
   for a:=1 to 628318531  do
   c:=c+sqrt(sqr(sqr(a*0.00000001))+sqr(a*0.00000002));
   b:=c*0.00000001;
   writeln(b);
   readln;
   end.
duoda atsakymą 92,8962378457489 po 11 sekundžių su 2,6 GHz procesoriumi.
Šis kodas:
   var
   a:longint;
   c,b:real;
   begin
   for a:=1 to 62831853  do
   c:=c+sqrt(sqr(sqr(a*0.0000001))+sqr((sqr(a*0.0000001)-sqr((a-1)*0.0000001))/0.0000001));
   b:=c*0.0000001;
   writeln(b);
   readln;
   end.
duoda atsakymą 92,8962389233553 po dviejų sekundžių. Tikslesnė (ne daug tikslesnė, nes kaip tik   ir kur reikia apvalint ten 0) šio kodo versija:
   var
   a:longint;
   c,b:real;
   begin
   for a:=1 to 628318531  do
   c:=c+sqrt(sqr(sqr(a*0.00000001))+sqr((sqr(a*0.00000001)-sqr((a-1)*0.00000001))*100000000));
   b:=c*0.00000001;
   writeln(b);
   readln;
   end.
duoda atsakymą 92,8962378085099 po 15 sekundžių su 2,6 GHz procesoriumi.
Labiausiai teoriją atitinkantis kodas yra šis:
   var
   a:longint;
   c,b:real;
   begin
   for a:=1 to 1000000000  do
   c:=c+sqrt(sqr(sqr(a*0.0000000062831853))+sqr((sqr(a*0.0000000062831853)-sqr((a-1)*0.0000000062831853))/0.0000000062831853));
   b:=c*0.0000000062831853;
   writeln(b);
   readln;
   end.
duodantis atsakymą 92,8962373310520 po 30 sekundžių su 2,6 GHz procesoriumi. Su patikslinta   reikšme panaudojus kodą:
   var
   a:longint;
   c,b:real;
   begin
   for a:=1 to 1000000000  do
   c:=c+sqrt(sqr(sqr(a*0.000000006283185307179586))+sqr((sqr(a*0.000000006283185307179586)-sqr((a-1)*0.000000006283185307179586))/0.000000006283185307179586));
   b:=c*0.000000006283185307179586;
   writeln(b);
   readln;
   end
gauname atsakymą 92,8962376285006 po 31 sekundės su 2,6 GHz procesoriumi.
Panaudojus vietoje dalybos daugybą ( ) šiame kode:
   var
   a:longint;
   c,b:real;
   begin
   for a:=1 to 1000000000  do
   c:=c+sqrt(sqr(sqr(a*0.0000000062831853))+sqr((sqr(a*0.0000000062831853)-sqr((a-1)*0.0000000062831853))*159154943.0918953));
   b:=c*0.0000000062831853;
   writeln(b);
   readln;
   end.
gauname atsakymą 92,8962373100457 po 24 sekundžių su 2,6 GHz procesoriumi. Pastebime, kad kodas (dviem kodais aukščiau ir duodantis atsakymą 92,8962378085099), kuris skaičiavo 15 sekundžių turi tokį ryši su šiuo kodu: 24/15=1.6 ir 1000000000/628318531=1.59154943.


PavyzdžiaiKeisti

  • Apskaičiuokime kreivės   lanko ilgį.
Randame   Tuomet

  Palyginimui, atkarpos ilgis iš taško (0; 0) iki taško (4;  ) yra pagal pitagoro teoremą:  

  • Apskaičiuosime lanko ilgį pusiaukūbinės parabolės   jei   Iš lygties   randame:   Iš pirmos formulės gausime

 

 

kur  ;  . Palyginimui, atkarpos ilgis nuo taško (0; 0) iki taško (5;  ) yra:  

  • Apskaičiuosime lanko ilgį pusiaukūbinės parabolės   jei   Iš lygties   randame:   Gausime

 

 
 

kur  ;  . Palyginimui, linijos ilgis nuo taško (1; 1) iki taško (5;  ) yra  

 
  • Apskaičiuosime parabolės   lanko ilgį, kai  

Randame  . Gauname

 
 
 
 
 
 

čia  

 
Iš kompiuterio kalkuliatoriaus reikšmės (hiperbolinio arksinuso):
 
 
Palyginimui, linijos ilgis nuo taško (0; 0) iki taško (5; 25) yra:

 

  • Apskaičiuosime parabolės   lanko ilgį, kai  

Randame  . Gauname  

 
 
 
 
 
 
 

čia  

Iš kompiuterio kalkuliatoriaus reikšmės (hiperbolinio arksinuso):
 
 

Palyginimui, tiesės ilgis nuo taško (1; 1) iki taško (5; 25) yra:   Čia taip išintegravo Wolfram Research integratorius, kad  . Štai nuoroda: http://integrals.wolfram.com/index.jsp?expr=%281%2B4x%5E2%29%5E%281%2F2%29&random=false .

Toks būdas neteisingas:

 

 
 
 

 

 
 
Patikriname atsakymą kitu budu:
 
 

     

 
 
  • Apskaičiuosime parabolės   lanko ilgį, kai  

Randame  . Gauname

 
 
 
 
 

čia  

 
Iš kompiuterio kalkuliatoriaus reikšmės (hiperbolinio arksinuso):
 
 


  • Apskaičiuosime parabolės   lanko ilgį, kai  

Randame  . Pasinaudodami integralų lentele  , gauname

 
 

 

 
 
 
 

Palyginimui, tiesios linijos ilgis nuo taško (0; 0) iki taško (4; 16) yra  

Patikrinsime parbolės lanko ilgį padalindami parabolės šaką į 10 atkarpų-tiesių, kai 0<x<4. Kiekvienos atkarpos projekcijos į Ox ašį ilgis yra 0,4. Todėl reikia gauti visas x reikšmes:
 
 
 
 
 
 
 
 
 
 
 

Dabar toliau reikia surasti visas y reikšmes, įstačius x reikšmes:

 
 
 
 
 
 
 
 
 
 
 

Dabar belieka surasti atkarpu ilgius kaip nuo taško (0; 0) iki taško (0,4; 0,16); nuo taško (0,4; 0,16) iki (0,8; 0,64) ir taip toliau:

 
 
 
 
 
 
 
 
 
 

Toliau reikia sudėti visų atkarpų ilgį, kad gauti parabolės šakos ilgį, kai x kinta nuo 0 iki 4. Gauname:

 
 
Padalinus į daugiau dalių atsakymas taptų panašesnis į atsakymą gautą integravimo budu.


  • Apskaičiuosime parabolės   lanko ilgį, kai  

Randame  . Pasinaudodami integralų lentele gauname

 
 

 

 

 

 
 

Palyginimui, tiesios linijos ilgis nuo taško (1; 1) iki taško (4; 16) yra  

  • Apskaičiuosime parabolės   lanko ilgį, kai  

Randame   Tada iš integralų lentelės         Palyginimui, atkrapos ilgis nuo taško (4;  ) iki taško (12;  ) yra  

 
  • Apskaičiuosime kreivės   lanko ilgį, kai  

Randame   Gauname

 
 
 
 
 
 
 

Palyginimui, tiesės ilgis nuo taško (1; 1) iki taško (16; 4) yra  


  • Apskaičiuosime kreivės lanko ilgį , kai     Randame funkcijos išvestinę   Randame kreivės lanko ilgį:

 


  • Apskaičiuokime cikloidės       pirmosios arkos ilgį.
Pirmoji cikloidės arka gaunama, kai parametras t kinta nuo 0 iki   Randame:
   
 
  nes   kai   Tuomet
 
Kaip atrodo cikloidė galima pažiūrėti čia https://lt.wikipedia.org/wiki/Cikloidė


  • Rasime lanko AB ilgį susuktos linijos

        Pagal trečią formulę:  


  • Rasime lanko ilgį kardiodės     Pagal ketvirtą formulę turime:

     

Kaip atrodo kardioidė galima pažiūrėti čia https://en.wikipedia.org/wiki/Cardioid


  • Rasti kardiodės   ilgį.
Keisdami poliarinį kampą   nuo 0 iki   gausime pusę ieškomo ilgio. Čia   Taigi,
 
 
 


  • Rasime kreivės lanko ilgį, kai   Pagal ketvirtą formulę:

   


 
Archimedo spiralė.
  • Apskaičiuosime ilgį pirmos vijos Archimedo spiralės:  
Pirma vija spiralės pasidaro, keičiantis poliariniui kampui   nuo 0 iki   Todėl pagal ketvirtą formulę ieškomas ilgis lanko yra

   

 


  • Apskaičiuosime vienos vijos linijos ilgį:         Tai yra linija apsukta vieną kartą aplink cilindrą, kurio aukštis yra t. Gauname:
   ,  ,  
 

Randame vienos vijos ilgį:

 


  • Apskaičiuoti ilgį hipocikloidės (astroidės):
 
Sprendimas. Kadangi kreivė simetriška dviejų koordinačių ašių atžvilgiu, tai iš pradžių apskaičiuosime ketvirtadalį jos dalies, esančios pirmame ketvirtyje. Randame:
 
Parametras t kis nuo 0 iki   Taigi,
 
 
Kaip atrodo astroidė galima pažiūrėti čia https://en.wikipedia.org/wiki/Astroid

Kreivės masėKeisti

Kreivės masė nustatoma pagal formulę
 
čia   kokia nors funkcija.

PavyzdžiaiKeisti

  • Nustatyti tiesės   masę tik pirmame ketvirtyje. Tiesės tankis   tolstant tiesės taškams nuo centro (koordinačių pradžios taško O) didėja proporcingai, t. y.  
Sprendimas. Pasinaudosime masės skaičiavimo formule
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Kad tą patį apskaičiuoti su programa "Free Pascal" reikia surasti tiesės ilgį, kai x kinta nuo 0 iki 5 (tai yra tiesės ilgis tik pirmame ketviryje):
 
Todėl "Free Pascal" kodas yra toks:
  var
  a:longint;
  c:real;
  begin
  for a:=1 to 1000000000  do
  c:=c+sqrt(sqr(a*0.000000003)+sqr((1000000001-a)*0.000000005));
  writeln(sqrt(sqr(3)+sqr(5))*c/1000000000);
  readln;
  end.
duodantis rezultatą 19,163886990613093 po 18 sekundžių su 2,6 GHz procesoriumi.


  • Nustatyti parabolės   masę pirmame ketvirtyje, kai x kinta nuo 0 iki 5. Tiesės tankis   tolstant tiesės taškams nuo centro (koordinačių pradžios taško O) didėja proporcingai, t. y.  
Sprendimas.
Pasirodo, integruojant taip ir taip gauname tokį patį rezultatą, kuris yra labai sudetingas ir ilgas. Net didžiausioje integralų lentelėje nėra kaip išintegruoti   Yra tik   bet ir tai integravimas gaunasi su dar dviais pažiūrėjimais į integralų lentelę. Todėl pasinaudojame Free Pascal kodu. Free Pascal kodas, kuris skaičiuoja pagal formulę   yra toks:
var
a:longint;
c:real;
begin
for a:=1 to 1000000000  do
c:=c+sqrt(1+sqr(2*5.0*a/1000000000))*sqrt(sqr(5.0*a/1000000000)+sqr(sqr(5.0*a/1000000000)));
writeln(5*c/1000000000);
readln;
end
ir duoda atsakymą   po 48 sekundžių su 2,6 GHz procesoriumi. Optimizuotas šito kodo variantas:
var
a:longint;
c:real;
begin
for a:=1 to 1000000000  do
c:=c+sqrt(1+sqr(0.00000001*a))*sqrt(sqr(0.000000005*a)+sqr(sqr(0.000000005*a)));
writeln(0.000000005*c);
readln;
end.
duoda atsakymą   po 33 sekundžių su 2,6 GHz procesoriumi.
Kitoks kreivės masės apskaičiavimo Free Pascal kodas yra:
var
a:longint;
c:real;
begin
for a:=1 to 1000000000  do
c:=c+sqrt(sqr(0.000000005*a-0.000000005*(a-1))+sqr(sqr(0.000000005*a)-sqr(0.000000005*(a-1))))*sqrt(sqr(0.000000005*a)+sqr(sqr(0.000000005*a)));
writeln(c);
readln;
end.
kuris duoda atsakymą   po 41 sekundės su 2,6 GHz procesoriumi. Optimizuotas šito kodo variantas yra kodas:
var
a:longint;
c:real;
begin
for a:=1 to 1000000000  do
c:=c+sqrt(sqr(0.000000005)+sqr(sqr(0.000000005*a)-sqr(0.000000005*(a-1))))*sqrt(sqr(0.000000005*a)+sqr(sqr(0.000000005*a)));
writeln(c);
readln;
end
kuris duoda atsakymą   po 38 sekundžių su 2,6 GHz procesoriumi. Dar labiau optimizuotas šito kodo variantas yra:
var
a:longint;
c:real;
begin
for a:=1 to 1000000000  do
c:=c+sqrt(0.000000000000000025+sqr(sqr(0.000000005*a)-sqr(0.000000005*(a-1))))*sqrt(sqr(0.000000005*a)+sqr(sqr(0.000000005*a)));
writeln(c);
readln;
end.
kuris duoda atsakymą   po 38 sekundžių su 2,6 GHz procesoriumi (vadinasi, Free Pascal automatiškai optimizuoja kodą pakeldamas konstantą 0,000000005 kvadratu ir visoms iteracijoms naudodamas gautą 0,000000000000000025 reikšmę).


  • Nustatyti parabolės   masę pirmame ketvirtyje, kai x kinta nuo 0 iki 10. Tiesės tankis   tolstant tiesės taškams nuo centro (koordinačių pradžios taško O) didėja proporcingai tik Ox kryptimi, t. y.  
Sprendimas. Greičiausias būdas apskaičiuoti, tai ko reikalauja sąlyga (uždavinys) yra toks:
 
Kitas būdas yra toks:
 
 
 
 
=669,16822851623458973388183928978 - (2/3)*(1/8)=
=669,16822851623458973388183928978 - 1/12=
=669,08489518290125640054850595645;
čia pasinaudojome integralų lentele  
Tuo atveju, jeigu x kinta nuo 0 iki 5 tada:
 
 
 
=84,586453144434159774345479682393-1/12=
=84,5031198111008264410