Aptarimas:Matematika/Kreiviniai integralai

Patikrinimas ar Diferencialinių binomų integravimas yra teisingas. Apie patį integravimą:

"Diferencialinių binomų integravimas
Integralas kur m, n, p - racionalieji skaičiai, vadinamas integralu su binominiu diferencialu.

Šį integralą elementariosiomis funkcijomis įmanoma išreikšti tik trimis atvejais:

I. p - sveikasis skaičius. Jei tai pointegralinis binomas skleidžiamas pagal Niutono binomo formulę. Jei tai keičiame kur k - bendras trupmenų m ir n vardiklis. Pavyzdžiui, trupmenų ir bendras vardiklis yra 3 4 = 12.
II. - sveikasis skaičius. Keičiame kur - trupmenos p vardiklis.
III. - sveikasis skaičius. Keičiame kur - trupmenos p vardiklis."

Pasirenkame pavyzdį:

kur Antras atvejis.

Toliau patikriname kokia yra išvestinė gauto atsakymo

Toliau galime apskaičiuoti lanko L ilgį funkcijos intervale [0; 0.9]. Taigi

Toliau taikome metodą iš diferencialinių binomų integravimo, turime, kad m=0, a=1, b=-1 , , . Turime III atvejį, nes

- sveikasis skaičius. Keičiame kur - trupmenos p vardiklis. Tada Toliau gauname  ;  ;  ;  ;

Šis pavyzdis taip paprastai neišsisprendžia.

Bet galima patikrinti ar yra lygu Nes antras yra integralas pirmo ir paskui per išvestine paverstas į pirmą tik kitoje formoje. Patikrinsime ar ta forma kita teisinga, įstatę į abi funkcijas reikšmę 0,5, nes didesnė nei 1 reikšmė neįmanoma dėl šaknies, kad negauti minuso šaknyje.

Dar toks dalykas, integratorius http://integrals.wolfram.com/index.jsp?expr=x%5E%281%2F3%29%281-x%5E%282%2F3%29%29%5E%28-1%2F2%29&random=false pirmą funkciją integruoja taip:

Bet atsakymai tokie patys

Tikslas yra patikrinti ar su internetiniu integratoriumi gauto rezultato išvestinė duos tokį patį atsakymą kaip neintegruotos pirmos funkcijos įstačius x=1/2, taigi:

Parabolės lanko ilgio patikrinimas keisti

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 reikiau 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 (0; 0) iki taško (4; 16) yra  

Parabolės lanko ilgio patikrinimas 2 keisti

Patikrinsime parbolės lanko ilgį padalindami parabolės šaką į 20 atkarpų-tiesių, kai 0<x<4. Kiekvienos atkarpos projekcijos į Ox ašį ilgis yra 0,2.


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,2; 0,04); nuo taško (0,2; 0,04) iki (0,4; 0,16) 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, linijos ilgis nuo taško (0; 0) iki taško (4; 16) yra  

Neteisingo ir teisingo sprendimo palyginimas, nors atsakymai ir panašūs keisti

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

Randame  . Gauname  

 

 

 
 

Palyginimui, linijos ilgis nuo taško (0; 0) iki taško (5; 25) yra:  

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

Randame  . Gauname

 
 
 
 
 
 
 
  Šitas yra teisingas.

Palyginimui, linijos ilgis nuo taško (0; 0) iki taško (5; 25) yra:  


Hiperbolinis arksinusas nėra 1 dalijimas iš hiperbolinio sinuso. Hiperbolinis arksinusas lygus:
 

https://en.wikipedia.org/wiki/Inverse_hyperbolic_functions

Su kompiuterio skaičiuotuvu paspaudus  
O šitą reikšmę pridėjus prie 100.4987562 ir viską padalinus iš 4 gaunamas toks pat atsakymas kaip ir antru budu (25.8742448):
 
 
 

Arba dar tikslesnė reikšmė tiesiai iš Windows kalkuliatoriaus: 25.874244790376718110259811166298.

Be to,  


Va šitas Free Pascal 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))));
writeln(c);
readln;
end.
duoda parabolės ilgio (kai x kinta nuo 0 iki 5) rezultatą 2.5874244790371570E+001 (tai reiškia 25.874244790371570) po 35 sekundžių su 4 Ghz procesoriumi. Tai yra 13 teisingu skaitmenų, nors prarabolė dalinama tik į milijardą atkarpų (viskas taip ir turi būti, nes parabolė yra beveik kaip tiesė...).
Su 2.6 GHz procesorium va tokia eilute
c:=c+sqrt(sqr(0.000000005)+sqr(sqr(0.000000005*a)-sqr(0.000000005*(a-1))))*0.000000005*a;
kuri skaičiuoja paraboles masę ir yra truputi ilgesnė duoda atsakyma po 25 sekundžiu. Pasirodo 4 GHz procesorius nustatytas buvo, kad veiktų tarp 1.4 GHz ir 4 GHz (Task manager'yje sukinėjasi dažnis apie 2 Ghz). Nustačius, kad veiktų tik 4 GHz dažniu, tai apskaičiuoja parabolės ilgį po 15 sekundžių (o parabolės masę po 16 sekundžių (Task Manager'yje dažnį rodo 4,15 GHz)).
Padalinus AMD FX 8350 Eight-Core 4.00 GHz procesoriaus dažnį iš kažkokio ten AMD Athlon 64 X2 5000+ 2.6 GHz (2 beanduolių) procesoriaus dažnio, gaunamas toks rezultatas: 4.16/2.6=1.6. Padalinus 25 sekundes, kurias skaičiavo 2.6 GHz procesorius iš 1.6 karto didesnio dažnio, gauname: 25/1.6=15.625 sekundes. Kas beveik lygu 16 sekundžių, per kurias susidoroja užsiturbines 4.16 GHz procesorius. Iš to išeina išvada, kad Free Pascal programoje skaičiavimo greitis parabolės masės/ilgio, priklauso tik nuo procesoriaus dažnio, o ne nuo procesoriaus architektūros.
Trumpi kodo paaiškinimai. Funkcija sqr(x) duoda   funkcija sqrt(x) duoda   o žvaigždutė * reiškia daugybą.
Su 4 GHz procesorium buvo naudojamas toks Free Pascal (su 2.6 GHz CPU buvo naudojama 2.6.0 versija ar 2.4 kažkokia):
"
Free Pascal IDE Version 1.0.12 [2020 06 04]
Compiler Version 3.2.0
GDB Version GNU gdb (GDB) 7.2
Using configuration files from: C:\FPC\3.2.0\bin\i386-win32\
"
Adresu C:\FPC\3.2.0\bin\i386-win32\ reikia paleisti fp.exe arba iš shortcut'o ant desktopo, kuris įrašinėjant Free Pascal, sukuriamas.
Kaip supratau, 64 bitų Free Pascal Neturi lango palengvinančios ir pele naudojančios programos, todėl, kad palengvintai per langa ir su pele naudotis Free Pascal reikia atsisiųsti iš čia

https://www.freepascal.org/down/x86_64/win64-hungary.html

du .exe failus 39 MB (fpc-3.2.0.i386-win32.cross.x86_64-win64.exe) ir 51 MB (fpc-3.2.0.i386-win32.exe) ir juos abu įrašyti į default direktorija (ir tada sukurs shortcut'ą ir galima bus normaliai paleist Free Pascal). Kai Free Pascal įrašytas, reikia sukurti "New", paskui "paste from Windows" parabolės ilgio kodą ir paskui "Compile" ir "Run" arba iš kart "Run".

Truputi nesklandumai integruojant keisti

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
 
Polinėse koordinatėse taikoma ta pati pitagoro teorema. Geresniam išaiškiniui, tegu   (tai spiralės funkcija). Tegu   kinta nuo 0 iki   Kai x kinta pastoviu greičiu, o y kitimo greitis kinta pagal tam tikrą funkciją, tada turime formulę   Polinėse koordinatėse   pakeičiame   Pagal Pitagoro teoremą Dekarto koordinačių sistemą sudedame pakelta kvadratu x pastovų pakitimą su y nepastoviu pakitimu (y') pakeltu kvadratu ir paskui traukiant šaknį. Polinėse koordinatėse apskritimo ilgis   Vadinasi [spiralės] lanko dalies ilgis yra   Mes dauginame kiekvieną lanko dalį   iš spindulio dalies   kai ieškome ploto, tačiau šiuo atveju, mes   pridedame prie   ir iš sumos ištraukę šaknį gauname kiekvienos lanko atkarpos ilgį. Apėjimas prieš laikrodžio rodyklę nuo 0 iki   kinta pastoviu greičiu, tačiau lanko ilgiai   priklauso nuo   Todėl formulėje   ir yra   kuris priklauso nuo   o kad tenkinti Pitagoro teoremą jis pakeltas kvadratu. Vietoje   bus įstatyta   o vietoje   bus įstatyta   ir gausime, kad kiekvienos mažos dalies   ilgis yra   Čia n (pavyzdžiui,  ) nusako į kiek dalių daliname parametrinę reikšmę   kuri simbolizuoja lanką ir pastovų apėjimą prieš laikrodžio rodyklę pastoviu greičiu. Todėl   Kai mes skaičiuojame kreivės ilgį pagal šitą formulę   tai mes pasirenkame, kad arba x arba y kistu pastoviu greičiu (didėtų linijiniai). Taigi, x didėja linijiniai, o y lyginamas su x greičio kitimu ir y didėja arba mažėja ne linijiniai, kai x didėja linijiniai. Taigi,   Spindulio dalies ilgis yra   Mes galime užrašyti   ir   Todėl gauname   Šiuo atveju   didėja linijiniai, o v nelinijiniai, bet pagal tam tikrą funkciją. Baigdami išspręsime pavyzdį, kai   surasdami spiralės lanko ilgį:
 
 
 
 
 
 
 
 
 
=20,71508584921547418835543503203+2,5554429238707935293055934466408-0,69314718055994530941723212145818=22,577381592526322408243796357213.
čia   ir   arba  


Antru budu neteisingai išintegruota, nes   integruojasi ne kaip
 
o kaip   kur d(x+a)=dx.

Nesekmingas bandymas išspręsti kitaip keisti

  • Kai kreivė L polinėje koordinačių sistemoje apibrėžta lygtimi     tai   ir
 
Polinėse koordinatėse taikoma ta pati pitagoro teorema. Geresniam išaiškiniui, tegu   (tai spiralės funkcija). Tegu   kinta nuo 0 iki   Kai x kinta pastoviu greičiu, o y kitimo greitis kinta pagal tam tikrą funkciją, tada turime formulę   Polinėse koordinatėse   pakeičiame   Pagal Pitagoro teoremą Dekarto koordinačių sistemoje sudedame pakelta kvadratu x pastovų pakitimą su y nepastoviu pakitimu (y') pakeltu kvadratu ir paskui traukiame šaknį. Polinėse koordinatėse apskritimo ilgis   Vadinasi [spiralės] lanko dalies ilgis yra   Mes dauginame kiekvieną lanko dalį   iš spindulio dalies   kai ieškome ploto, tačiau šiuo atveju, mes   pridedame prie   ir iš sumos ištraukę šaknį gauname kiekvienos lanko atkarpos ilgį. Apėjimas prieš laikrodžio rodyklę nuo 0 iki   kinta pastoviu greičiu, tačiau lanko ilgiai   priklauso nuo   Todėl formulėje   ir yra   kuris priklauso nuo   o kad tenkinti Pitagoro teoremą jis pakeltas kvadratu. Vietoje   bus įstatyta   o vietoje   bus įstatyta   ir gausime, kad kiekvienos mažos dalies   ilgis yra   Čia n (pavyzdžiui,  ) nusako į kiek dalių daliname parametrinę reikšmę   kuri simbolizuoja lanką ir pastovų apėjimą prieš laikrodžio rodyklę pastoviu greičiu. Todėl   Kai mes skaičiuojame kreivės ilgį pagal šitą formulę   tai mes pasirenkame, kad arba x arba y kistu pastoviu greičiu (didėtų linijiniai). Taigi, x didėja linijiniai, o y lyginamas su x greičio kitimu ir y didėja arba mažėja ne linijiniai, kai x didėja linijiniai. Taigi,   Spindulio dalies ilgis yra   Mes galime užrašyti   ir   Todėl gauname   Šiuo atveju   didėja linijiniai, o v nelinijiniai, bet pagal tam tikrą funkciją. Kad viskas būtų palyginta per   - t. y. per lanko apeimą prieš laikrodžio rodykle, kiekvieną kartą didinant i (i naturalus skaičius), mes turime, kad po kiekvieno i padidėjimo apėjimas vyksta greičiu   Todėl, kad   prilygtų   apėjimo tempui, mes   daliname iš   ir gauname   Tuomet viskas yra suderinta ir kreivės lanko ilgis yra   Padalinti    reikia visų pirma todėl, kad mes apeiname prieš laikrodžio rodyklę greičiu konstanta   didesniu, negu didėja spindulio   ilgis.
Baigdami išspręsime pavyzdį, kai   surasdami spiralės lanko ilgį:
 
 
 
 
 
 
 
 
 
=95,562904188437929879480297191115-2,6(6)=92,896237521771263212813630524448;
čia   ir   arba  
Išspręsime šį pavyzdį kitaip:
 
 
 

Teoriją reikia pakoreguot ir per daug kodų (skyrius Kreivės lanko ilgis) keisti

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
 
Polinėse koordinatėse taikoma ta pati pitagoro teorema. Geresniam išaiškiniui, tegu   (tai spiralės funkcija). Tegu   kinta nuo 0 iki   Kai x kinta pastoviu greičiu, o y kitimo greitis kinta pagal tam tikrą funkciją, tada turime formulę   Polinėse koordinatėse   pakeičiame   Pagal Pitagoro teoremą Dekarto koordinačių sistemoje sudedame pakelta kvadratu x pastovų pakitimą su y nepastoviu pakitimu (y') pakeltu kvadratu ir paskui traukiame šaknį. Polinėse koordinatėse apskritimo ilgis   Vadinasi [spiralės] lanko dalies ilgis yra   Mes dauginame kiekvieną lanko dalį   iš spindulio dalies   kai ieškome ploto, tačiau šiuo atveju, mes   pridedame prie   ir iš sumos ištraukę šaknį gauname kiekvienos lanko atkarpos ilgį. Apėjimas prieš laikrodžio rodyklę nuo 0 iki   kinta pastoviu greičiu, tačiau lanko ilgiai   priklauso nuo   Todėl formulėje   ir yra   kuris priklauso nuo   o kad tenkinti Pitagoro teoremą jis pakeltas kvadratu. Vietoje   bus įstatyta   o vietoje   bus įstatyta   ir gausime, kad kiekvienos mažos dalies   ilgis yra   Čia n (pavyzdžiui,  ) nusako į kiek dalių daliname parametrinę reikšmę   kuri simbolizuoja lanką ir pastovų apėjimą prieš laikrodžio rodyklę pastoviu greičiu. Todėl   Kai mes skaičiuojame kreivės ilgį pagal šitą formulę   tai mes pasirenkame, kad arba x arba y kistu pastoviu greičiu (didėtų linijiniai). Taigi, x didėja linijiniai, o y lyginamas su x greičio kitimu ir y didėja arba mažėja ne linijiniai, kai x didėja linijiniai. Taigi,   Spindulio dalies ilgis yra   Mes galime užrašyti   ir   Todėl gauname   Šiuo atveju   didėja linijiniai, o v nelinijiniai, bet pagal tam tikrą funkciją. Kad viskas būtų palyginta per   - t. y. per lanko apeimą prieš laikrodžio rodykle, kiekvieną kartą didinant i (i naturalus skaičius), mes turime, kad po kiekvieno i padidėjimo apėjimas vyksta greičiu   Todėl, kad   prilygtų   apėjimo tempui, mes   daliname iš   ir gauname   Tuomet viskas yra suderinta ir kreivės lanko ilgis yra   Padalinti    reikia visų pirma todėl, kad mes apeiname prieš laikrodžio rodyklę greičiu konstanta   didesniu, negu didėja spindulio   ilgis.
Baigdami išspręsime pavyzdį, kai   surasdami spiralės lanko ilgį:
 
 
 
 
 
 
 
 
 
=95,562904188437929879480297191115-2,6(6)=92,896237521771263212813630524448;
čia   ir   arba  
Bandydami apskaičiuoti analogiškai su programa "Free Pascal", panaudojant kodą:
   var
   a:longint;
   c:real;
   begin
   for a:=1 to 100  do
   c:=c+sqrt(sqr(sqr(a*0.062831853)-sqr((a-1)*0.062831853))+sqr((sqr(a*0.062831853)-sqr((a-1)*0.062831853))/0.062831853));
   writeln(c);
   readln;
   end.
gauname atsakymą 629,557559394517. Šis atsakymas padalintas iš   duoda kažka panašaus į teisingą atsakymą, t. y. 100,19719753850687095392912240507.
Kai panaudojame šį kodą:
   var
   a:longint;
   c:real;
   begin
   for a:=1 to 10000  do
   c:=c+sqrt(sqr(sqr(a*0.00062831853)-sqr((a-1)*0.00062831853))+sqr((sqr(a*0.00062831853)-sqr((a-1)*0.00062831853))/0.00062831853));
   writeln(c);
   readln;
   end.
tai gauname atsakymą 62831,8654025094, kas byloje apie bloga teorijos išaiškinimą.
Va čia 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.


Suprastinta kodo su šita eilute
c:=c+sqrt(sqr(sqr(a*0.00000001))+sqr((sqr(a*0.00000001)-sqr((a-1)*0.00000001))*100000000));
versija yra kodas:
  var a:longint; c,b:real;
  begin
  for a:=1 to 628318531  do
  c:=c+sqrt(sqr(sqr(a*0.00000001))+sqr((sqr(a*1.0)-sqr((a-1)*1.0))*0.00000001));
  b:=c*0.00000001;
  writeln(b);
  readln;
  end.
kuris duoda atsakymą 9.2896237808507621E+001 po 9 sekundžių su 4.16 GHz dažniu veikiančiu procesoriumi. Jeigu vietoje sqr(a*1.0) parašyti sqr(a), tai gaunamas visai ne tokių skaitmenų atsakymas ir 8 eilėmis didesnis (8.2683404394761600E+009). O jeigu vietoje sqr((a-1)*1.0) parašyti sqr(a-1), tai iš vis kažkokia klaida ir negaunamas joks atsakymas.
Grįžti į "Matematika/Kreiviniai integralai" puslapį.