Pereiti prie turinio

Aptarimas:Matematika/Kreiviniai integralai

Page contents not supported in other languages.
Pridėti temą
Iš Wikibooks.

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.