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:


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
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
- 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".
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.
- 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
iš
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:



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
iš
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.