Wikibooks
ltwikibooks
https://lt.wikibooks.org/wiki/Pagrindinis_puslapis
MediaWiki 1.48.0-wmf.4
first-letter
Medija
Specialus
Aptarimas
Naudotojas
Naudotojo aptarimas
Wikibooks
Wikibooks aptarimas
Vaizdas
Vaizdo aptarimas
MediaWiki
MediaWiki aptarimas
Šablonas
Šablono aptarimas
Pagalba
Pagalbos aptarimas
Kategorija
Kategorijos aptarimas
TimedText
TimedText talk
Module
Module talk
Event
Event talk
Logaritminės ir atvirkštinių trigonometrinių funkcijų reikšmių skaičiavimas
0
9620
59133
59132
2026-11-12T07:16:01Z
Paraboloid
1294
/* Arktangento Benchmark */
59133
wikitext
text/x-wiki
[[Elementariųjų funkcijų reikšmių skaičiavimas]]
:Logaritminės ir atvirkštinių trigonometrinių funkcijų reikšmių skaičiavimas pagrįstas Teiloro formulės taikymu. Čia smulkiai aptarsime, kaip skaičiuojamos logaritmo ir arktangento reikšmės. Funkcijų <math>\operatorname{arcctg} x, \;</math> <math>\operatorname{arcsin} x \;</math> ir <math>\operatorname{arccos} x \;</math> reikšmių skaičiavimas pakeičiamas arktangento reikšmių skaičiavimu pagal šitokias žinomas formules:
:[ https://en.wikipedia.org/wiki/Inverse_trigonometric_functions#Relationships_among_the_inverse_trigonometric_functions ]
:<math>\operatorname{arcctg} x =\frac{\pi}{2} -\operatorname{arctg} x, \;\;\; \operatorname{arcsin} x=\operatorname{arctg}\frac{x}{\sqrt{1-x^2}},</math>
:<math>\operatorname{arccos} x =\operatorname{arcctg}\frac{x}{\sqrt{1-x^2}} =\operatorname{arctg}\frac{\sqrt{1-x^2}}{x}.</math>
==1. Skaičiaus ln(a) radimas==
:Skaičių a>0 išreikškime sandauga
:<math>a=2^p M. \quad (8.83)</math>
:kurioje ''p'' – sveikasis skaičius, o ''M'' tenkina nelygybes
:<math>\frac{1}{2}\leq M<1. \quad (8.84)</math>
:Pastebėsime, kad skaičių ''a'' išreikšti (8.83) sandauga galima vieninteliu būdu. Remdamiesi (8.83) formule, logaritmą <math>\ln a</math> užrašome šitaip:
:<math>\ln a=\ln(2^p M)=p\ln 2 +\ln M. \quad (8.85)</math>
:Sakykime,
:<math>M=\frac{1}{\sqrt{2}} \, \frac{1+x}{1-x}, \quad (8.86)</math>
:ir šitą ''M'' išraišką įrašykime į (8.85) lygybę. Tada logaritmo <math>\ln a</math> išraiška bus šitokia:
:<math>\ln a=p\ln 2 +\ln M=p\ln 2 +\ln \left(\frac{1}{\sqrt{2}} \frac{1+x}{1-x}\right)=p\ln 2 +\ln \frac{1}{\sqrt{2}} +\ln \frac{1+x}{1-x}=</math>
:<math>=p\ln 2 -\frac{1}{2}\ln 2 +\ln \frac{1+x}{1-x}=\left(p -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}.</math>
:<math>\ln a=\left(p -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}. \quad (8.87)</math>
:Funkciją <math>\ln \frac{1+x}{1-x}</math> išdėstysime pagal Makloreno formulę. Pirma rasime kelias funkcijos <math>g(x)=\ln \frac{1+x}{1-x}</math> išvestines ir pagal jas nuspėsime aukštesnių eilių šios funkcijos išvestines (ir jų reikšmes, kai <math>x=0</math>).
:<math>g'(x)=\left(\ln \frac{1+x}{1-x}\right)'=\frac{1-x}{1+x}\cdot \left(\frac{1+x}{1-x}\right)'=</math>
:<math>=\frac{1-x}{1+x}\cdot \frac{(1+x)'(1-x)-(1+x)(1-x)'}{(1-x)^2}=\frac{1-x}{1+x}\cdot \frac{(1-x)-(1+x)(-1)}{(1-x)^2}=\frac{1-x}{1+x}\cdot \frac{(1-x)+(1+x)}{(1-x)^2}=</math>
:<math>=\frac{1-x}{1+x}\cdot \frac{2}{(1-x)^2}=\frac{2}{(1+x)(1-x)}=\frac{2}{1-x^2}.</math>
:<math>g''(x)=\left(\ln \frac{1+x}{1-x}\right)''=\left(\frac{2}{1-x^2}\right)'=-\frac{2}{(1-x^2)^2}\cdot (1-x^2)'=-\frac{2}{(1-x^2)^2}\cdot (-2x)=\frac{4x}{(1-x^2)^2}. </math>
:<math>g'''(x)=\left(\ln \frac{1+x}{1-x}\right)'''=\left(\frac{4x}{(1-x^2)^2}\right)'=\frac{(4x)'(1-x^2)^2 - 4x[(1-x^2)^2]'}{((1-x^2)^2)^2}= </math>
:<math>=\frac{4(1-x^2)^2 - 4x[2(1-x^2)']}{(1-x^2)^4}=\frac{4(1-2x^2+x^4) - 4x[2(-2x)]}{(1-x^2)^4}= \frac{4-8x^2+4x^4 + 16x^2}{(1-x^2)^4}= </math>
:<math>= \frac{4+8x^2+4x^4}{(1-x^2)^4}=\frac{4(1+2x^2+x^4)}{(1-x^2)^4}= \frac{4(1+x^2)^2}{(1-x^2)^4}.</math>
:<math>g^{(4)}(x)=\left(\ln \frac{1+x}{1-x}\right)^{(4)}=\left( \frac{4(1+x^2)^2}{(1-x^2)^4}\right)'=</math>
:<math>= \frac{(8(1+x^2)\cdot 2x)(1-x^2)^4 -4(1+x^2)^2\cdot 4(1-x^2)^3\cdot (-2x)}{(1-x^2)^8}=</math>
:<math>=\frac{16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3}{(1-x^2)^8}.</math>
:<math>g^{(5)}(x)=\left(\ln \frac{1+x}{1-x}\right)^{(5)}=\left(\frac{16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3}{(1-x^2)^8} \right)'=</math>
:<math>=\frac{[16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3]'(1-x^2)^8 - [16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3] ((1-x^2)^8)'}{(1-x^2)^{16}}=</math>
:<math>=\frac{[16(1+x^2)(1-x^2)^4+16x g_1(x) +32(1+x^2)^2 (1-x^2)^3+32x g_2(x)](1-x^2)^8 - [16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3] 8(1-x^2)^7 \cdot (-2x)}{(1-x^2)^{16}}=</math>
:<math>=\frac{[16(1+x^2)(1-x^2)^4+16x g_1(x) +32(1+x^2)^2 (1-x^2)^3+32x g_2(x)](1-x^2)^8 + 16x[16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3] (1-x^2)^7 }{(1-x^2)^{16}};</math>
:čia
:<math>g_1(x)=[(1+x^2)(1-x^2)^4]'=2x(1-x^2)^4 +(1+x^2)\cdot 4(1-x^2)^3 \cdot(-2x)=2x(1-x^2)^4 -8x(1+x^2)(1-x^2)^3,</math>
:<math>g_2(x)=[(1+x^2)^2 (1-x^2)^3]'=2(1+x^2)\cdot 2x \cdot (1-x^2)^3 +(1+x^2)^2 \cdot 3(1-x^2)^2 \cdot (-2x)=</math>
:<math>=4x(1+x^2)(1-x^2)^3 -6x(1+x^2)^2 (1-x^2)^2 .</math>
:Akivaizdu, kad <math>g_1(0)=0</math> ir <math>g_2(0)=0.</math>
:Randame funkcijos g(x) ir jos išvestinių reikšmes taške <math>x=0</math>:
:<math>g(0)=\ln \frac{1+0}{1-0}=\ln 1=0,</math>
:<math>g'(0)=\frac{2}{1-0^2}=2,</math>
:<math>g''(0)=\frac{4\cdot 0}{(1-0^2)^2}=0,</math>
:<math>g'''(0)=\frac{4(1+2\cdot 0^2+0^4)}{(1-0^2)^4}=4, </math>
:<math>g^{(4)}(0)=\frac{16\cdot 0(1+0^2)(1-x^2)^4 +32\cdot 0(1+0^2)^2 (1-0^2)^3}{(1-0^2)^8}=0.</math>
:<math>g^{(5)}(0)=\frac{[16(1+0^2)(1-0^2)^4+16\cdot 0\cdot g_1(0) +32(1+0^2)^2 (1-0^2)^3+32\cdot 0\cdot g_2(0)](1-0^2)^8 + 16\cdot 0[16\cdot 0(1+0^2)(1-0^2)^4 +32\cdot 0(1+0^2)^2 (1-0^2)^3] (1-0^2)^7 }{(1-0^2)^{16}}=</math>
:<math>=\frac{[16+32] +0}{1}=48.</math>
:Makloreno eilutės dėstinys su Lagranžo formos liekamuoju nariu bus šitoks:
:<math>\ln \frac{1+x}{1-x}=g(0)+\frac{g'(0)}{1!}x+\frac{g''(0)}{2!}x^2+ \frac{g'''(0)}{3!}x^3+...+ \frac{g^{(n)}(0)}{n!}x^n +\frac{g^{(n+1)}(\theta x)}{(n+1)!} x^{n+1}=</math>
:<math>=0+\frac{2}{1!}x+\frac{0}{2!}x^2+ \frac{4}{3!}x^3+\frac{0}{4!}x^4+\frac{48}{5!}x^5+...+ R_{2n+2}(x)=</math>
:<math>=2x+ \frac{2}{3}x^3+\frac{6\cdot 8}{5\cdot 4\cdot 3\cdot 2}x^5+...+ R_{2n+2}(x)=</math>
:<math>=2x+ \frac{2}{3}x^3+\frac{ 8}{5\cdot 4}x^5+...+ R_{2n+2}(x)=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+...+ \frac{2x^{2n+1}}{2n+1}+R_{2n+2}(x).</math>
:<math>\ln \frac{1+x}{1-x}=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+...+ \frac{2x^{2n+1}}{2n+1}+R_{2n+2}(x), \quad (8.88)</math>
:<math>R_{2n+2}(x)=-\frac{x^{2n+2}}{2n+2}\left[ \frac{1}{(1+\theta x)^{2n+2}} -\frac{1}{(1-\theta x)^{2n+2}}\right]; \quad (8.89)</math>
:skaičius <math>\theta</math> griežtai įterptas tarp nulio ir vieneto.
:[Naudotojas '''Paraboloid''' neįsivaizduoja iš kur ir kaip gauta tokia <math>R_{2n+2}(x)</math> išraiška. Ar ji teisinga, paaiškės apskaičiavus pavyzdį.]
:Skaičiuojant <math>\ln a</math> artinį, naudojama formulė
:<math>\ln a\approx\left(p -\frac{1}{2}\right)\ln 2 + 2\left( x+ \frac{x^3}{3}+\frac{x^5}{5}+...+ \frac{x^{2n+1}}{2n+1}\right), \quad (8.90)</math>
:kuri gaunama iš (8.87) lygybės, funkciją <math>\ln \frac{1+x}{1-x}</math> pakeitus šios funkcijos (8.88) Makloreno formulės dalimi be liekamojo nario <math>R_{2n+2}(x).</math> Pastebėsime, kad skaičius ''x'' apytikslėje <math>\ln a</math> formulėje randamas iš (8.86) formulės, atsižvelgus į (8.84) nelygybes, kurias turi tenkinti skaičius ''M''.
:Įvertinsime (8.90) formulės paklaidą. Kadangi skaičiaus <math>\ln a</math> artinio, apskaičiuoto pagal (8.90) formulę, ir tikslios reikšmės, gaunamos pagal (8.87) formulę, skirtumas lygus liekamajam nariui <math>R_{2n+2}(x),</math> tai, aiškinantis paklaidą, užtenka įvertinti tą liekamąjį narį.
:Iš pradžių išsiaiškinsime ''x'' kitimo ribas. Iš (8.86) formulės gauname
:<math>M=\frac{1}{\sqrt{2}} \, \frac{1+x}{1-x}, \quad (8.86)</math>
:<math>M\sqrt{2}= \frac{1+x}{1-x},</math>
:<math>M\sqrt{2}(1-x)= 1+x,</math>
:<math>M\sqrt{2}-1= x+xM\sqrt{2},</math>
:<math>x=\frac{M\sqrt{2}-1}{M\sqrt{2}+1}. \quad (8.91)</math>
:Jei ''M'' reikšmės tenkina (8.84) nelygybes, tai ''x'' tenkina sąlygą*
:<math>|x|<0.172. \quad (8.92)</math>
:[ <math>h'(M)=\left(\frac{M\sqrt{2}-1}{M\sqrt{2}+1}\right)'=\frac{\sqrt{2}(M\sqrt{2}+1)-(M\sqrt{2}-1)\sqrt{2}}{(M\sqrt{2}+1)^2} =\frac{(2M+\sqrt{2})-(2M-\sqrt{2})}{(M\sqrt{2}+1)^2} =\frac{2\sqrt{2}}{(M\sqrt{2}+1)^2}.</math>
:<math>\frac{2\sqrt{2}}{(M\sqrt{2}+1)^2}=0.</math> Matome, kad nėra tokių ''M'' reikšmių, su kuriom h'(M) būtų lygi nuliui. Todėl funkcija <math>h(M)=\frac{M\sqrt{2}-1}{M\sqrt{2}+1}</math> neturi maksimumo ir minimumo taškų.
:<math>h(1/2)=\frac{\frac{1}{2}\sqrt{2}-1}{\frac{1}{2}\sqrt{2}+1}=\frac{\frac{1}{\sqrt{2}}-1}{\frac{1}{\sqrt{2}}+1}=</math>
:=(0.70710678118654752440084436210485-1)/(0.70710678118654752440084436210485+1) =
:= -0.29289321881345247559915563789515/1.7071067811865475244008443621048 = -0.17157287525380990239662255158061.
:<math>h(1)=\frac{1\cdot \sqrt{2}-1}{1\cdot \sqrt{2}+1}=</math>
:=(1.4142135623730950488016887242097-1)/(1.4142135623730950488016887242097+1)=
:= 0.4142135623730950488016887242097/2.4142135623730950488016887242097 = 0.1715728752538099023966225515806.
:Taigi, matome, kad
:-0.17157287525380990239662255158061 < x < 0.1715728752538099023966225515806. Arba |x| < 0.171572875254.]
:Dabar pastebėsime, kad liekamasis narys <math>R_{2n+2}(x)</math> vienodai įvertinamas tiek tada, kai ''x'' reikšmės teigiamos, tiek tada, kai jos neigiamos (iš (8.89) formulės matyti, kad, ''x'' pakeitus -''x'', liekamojo nario <math>R_{2n+2}(x)</math> struktūra nepasikeičia). Todėl užtenka įvertinti <math>R_{2n+2}(x),</math> kai <math>x>0.</math> Atsižvelgę į tai ir į (8.92) nelygybę, dešiniojoje (8.89) formulės pusėje vietoj ''x'' rašome skaičių 0.172, vietoj trupmenos <math>\frac{1}{1+\theta x} </math> rašome vienetą, o vietoj <math>\frac{1}{1-\theta x} </math> – skaičių <math>\frac{1}{1-0.172} \;</math> ir gauname šitokį įvertį:
:<math>|R_{2n+2}(x)| \leq \frac{(0.172)^{2n+2}}{2n+2} \left[ 1+\frac{1}{(1-0.172)^{2n+2}}\right].</math>
:[Taip, čia laužtiniuose skliaustuose jau pliusas pasidarė. Tai arba (8.89) formulėje klaida arba čia.]
:Daugiklį <math>(0.172)^{2n+2}</math> įkelsime į laužtinius skliaustus. Kadangi <math>\frac{0.172}{1-0.172}< 0.208 \;</math> (0.172/(1-0.172)=0.172/0.828=~0.207729), tai
:<math>|R_{2n+2}(x)| \leq \frac{(0.172)^{2n+2} +(0.208)^{2n+2}}{2n+2}.\quad (8.93)</math>
:Skaičiuojant <math>\ln a</math> elektronine skaičiavimo mašina**, (8.90) formulėje dažniausiai imama <math>n=6.</math> Tuomet skaičiavimo tikslumas, kaip matyti iš (8.93), įvertinamas skaičiumi <math>\frac{(0.172)^{14} +(0.208)^{14}}{14}, \;</math> mažesniu kaip <math>1.625\cdot 10^{-10}.</math>
:[ (0.172^14 + 0.208^14)/14 = 2.1682237054688578614343997699803e-11 <math>\approx 2.1682237\cdot 10^{-11}.</math> ]
:[O jeigu ten turi būti minusas laužtiniuose skliaustuose kaip (8.89) formulėje, tai
:(0.172^14 - 0.208^14)/14 = -1.8848887113203326016424566362697e-11 <math>\approx -1.88488871132\cdot 10^{-11}.</math> Matome, kad nuo to nėra didelio skirtumo.]
________________
:''*'' Kadangi ''x'' yra argumento ''M'' funkcija, tai užtenka rasti maksimalią (8.91) funkcijos modulio reikšmę segmente <math>\left[\frac{1}{2}; \; 1 \right].</math>
:''**'' Taip skaičiuojamas <math>\ln a</math> elektronine skaičiavimo mašina БЭСМ-6.
===Pavyzdžiai===
*Apskaičiuosime ln(a)=ln(143). Pagal (8.83) formulę
:[<math>a=2^p M. \quad (8.83)</math>]
:<math>143=2^{8} M,</math>
:<math>M=\frac{143}{256}=0.55859375.</math>
:Toliau, pagal (8.87) formulę
:[<math>\ln a=\left(p -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}. \quad (8.87)</math>]
:<math>\ln 143=\left(8 -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}. </math>
:<math>\left(8 -\frac{1}{2}\right)\ln 2=7.5\ln 2=</math> 7.5*0.69314718055994530941723212145818 = 5.1986038541995898206292409109363.
:Tiksli ln(143) reikšmė yra ln(143)=4.9628446302599072801154310195304.
:Iš (8.91) formulės randame ''x'':
:<math>x=\frac{M\sqrt{2}-1}{M\sqrt{2}+1}=\frac{0.55859375\sqrt{2}-1}{0.55859375\sqrt{2}+1}=</math>
:= (0.55859375*1.4142135623730950488016887242097 - 1)/(0.55859375*1.4142135623730950488016887242097+1) =
:= -0.11733662705136264741194733209931.
:Toliau pagal (8.88) formulę apskaičiuosime <math>\ln \frac{1+x}{1-x}, \,</math> kai n=6.
:<math>\ln \frac{1+x}{1-x}=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+...+ \frac{2x^{2n+1}}{2n+1}=</math>
:<math>=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+\frac{ 2x^7}{7}+\frac{ 2x^9}{9}+\frac{ 2x^{11}}{11}+\frac{ 2x^{13}}{13}=2\left(x+ \frac{x^3}{3}+\frac{ x^5}{5}+\frac{ x^7}{7}+\frac{ x^9}{9}+\frac{ x^{11}}{11}+\frac{ x^{13}}{13} \right)=</math>
:= 2*(-0.11733662705136264741194733209931 -0.11733662705136264741194733209931^3/3 -0.11733662705136264741194733209931^5/5
:-0.11733662705136264741194733209931^7/7 -0.11733662705136264741194733209931^9/9 -0.11733662705136264741194733209931^11/11
:-0.11733662705136264741194733209931^13/13) =
:(nukopijavus viską nuo "2" iki ženklo "=" ir įdėjus (padarius "Paste") į ''Windows 10'' kalkuliatorių gaunamas žemiau esantis atsakymas)
:= -0.23575922393968105542703851052716.
:Pridėjus gautą atsakymą prie 7.5*ln(2) reikšmės, gauname ln(a)=ln(143) artinį:
:<math>\ln 143=\left(8 -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}= 7.5\ln 2+\ln \frac{1+x}{1-x}=</math>
:= 5.1986038541995898206292409109363 + (-0.23575922393968105542703851052716) = 4.9628446302599087652022024004091.
:Atėmę gautą ln(143) reikšmę iš tikslios ln(143) reikšmės, gauname
:4.9628446302599072801154310195304 - 4.9628446302599087652022024004091 = -0.0000000000000014850867713808787 = <math>\approx -1.48508677\cdot 10^{-15}.</math>
:<math>\frac{1+x}{1-x}=</math> (1+(-0.11733662705136264741194733209931))/(1-(-0.11733662705136264741194733209931)) =
:= (1-0.11733662705136264741194733209931)/(1+0.11733662705136264741194733209931) = 0.78997085710684606241656831078901.
:Tiksli ln(0.78997085710684606241656831078901) reikšmė yra tokia:
:ln(0.78997085710684606241656831078901) = -0.23575922393968254051380989140588.
:<math>\ln \frac{1+x}{1-x}\,</math> (su x=-0.11733662705136264741194733209931) paklaida yra tokia:
:-0.23575922393968254051380989140588 - (-0.23575922393968105542703851052716) =
:= -0.23575922393968254051380989140588 + 0.23575922393968105542703851052716 = -0.00000000000000148508677138087872 = <math>\approx -1.48508677\cdot 10^{-15}.</math>
:Pagal (8.89) formulę
:<math>R_{2n+2}(x)=-\frac{x^{2n+2}}{2n+2}\left[ \frac{1}{(1+\theta x)^{2n+2}} -\frac{1}{(1-\theta x)^{2n+2}}\right]. \quad (8.89)</math>
:<math>|R_{2n+2}(x)|<\frac{(-0.117336627)^{2n+2}}{2n+2}\left[ \frac{1}{(1+(-0.117336627))^{2n+2}} -1\right]= \frac{(-0.117336627)^{2\cdot 6+2}}{2\cdot 6+2}\left[ \frac{1}{(1-0.117336627)^{2\cdot 6+2}} -1\right]=</math>
:<math>= \frac{(-0.117336627)^{14}}{14}\left[ \frac{1}{(1-0.117336627)^{14}} -1\right]=</math>
:= (-0.11733662705136264741194733209931)^14 * (1/(1-0.11733662705136264741194733209931)^14 -1)/14 =
:= 3.1744477658835444278622203928479e-14 <math>\approx 3.1744477658835444\cdot 10^{-14}.</math>
:Matome, kad paklaida įvertinta teisingai, nes
:<math>1.48508677\cdot 10^{-15} < 3.1744477658835444\cdot 10^{-14}.</math>
:Pastebėsime, kad
:<math>\frac{(-0.117336627)^{14}}{14} =</math> 6.6979571136742061476086008278822e-15 <math>\approx 6.6979571136742\cdot 10^{-15}</math>;
:<math>\frac{(-0.117336627)^{15}}{15} =</math> -0.11733662705136264741194733209931^15/15 = -7.3352131612966428681484668924553e-16.
:Todėl (8.88) formulėje liekamąjį narį tikriausiai galima įvertinti taip:
:<math>|R_{2n+2}(x)|< |\frac{x^{2n+2}}{2n+2}|\approx 6.6979571136742\cdot 10^{-15}.</math>
:Arba garantuotai visais atvejais R(x) turėtų būti teisingas, kai
:<math>|R(x)|< |\frac{x^{2n+1}}{2n+1}|.</math>
:Nes <math>\frac{(-0.117336627)^{13}}{13} =</math> -0.11733662705136264741194733209931^13/13 = -6.1474279304103020252424035678064e-14.
==2. Skaičiaus arctg(x) radimas.==
:Skaičiuojant <math>\operatorname{arctg}\alpha,</math> užtenka nagrinėti teigiamas argumento reikšmes, nes, kai <math>|\alpha|=x,</math> gauname
:<math>\operatorname{arctg}\alpha=\sgn\alpha \cdot \operatorname{arctg} x.</math>
:Aprašysime standartines transformacijas, kuriomis <math> \operatorname{arctg} x</math> skaičiavimas, kai argumento ''x'' reikšmės ne mažesnės kaip <math>\frac{1}{8},</math> pakeičiamas arktangento skaičiavimu, kai argumento reikšmės mažesnės už <math>\frac{1}{8}.</math>
:Iš pradžių tarkime, kad <math>x\geq 1.</math> Sakykime, <math>y=\operatorname{arctg} x, \;</math> t. y. <math>x=\operatorname{tg} y, \;</math> o <math>x_1=\operatorname{tg}(y-\operatorname{arctg} 1).</math> Iš paskutinės lygybės gauname
:[pasinaudodami formule (iš https://lt.wikibooks.org/wiki/Matematika/Trigonometrinės_formulės) <math> \tan(\alpha-\beta)=\frac{\tan\alpha -\tan\beta }{1 + \tan\alpha \tan\beta} . \quad (7)</math>]
:<math>x_1=\operatorname{tg}(y-\operatorname{arctg} 1)=\frac{\operatorname{tg} y -\operatorname{tg}(\operatorname{arctg} 1)}{1+\operatorname{tg} y \cdot \operatorname{tg}(\operatorname{arctg} 1)}=\frac{\operatorname{tg} y - 1}{1+\operatorname{tg} y \cdot 1}=\frac{\operatorname{tg} y - 1}{\operatorname{tg} y + 1}=\frac{x - 1}{x + 1}<1.</math>
:Kadangi
:<math>\operatorname{arctg} x_1=\operatorname{arctg}[\operatorname{tg}(y-\operatorname{arctg} 1)]=y-\operatorname{arctg} 1=\operatorname{arctg} x -\operatorname{arctg} 1,</math>
:<math>\operatorname{arctg} x=\operatorname{arctg} 1 +\operatorname{arctg} x_1=\frac{\pi}{4} +\operatorname{arctg} x_1,</math>
:tai, norint apskaičiuoti <math>\operatorname{arctg} x,</math> kai <math>x\geq 1,</math> pakanka apskaičiuoti <math>\operatorname{arctg} x_1,</math> kai <math>0<x_1<1.</math>
:Dabar aptarsime atvejį, kai argumentas tenkina nelygybes <math>\frac{1}{8} \leq x<1.</math>
:Sakykime, <math>k_1=1, \;\; k_2=\frac{1}{2}, \;\; k_3=\frac{1}{4}, \;\; k_4=\frac{1}{8}.</math> Savaime aišku, su kokia nors <math>i=1, \; 2, \; 3, \; 4 \;</math> reikšme yra teisingos nelygybės
:<math>k_i\leq x<2k_i. \quad (8.94)</math>
:[Kai ''x'' daugiau už 1, tai ''x'' gali būti daugiau už <math>2k_i.</math> Tiksliau, kai ''x''>2, tai <math>x>2k_1=2.</math>]
:Tarkime, kad <math>y=\operatorname{arctg} x, \;</math> t. y. <math>x=\operatorname{tg} y, \;</math> o <math>x_i=\operatorname{tg}(y-\operatorname{arctg} k_i).</math> Iš paskutinės lygybės gauname
:[pasinaudodami formule <math> \tan(\alpha-\beta)=\frac{\tan\alpha -\tan\beta }{1 + \tan\alpha \tan\beta} </math>]
:<math>x_i=\operatorname{tg}(y-\operatorname{arctg} k_i)=\frac{\operatorname{tg} y -\operatorname{tg}(\operatorname{arctg} k_i)}{1+\operatorname{tg} y \cdot \operatorname{tg}(\operatorname{arctg} k_i)}=\frac{\operatorname{tg} y - k_i}{1+\operatorname{tg} y \cdot k_i}=\frac{x - k_i}{1+k_i x}.</math>
:Kadangi <math>x>0,</math> tai <math>1+k_i x>1.</math> Be to, iš dešiniosios (8.94) nelygybės išplaukia <math>x-k_i < 2k_i- k_1=k_i.</math> Todėl iš paskutinės <math>x_i</math> išraiškos gauname nelygybę <math>x_i<k_i.</math> Kadangi
:<math>\operatorname{arctg} x_i=\operatorname{arctg}[\operatorname{tg}(y-\operatorname{arctg} k_i)]=y-\operatorname{arctg} k_i=\operatorname{arctg} x -\operatorname{arctg} k_i,</math>
:<math>\operatorname{arctg} x=\operatorname{arctg} k_i +\operatorname{arctg} x_i,</math>
:tai <math>\operatorname{arctg} x</math> skaičiavimas, kai ''x'' tenkina (8.94) nelygybes, pakeičiamas <math>\operatorname{arctg} x_i</math> skaičiavimu, kai <math>0< x_i < k_i.</math>
:Jei aprašytąsias argumento ''x'' transformacijas pakartosime daugių daugiausia keturis kartus, tai <math>\operatorname{arctg} x</math> skaičiavimą, kai ''x'' reikšmės priklauso pusintervaliui <math>\frac{1}{8} \leq x<1,</math> pakeisime arktangento skaičiavimu, kai argumento reikšmės mažesnės už <math>\frac{1}{8}.</math>
:[Ten klaidelė. Maksimum keturių transformacijų reikia, kai ''x'' reikšmės priklauso pusintervaliui <math>\frac{1}{8} \leq x,</math> o kai ''x'' reikšmės priklauso pusintervaliui <math>\frac{1}{8} \leq x<1,</math> tai tada daugių daugiausia gali prireikti 3 transformacijos.]
:Skaičiuojant <math>\operatorname{arctg} x,</math> kai <math>x< \frac{1}{8},</math> naudojama Makloreno formulė (kuri išvedama čia: https://lt.wikibooks.org/wiki/Matematika/Matematinės_eilutės)
:<math>\operatorname{arctg} x= x-\frac{x^3}{3}+\frac{x^5}{5}-\frac{x^7}{7}+...+(-1)^n \frac{x^{2n+1}}{2n+1} +R_{2n+2}(x).</math>
:Dažniausiai šioje formulėje imama <math>n=6</math> ir atmetamas liekamasis narys (taip, pavyzdžiui, daroma skaičiuojant elektronine mašina БЭСМ-6). Logaritmo ir arktangento skaičiavimo programa yra bendra. Naudojant tą programą arktangentui skaičiuoti, reikia, kad gretimi nariai <math>\frac{x^{2n+1}}{2n+1}</math> būtų priešingų ženklų.
==Pavyzdžiai==
*Apskaičiuosime <math>\operatorname{arctg} 5.</math> Čia <math>x=5.</math> Tada
:<math>x_i=\frac{x - k_i}{1+k_i x}.</math>
:Pradėsime nuo to, kad <math>k_1=1.</math> Tada
:<math>x_1=\frac{x - k_1}{1+k_1 x}=\frac{x - 1}{1+ x}=\frac{5 - 1}{1+ 5}=\frac{4}{6}=\frac{2}{3}.</math>
:Toliau
:<math>\operatorname{arctg} x=\operatorname{arctg} k_i +\operatorname{arctg} x_i=\operatorname{arctg} k_1 +\operatorname{arctg} x_1=\operatorname{arctg} 1 +\operatorname{arctg} \frac{2}{3}=\frac{\pi}{4} +\operatorname{arctg} \frac{2}{3}.</math>
:Toliau imsime <math>k_2=\frac{1}{2}.</math> Tada
:<math>x_2=\frac{x_1 - k_2}{1+k_2 x_1}=\frac{x_1 - \frac{1}{2}}{1+\frac{1}{2} x_1}=\frac{\frac{2}{3} - \frac{1}{2}}{1+\frac{1}{2} \cdot \frac{2}{3}}=\frac{\frac{4-3}{6} }{1+ \frac{1}{3}}=\frac{\frac{1}{6} }{\frac{3+1}{3}}=\frac{\frac{1}{6} }{\frac{4}{3}}=\frac{1}{6} \cdot\frac{3}{4}=\frac{1}{8}.</math>
:Toliau
:<math>\operatorname{arctg} \frac{2}{3}=\operatorname{arctg} x_1=\operatorname{arctg} k_2 +\operatorname{arctg} x_2=\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{1}{8}.</math>
:Toliau imsime <math>k_4=\frac{1}{8}.</math> Tada
:<math>x_4=\frac{x_2 - k_4}{1+k_4 x_2}=\frac{x_2 - \frac{1}{8}}{1+\frac{1}{8} x_2}=\frac{\frac{1}{8} - \frac{1}{8}}{1+\frac{1}{8} \cdot \frac{1}{8}}=\frac{0 }{1+ \frac{1}{64}}=\frac{0 }{\frac{64+1}{64}}=\frac{0 }{\frac{65}{64}}=0.</math>
:Ir gauname
:<math>\operatorname{arctg} \frac{1}{8}=\operatorname{arctg} x_2=\operatorname{arctg} k_4 +\operatorname{arctg} x_4=\operatorname{arctg} \frac{1}{8} +\operatorname{arctg} 0=\operatorname{arctg} \frac{1}{8} +0=\operatorname{arctg} \frac{1}{8}.</math>
:Tokiu budu
:<math>\operatorname{arctg} 5=\operatorname{arctg} x=\frac{\pi}{4} +\operatorname{arctg} \frac{2}{3}=\frac{\pi}{4} +\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{1}{8}.</math>
:<math>\frac{\pi}{4}=</math> 0.78539816339744830961566084581988;
:<math>\operatorname{arctg} \frac{1}{2}=</math> 0.46364760900080611621425623146121;
:<math>\operatorname{arctg} \frac{1}{8}=</math> 0.12435499454676143503135484916387.
:Šiame pavyzdyje skaičiuoti Makloreno eilutės nereikia su ''x'' reikšme mažesne už 1/8, nes <math>x_4=0.</math>
:Taigi,
:arctg(5) = 0.78539816339744830961566084581988 + 0.46364760900080611621425623146121 + 0.12435499454676143503135484916387 =
:= 1.373400766945015860861271926445.
:Tiksli arctg(5) reikšmė iš kalkuliatoriaus yra tokia:
:arctg(5) = 1.373400766945015860861271926445.
:Gavome tą patį atsakymą.
*Apskaičiuosime <math>\operatorname{arctg} 7.</math> Čia <math>x=7.</math>
:Pradėsime nuo to, kad <math>k_1=1.</math> Tada
:<math>x_1=\frac{x - k_1}{1+k_1 x}=\frac{x - 1}{1+ x}=\frac{7 - 1}{1+ 7}=\frac{6}{8}=\frac{3}{4}.</math>
:Toliau
:<math>\operatorname{arctg} x=\operatorname{arctg} k_1 +\operatorname{arctg} x_1=\operatorname{arctg} 1 +\operatorname{arctg} \frac{3}{4}=\frac{\pi}{4} +\operatorname{arctg} \frac{3}{4}.</math>
:Toliau imsime <math>k_2=\frac{1}{2}.</math> Tada
:<math>x_2=\frac{x_1 - k_2}{1+k_2 x_1}=\frac{x_1 - \frac{1}{2}}{1+\frac{1}{2} x_1}=\frac{\frac{3}{4} - \frac{1}{2}}{1+\frac{1}{2} \cdot \frac{3}{4}}=\frac{\frac{3-2}{4} }{1+ \frac{3}{8}}=\frac{\frac{1}{4} }{\frac{8+3}{8}}=\frac{\frac{1}{4} }{ \frac{11}{8}}=\frac{1}{4} \cdot\frac{8}{11}=\frac{2}{11}=0.(18).</math>
:Tuo tarpu <math>k_3=\frac{1}{4}=0.25</math> yra daugiau už 0.(18). Todėl skaičiavimus su <math>k_3=\frac{1}{4}</math> praleisime ir iškart skaičiuosime toliau su <math>k_4=\frac{1}{8}=0.125</math> (nes 0.125 yra mažiau nei 2/11=0.(18)). Taigi,
:<math>x_4=\frac{x_2 - k_4}{1+k_4 x_2}=\frac{x_2 - \frac{1}{8}}{1+\frac{1}{8} x_2}=\frac{\frac{2}{11} - \frac{1}{8}}{1+\frac{1}{8} \cdot \frac{2}{11}}=\frac{\frac{16-11}{88} }{1+ \frac{2}{88}}=\frac{\frac{5}{88} }{\frac{88+2}{88}}=\frac{\frac{5}{88} }{\frac{90}{88}}=\frac{5}{88}\cdot \frac{88}{90}=\frac{5}{90}=\frac{1}{18}=0.0(5).</math>
:[1/18 = 0.05555555555555555555555555555556.]
:Toliau galime skaičiuoti pagal Makloreno formulę,
:<math>\operatorname{arctg} x= x-\frac{x^3}{3}+\frac{x^5}{5}-\frac{x^7}{7}+...+(-1)^n \frac{x^{2n+1}}{2n+1} +R_{2n+2}(x),</math>
:imdami n=6 ir vietoje ''x'' įrašę <math>x_4.</math> Tada gauname:
:<math>\operatorname{arctg} \frac{1}{18}=\operatorname{arctg} x_4= x_4-\frac{x_4^3}{3}+\frac{x_4^5}{5}-\frac{x_4^7}{7}+\frac{x_4^9}{9}-\frac{x_4^{11}}{11}+ \frac{x_4^{13}}{13} =</math>
:= 1/18 - 1/18^3/3 + 1/18^5/5 - 1/18^7/7 + 1/18^9/9 - 1/18^11/11 + 1/18^13/13 = 0.05549850524571683556705277298107.
:(Kad gauti tokį atsakymą greitai, tereikia aukščiau esančią eilutę nukopijuoti ir įdėti į ''Windows 10'' kalkuliaorių, padarius "Paste").
:Atėmę gautą arctg(1/18) reikšmę iš tikslios arctg(1/18) reikšmės, gauname paklaidą:
:0.05549850524571683555719814809224 - 0.05549850524571683556705277298107 = -0.00000000000000000000985462488883 = <math>= -9.85462488883\cdot 10^{-21}.</math>
:Kaip ir su natūrinio logaritmo skaičiavimu, liekamąjį narį galima įvertinti taip:
:<math>|R_{2n+2}(x_4)|< |\frac{x_4^{2n+2}}{2n+2}|=</math> 1/18^14/14 = 1.9057103509769875767803163358316e-19 <math>\approx 1.90571035\cdot 10^{-19}.</math>
:Tada
:<math>\operatorname{arctg} \frac{3}{4}=\operatorname{arctg} x_1=\operatorname{arctg} k_2 +\operatorname{arctg} x_2=\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{2}{11};</math>
:<math>\operatorname{arctg} \frac{2}{11}=\operatorname{arctg} x_2=\operatorname{arctg} k_4 +\operatorname{arctg} x_4=\operatorname{arctg} \frac{1}{8} +\operatorname{arctg} \frac{1}{18}.</math>
:Todėl
:<math>\operatorname{arctg} 7=\operatorname{arctg} x=\frac{\pi}{4} +\operatorname{arctg} \frac{3}{4}=\frac{\pi}{4} +\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{2}{11}=</math>
:<math>=\frac{\pi}{4} +\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{1}{8} +\operatorname{arctg} \frac{1}{18}= </math>
:= 0.78539816339744830961566084581988 + 0.46364760900080611621425623146121 +0.12435499454676143503135484916387 + 0.05549850524571683556705277298107 = 1.428899272190732696428324699426.
:Atėmę ką tik gautą arctg(7) reikšmę iš kalkuliatoriaus tikslios arctg(7) reikšmės, gauname paklaidą:
:1.4288992721907326964184700745372 - 1.428899272190732696428324699426 = -9.8546248888316409091970590727231e-21 =
:= -0.0000000000000000000098546248888 <math>\approx -9.8546248888\cdot 10^{-21}.</math>
:Pastabos. Čia visos arkatangento reikšmės skaičiuojamos radianais. Kad kalkuliatorius skaičiuotų radianais, reikia paspausti mygtuką, kuris keičia tarp laipsnių, radianų ir gradianų (iš "DEG", "RAD" ir "GRAD" reikia išrinkti, kad rodytų "RAD"). O tam, kad kalkuliatorius apskaičiuotų arktangento reikšmę, reikia iš pradžių įrašyti skaičių į kalkuliatorių ir paskui ''Windows 10'' kalkuliatoriuje (kuris turi būti nustatytas [vienu paspaudimu] per patį kalkuliatorių, kad būtų "Scientific") paspausti "Trigonometry", vėliau paspausti <math>2^{nd}</math> ir tada paspausti <math>\tan^{-1}</math>. Tada ir bus gauta arktangento reikšmė radianais, jei buvo pasirinkta "RAD".
:<math>\operatorname{arctg} 1 = </math> 0.78539816339744830961566084581988.
:<math>\operatorname{arctg} 0.5 = </math> 0.46364760900080611621425623146121.
:<math>\operatorname{arctg} 0.25 =</math> 0.24497866312686415417208248121128.
:<math>\operatorname{arctg} 0.125 =</math> 0.12435499454676143503135484916387.
*<math>\operatorname{arctg} 0.9.</math>
:<math>\operatorname{arctg} a = \operatorname{arctg} 0.9 - \operatorname{arctg} 0.5.</math>
:<math>\tan(\alpha-\beta) = \tan\frac{\tan\alpha - \tan\beta}{1+\tan\alpha \tan\beta}. </math>
:<math>a = \operatorname{tg}\left( \operatorname{arctg} 0.9 - \operatorname{arctg} 0.5 \right) =</math>
:<math>=\tan\frac{\tan(\operatorname{arctg} 0.9) - \tan(\operatorname{arctg} 0.5)}{1+\tan(\operatorname{arctg} 0.9) \tan(\operatorname{arctg} 0.5)}= \tan\frac{0.9 - 0.5}{1+ 0.9\cdot 0.5}= \tan\frac{0.4}{1+ 0.45}=\tan\frac{0.4}{1.45}=</math>
:= 0.27586206896551724137931034482759.
:<math>\operatorname{arctg} (0.27586206896551724137931034482759)=</math>
:= 0.27586206896551724137931034482759 - 0.27586206896551724137931034482759^3/3 + 0.27586206896551724137931034482759^5/5 - 0.27586206896551724137931034482759^7/7 + 0.27586206896551724137931034482759^9/9 - 0.27586206896551724137931034482759^11/11 + 0.27586206896551724137931034482759^13/13 =
:= '''0.26916749'''304043554450715959336444.
:<math>\operatorname{arctg} (0.27586206896551724137931034482759)=</math>
:= '''0.26916749'''278570047542653584127307.
:<math>\operatorname{arctg} (0.27586206896551724137931034482759) + \operatorname{arctg} 0.5 =</math>
:= 0.26916749304043554450715959336444 + 0.46364760900080611621425623146121 =
:= '''0.73281510'''204124166072141582482565.
:<math>\operatorname{arctg} 0.9 =</math>
:= '''0.73281510'''178650659164079207273428.
:<math>\operatorname{arctg} b = \operatorname{arctg} a - \operatorname{arctg} 0.25 =</math>
:<math>b = \operatorname{tg}\left( \operatorname{arctg} (0.278299659434360506011219170928) - \operatorname{arctg} 0.25 \right) =</math>
:<math>= \tan\frac{0.26916749304043554450715959336444 - 0.25}{1+ 0.26916749304043554450715959336444\cdot 0.25}=</math>
:<math>\tan\frac{0.01916749304043554450715959336444}{1 + 0.06729187326010888612678989834111} = \tan\frac{0.01916749304043554450715959336444}{1.06729187326010888612678989834111}=</math>
:= 0.019167493040435544507159593364/1.067291873260108886126789898341 = 0.0179589983964623044012469281158.
:<math>\operatorname{arctg} (0.0179589983964623044012469281158)=</math>
:= 0.0179589983964623044012469281158 - 0.0179589983964623044012469281158^3/3 + 0.0179589983964623044012469281158^5/5 - 0.0179589983964623044012469281158^7/7 + 0.0179589983964623044012469281158^9/9 - 0.0179589983964623044012469281158^11/11 + 0.0179589983964623044012469281158^13/13 - 0.0179589983964623044012469281158^15/15 =
:= '''0.017957068024287386522471323702'''2.
:<math>\operatorname{arctg} (0.0179589983964623044012469281158)=</math>
:= '''0.017957068024287386522471323702'''33.
:<math>\operatorname{arctg} 0.9 = \operatorname{arctg} 0.5 + \operatorname{arctg} a = </math>
:<math>\operatorname{arctg} 0.9 = \operatorname{arctg} 0.5 + \operatorname{arctg} 0.25 + \operatorname{arctg} b = </math>
:= 0.46364760900080611621425623146121 + 0.24497866312686415417208248121128 + 0.0179570680242873865224713237022 =
:= '''0.7'''2658334015195765690881003637469.
:<math>\operatorname{arctg} 0.9 =</math>
:= '''0.7'''3281510178650659164079207273428.
:a = 0.27586206896551724137931034482759.
:<math>\operatorname{arctg} a=</math>
:= 0.26916749304043554450715959336444.
:<math>\operatorname{arctg} a = \operatorname{arctg} 0.25 + \operatorname{arctg} b =</math>
:= 0.24497866312686415417208248121128 + 0.0179570680242873865224713237022 =
:= '''0.26'''293573115115154069455380491348.
:Kalkuliatoriaus:
:arctg(0.27586206896551724137931034482759) =
:= '''0.26'''916749278570047542653584127307.
*<math>\operatorname{arctg} 1.6.</math>
:<math>\operatorname{arctg} a = \operatorname{arctg} 1.6 - \operatorname{arctg} 1.</math>
:<math>\tan(\alpha-\beta) = \tan\frac{\tan\alpha - \tan\beta}{1+\tan\alpha \tan\beta}. </math>
:<math>a = \operatorname{tg}\left( \operatorname{arctg} 1.6 - \operatorname{arctg} 1 \right) =</math>
:<math>=\tan\frac{\tan(\operatorname{arctg} 1.6) - \tan(\operatorname{arctg} 1)}{1+\tan(\operatorname{arctg} 1.6) \tan(\operatorname{arctg} 1)}= \tan\frac{1.6 - 1}{1+ 1.6\cdot 1}= \tan\frac{0.6}{2.6}=</math>
:= 0.23076923076923076923076923076923.
:<math>\operatorname{arctg} (0.23076923076923076923076923076923)=</math>
:= 0.23076923076923076923076923076923 - 0.23076923076923076923076923076923^3/3 + 0.23076923076923076923076923076923^5/5 - 0.23076923076923076923076923076923^7/7 + 0.23076923076923076923076923076923^9/9 - 0.23076923076923076923076923076923^11/11 + 0.23076923076923076923076923076923^13/13 - 0.23076923076923076923076923076923^15/15 =
:= '''0.226798848053'''04763076023291256713.
:<math>\operatorname{arctg} (0.23076923076923076923076923076923)=</math>
:= '''0.226798848053'''88587364415262941821.
:<math>\operatorname{arctg} 1.6 = \operatorname{arctg} 1 + \operatorname{arctg} a =</math>
:= 0.78539816339744830961566084581988 + 0.22679884805304763076023291256713 =
:= '''1.01219701145'''0495940375893758387.
:Kalkuliatoriaus:
:arctg(1.6) =
:= '''1.01219701145'''13341832598134752381.
:<math>\operatorname{arctg} b = \operatorname{arctg} a - \operatorname{arctg} 0.125.</math>
:<math>\operatorname{arctg} b = \operatorname{arctg} 0.23076923076923076923076923076923 - \operatorname{arctg} 0.125.</math>
:<math>\tan(\alpha-\beta) = \tan\frac{\tan\alpha - \tan\beta}{1+\tan\alpha \tan\beta}. </math>
:<math>b = \operatorname{tg}\left( \operatorname{arctg} 0.23076923076923076923076923076923 - \operatorname{arctg} 0.125 \right) =</math>
:<math>=\tan\frac{\tan(\operatorname{arctg} 0.23076923076923076923076923076923) - \tan(\operatorname{arctg} 0.125)}{1+\tan(\operatorname{arctg} 0.23076923076923076923076923076923) \tan(\operatorname{arctg} 0.125)}=</math>
:<math>= \tan\frac{0.23076923076923076923076923076923 - 0.125}{1+ 0.23076923076923076923076923076923\cdot 0.125}= \tan\frac{0.10576923076923076923076923076923}{1+0.02884615384615384615384615384615}=</math>
:0.105769230769230769230769230769/1.028846153846153846153846153846 =
:= 0.10280373831775700934579439252316.
:<math>\operatorname{arctg} (0.10280373831775700934579439252316)=</math>
:= 0.10280373831775700934579439252316 - 0.10280373831775700934579439252316^3/3 + 0.10280373831775700934579439252316^5/5 - 0.10280373831775700934579439252316^7/7 + 0.10280373831775700934579439252316^9/9 - 0.10280373831775700934579439252316^11/11 + 0.10280373831775700934579439252316^13/13 - 0.10280373831775700934579439252316^15/15 =
:= '''0.10244385350712443'''768036939404847.
:Kalkuliatoriaus:
:<math>\operatorname{arctg} (0.10280373831775700934579439252316)=</math>
:= '''0.10244385350712443'''861279778025414.
:<math>\operatorname{arctg} 1.6 = \operatorname{arctg} 1 + \operatorname{arctg} a = </math>
:<math>\operatorname{arctg} 1.6 = \operatorname{arctg} 1 + \operatorname{arctg} 0.125 + \operatorname{arctg} b = </math>
:= 0.78539816339744830961566084581988 + 0.12435499454676143503135484916387 + 0.10244385350712443768036939404847 =
:= '''1.01219701145133418'''23273850890322.
:Kalukuliatoriaus:
:<math>\operatorname{arctg} 1.6 =</math>
:= '''1.01219701145133418'''32598134752381.
:'''Free Pacal''' kodas, skaičiuoti arctg(a):
var a:real; b:real; c:real; d:real; g:real; f:real;
begin
//for a:=2 to 1000000000 do
begin
a:=7.0;
b:=(a-1.0)/(a+1.0);
c:=(b-0.5)/(1.0+b*0.5);
d:=(c-0.25)/(1.0+c*0.25);
g:=(d-0.125)/(1.0+0.125*d);
f:=g - g*g*(g/3 + g*g* (g/5-g*g* (g/7 + g*g* (g/9 -g*g*g/11))))+1.61837943007188001503;
// arctan(1)=pi/4 = 0.78539816339744830961566
// arctan(1/2) = 0.46364760900080611621425
// arctan(1/4) = 0.244978663126864154172
// arctan(1/8) = 0.12435499454676143503135
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
//f:=f+1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:Resultatas 1.4290003193181138E+000.
:Skaičiuojama iki (a^11)/11.
:Kalkuliatoriaus arctan(7) reikšmė yra 1.4288992721907326964184700745372.
:Šituo budu apskaičiuota kalkuliatoriumi arctan(7) reikšmė iki (x_4^11)/11 yra 1.4288992722261246066538981860865.
:Su kalkuliatoriumi skaičiuojant viską gaunama 10 pirmų teisingų skaitmenų. '''Free Pascal''' kodas duoda tik 3 pirmus teisingus skaitmenis. Looks like Pascal (or FPU) can't comprehend too complex code.
:Kodas skaičiuoja teisingai, nepaisant ar kuri nors iš reikšmių c, d, g gausis neigiama ar teigiama (jei kuri nors gaunasi neigiama, tai tiesiog dažniausiai (arba visada) prarandama kažkiek tikslumo).
:a=7.0;
:b=(a-1.0)/(a+1.0) = 6/8 = 0.75.
:c=(b-0.5)/(1.0+b*0.5) = (0.75-0.5)/(1.0+0.75*0.5) = 0.18181818181818181818181818181818.
:d=(c-0.25)/(1.0+c*0.25)=
:= (0.18181818181818181818181-0.25)/(1.0+0.18181818181818181818181*0.25)= -0.06521739130434782608696447542533.
:g=(d-0.125)/(1.0+0.125*d) =
:= (-0.06521739130434782608696-0.125)/(1.0-0.06521739130434782608696*0.125) = -0.19178082191780821917808578269844.
:Šis '''Free Pascal''' kodas:
var a:real; b:real; f:real; d:longint; h:real;
begin
//for a:=2 to 1000000000 do
begin
a:=7.0;
begin
b:=a;
h:=2.0;
for d:=1 to 4 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
end;
f:=b - b*b*(b/3.0 + b*b* (b/5.0-b*b* (b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:Duoda tą patį rezultatą 1.4290003193181138E+000.
:Reikšmė b kode apskaičiuota teisingai ir yra lygi -1.9178082191780821E-001 arba
:a:=7.0;
:b:=(a-1.0)/(a+1.0) = 6/8 = 0.75.
:c:=(b-0.5)/(1.0+b*0.5) = (0.75-0.5)/(1.0+0.75*0.5) = 0.18181818181818181818181818181818.
:d:=(c-0.25)/(1.0+c*0.25)=
:= (0.18181818181818181818181-0.25)/(1.0+0.18181818181818181818181*0.25)= -0.06521739130434782608696447542533.
:g:=(d-0.125)/(1.0+0.125*d) =
:= (-0.06521739130434782608696-0.125)/(1.0-0.06521739130434782608696*0.125) = -0.19178082191780821917808578269844.
:Reikšmė lygiai tokia pati kaip ir preitame kode reikšmė g.
:Tikslumo praradimai panašu prasideda skaičiuojant reikšmę f. Skaičiavimas su kalkuliatoriumi:
-0.19178082191780821917808219178082 - (-0.19178082191780821917808219178082)^3/3 +(-0.19178082191780821917808219178082)^5/5 - (-0.19178082191780821917808219178082)^7/7 +(-0.19178082191780821917808219178082)^9/9 - (-0.19178082191780821917808219178082)^11/11 = -0.18948015784575540837945622156966.
-0.18948015784575540837945622156966 + 1.6183794300718800150333544076562 =1.4288992722261246066538981860865.
:Čia 10 pirmų skaitmenų teisingi.
:Toks '''Free Pascal''' kodas:
var a:real; b:real; f:real; d:longint; h:real;
begin
//for a:=2 to 1000000000 do
begin
a:=7.0;
begin
b:=a;
h:=2.0;
for d:=1 to 2 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
end;
f:=b - b*b*(b/3.0 + b*b* (b/5.0-b*b* (b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.2490457723982544258;
//pi/4+arctan(1/2) = 1.2490457723982544258
end;
writeln(f);
Readln;
End.
:duoda atsakymą:
:1.4288216709361827E+000. Tiksli arctg(7) reikšmė yra:
:1.4288992721907326964184700745372.
:Pirmi penki skaitmenys teisingi. Čia d yra dviejų iteracijų vietoje keturių iteracijų. Dėl to kažkaip arktangento eilutė tiksliau/geriau paskaičiuojama.
===Arktangento Benchmark===
:Toks arktangentų reikšmių (nuo 2 iki 1 milijardo) skaičiavimo kodas:
var a:longint; b:real; c:real; d:real; g:real; f:real;
begin
for a:=1 to 1000000000 do
begin
b:=(1.0*a-1.0)/(1.0*a+1.0);
c:=(b-0.5)/(1.0+b*0.5);
d:=(c-0.25)/(1.0+c*0.25);
g:=(d-0.125)/(1.0+0.125*d);
f:=f+g - g*g*(g/3 + g*g* (g/5-g*g* (g/7 + g*g* (g/9 -g*g*g/11))))+1.61837943007188001503;
end;
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
// f:=f+1.61837943007188001503;
writeln(f);
Readln;
End.
:duoda 1.5707964092145209E+009. Labai didelės a reikšmės duoda <math>\arctan a \approx\pi/2</math>. Pirmą kartą skaičiuojama 1 minutę ir 9 sekundes. Antrą ir trečią kartą - 1 minutę ir 7 sekundes. Su 4.16 GHz procesorium.
:<math>\pi/2 =</math> 1.5707963267948966192313216916398.
:Truputi labiau optimizuotas '''Free Pascal''' kodas:
var a:longint; b:real; c:real; d:real; g:real; f:real;
begin
for a:=2 to 1000000000 do
begin
b:=(a-1.0)/(a+1.0);
c:=(b-0.5)/(1.0+b*0.5);
d:=(c-0.25)/(1.0+c*0.25);
g:=(d-0.125)/(1.0+0.125*d);
f:=f+g - g*g*(g/3 + g*g* (g/5-g*g* (g/7 + g*g* (g/9 -g*g*g/11))))+1.61837943007188001503;
end;
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
// f:=f+1.61837943007188001503;
writeln(f);
Readln;
End.
:duoda atsakymą 1.5707964082113807E+009. Pirmą kartą po minutės ir 7 sekundžių (67 sekundžių). Antrą kartą po minutės ir 4 sekundžių (64 sekundžių). Su 4.16 GHz CPU.
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; f:real; d:longint; h:real;
begin
for a:=2 to 1000000000 do
begin
b:=a;
h:=2;
for d:=1 to 2 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
f:=f+b - b*b*(b/3.0 + b*b* (b/5.0-b*b* (b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.2490457723982544258;
//pi/4+arctan(1/2) = 1.2490457723982544258
end;
writeln(f);
Readln;
End.
:duoda atsakymą 1.5692808286515808E+009. Pirmą kartą po minutės ir 45 sekundžių (105 sekundžių). Antrą kartą po minutės ir 27 sekundžių (87 sekundžių). Su 4.16 GHz procesorium.
:Toks kodas:
var a:longint; b:real; f:real; d:longint; h:real;
begin
for a:=2 to 1000000000 do
begin
b:=a;
h:=2;
for d:=1 to 4 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
f:=f+b - b*b*(b/3.0 + b*b* (b/5.0-b*b*(b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:duoda 1.5707964082113807E+009. Pirmą kartą po 2 minučių ir 24 sekundžių (144 sekundžių). Antrą kartą po 2 minučių ir 2 sekundžių (122 sekundžių). Su 4.16 GHz CPU.
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; c:real; d:real; e:real; f:real; g:real;
begin
for a:=2 to 1000000000 do
//a:=7;
begin
b:=(a-1)/(a+1);
c:=(b-0.5)/(1+0.5*b);
d:=(c-0.25)/(1+0.25*c);
e:=(d-0.125)/(1+0.125*d);
f:=e*(1.0-e*e*(0.3333333333333333333333+e*e*(0.2-e*e*(0.1428571428571428571428+
e*e*(0.11111111111111111111111-e*e*0.0909090909090909090909)))));
// arctan(1)=pi/4 = 0.78539816339744830961566
// arctan(1/2) = 0.46364760900080611621425
// arctan(1/4) = 0.244978663126864154172
// arctan(1/8) = 0.12435499454676143503135
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
g:=g+f+1.61837943007188001503;
end;
writeln(g);
Readln;
End.
:duoda atsakymą 1.5707964082133019E+009. Pirmą kartą po 55 sekundžių. Antrą kartą po 54 sekundžių. Su 4,16 GHz procesorium. Išeina arktangento eilutės konstantos arba apskaičiuojamos prieš paleidžiant kodą arba dalyba iš mažų sveikųjų skaičių yra greitesnė nei iš didelių sveikųjų skaičių ir tuo labiau 64 bitų realių skaičių. Nes skaičiavimo laikas tik 10 sekundžių trumpesnis (64 s VS 54 s).
2p8okm39i6kfu3e6kug7vdz7re6vv5m
59134
59133
2026-11-12T07:33:37Z
Paraboloid
1294
/* Arktangento Benchmark */
59134
wikitext
text/x-wiki
[[Elementariųjų funkcijų reikšmių skaičiavimas]]
:Logaritminės ir atvirkštinių trigonometrinių funkcijų reikšmių skaičiavimas pagrįstas Teiloro formulės taikymu. Čia smulkiai aptarsime, kaip skaičiuojamos logaritmo ir arktangento reikšmės. Funkcijų <math>\operatorname{arcctg} x, \;</math> <math>\operatorname{arcsin} x \;</math> ir <math>\operatorname{arccos} x \;</math> reikšmių skaičiavimas pakeičiamas arktangento reikšmių skaičiavimu pagal šitokias žinomas formules:
:[ https://en.wikipedia.org/wiki/Inverse_trigonometric_functions#Relationships_among_the_inverse_trigonometric_functions ]
:<math>\operatorname{arcctg} x =\frac{\pi}{2} -\operatorname{arctg} x, \;\;\; \operatorname{arcsin} x=\operatorname{arctg}\frac{x}{\sqrt{1-x^2}},</math>
:<math>\operatorname{arccos} x =\operatorname{arcctg}\frac{x}{\sqrt{1-x^2}} =\operatorname{arctg}\frac{\sqrt{1-x^2}}{x}.</math>
==1. Skaičiaus ln(a) radimas==
:Skaičių a>0 išreikškime sandauga
:<math>a=2^p M. \quad (8.83)</math>
:kurioje ''p'' – sveikasis skaičius, o ''M'' tenkina nelygybes
:<math>\frac{1}{2}\leq M<1. \quad (8.84)</math>
:Pastebėsime, kad skaičių ''a'' išreikšti (8.83) sandauga galima vieninteliu būdu. Remdamiesi (8.83) formule, logaritmą <math>\ln a</math> užrašome šitaip:
:<math>\ln a=\ln(2^p M)=p\ln 2 +\ln M. \quad (8.85)</math>
:Sakykime,
:<math>M=\frac{1}{\sqrt{2}} \, \frac{1+x}{1-x}, \quad (8.86)</math>
:ir šitą ''M'' išraišką įrašykime į (8.85) lygybę. Tada logaritmo <math>\ln a</math> išraiška bus šitokia:
:<math>\ln a=p\ln 2 +\ln M=p\ln 2 +\ln \left(\frac{1}{\sqrt{2}} \frac{1+x}{1-x}\right)=p\ln 2 +\ln \frac{1}{\sqrt{2}} +\ln \frac{1+x}{1-x}=</math>
:<math>=p\ln 2 -\frac{1}{2}\ln 2 +\ln \frac{1+x}{1-x}=\left(p -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}.</math>
:<math>\ln a=\left(p -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}. \quad (8.87)</math>
:Funkciją <math>\ln \frac{1+x}{1-x}</math> išdėstysime pagal Makloreno formulę. Pirma rasime kelias funkcijos <math>g(x)=\ln \frac{1+x}{1-x}</math> išvestines ir pagal jas nuspėsime aukštesnių eilių šios funkcijos išvestines (ir jų reikšmes, kai <math>x=0</math>).
:<math>g'(x)=\left(\ln \frac{1+x}{1-x}\right)'=\frac{1-x}{1+x}\cdot \left(\frac{1+x}{1-x}\right)'=</math>
:<math>=\frac{1-x}{1+x}\cdot \frac{(1+x)'(1-x)-(1+x)(1-x)'}{(1-x)^2}=\frac{1-x}{1+x}\cdot \frac{(1-x)-(1+x)(-1)}{(1-x)^2}=\frac{1-x}{1+x}\cdot \frac{(1-x)+(1+x)}{(1-x)^2}=</math>
:<math>=\frac{1-x}{1+x}\cdot \frac{2}{(1-x)^2}=\frac{2}{(1+x)(1-x)}=\frac{2}{1-x^2}.</math>
:<math>g''(x)=\left(\ln \frac{1+x}{1-x}\right)''=\left(\frac{2}{1-x^2}\right)'=-\frac{2}{(1-x^2)^2}\cdot (1-x^2)'=-\frac{2}{(1-x^2)^2}\cdot (-2x)=\frac{4x}{(1-x^2)^2}. </math>
:<math>g'''(x)=\left(\ln \frac{1+x}{1-x}\right)'''=\left(\frac{4x}{(1-x^2)^2}\right)'=\frac{(4x)'(1-x^2)^2 - 4x[(1-x^2)^2]'}{((1-x^2)^2)^2}= </math>
:<math>=\frac{4(1-x^2)^2 - 4x[2(1-x^2)']}{(1-x^2)^4}=\frac{4(1-2x^2+x^4) - 4x[2(-2x)]}{(1-x^2)^4}= \frac{4-8x^2+4x^4 + 16x^2}{(1-x^2)^4}= </math>
:<math>= \frac{4+8x^2+4x^4}{(1-x^2)^4}=\frac{4(1+2x^2+x^4)}{(1-x^2)^4}= \frac{4(1+x^2)^2}{(1-x^2)^4}.</math>
:<math>g^{(4)}(x)=\left(\ln \frac{1+x}{1-x}\right)^{(4)}=\left( \frac{4(1+x^2)^2}{(1-x^2)^4}\right)'=</math>
:<math>= \frac{(8(1+x^2)\cdot 2x)(1-x^2)^4 -4(1+x^2)^2\cdot 4(1-x^2)^3\cdot (-2x)}{(1-x^2)^8}=</math>
:<math>=\frac{16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3}{(1-x^2)^8}.</math>
:<math>g^{(5)}(x)=\left(\ln \frac{1+x}{1-x}\right)^{(5)}=\left(\frac{16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3}{(1-x^2)^8} \right)'=</math>
:<math>=\frac{[16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3]'(1-x^2)^8 - [16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3] ((1-x^2)^8)'}{(1-x^2)^{16}}=</math>
:<math>=\frac{[16(1+x^2)(1-x^2)^4+16x g_1(x) +32(1+x^2)^2 (1-x^2)^3+32x g_2(x)](1-x^2)^8 - [16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3] 8(1-x^2)^7 \cdot (-2x)}{(1-x^2)^{16}}=</math>
:<math>=\frac{[16(1+x^2)(1-x^2)^4+16x g_1(x) +32(1+x^2)^2 (1-x^2)^3+32x g_2(x)](1-x^2)^8 + 16x[16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3] (1-x^2)^7 }{(1-x^2)^{16}};</math>
:čia
:<math>g_1(x)=[(1+x^2)(1-x^2)^4]'=2x(1-x^2)^4 +(1+x^2)\cdot 4(1-x^2)^3 \cdot(-2x)=2x(1-x^2)^4 -8x(1+x^2)(1-x^2)^3,</math>
:<math>g_2(x)=[(1+x^2)^2 (1-x^2)^3]'=2(1+x^2)\cdot 2x \cdot (1-x^2)^3 +(1+x^2)^2 \cdot 3(1-x^2)^2 \cdot (-2x)=</math>
:<math>=4x(1+x^2)(1-x^2)^3 -6x(1+x^2)^2 (1-x^2)^2 .</math>
:Akivaizdu, kad <math>g_1(0)=0</math> ir <math>g_2(0)=0.</math>
:Randame funkcijos g(x) ir jos išvestinių reikšmes taške <math>x=0</math>:
:<math>g(0)=\ln \frac{1+0}{1-0}=\ln 1=0,</math>
:<math>g'(0)=\frac{2}{1-0^2}=2,</math>
:<math>g''(0)=\frac{4\cdot 0}{(1-0^2)^2}=0,</math>
:<math>g'''(0)=\frac{4(1+2\cdot 0^2+0^4)}{(1-0^2)^4}=4, </math>
:<math>g^{(4)}(0)=\frac{16\cdot 0(1+0^2)(1-x^2)^4 +32\cdot 0(1+0^2)^2 (1-0^2)^3}{(1-0^2)^8}=0.</math>
:<math>g^{(5)}(0)=\frac{[16(1+0^2)(1-0^2)^4+16\cdot 0\cdot g_1(0) +32(1+0^2)^2 (1-0^2)^3+32\cdot 0\cdot g_2(0)](1-0^2)^8 + 16\cdot 0[16\cdot 0(1+0^2)(1-0^2)^4 +32\cdot 0(1+0^2)^2 (1-0^2)^3] (1-0^2)^7 }{(1-0^2)^{16}}=</math>
:<math>=\frac{[16+32] +0}{1}=48.</math>
:Makloreno eilutės dėstinys su Lagranžo formos liekamuoju nariu bus šitoks:
:<math>\ln \frac{1+x}{1-x}=g(0)+\frac{g'(0)}{1!}x+\frac{g''(0)}{2!}x^2+ \frac{g'''(0)}{3!}x^3+...+ \frac{g^{(n)}(0)}{n!}x^n +\frac{g^{(n+1)}(\theta x)}{(n+1)!} x^{n+1}=</math>
:<math>=0+\frac{2}{1!}x+\frac{0}{2!}x^2+ \frac{4}{3!}x^3+\frac{0}{4!}x^4+\frac{48}{5!}x^5+...+ R_{2n+2}(x)=</math>
:<math>=2x+ \frac{2}{3}x^3+\frac{6\cdot 8}{5\cdot 4\cdot 3\cdot 2}x^5+...+ R_{2n+2}(x)=</math>
:<math>=2x+ \frac{2}{3}x^3+\frac{ 8}{5\cdot 4}x^5+...+ R_{2n+2}(x)=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+...+ \frac{2x^{2n+1}}{2n+1}+R_{2n+2}(x).</math>
:<math>\ln \frac{1+x}{1-x}=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+...+ \frac{2x^{2n+1}}{2n+1}+R_{2n+2}(x), \quad (8.88)</math>
:<math>R_{2n+2}(x)=-\frac{x^{2n+2}}{2n+2}\left[ \frac{1}{(1+\theta x)^{2n+2}} -\frac{1}{(1-\theta x)^{2n+2}}\right]; \quad (8.89)</math>
:skaičius <math>\theta</math> griežtai įterptas tarp nulio ir vieneto.
:[Naudotojas '''Paraboloid''' neįsivaizduoja iš kur ir kaip gauta tokia <math>R_{2n+2}(x)</math> išraiška. Ar ji teisinga, paaiškės apskaičiavus pavyzdį.]
:Skaičiuojant <math>\ln a</math> artinį, naudojama formulė
:<math>\ln a\approx\left(p -\frac{1}{2}\right)\ln 2 + 2\left( x+ \frac{x^3}{3}+\frac{x^5}{5}+...+ \frac{x^{2n+1}}{2n+1}\right), \quad (8.90)</math>
:kuri gaunama iš (8.87) lygybės, funkciją <math>\ln \frac{1+x}{1-x}</math> pakeitus šios funkcijos (8.88) Makloreno formulės dalimi be liekamojo nario <math>R_{2n+2}(x).</math> Pastebėsime, kad skaičius ''x'' apytikslėje <math>\ln a</math> formulėje randamas iš (8.86) formulės, atsižvelgus į (8.84) nelygybes, kurias turi tenkinti skaičius ''M''.
:Įvertinsime (8.90) formulės paklaidą. Kadangi skaičiaus <math>\ln a</math> artinio, apskaičiuoto pagal (8.90) formulę, ir tikslios reikšmės, gaunamos pagal (8.87) formulę, skirtumas lygus liekamajam nariui <math>R_{2n+2}(x),</math> tai, aiškinantis paklaidą, užtenka įvertinti tą liekamąjį narį.
:Iš pradžių išsiaiškinsime ''x'' kitimo ribas. Iš (8.86) formulės gauname
:<math>M=\frac{1}{\sqrt{2}} \, \frac{1+x}{1-x}, \quad (8.86)</math>
:<math>M\sqrt{2}= \frac{1+x}{1-x},</math>
:<math>M\sqrt{2}(1-x)= 1+x,</math>
:<math>M\sqrt{2}-1= x+xM\sqrt{2},</math>
:<math>x=\frac{M\sqrt{2}-1}{M\sqrt{2}+1}. \quad (8.91)</math>
:Jei ''M'' reikšmės tenkina (8.84) nelygybes, tai ''x'' tenkina sąlygą*
:<math>|x|<0.172. \quad (8.92)</math>
:[ <math>h'(M)=\left(\frac{M\sqrt{2}-1}{M\sqrt{2}+1}\right)'=\frac{\sqrt{2}(M\sqrt{2}+1)-(M\sqrt{2}-1)\sqrt{2}}{(M\sqrt{2}+1)^2} =\frac{(2M+\sqrt{2})-(2M-\sqrt{2})}{(M\sqrt{2}+1)^2} =\frac{2\sqrt{2}}{(M\sqrt{2}+1)^2}.</math>
:<math>\frac{2\sqrt{2}}{(M\sqrt{2}+1)^2}=0.</math> Matome, kad nėra tokių ''M'' reikšmių, su kuriom h'(M) būtų lygi nuliui. Todėl funkcija <math>h(M)=\frac{M\sqrt{2}-1}{M\sqrt{2}+1}</math> neturi maksimumo ir minimumo taškų.
:<math>h(1/2)=\frac{\frac{1}{2}\sqrt{2}-1}{\frac{1}{2}\sqrt{2}+1}=\frac{\frac{1}{\sqrt{2}}-1}{\frac{1}{\sqrt{2}}+1}=</math>
:=(0.70710678118654752440084436210485-1)/(0.70710678118654752440084436210485+1) =
:= -0.29289321881345247559915563789515/1.7071067811865475244008443621048 = -0.17157287525380990239662255158061.
:<math>h(1)=\frac{1\cdot \sqrt{2}-1}{1\cdot \sqrt{2}+1}=</math>
:=(1.4142135623730950488016887242097-1)/(1.4142135623730950488016887242097+1)=
:= 0.4142135623730950488016887242097/2.4142135623730950488016887242097 = 0.1715728752538099023966225515806.
:Taigi, matome, kad
:-0.17157287525380990239662255158061 < x < 0.1715728752538099023966225515806. Arba |x| < 0.171572875254.]
:Dabar pastebėsime, kad liekamasis narys <math>R_{2n+2}(x)</math> vienodai įvertinamas tiek tada, kai ''x'' reikšmės teigiamos, tiek tada, kai jos neigiamos (iš (8.89) formulės matyti, kad, ''x'' pakeitus -''x'', liekamojo nario <math>R_{2n+2}(x)</math> struktūra nepasikeičia). Todėl užtenka įvertinti <math>R_{2n+2}(x),</math> kai <math>x>0.</math> Atsižvelgę į tai ir į (8.92) nelygybę, dešiniojoje (8.89) formulės pusėje vietoj ''x'' rašome skaičių 0.172, vietoj trupmenos <math>\frac{1}{1+\theta x} </math> rašome vienetą, o vietoj <math>\frac{1}{1-\theta x} </math> – skaičių <math>\frac{1}{1-0.172} \;</math> ir gauname šitokį įvertį:
:<math>|R_{2n+2}(x)| \leq \frac{(0.172)^{2n+2}}{2n+2} \left[ 1+\frac{1}{(1-0.172)^{2n+2}}\right].</math>
:[Taip, čia laužtiniuose skliaustuose jau pliusas pasidarė. Tai arba (8.89) formulėje klaida arba čia.]
:Daugiklį <math>(0.172)^{2n+2}</math> įkelsime į laužtinius skliaustus. Kadangi <math>\frac{0.172}{1-0.172}< 0.208 \;</math> (0.172/(1-0.172)=0.172/0.828=~0.207729), tai
:<math>|R_{2n+2}(x)| \leq \frac{(0.172)^{2n+2} +(0.208)^{2n+2}}{2n+2}.\quad (8.93)</math>
:Skaičiuojant <math>\ln a</math> elektronine skaičiavimo mašina**, (8.90) formulėje dažniausiai imama <math>n=6.</math> Tuomet skaičiavimo tikslumas, kaip matyti iš (8.93), įvertinamas skaičiumi <math>\frac{(0.172)^{14} +(0.208)^{14}}{14}, \;</math> mažesniu kaip <math>1.625\cdot 10^{-10}.</math>
:[ (0.172^14 + 0.208^14)/14 = 2.1682237054688578614343997699803e-11 <math>\approx 2.1682237\cdot 10^{-11}.</math> ]
:[O jeigu ten turi būti minusas laužtiniuose skliaustuose kaip (8.89) formulėje, tai
:(0.172^14 - 0.208^14)/14 = -1.8848887113203326016424566362697e-11 <math>\approx -1.88488871132\cdot 10^{-11}.</math> Matome, kad nuo to nėra didelio skirtumo.]
________________
:''*'' Kadangi ''x'' yra argumento ''M'' funkcija, tai užtenka rasti maksimalią (8.91) funkcijos modulio reikšmę segmente <math>\left[\frac{1}{2}; \; 1 \right].</math>
:''**'' Taip skaičiuojamas <math>\ln a</math> elektronine skaičiavimo mašina БЭСМ-6.
===Pavyzdžiai===
*Apskaičiuosime ln(a)=ln(143). Pagal (8.83) formulę
:[<math>a=2^p M. \quad (8.83)</math>]
:<math>143=2^{8} M,</math>
:<math>M=\frac{143}{256}=0.55859375.</math>
:Toliau, pagal (8.87) formulę
:[<math>\ln a=\left(p -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}. \quad (8.87)</math>]
:<math>\ln 143=\left(8 -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}. </math>
:<math>\left(8 -\frac{1}{2}\right)\ln 2=7.5\ln 2=</math> 7.5*0.69314718055994530941723212145818 = 5.1986038541995898206292409109363.
:Tiksli ln(143) reikšmė yra ln(143)=4.9628446302599072801154310195304.
:Iš (8.91) formulės randame ''x'':
:<math>x=\frac{M\sqrt{2}-1}{M\sqrt{2}+1}=\frac{0.55859375\sqrt{2}-1}{0.55859375\sqrt{2}+1}=</math>
:= (0.55859375*1.4142135623730950488016887242097 - 1)/(0.55859375*1.4142135623730950488016887242097+1) =
:= -0.11733662705136264741194733209931.
:Toliau pagal (8.88) formulę apskaičiuosime <math>\ln \frac{1+x}{1-x}, \,</math> kai n=6.
:<math>\ln \frac{1+x}{1-x}=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+...+ \frac{2x^{2n+1}}{2n+1}=</math>
:<math>=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+\frac{ 2x^7}{7}+\frac{ 2x^9}{9}+\frac{ 2x^{11}}{11}+\frac{ 2x^{13}}{13}=2\left(x+ \frac{x^3}{3}+\frac{ x^5}{5}+\frac{ x^7}{7}+\frac{ x^9}{9}+\frac{ x^{11}}{11}+\frac{ x^{13}}{13} \right)=</math>
:= 2*(-0.11733662705136264741194733209931 -0.11733662705136264741194733209931^3/3 -0.11733662705136264741194733209931^5/5
:-0.11733662705136264741194733209931^7/7 -0.11733662705136264741194733209931^9/9 -0.11733662705136264741194733209931^11/11
:-0.11733662705136264741194733209931^13/13) =
:(nukopijavus viską nuo "2" iki ženklo "=" ir įdėjus (padarius "Paste") į ''Windows 10'' kalkuliatorių gaunamas žemiau esantis atsakymas)
:= -0.23575922393968105542703851052716.
:Pridėjus gautą atsakymą prie 7.5*ln(2) reikšmės, gauname ln(a)=ln(143) artinį:
:<math>\ln 143=\left(8 -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}= 7.5\ln 2+\ln \frac{1+x}{1-x}=</math>
:= 5.1986038541995898206292409109363 + (-0.23575922393968105542703851052716) = 4.9628446302599087652022024004091.
:Atėmę gautą ln(143) reikšmę iš tikslios ln(143) reikšmės, gauname
:4.9628446302599072801154310195304 - 4.9628446302599087652022024004091 = -0.0000000000000014850867713808787 = <math>\approx -1.48508677\cdot 10^{-15}.</math>
:<math>\frac{1+x}{1-x}=</math> (1+(-0.11733662705136264741194733209931))/(1-(-0.11733662705136264741194733209931)) =
:= (1-0.11733662705136264741194733209931)/(1+0.11733662705136264741194733209931) = 0.78997085710684606241656831078901.
:Tiksli ln(0.78997085710684606241656831078901) reikšmė yra tokia:
:ln(0.78997085710684606241656831078901) = -0.23575922393968254051380989140588.
:<math>\ln \frac{1+x}{1-x}\,</math> (su x=-0.11733662705136264741194733209931) paklaida yra tokia:
:-0.23575922393968254051380989140588 - (-0.23575922393968105542703851052716) =
:= -0.23575922393968254051380989140588 + 0.23575922393968105542703851052716 = -0.00000000000000148508677138087872 = <math>\approx -1.48508677\cdot 10^{-15}.</math>
:Pagal (8.89) formulę
:<math>R_{2n+2}(x)=-\frac{x^{2n+2}}{2n+2}\left[ \frac{1}{(1+\theta x)^{2n+2}} -\frac{1}{(1-\theta x)^{2n+2}}\right]. \quad (8.89)</math>
:<math>|R_{2n+2}(x)|<\frac{(-0.117336627)^{2n+2}}{2n+2}\left[ \frac{1}{(1+(-0.117336627))^{2n+2}} -1\right]= \frac{(-0.117336627)^{2\cdot 6+2}}{2\cdot 6+2}\left[ \frac{1}{(1-0.117336627)^{2\cdot 6+2}} -1\right]=</math>
:<math>= \frac{(-0.117336627)^{14}}{14}\left[ \frac{1}{(1-0.117336627)^{14}} -1\right]=</math>
:= (-0.11733662705136264741194733209931)^14 * (1/(1-0.11733662705136264741194733209931)^14 -1)/14 =
:= 3.1744477658835444278622203928479e-14 <math>\approx 3.1744477658835444\cdot 10^{-14}.</math>
:Matome, kad paklaida įvertinta teisingai, nes
:<math>1.48508677\cdot 10^{-15} < 3.1744477658835444\cdot 10^{-14}.</math>
:Pastebėsime, kad
:<math>\frac{(-0.117336627)^{14}}{14} =</math> 6.6979571136742061476086008278822e-15 <math>\approx 6.6979571136742\cdot 10^{-15}</math>;
:<math>\frac{(-0.117336627)^{15}}{15} =</math> -0.11733662705136264741194733209931^15/15 = -7.3352131612966428681484668924553e-16.
:Todėl (8.88) formulėje liekamąjį narį tikriausiai galima įvertinti taip:
:<math>|R_{2n+2}(x)|< |\frac{x^{2n+2}}{2n+2}|\approx 6.6979571136742\cdot 10^{-15}.</math>
:Arba garantuotai visais atvejais R(x) turėtų būti teisingas, kai
:<math>|R(x)|< |\frac{x^{2n+1}}{2n+1}|.</math>
:Nes <math>\frac{(-0.117336627)^{13}}{13} =</math> -0.11733662705136264741194733209931^13/13 = -6.1474279304103020252424035678064e-14.
==2. Skaičiaus arctg(x) radimas.==
:Skaičiuojant <math>\operatorname{arctg}\alpha,</math> užtenka nagrinėti teigiamas argumento reikšmes, nes, kai <math>|\alpha|=x,</math> gauname
:<math>\operatorname{arctg}\alpha=\sgn\alpha \cdot \operatorname{arctg} x.</math>
:Aprašysime standartines transformacijas, kuriomis <math> \operatorname{arctg} x</math> skaičiavimas, kai argumento ''x'' reikšmės ne mažesnės kaip <math>\frac{1}{8},</math> pakeičiamas arktangento skaičiavimu, kai argumento reikšmės mažesnės už <math>\frac{1}{8}.</math>
:Iš pradžių tarkime, kad <math>x\geq 1.</math> Sakykime, <math>y=\operatorname{arctg} x, \;</math> t. y. <math>x=\operatorname{tg} y, \;</math> o <math>x_1=\operatorname{tg}(y-\operatorname{arctg} 1).</math> Iš paskutinės lygybės gauname
:[pasinaudodami formule (iš https://lt.wikibooks.org/wiki/Matematika/Trigonometrinės_formulės) <math> \tan(\alpha-\beta)=\frac{\tan\alpha -\tan\beta }{1 + \tan\alpha \tan\beta} . \quad (7)</math>]
:<math>x_1=\operatorname{tg}(y-\operatorname{arctg} 1)=\frac{\operatorname{tg} y -\operatorname{tg}(\operatorname{arctg} 1)}{1+\operatorname{tg} y \cdot \operatorname{tg}(\operatorname{arctg} 1)}=\frac{\operatorname{tg} y - 1}{1+\operatorname{tg} y \cdot 1}=\frac{\operatorname{tg} y - 1}{\operatorname{tg} y + 1}=\frac{x - 1}{x + 1}<1.</math>
:Kadangi
:<math>\operatorname{arctg} x_1=\operatorname{arctg}[\operatorname{tg}(y-\operatorname{arctg} 1)]=y-\operatorname{arctg} 1=\operatorname{arctg} x -\operatorname{arctg} 1,</math>
:<math>\operatorname{arctg} x=\operatorname{arctg} 1 +\operatorname{arctg} x_1=\frac{\pi}{4} +\operatorname{arctg} x_1,</math>
:tai, norint apskaičiuoti <math>\operatorname{arctg} x,</math> kai <math>x\geq 1,</math> pakanka apskaičiuoti <math>\operatorname{arctg} x_1,</math> kai <math>0<x_1<1.</math>
:Dabar aptarsime atvejį, kai argumentas tenkina nelygybes <math>\frac{1}{8} \leq x<1.</math>
:Sakykime, <math>k_1=1, \;\; k_2=\frac{1}{2}, \;\; k_3=\frac{1}{4}, \;\; k_4=\frac{1}{8}.</math> Savaime aišku, su kokia nors <math>i=1, \; 2, \; 3, \; 4 \;</math> reikšme yra teisingos nelygybės
:<math>k_i\leq x<2k_i. \quad (8.94)</math>
:[Kai ''x'' daugiau už 1, tai ''x'' gali būti daugiau už <math>2k_i.</math> Tiksliau, kai ''x''>2, tai <math>x>2k_1=2.</math>]
:Tarkime, kad <math>y=\operatorname{arctg} x, \;</math> t. y. <math>x=\operatorname{tg} y, \;</math> o <math>x_i=\operatorname{tg}(y-\operatorname{arctg} k_i).</math> Iš paskutinės lygybės gauname
:[pasinaudodami formule <math> \tan(\alpha-\beta)=\frac{\tan\alpha -\tan\beta }{1 + \tan\alpha \tan\beta} </math>]
:<math>x_i=\operatorname{tg}(y-\operatorname{arctg} k_i)=\frac{\operatorname{tg} y -\operatorname{tg}(\operatorname{arctg} k_i)}{1+\operatorname{tg} y \cdot \operatorname{tg}(\operatorname{arctg} k_i)}=\frac{\operatorname{tg} y - k_i}{1+\operatorname{tg} y \cdot k_i}=\frac{x - k_i}{1+k_i x}.</math>
:Kadangi <math>x>0,</math> tai <math>1+k_i x>1.</math> Be to, iš dešiniosios (8.94) nelygybės išplaukia <math>x-k_i < 2k_i- k_1=k_i.</math> Todėl iš paskutinės <math>x_i</math> išraiškos gauname nelygybę <math>x_i<k_i.</math> Kadangi
:<math>\operatorname{arctg} x_i=\operatorname{arctg}[\operatorname{tg}(y-\operatorname{arctg} k_i)]=y-\operatorname{arctg} k_i=\operatorname{arctg} x -\operatorname{arctg} k_i,</math>
:<math>\operatorname{arctg} x=\operatorname{arctg} k_i +\operatorname{arctg} x_i,</math>
:tai <math>\operatorname{arctg} x</math> skaičiavimas, kai ''x'' tenkina (8.94) nelygybes, pakeičiamas <math>\operatorname{arctg} x_i</math> skaičiavimu, kai <math>0< x_i < k_i.</math>
:Jei aprašytąsias argumento ''x'' transformacijas pakartosime daugių daugiausia keturis kartus, tai <math>\operatorname{arctg} x</math> skaičiavimą, kai ''x'' reikšmės priklauso pusintervaliui <math>\frac{1}{8} \leq x<1,</math> pakeisime arktangento skaičiavimu, kai argumento reikšmės mažesnės už <math>\frac{1}{8}.</math>
:[Ten klaidelė. Maksimum keturių transformacijų reikia, kai ''x'' reikšmės priklauso pusintervaliui <math>\frac{1}{8} \leq x,</math> o kai ''x'' reikšmės priklauso pusintervaliui <math>\frac{1}{8} \leq x<1,</math> tai tada daugių daugiausia gali prireikti 3 transformacijos.]
:Skaičiuojant <math>\operatorname{arctg} x,</math> kai <math>x< \frac{1}{8},</math> naudojama Makloreno formulė (kuri išvedama čia: https://lt.wikibooks.org/wiki/Matematika/Matematinės_eilutės)
:<math>\operatorname{arctg} x= x-\frac{x^3}{3}+\frac{x^5}{5}-\frac{x^7}{7}+...+(-1)^n \frac{x^{2n+1}}{2n+1} +R_{2n+2}(x).</math>
:Dažniausiai šioje formulėje imama <math>n=6</math> ir atmetamas liekamasis narys (taip, pavyzdžiui, daroma skaičiuojant elektronine mašina БЭСМ-6). Logaritmo ir arktangento skaičiavimo programa yra bendra. Naudojant tą programą arktangentui skaičiuoti, reikia, kad gretimi nariai <math>\frac{x^{2n+1}}{2n+1}</math> būtų priešingų ženklų.
==Pavyzdžiai==
*Apskaičiuosime <math>\operatorname{arctg} 5.</math> Čia <math>x=5.</math> Tada
:<math>x_i=\frac{x - k_i}{1+k_i x}.</math>
:Pradėsime nuo to, kad <math>k_1=1.</math> Tada
:<math>x_1=\frac{x - k_1}{1+k_1 x}=\frac{x - 1}{1+ x}=\frac{5 - 1}{1+ 5}=\frac{4}{6}=\frac{2}{3}.</math>
:Toliau
:<math>\operatorname{arctg} x=\operatorname{arctg} k_i +\operatorname{arctg} x_i=\operatorname{arctg} k_1 +\operatorname{arctg} x_1=\operatorname{arctg} 1 +\operatorname{arctg} \frac{2}{3}=\frac{\pi}{4} +\operatorname{arctg} \frac{2}{3}.</math>
:Toliau imsime <math>k_2=\frac{1}{2}.</math> Tada
:<math>x_2=\frac{x_1 - k_2}{1+k_2 x_1}=\frac{x_1 - \frac{1}{2}}{1+\frac{1}{2} x_1}=\frac{\frac{2}{3} - \frac{1}{2}}{1+\frac{1}{2} \cdot \frac{2}{3}}=\frac{\frac{4-3}{6} }{1+ \frac{1}{3}}=\frac{\frac{1}{6} }{\frac{3+1}{3}}=\frac{\frac{1}{6} }{\frac{4}{3}}=\frac{1}{6} \cdot\frac{3}{4}=\frac{1}{8}.</math>
:Toliau
:<math>\operatorname{arctg} \frac{2}{3}=\operatorname{arctg} x_1=\operatorname{arctg} k_2 +\operatorname{arctg} x_2=\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{1}{8}.</math>
:Toliau imsime <math>k_4=\frac{1}{8}.</math> Tada
:<math>x_4=\frac{x_2 - k_4}{1+k_4 x_2}=\frac{x_2 - \frac{1}{8}}{1+\frac{1}{8} x_2}=\frac{\frac{1}{8} - \frac{1}{8}}{1+\frac{1}{8} \cdot \frac{1}{8}}=\frac{0 }{1+ \frac{1}{64}}=\frac{0 }{\frac{64+1}{64}}=\frac{0 }{\frac{65}{64}}=0.</math>
:Ir gauname
:<math>\operatorname{arctg} \frac{1}{8}=\operatorname{arctg} x_2=\operatorname{arctg} k_4 +\operatorname{arctg} x_4=\operatorname{arctg} \frac{1}{8} +\operatorname{arctg} 0=\operatorname{arctg} \frac{1}{8} +0=\operatorname{arctg} \frac{1}{8}.</math>
:Tokiu budu
:<math>\operatorname{arctg} 5=\operatorname{arctg} x=\frac{\pi}{4} +\operatorname{arctg} \frac{2}{3}=\frac{\pi}{4} +\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{1}{8}.</math>
:<math>\frac{\pi}{4}=</math> 0.78539816339744830961566084581988;
:<math>\operatorname{arctg} \frac{1}{2}=</math> 0.46364760900080611621425623146121;
:<math>\operatorname{arctg} \frac{1}{8}=</math> 0.12435499454676143503135484916387.
:Šiame pavyzdyje skaičiuoti Makloreno eilutės nereikia su ''x'' reikšme mažesne už 1/8, nes <math>x_4=0.</math>
:Taigi,
:arctg(5) = 0.78539816339744830961566084581988 + 0.46364760900080611621425623146121 + 0.12435499454676143503135484916387 =
:= 1.373400766945015860861271926445.
:Tiksli arctg(5) reikšmė iš kalkuliatoriaus yra tokia:
:arctg(5) = 1.373400766945015860861271926445.
:Gavome tą patį atsakymą.
*Apskaičiuosime <math>\operatorname{arctg} 7.</math> Čia <math>x=7.</math>
:Pradėsime nuo to, kad <math>k_1=1.</math> Tada
:<math>x_1=\frac{x - k_1}{1+k_1 x}=\frac{x - 1}{1+ x}=\frac{7 - 1}{1+ 7}=\frac{6}{8}=\frac{3}{4}.</math>
:Toliau
:<math>\operatorname{arctg} x=\operatorname{arctg} k_1 +\operatorname{arctg} x_1=\operatorname{arctg} 1 +\operatorname{arctg} \frac{3}{4}=\frac{\pi}{4} +\operatorname{arctg} \frac{3}{4}.</math>
:Toliau imsime <math>k_2=\frac{1}{2}.</math> Tada
:<math>x_2=\frac{x_1 - k_2}{1+k_2 x_1}=\frac{x_1 - \frac{1}{2}}{1+\frac{1}{2} x_1}=\frac{\frac{3}{4} - \frac{1}{2}}{1+\frac{1}{2} \cdot \frac{3}{4}}=\frac{\frac{3-2}{4} }{1+ \frac{3}{8}}=\frac{\frac{1}{4} }{\frac{8+3}{8}}=\frac{\frac{1}{4} }{ \frac{11}{8}}=\frac{1}{4} \cdot\frac{8}{11}=\frac{2}{11}=0.(18).</math>
:Tuo tarpu <math>k_3=\frac{1}{4}=0.25</math> yra daugiau už 0.(18). Todėl skaičiavimus su <math>k_3=\frac{1}{4}</math> praleisime ir iškart skaičiuosime toliau su <math>k_4=\frac{1}{8}=0.125</math> (nes 0.125 yra mažiau nei 2/11=0.(18)). Taigi,
:<math>x_4=\frac{x_2 - k_4}{1+k_4 x_2}=\frac{x_2 - \frac{1}{8}}{1+\frac{1}{8} x_2}=\frac{\frac{2}{11} - \frac{1}{8}}{1+\frac{1}{8} \cdot \frac{2}{11}}=\frac{\frac{16-11}{88} }{1+ \frac{2}{88}}=\frac{\frac{5}{88} }{\frac{88+2}{88}}=\frac{\frac{5}{88} }{\frac{90}{88}}=\frac{5}{88}\cdot \frac{88}{90}=\frac{5}{90}=\frac{1}{18}=0.0(5).</math>
:[1/18 = 0.05555555555555555555555555555556.]
:Toliau galime skaičiuoti pagal Makloreno formulę,
:<math>\operatorname{arctg} x= x-\frac{x^3}{3}+\frac{x^5}{5}-\frac{x^7}{7}+...+(-1)^n \frac{x^{2n+1}}{2n+1} +R_{2n+2}(x),</math>
:imdami n=6 ir vietoje ''x'' įrašę <math>x_4.</math> Tada gauname:
:<math>\operatorname{arctg} \frac{1}{18}=\operatorname{arctg} x_4= x_4-\frac{x_4^3}{3}+\frac{x_4^5}{5}-\frac{x_4^7}{7}+\frac{x_4^9}{9}-\frac{x_4^{11}}{11}+ \frac{x_4^{13}}{13} =</math>
:= 1/18 - 1/18^3/3 + 1/18^5/5 - 1/18^7/7 + 1/18^9/9 - 1/18^11/11 + 1/18^13/13 = 0.05549850524571683556705277298107.
:(Kad gauti tokį atsakymą greitai, tereikia aukščiau esančią eilutę nukopijuoti ir įdėti į ''Windows 10'' kalkuliaorių, padarius "Paste").
:Atėmę gautą arctg(1/18) reikšmę iš tikslios arctg(1/18) reikšmės, gauname paklaidą:
:0.05549850524571683555719814809224 - 0.05549850524571683556705277298107 = -0.00000000000000000000985462488883 = <math>= -9.85462488883\cdot 10^{-21}.</math>
:Kaip ir su natūrinio logaritmo skaičiavimu, liekamąjį narį galima įvertinti taip:
:<math>|R_{2n+2}(x_4)|< |\frac{x_4^{2n+2}}{2n+2}|=</math> 1/18^14/14 = 1.9057103509769875767803163358316e-19 <math>\approx 1.90571035\cdot 10^{-19}.</math>
:Tada
:<math>\operatorname{arctg} \frac{3}{4}=\operatorname{arctg} x_1=\operatorname{arctg} k_2 +\operatorname{arctg} x_2=\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{2}{11};</math>
:<math>\operatorname{arctg} \frac{2}{11}=\operatorname{arctg} x_2=\operatorname{arctg} k_4 +\operatorname{arctg} x_4=\operatorname{arctg} \frac{1}{8} +\operatorname{arctg} \frac{1}{18}.</math>
:Todėl
:<math>\operatorname{arctg} 7=\operatorname{arctg} x=\frac{\pi}{4} +\operatorname{arctg} \frac{3}{4}=\frac{\pi}{4} +\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{2}{11}=</math>
:<math>=\frac{\pi}{4} +\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{1}{8} +\operatorname{arctg} \frac{1}{18}= </math>
:= 0.78539816339744830961566084581988 + 0.46364760900080611621425623146121 +0.12435499454676143503135484916387 + 0.05549850524571683556705277298107 = 1.428899272190732696428324699426.
:Atėmę ką tik gautą arctg(7) reikšmę iš kalkuliatoriaus tikslios arctg(7) reikšmės, gauname paklaidą:
:1.4288992721907326964184700745372 - 1.428899272190732696428324699426 = -9.8546248888316409091970590727231e-21 =
:= -0.0000000000000000000098546248888 <math>\approx -9.8546248888\cdot 10^{-21}.</math>
:Pastabos. Čia visos arkatangento reikšmės skaičiuojamos radianais. Kad kalkuliatorius skaičiuotų radianais, reikia paspausti mygtuką, kuris keičia tarp laipsnių, radianų ir gradianų (iš "DEG", "RAD" ir "GRAD" reikia išrinkti, kad rodytų "RAD"). O tam, kad kalkuliatorius apskaičiuotų arktangento reikšmę, reikia iš pradžių įrašyti skaičių į kalkuliatorių ir paskui ''Windows 10'' kalkuliatoriuje (kuris turi būti nustatytas [vienu paspaudimu] per patį kalkuliatorių, kad būtų "Scientific") paspausti "Trigonometry", vėliau paspausti <math>2^{nd}</math> ir tada paspausti <math>\tan^{-1}</math>. Tada ir bus gauta arktangento reikšmė radianais, jei buvo pasirinkta "RAD".
:<math>\operatorname{arctg} 1 = </math> 0.78539816339744830961566084581988.
:<math>\operatorname{arctg} 0.5 = </math> 0.46364760900080611621425623146121.
:<math>\operatorname{arctg} 0.25 =</math> 0.24497866312686415417208248121128.
:<math>\operatorname{arctg} 0.125 =</math> 0.12435499454676143503135484916387.
*<math>\operatorname{arctg} 0.9.</math>
:<math>\operatorname{arctg} a = \operatorname{arctg} 0.9 - \operatorname{arctg} 0.5.</math>
:<math>\tan(\alpha-\beta) = \tan\frac{\tan\alpha - \tan\beta}{1+\tan\alpha \tan\beta}. </math>
:<math>a = \operatorname{tg}\left( \operatorname{arctg} 0.9 - \operatorname{arctg} 0.5 \right) =</math>
:<math>=\tan\frac{\tan(\operatorname{arctg} 0.9) - \tan(\operatorname{arctg} 0.5)}{1+\tan(\operatorname{arctg} 0.9) \tan(\operatorname{arctg} 0.5)}= \tan\frac{0.9 - 0.5}{1+ 0.9\cdot 0.5}= \tan\frac{0.4}{1+ 0.45}=\tan\frac{0.4}{1.45}=</math>
:= 0.27586206896551724137931034482759.
:<math>\operatorname{arctg} (0.27586206896551724137931034482759)=</math>
:= 0.27586206896551724137931034482759 - 0.27586206896551724137931034482759^3/3 + 0.27586206896551724137931034482759^5/5 - 0.27586206896551724137931034482759^7/7 + 0.27586206896551724137931034482759^9/9 - 0.27586206896551724137931034482759^11/11 + 0.27586206896551724137931034482759^13/13 =
:= '''0.26916749'''304043554450715959336444.
:<math>\operatorname{arctg} (0.27586206896551724137931034482759)=</math>
:= '''0.26916749'''278570047542653584127307.
:<math>\operatorname{arctg} (0.27586206896551724137931034482759) + \operatorname{arctg} 0.5 =</math>
:= 0.26916749304043554450715959336444 + 0.46364760900080611621425623146121 =
:= '''0.73281510'''204124166072141582482565.
:<math>\operatorname{arctg} 0.9 =</math>
:= '''0.73281510'''178650659164079207273428.
:<math>\operatorname{arctg} b = \operatorname{arctg} a - \operatorname{arctg} 0.25 =</math>
:<math>b = \operatorname{tg}\left( \operatorname{arctg} (0.278299659434360506011219170928) - \operatorname{arctg} 0.25 \right) =</math>
:<math>= \tan\frac{0.26916749304043554450715959336444 - 0.25}{1+ 0.26916749304043554450715959336444\cdot 0.25}=</math>
:<math>\tan\frac{0.01916749304043554450715959336444}{1 + 0.06729187326010888612678989834111} = \tan\frac{0.01916749304043554450715959336444}{1.06729187326010888612678989834111}=</math>
:= 0.019167493040435544507159593364/1.067291873260108886126789898341 = 0.0179589983964623044012469281158.
:<math>\operatorname{arctg} (0.0179589983964623044012469281158)=</math>
:= 0.0179589983964623044012469281158 - 0.0179589983964623044012469281158^3/3 + 0.0179589983964623044012469281158^5/5 - 0.0179589983964623044012469281158^7/7 + 0.0179589983964623044012469281158^9/9 - 0.0179589983964623044012469281158^11/11 + 0.0179589983964623044012469281158^13/13 - 0.0179589983964623044012469281158^15/15 =
:= '''0.017957068024287386522471323702'''2.
:<math>\operatorname{arctg} (0.0179589983964623044012469281158)=</math>
:= '''0.017957068024287386522471323702'''33.
:<math>\operatorname{arctg} 0.9 = \operatorname{arctg} 0.5 + \operatorname{arctg} a = </math>
:<math>\operatorname{arctg} 0.9 = \operatorname{arctg} 0.5 + \operatorname{arctg} 0.25 + \operatorname{arctg} b = </math>
:= 0.46364760900080611621425623146121 + 0.24497866312686415417208248121128 + 0.0179570680242873865224713237022 =
:= '''0.7'''2658334015195765690881003637469.
:<math>\operatorname{arctg} 0.9 =</math>
:= '''0.7'''3281510178650659164079207273428.
:a = 0.27586206896551724137931034482759.
:<math>\operatorname{arctg} a=</math>
:= 0.26916749304043554450715959336444.
:<math>\operatorname{arctg} a = \operatorname{arctg} 0.25 + \operatorname{arctg} b =</math>
:= 0.24497866312686415417208248121128 + 0.0179570680242873865224713237022 =
:= '''0.26'''293573115115154069455380491348.
:Kalkuliatoriaus:
:arctg(0.27586206896551724137931034482759) =
:= '''0.26'''916749278570047542653584127307.
*<math>\operatorname{arctg} 1.6.</math>
:<math>\operatorname{arctg} a = \operatorname{arctg} 1.6 - \operatorname{arctg} 1.</math>
:<math>\tan(\alpha-\beta) = \tan\frac{\tan\alpha - \tan\beta}{1+\tan\alpha \tan\beta}. </math>
:<math>a = \operatorname{tg}\left( \operatorname{arctg} 1.6 - \operatorname{arctg} 1 \right) =</math>
:<math>=\tan\frac{\tan(\operatorname{arctg} 1.6) - \tan(\operatorname{arctg} 1)}{1+\tan(\operatorname{arctg} 1.6) \tan(\operatorname{arctg} 1)}= \tan\frac{1.6 - 1}{1+ 1.6\cdot 1}= \tan\frac{0.6}{2.6}=</math>
:= 0.23076923076923076923076923076923.
:<math>\operatorname{arctg} (0.23076923076923076923076923076923)=</math>
:= 0.23076923076923076923076923076923 - 0.23076923076923076923076923076923^3/3 + 0.23076923076923076923076923076923^5/5 - 0.23076923076923076923076923076923^7/7 + 0.23076923076923076923076923076923^9/9 - 0.23076923076923076923076923076923^11/11 + 0.23076923076923076923076923076923^13/13 - 0.23076923076923076923076923076923^15/15 =
:= '''0.226798848053'''04763076023291256713.
:<math>\operatorname{arctg} (0.23076923076923076923076923076923)=</math>
:= '''0.226798848053'''88587364415262941821.
:<math>\operatorname{arctg} 1.6 = \operatorname{arctg} 1 + \operatorname{arctg} a =</math>
:= 0.78539816339744830961566084581988 + 0.22679884805304763076023291256713 =
:= '''1.01219701145'''0495940375893758387.
:Kalkuliatoriaus:
:arctg(1.6) =
:= '''1.01219701145'''13341832598134752381.
:<math>\operatorname{arctg} b = \operatorname{arctg} a - \operatorname{arctg} 0.125.</math>
:<math>\operatorname{arctg} b = \operatorname{arctg} 0.23076923076923076923076923076923 - \operatorname{arctg} 0.125.</math>
:<math>\tan(\alpha-\beta) = \tan\frac{\tan\alpha - \tan\beta}{1+\tan\alpha \tan\beta}. </math>
:<math>b = \operatorname{tg}\left( \operatorname{arctg} 0.23076923076923076923076923076923 - \operatorname{arctg} 0.125 \right) =</math>
:<math>=\tan\frac{\tan(\operatorname{arctg} 0.23076923076923076923076923076923) - \tan(\operatorname{arctg} 0.125)}{1+\tan(\operatorname{arctg} 0.23076923076923076923076923076923) \tan(\operatorname{arctg} 0.125)}=</math>
:<math>= \tan\frac{0.23076923076923076923076923076923 - 0.125}{1+ 0.23076923076923076923076923076923\cdot 0.125}= \tan\frac{0.10576923076923076923076923076923}{1+0.02884615384615384615384615384615}=</math>
:0.105769230769230769230769230769/1.028846153846153846153846153846 =
:= 0.10280373831775700934579439252316.
:<math>\operatorname{arctg} (0.10280373831775700934579439252316)=</math>
:= 0.10280373831775700934579439252316 - 0.10280373831775700934579439252316^3/3 + 0.10280373831775700934579439252316^5/5 - 0.10280373831775700934579439252316^7/7 + 0.10280373831775700934579439252316^9/9 - 0.10280373831775700934579439252316^11/11 + 0.10280373831775700934579439252316^13/13 - 0.10280373831775700934579439252316^15/15 =
:= '''0.10244385350712443'''768036939404847.
:Kalkuliatoriaus:
:<math>\operatorname{arctg} (0.10280373831775700934579439252316)=</math>
:= '''0.10244385350712443'''861279778025414.
:<math>\operatorname{arctg} 1.6 = \operatorname{arctg} 1 + \operatorname{arctg} a = </math>
:<math>\operatorname{arctg} 1.6 = \operatorname{arctg} 1 + \operatorname{arctg} 0.125 + \operatorname{arctg} b = </math>
:= 0.78539816339744830961566084581988 + 0.12435499454676143503135484916387 + 0.10244385350712443768036939404847 =
:= '''1.01219701145133418'''23273850890322.
:Kalukuliatoriaus:
:<math>\operatorname{arctg} 1.6 =</math>
:= '''1.01219701145133418'''32598134752381.
:'''Free Pacal''' kodas, skaičiuoti arctg(a):
var a:real; b:real; c:real; d:real; g:real; f:real;
begin
//for a:=2 to 1000000000 do
begin
a:=7.0;
b:=(a-1.0)/(a+1.0);
c:=(b-0.5)/(1.0+b*0.5);
d:=(c-0.25)/(1.0+c*0.25);
g:=(d-0.125)/(1.0+0.125*d);
f:=g - g*g*(g/3 + g*g* (g/5-g*g* (g/7 + g*g* (g/9 -g*g*g/11))))+1.61837943007188001503;
// arctan(1)=pi/4 = 0.78539816339744830961566
// arctan(1/2) = 0.46364760900080611621425
// arctan(1/4) = 0.244978663126864154172
// arctan(1/8) = 0.12435499454676143503135
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
//f:=f+1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:Resultatas 1.4290003193181138E+000.
:Skaičiuojama iki (a^11)/11.
:Kalkuliatoriaus arctan(7) reikšmė yra 1.4288992721907326964184700745372.
:Šituo budu apskaičiuota kalkuliatoriumi arctan(7) reikšmė iki (x_4^11)/11 yra 1.4288992722261246066538981860865.
:Su kalkuliatoriumi skaičiuojant viską gaunama 10 pirmų teisingų skaitmenų. '''Free Pascal''' kodas duoda tik 3 pirmus teisingus skaitmenis. Looks like Pascal (or FPU) can't comprehend too complex code.
:Kodas skaičiuoja teisingai, nepaisant ar kuri nors iš reikšmių c, d, g gausis neigiama ar teigiama (jei kuri nors gaunasi neigiama, tai tiesiog dažniausiai (arba visada) prarandama kažkiek tikslumo).
:a=7.0;
:b=(a-1.0)/(a+1.0) = 6/8 = 0.75.
:c=(b-0.5)/(1.0+b*0.5) = (0.75-0.5)/(1.0+0.75*0.5) = 0.18181818181818181818181818181818.
:d=(c-0.25)/(1.0+c*0.25)=
:= (0.18181818181818181818181-0.25)/(1.0+0.18181818181818181818181*0.25)= -0.06521739130434782608696447542533.
:g=(d-0.125)/(1.0+0.125*d) =
:= (-0.06521739130434782608696-0.125)/(1.0-0.06521739130434782608696*0.125) = -0.19178082191780821917808578269844.
:Šis '''Free Pascal''' kodas:
var a:real; b:real; f:real; d:longint; h:real;
begin
//for a:=2 to 1000000000 do
begin
a:=7.0;
begin
b:=a;
h:=2.0;
for d:=1 to 4 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
end;
f:=b - b*b*(b/3.0 + b*b* (b/5.0-b*b* (b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:Duoda tą patį rezultatą 1.4290003193181138E+000.
:Reikšmė b kode apskaičiuota teisingai ir yra lygi -1.9178082191780821E-001 arba
:a:=7.0;
:b:=(a-1.0)/(a+1.0) = 6/8 = 0.75.
:c:=(b-0.5)/(1.0+b*0.5) = (0.75-0.5)/(1.0+0.75*0.5) = 0.18181818181818181818181818181818.
:d:=(c-0.25)/(1.0+c*0.25)=
:= (0.18181818181818181818181-0.25)/(1.0+0.18181818181818181818181*0.25)= -0.06521739130434782608696447542533.
:g:=(d-0.125)/(1.0+0.125*d) =
:= (-0.06521739130434782608696-0.125)/(1.0-0.06521739130434782608696*0.125) = -0.19178082191780821917808578269844.
:Reikšmė lygiai tokia pati kaip ir preitame kode reikšmė g.
:Tikslumo praradimai panašu prasideda skaičiuojant reikšmę f. Skaičiavimas su kalkuliatoriumi:
-0.19178082191780821917808219178082 - (-0.19178082191780821917808219178082)^3/3 +(-0.19178082191780821917808219178082)^5/5 - (-0.19178082191780821917808219178082)^7/7 +(-0.19178082191780821917808219178082)^9/9 - (-0.19178082191780821917808219178082)^11/11 = -0.18948015784575540837945622156966.
-0.18948015784575540837945622156966 + 1.6183794300718800150333544076562 =1.4288992722261246066538981860865.
:Čia 10 pirmų skaitmenų teisingi.
:Toks '''Free Pascal''' kodas:
var a:real; b:real; f:real; d:longint; h:real;
begin
//for a:=2 to 1000000000 do
begin
a:=7.0;
begin
b:=a;
h:=2.0;
for d:=1 to 2 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
end;
f:=b - b*b*(b/3.0 + b*b* (b/5.0-b*b* (b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.2490457723982544258;
//pi/4+arctan(1/2) = 1.2490457723982544258
end;
writeln(f);
Readln;
End.
:duoda atsakymą:
:1.4288216709361827E+000. Tiksli arctg(7) reikšmė yra:
:1.4288992721907326964184700745372.
:Pirmi penki skaitmenys teisingi. Čia d yra dviejų iteracijų vietoje keturių iteracijų. Dėl to kažkaip arktangento eilutė tiksliau/geriau paskaičiuojama.
===Arktangento Benchmark===
:Toks arktangentų reikšmių (nuo 2 iki 1 milijardo) skaičiavimo kodas:
var a:longint; b:real; c:real; d:real; g:real; f:real;
begin
for a:=1 to 1000000000 do
begin
b:=(1.0*a-1.0)/(1.0*a+1.0);
c:=(b-0.5)/(1.0+b*0.5);
d:=(c-0.25)/(1.0+c*0.25);
g:=(d-0.125)/(1.0+0.125*d);
f:=f+g - g*g*(g/3 + g*g* (g/5-g*g* (g/7 + g*g* (g/9 -g*g*g/11))))+1.61837943007188001503;
end;
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
// f:=f+1.61837943007188001503;
writeln(f);
Readln;
End.
:duoda 1.5707964092145209E+009. Labai didelės a reikšmės duoda <math>\arctan a \approx\pi/2</math>. Pirmą kartą skaičiuojama 1 minutę ir 9 sekundes. Antrą ir trečią kartą - 1 minutę ir 7 sekundes. Su 4.16 GHz procesorium.
:<math>\pi/2 =</math> 1.5707963267948966192313216916398.
:Truputi labiau optimizuotas '''Free Pascal''' kodas:
var a:longint; b:real; c:real; d:real; g:real; f:real;
begin
for a:=2 to 1000000000 do
begin
b:=(a-1.0)/(a+1.0);
c:=(b-0.5)/(1.0+b*0.5);
d:=(c-0.25)/(1.0+c*0.25);
g:=(d-0.125)/(1.0+0.125*d);
f:=f+g - g*g*(g/3 + g*g* (g/5-g*g* (g/7 + g*g* (g/9 -g*g*g/11))))+1.61837943007188001503;
end;
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
// f:=f+1.61837943007188001503;
writeln(f);
Readln;
End.
:duoda atsakymą 1.5707964082113807E+009. Pirmą kartą po minutės ir 7 sekundžių (67 sekundžių). Antrą kartą po minutės ir 4 sekundžių (64 sekundžių). Su 4.16 GHz CPU.
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; f:real; d:longint; h:real;
begin
for a:=2 to 1000000000 do
begin
b:=a;
h:=2;
for d:=1 to 2 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
f:=f+b - b*b*(b/3.0 + b*b* (b/5.0-b*b* (b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.2490457723982544258;
//pi/4+arctan(1/2) = 1.2490457723982544258
end;
writeln(f);
Readln;
End.
:duoda atsakymą 1.5692808286515808E+009. Pirmą kartą po minutės ir 45 sekundžių (105 sekundžių). Antrą kartą po minutės ir 27 sekundžių (87 sekundžių). Su 4.16 GHz procesorium.
:Toks kodas:
var a:longint; b:real; f:real; d:longint; h:real;
begin
for a:=2 to 1000000000 do
begin
b:=a;
h:=2;
for d:=1 to 4 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
f:=f+b - b*b*(b/3.0 + b*b* (b/5.0-b*b*(b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:duoda 1.5707964082113807E+009. Pirmą kartą po 2 minučių ir 24 sekundžių (144 sekundžių). Antrą kartą po 2 minučių ir 2 sekundžių (122 sekundžių). Su 4.16 GHz CPU.
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; c:real; d:real; e:real; f:real; g:real;
begin
for a:=2 to 1000000000 do
//a:=7;
begin
b:=(a-1)/(a+1);
c:=(b-0.5)/(1+0.5*b);
d:=(c-0.25)/(1+0.25*c);
e:=(d-0.125)/(1+0.125*d);
f:=e*(1.0-e*e*(0.3333333333333333333333+e*e*(0.2-e*e*(0.1428571428571428571428+
e*e*(0.11111111111111111111111-e*e*0.0909090909090909090909)))));
// arctan(1)=pi/4 = 0.78539816339744830961566
// arctan(1/2) = 0.46364760900080611621425
// arctan(1/4) = 0.244978663126864154172
// arctan(1/8) = 0.12435499454676143503135
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
g:=g+f+1.61837943007188001503;
end;
writeln(g);
Readln;
End.
:duoda atsakymą 1.5707964082133019E+009. Pirmą kartą po 55 sekundžių. Antrą kartą po 54 sekundžių. Su 4,16 GHz procesorium. Išeina arktangento eilutės konstantos arba apskaičiuojamos prieš paleidžiant kodą arba dalyba iš mažų sveikųjų skaičių yra greitesnė nei iš didelių sveikųjų skaičių ir tuo labiau 64 bitų realių skaičių. Nes skaičiavimo laikas tik 10 sekundžių trumpesnis (64 s VS 54 s).
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; f:real; d:longint; h:real;
begin
for a:=2 to 1000000000 do
begin
b:=a;
h:=2;
for d:=1 to 4 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
f:=f+b*(1.0-b*b*(0.3333333333333333333333+b*b*(0.2-b*b*(0.1428571428571428571428+
b*b*(0.11111111111111111111111-b*b*0.0909090909090909090909))))) +1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:duoda atsakymą 1.5707964082133019E+009. Pirmą kartą po 2 minučių ir 6 sekundžių (126 sekundžių). Antrą kartą po minutės ir 46 sekundžių (106 sekundžių). Su 4.16 GHz CPU. Kode 1 milijardas (-1) pagrindinių iteracijų ir kiekvienoje jų 4 vidinės iteracijos.
hrurjjug0m2e9r2mkktcysbabmjtw76
59135
59134
2026-11-12T07:58:48Z
Paraboloid
1294
/* Arktangento Benchmark */
59135
wikitext
text/x-wiki
[[Elementariųjų funkcijų reikšmių skaičiavimas]]
:Logaritminės ir atvirkštinių trigonometrinių funkcijų reikšmių skaičiavimas pagrįstas Teiloro formulės taikymu. Čia smulkiai aptarsime, kaip skaičiuojamos logaritmo ir arktangento reikšmės. Funkcijų <math>\operatorname{arcctg} x, \;</math> <math>\operatorname{arcsin} x \;</math> ir <math>\operatorname{arccos} x \;</math> reikšmių skaičiavimas pakeičiamas arktangento reikšmių skaičiavimu pagal šitokias žinomas formules:
:[ https://en.wikipedia.org/wiki/Inverse_trigonometric_functions#Relationships_among_the_inverse_trigonometric_functions ]
:<math>\operatorname{arcctg} x =\frac{\pi}{2} -\operatorname{arctg} x, \;\;\; \operatorname{arcsin} x=\operatorname{arctg}\frac{x}{\sqrt{1-x^2}},</math>
:<math>\operatorname{arccos} x =\operatorname{arcctg}\frac{x}{\sqrt{1-x^2}} =\operatorname{arctg}\frac{\sqrt{1-x^2}}{x}.</math>
==1. Skaičiaus ln(a) radimas==
:Skaičių a>0 išreikškime sandauga
:<math>a=2^p M. \quad (8.83)</math>
:kurioje ''p'' – sveikasis skaičius, o ''M'' tenkina nelygybes
:<math>\frac{1}{2}\leq M<1. \quad (8.84)</math>
:Pastebėsime, kad skaičių ''a'' išreikšti (8.83) sandauga galima vieninteliu būdu. Remdamiesi (8.83) formule, logaritmą <math>\ln a</math> užrašome šitaip:
:<math>\ln a=\ln(2^p M)=p\ln 2 +\ln M. \quad (8.85)</math>
:Sakykime,
:<math>M=\frac{1}{\sqrt{2}} \, \frac{1+x}{1-x}, \quad (8.86)</math>
:ir šitą ''M'' išraišką įrašykime į (8.85) lygybę. Tada logaritmo <math>\ln a</math> išraiška bus šitokia:
:<math>\ln a=p\ln 2 +\ln M=p\ln 2 +\ln \left(\frac{1}{\sqrt{2}} \frac{1+x}{1-x}\right)=p\ln 2 +\ln \frac{1}{\sqrt{2}} +\ln \frac{1+x}{1-x}=</math>
:<math>=p\ln 2 -\frac{1}{2}\ln 2 +\ln \frac{1+x}{1-x}=\left(p -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}.</math>
:<math>\ln a=\left(p -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}. \quad (8.87)</math>
:Funkciją <math>\ln \frac{1+x}{1-x}</math> išdėstysime pagal Makloreno formulę. Pirma rasime kelias funkcijos <math>g(x)=\ln \frac{1+x}{1-x}</math> išvestines ir pagal jas nuspėsime aukštesnių eilių šios funkcijos išvestines (ir jų reikšmes, kai <math>x=0</math>).
:<math>g'(x)=\left(\ln \frac{1+x}{1-x}\right)'=\frac{1-x}{1+x}\cdot \left(\frac{1+x}{1-x}\right)'=</math>
:<math>=\frac{1-x}{1+x}\cdot \frac{(1+x)'(1-x)-(1+x)(1-x)'}{(1-x)^2}=\frac{1-x}{1+x}\cdot \frac{(1-x)-(1+x)(-1)}{(1-x)^2}=\frac{1-x}{1+x}\cdot \frac{(1-x)+(1+x)}{(1-x)^2}=</math>
:<math>=\frac{1-x}{1+x}\cdot \frac{2}{(1-x)^2}=\frac{2}{(1+x)(1-x)}=\frac{2}{1-x^2}.</math>
:<math>g''(x)=\left(\ln \frac{1+x}{1-x}\right)''=\left(\frac{2}{1-x^2}\right)'=-\frac{2}{(1-x^2)^2}\cdot (1-x^2)'=-\frac{2}{(1-x^2)^2}\cdot (-2x)=\frac{4x}{(1-x^2)^2}. </math>
:<math>g'''(x)=\left(\ln \frac{1+x}{1-x}\right)'''=\left(\frac{4x}{(1-x^2)^2}\right)'=\frac{(4x)'(1-x^2)^2 - 4x[(1-x^2)^2]'}{((1-x^2)^2)^2}= </math>
:<math>=\frac{4(1-x^2)^2 - 4x[2(1-x^2)']}{(1-x^2)^4}=\frac{4(1-2x^2+x^4) - 4x[2(-2x)]}{(1-x^2)^4}= \frac{4-8x^2+4x^4 + 16x^2}{(1-x^2)^4}= </math>
:<math>= \frac{4+8x^2+4x^4}{(1-x^2)^4}=\frac{4(1+2x^2+x^4)}{(1-x^2)^4}= \frac{4(1+x^2)^2}{(1-x^2)^4}.</math>
:<math>g^{(4)}(x)=\left(\ln \frac{1+x}{1-x}\right)^{(4)}=\left( \frac{4(1+x^2)^2}{(1-x^2)^4}\right)'=</math>
:<math>= \frac{(8(1+x^2)\cdot 2x)(1-x^2)^4 -4(1+x^2)^2\cdot 4(1-x^2)^3\cdot (-2x)}{(1-x^2)^8}=</math>
:<math>=\frac{16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3}{(1-x^2)^8}.</math>
:<math>g^{(5)}(x)=\left(\ln \frac{1+x}{1-x}\right)^{(5)}=\left(\frac{16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3}{(1-x^2)^8} \right)'=</math>
:<math>=\frac{[16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3]'(1-x^2)^8 - [16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3] ((1-x^2)^8)'}{(1-x^2)^{16}}=</math>
:<math>=\frac{[16(1+x^2)(1-x^2)^4+16x g_1(x) +32(1+x^2)^2 (1-x^2)^3+32x g_2(x)](1-x^2)^8 - [16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3] 8(1-x^2)^7 \cdot (-2x)}{(1-x^2)^{16}}=</math>
:<math>=\frac{[16(1+x^2)(1-x^2)^4+16x g_1(x) +32(1+x^2)^2 (1-x^2)^3+32x g_2(x)](1-x^2)^8 + 16x[16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3] (1-x^2)^7 }{(1-x^2)^{16}};</math>
:čia
:<math>g_1(x)=[(1+x^2)(1-x^2)^4]'=2x(1-x^2)^4 +(1+x^2)\cdot 4(1-x^2)^3 \cdot(-2x)=2x(1-x^2)^4 -8x(1+x^2)(1-x^2)^3,</math>
:<math>g_2(x)=[(1+x^2)^2 (1-x^2)^3]'=2(1+x^2)\cdot 2x \cdot (1-x^2)^3 +(1+x^2)^2 \cdot 3(1-x^2)^2 \cdot (-2x)=</math>
:<math>=4x(1+x^2)(1-x^2)^3 -6x(1+x^2)^2 (1-x^2)^2 .</math>
:Akivaizdu, kad <math>g_1(0)=0</math> ir <math>g_2(0)=0.</math>
:Randame funkcijos g(x) ir jos išvestinių reikšmes taške <math>x=0</math>:
:<math>g(0)=\ln \frac{1+0}{1-0}=\ln 1=0,</math>
:<math>g'(0)=\frac{2}{1-0^2}=2,</math>
:<math>g''(0)=\frac{4\cdot 0}{(1-0^2)^2}=0,</math>
:<math>g'''(0)=\frac{4(1+2\cdot 0^2+0^4)}{(1-0^2)^4}=4, </math>
:<math>g^{(4)}(0)=\frac{16\cdot 0(1+0^2)(1-x^2)^4 +32\cdot 0(1+0^2)^2 (1-0^2)^3}{(1-0^2)^8}=0.</math>
:<math>g^{(5)}(0)=\frac{[16(1+0^2)(1-0^2)^4+16\cdot 0\cdot g_1(0) +32(1+0^2)^2 (1-0^2)^3+32\cdot 0\cdot g_2(0)](1-0^2)^8 + 16\cdot 0[16\cdot 0(1+0^2)(1-0^2)^4 +32\cdot 0(1+0^2)^2 (1-0^2)^3] (1-0^2)^7 }{(1-0^2)^{16}}=</math>
:<math>=\frac{[16+32] +0}{1}=48.</math>
:Makloreno eilutės dėstinys su Lagranžo formos liekamuoju nariu bus šitoks:
:<math>\ln \frac{1+x}{1-x}=g(0)+\frac{g'(0)}{1!}x+\frac{g''(0)}{2!}x^2+ \frac{g'''(0)}{3!}x^3+...+ \frac{g^{(n)}(0)}{n!}x^n +\frac{g^{(n+1)}(\theta x)}{(n+1)!} x^{n+1}=</math>
:<math>=0+\frac{2}{1!}x+\frac{0}{2!}x^2+ \frac{4}{3!}x^3+\frac{0}{4!}x^4+\frac{48}{5!}x^5+...+ R_{2n+2}(x)=</math>
:<math>=2x+ \frac{2}{3}x^3+\frac{6\cdot 8}{5\cdot 4\cdot 3\cdot 2}x^5+...+ R_{2n+2}(x)=</math>
:<math>=2x+ \frac{2}{3}x^3+\frac{ 8}{5\cdot 4}x^5+...+ R_{2n+2}(x)=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+...+ \frac{2x^{2n+1}}{2n+1}+R_{2n+2}(x).</math>
:<math>\ln \frac{1+x}{1-x}=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+...+ \frac{2x^{2n+1}}{2n+1}+R_{2n+2}(x), \quad (8.88)</math>
:<math>R_{2n+2}(x)=-\frac{x^{2n+2}}{2n+2}\left[ \frac{1}{(1+\theta x)^{2n+2}} -\frac{1}{(1-\theta x)^{2n+2}}\right]; \quad (8.89)</math>
:skaičius <math>\theta</math> griežtai įterptas tarp nulio ir vieneto.
:[Naudotojas '''Paraboloid''' neįsivaizduoja iš kur ir kaip gauta tokia <math>R_{2n+2}(x)</math> išraiška. Ar ji teisinga, paaiškės apskaičiavus pavyzdį.]
:Skaičiuojant <math>\ln a</math> artinį, naudojama formulė
:<math>\ln a\approx\left(p -\frac{1}{2}\right)\ln 2 + 2\left( x+ \frac{x^3}{3}+\frac{x^5}{5}+...+ \frac{x^{2n+1}}{2n+1}\right), \quad (8.90)</math>
:kuri gaunama iš (8.87) lygybės, funkciją <math>\ln \frac{1+x}{1-x}</math> pakeitus šios funkcijos (8.88) Makloreno formulės dalimi be liekamojo nario <math>R_{2n+2}(x).</math> Pastebėsime, kad skaičius ''x'' apytikslėje <math>\ln a</math> formulėje randamas iš (8.86) formulės, atsižvelgus į (8.84) nelygybes, kurias turi tenkinti skaičius ''M''.
:Įvertinsime (8.90) formulės paklaidą. Kadangi skaičiaus <math>\ln a</math> artinio, apskaičiuoto pagal (8.90) formulę, ir tikslios reikšmės, gaunamos pagal (8.87) formulę, skirtumas lygus liekamajam nariui <math>R_{2n+2}(x),</math> tai, aiškinantis paklaidą, užtenka įvertinti tą liekamąjį narį.
:Iš pradžių išsiaiškinsime ''x'' kitimo ribas. Iš (8.86) formulės gauname
:<math>M=\frac{1}{\sqrt{2}} \, \frac{1+x}{1-x}, \quad (8.86)</math>
:<math>M\sqrt{2}= \frac{1+x}{1-x},</math>
:<math>M\sqrt{2}(1-x)= 1+x,</math>
:<math>M\sqrt{2}-1= x+xM\sqrt{2},</math>
:<math>x=\frac{M\sqrt{2}-1}{M\sqrt{2}+1}. \quad (8.91)</math>
:Jei ''M'' reikšmės tenkina (8.84) nelygybes, tai ''x'' tenkina sąlygą*
:<math>|x|<0.172. \quad (8.92)</math>
:[ <math>h'(M)=\left(\frac{M\sqrt{2}-1}{M\sqrt{2}+1}\right)'=\frac{\sqrt{2}(M\sqrt{2}+1)-(M\sqrt{2}-1)\sqrt{2}}{(M\sqrt{2}+1)^2} =\frac{(2M+\sqrt{2})-(2M-\sqrt{2})}{(M\sqrt{2}+1)^2} =\frac{2\sqrt{2}}{(M\sqrt{2}+1)^2}.</math>
:<math>\frac{2\sqrt{2}}{(M\sqrt{2}+1)^2}=0.</math> Matome, kad nėra tokių ''M'' reikšmių, su kuriom h'(M) būtų lygi nuliui. Todėl funkcija <math>h(M)=\frac{M\sqrt{2}-1}{M\sqrt{2}+1}</math> neturi maksimumo ir minimumo taškų.
:<math>h(1/2)=\frac{\frac{1}{2}\sqrt{2}-1}{\frac{1}{2}\sqrt{2}+1}=\frac{\frac{1}{\sqrt{2}}-1}{\frac{1}{\sqrt{2}}+1}=</math>
:=(0.70710678118654752440084436210485-1)/(0.70710678118654752440084436210485+1) =
:= -0.29289321881345247559915563789515/1.7071067811865475244008443621048 = -0.17157287525380990239662255158061.
:<math>h(1)=\frac{1\cdot \sqrt{2}-1}{1\cdot \sqrt{2}+1}=</math>
:=(1.4142135623730950488016887242097-1)/(1.4142135623730950488016887242097+1)=
:= 0.4142135623730950488016887242097/2.4142135623730950488016887242097 = 0.1715728752538099023966225515806.
:Taigi, matome, kad
:-0.17157287525380990239662255158061 < x < 0.1715728752538099023966225515806. Arba |x| < 0.171572875254.]
:Dabar pastebėsime, kad liekamasis narys <math>R_{2n+2}(x)</math> vienodai įvertinamas tiek tada, kai ''x'' reikšmės teigiamos, tiek tada, kai jos neigiamos (iš (8.89) formulės matyti, kad, ''x'' pakeitus -''x'', liekamojo nario <math>R_{2n+2}(x)</math> struktūra nepasikeičia). Todėl užtenka įvertinti <math>R_{2n+2}(x),</math> kai <math>x>0.</math> Atsižvelgę į tai ir į (8.92) nelygybę, dešiniojoje (8.89) formulės pusėje vietoj ''x'' rašome skaičių 0.172, vietoj trupmenos <math>\frac{1}{1+\theta x} </math> rašome vienetą, o vietoj <math>\frac{1}{1-\theta x} </math> – skaičių <math>\frac{1}{1-0.172} \;</math> ir gauname šitokį įvertį:
:<math>|R_{2n+2}(x)| \leq \frac{(0.172)^{2n+2}}{2n+2} \left[ 1+\frac{1}{(1-0.172)^{2n+2}}\right].</math>
:[Taip, čia laužtiniuose skliaustuose jau pliusas pasidarė. Tai arba (8.89) formulėje klaida arba čia.]
:Daugiklį <math>(0.172)^{2n+2}</math> įkelsime į laužtinius skliaustus. Kadangi <math>\frac{0.172}{1-0.172}< 0.208 \;</math> (0.172/(1-0.172)=0.172/0.828=~0.207729), tai
:<math>|R_{2n+2}(x)| \leq \frac{(0.172)^{2n+2} +(0.208)^{2n+2}}{2n+2}.\quad (8.93)</math>
:Skaičiuojant <math>\ln a</math> elektronine skaičiavimo mašina**, (8.90) formulėje dažniausiai imama <math>n=6.</math> Tuomet skaičiavimo tikslumas, kaip matyti iš (8.93), įvertinamas skaičiumi <math>\frac{(0.172)^{14} +(0.208)^{14}}{14}, \;</math> mažesniu kaip <math>1.625\cdot 10^{-10}.</math>
:[ (0.172^14 + 0.208^14)/14 = 2.1682237054688578614343997699803e-11 <math>\approx 2.1682237\cdot 10^{-11}.</math> ]
:[O jeigu ten turi būti minusas laužtiniuose skliaustuose kaip (8.89) formulėje, tai
:(0.172^14 - 0.208^14)/14 = -1.8848887113203326016424566362697e-11 <math>\approx -1.88488871132\cdot 10^{-11}.</math> Matome, kad nuo to nėra didelio skirtumo.]
________________
:''*'' Kadangi ''x'' yra argumento ''M'' funkcija, tai užtenka rasti maksimalią (8.91) funkcijos modulio reikšmę segmente <math>\left[\frac{1}{2}; \; 1 \right].</math>
:''**'' Taip skaičiuojamas <math>\ln a</math> elektronine skaičiavimo mašina БЭСМ-6.
===Pavyzdžiai===
*Apskaičiuosime ln(a)=ln(143). Pagal (8.83) formulę
:[<math>a=2^p M. \quad (8.83)</math>]
:<math>143=2^{8} M,</math>
:<math>M=\frac{143}{256}=0.55859375.</math>
:Toliau, pagal (8.87) formulę
:[<math>\ln a=\left(p -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}. \quad (8.87)</math>]
:<math>\ln 143=\left(8 -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}. </math>
:<math>\left(8 -\frac{1}{2}\right)\ln 2=7.5\ln 2=</math> 7.5*0.69314718055994530941723212145818 = 5.1986038541995898206292409109363.
:Tiksli ln(143) reikšmė yra ln(143)=4.9628446302599072801154310195304.
:Iš (8.91) formulės randame ''x'':
:<math>x=\frac{M\sqrt{2}-1}{M\sqrt{2}+1}=\frac{0.55859375\sqrt{2}-1}{0.55859375\sqrt{2}+1}=</math>
:= (0.55859375*1.4142135623730950488016887242097 - 1)/(0.55859375*1.4142135623730950488016887242097+1) =
:= -0.11733662705136264741194733209931.
:Toliau pagal (8.88) formulę apskaičiuosime <math>\ln \frac{1+x}{1-x}, \,</math> kai n=6.
:<math>\ln \frac{1+x}{1-x}=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+...+ \frac{2x^{2n+1}}{2n+1}=</math>
:<math>=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+\frac{ 2x^7}{7}+\frac{ 2x^9}{9}+\frac{ 2x^{11}}{11}+\frac{ 2x^{13}}{13}=2\left(x+ \frac{x^3}{3}+\frac{ x^5}{5}+\frac{ x^7}{7}+\frac{ x^9}{9}+\frac{ x^{11}}{11}+\frac{ x^{13}}{13} \right)=</math>
:= 2*(-0.11733662705136264741194733209931 -0.11733662705136264741194733209931^3/3 -0.11733662705136264741194733209931^5/5
:-0.11733662705136264741194733209931^7/7 -0.11733662705136264741194733209931^9/9 -0.11733662705136264741194733209931^11/11
:-0.11733662705136264741194733209931^13/13) =
:(nukopijavus viską nuo "2" iki ženklo "=" ir įdėjus (padarius "Paste") į ''Windows 10'' kalkuliatorių gaunamas žemiau esantis atsakymas)
:= -0.23575922393968105542703851052716.
:Pridėjus gautą atsakymą prie 7.5*ln(2) reikšmės, gauname ln(a)=ln(143) artinį:
:<math>\ln 143=\left(8 -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}= 7.5\ln 2+\ln \frac{1+x}{1-x}=</math>
:= 5.1986038541995898206292409109363 + (-0.23575922393968105542703851052716) = 4.9628446302599087652022024004091.
:Atėmę gautą ln(143) reikšmę iš tikslios ln(143) reikšmės, gauname
:4.9628446302599072801154310195304 - 4.9628446302599087652022024004091 = -0.0000000000000014850867713808787 = <math>\approx -1.48508677\cdot 10^{-15}.</math>
:<math>\frac{1+x}{1-x}=</math> (1+(-0.11733662705136264741194733209931))/(1-(-0.11733662705136264741194733209931)) =
:= (1-0.11733662705136264741194733209931)/(1+0.11733662705136264741194733209931) = 0.78997085710684606241656831078901.
:Tiksli ln(0.78997085710684606241656831078901) reikšmė yra tokia:
:ln(0.78997085710684606241656831078901) = -0.23575922393968254051380989140588.
:<math>\ln \frac{1+x}{1-x}\,</math> (su x=-0.11733662705136264741194733209931) paklaida yra tokia:
:-0.23575922393968254051380989140588 - (-0.23575922393968105542703851052716) =
:= -0.23575922393968254051380989140588 + 0.23575922393968105542703851052716 = -0.00000000000000148508677138087872 = <math>\approx -1.48508677\cdot 10^{-15}.</math>
:Pagal (8.89) formulę
:<math>R_{2n+2}(x)=-\frac{x^{2n+2}}{2n+2}\left[ \frac{1}{(1+\theta x)^{2n+2}} -\frac{1}{(1-\theta x)^{2n+2}}\right]. \quad (8.89)</math>
:<math>|R_{2n+2}(x)|<\frac{(-0.117336627)^{2n+2}}{2n+2}\left[ \frac{1}{(1+(-0.117336627))^{2n+2}} -1\right]= \frac{(-0.117336627)^{2\cdot 6+2}}{2\cdot 6+2}\left[ \frac{1}{(1-0.117336627)^{2\cdot 6+2}} -1\right]=</math>
:<math>= \frac{(-0.117336627)^{14}}{14}\left[ \frac{1}{(1-0.117336627)^{14}} -1\right]=</math>
:= (-0.11733662705136264741194733209931)^14 * (1/(1-0.11733662705136264741194733209931)^14 -1)/14 =
:= 3.1744477658835444278622203928479e-14 <math>\approx 3.1744477658835444\cdot 10^{-14}.</math>
:Matome, kad paklaida įvertinta teisingai, nes
:<math>1.48508677\cdot 10^{-15} < 3.1744477658835444\cdot 10^{-14}.</math>
:Pastebėsime, kad
:<math>\frac{(-0.117336627)^{14}}{14} =</math> 6.6979571136742061476086008278822e-15 <math>\approx 6.6979571136742\cdot 10^{-15}</math>;
:<math>\frac{(-0.117336627)^{15}}{15} =</math> -0.11733662705136264741194733209931^15/15 = -7.3352131612966428681484668924553e-16.
:Todėl (8.88) formulėje liekamąjį narį tikriausiai galima įvertinti taip:
:<math>|R_{2n+2}(x)|< |\frac{x^{2n+2}}{2n+2}|\approx 6.6979571136742\cdot 10^{-15}.</math>
:Arba garantuotai visais atvejais R(x) turėtų būti teisingas, kai
:<math>|R(x)|< |\frac{x^{2n+1}}{2n+1}|.</math>
:Nes <math>\frac{(-0.117336627)^{13}}{13} =</math> -0.11733662705136264741194733209931^13/13 = -6.1474279304103020252424035678064e-14.
==2. Skaičiaus arctg(x) radimas.==
:Skaičiuojant <math>\operatorname{arctg}\alpha,</math> užtenka nagrinėti teigiamas argumento reikšmes, nes, kai <math>|\alpha|=x,</math> gauname
:<math>\operatorname{arctg}\alpha=\sgn\alpha \cdot \operatorname{arctg} x.</math>
:Aprašysime standartines transformacijas, kuriomis <math> \operatorname{arctg} x</math> skaičiavimas, kai argumento ''x'' reikšmės ne mažesnės kaip <math>\frac{1}{8},</math> pakeičiamas arktangento skaičiavimu, kai argumento reikšmės mažesnės už <math>\frac{1}{8}.</math>
:Iš pradžių tarkime, kad <math>x\geq 1.</math> Sakykime, <math>y=\operatorname{arctg} x, \;</math> t. y. <math>x=\operatorname{tg} y, \;</math> o <math>x_1=\operatorname{tg}(y-\operatorname{arctg} 1).</math> Iš paskutinės lygybės gauname
:[pasinaudodami formule (iš https://lt.wikibooks.org/wiki/Matematika/Trigonometrinės_formulės) <math> \tan(\alpha-\beta)=\frac{\tan\alpha -\tan\beta }{1 + \tan\alpha \tan\beta} . \quad (7)</math>]
:<math>x_1=\operatorname{tg}(y-\operatorname{arctg} 1)=\frac{\operatorname{tg} y -\operatorname{tg}(\operatorname{arctg} 1)}{1+\operatorname{tg} y \cdot \operatorname{tg}(\operatorname{arctg} 1)}=\frac{\operatorname{tg} y - 1}{1+\operatorname{tg} y \cdot 1}=\frac{\operatorname{tg} y - 1}{\operatorname{tg} y + 1}=\frac{x - 1}{x + 1}<1.</math>
:Kadangi
:<math>\operatorname{arctg} x_1=\operatorname{arctg}[\operatorname{tg}(y-\operatorname{arctg} 1)]=y-\operatorname{arctg} 1=\operatorname{arctg} x -\operatorname{arctg} 1,</math>
:<math>\operatorname{arctg} x=\operatorname{arctg} 1 +\operatorname{arctg} x_1=\frac{\pi}{4} +\operatorname{arctg} x_1,</math>
:tai, norint apskaičiuoti <math>\operatorname{arctg} x,</math> kai <math>x\geq 1,</math> pakanka apskaičiuoti <math>\operatorname{arctg} x_1,</math> kai <math>0<x_1<1.</math>
:Dabar aptarsime atvejį, kai argumentas tenkina nelygybes <math>\frac{1}{8} \leq x<1.</math>
:Sakykime, <math>k_1=1, \;\; k_2=\frac{1}{2}, \;\; k_3=\frac{1}{4}, \;\; k_4=\frac{1}{8}.</math> Savaime aišku, su kokia nors <math>i=1, \; 2, \; 3, \; 4 \;</math> reikšme yra teisingos nelygybės
:<math>k_i\leq x<2k_i. \quad (8.94)</math>
:[Kai ''x'' daugiau už 1, tai ''x'' gali būti daugiau už <math>2k_i.</math> Tiksliau, kai ''x''>2, tai <math>x>2k_1=2.</math>]
:Tarkime, kad <math>y=\operatorname{arctg} x, \;</math> t. y. <math>x=\operatorname{tg} y, \;</math> o <math>x_i=\operatorname{tg}(y-\operatorname{arctg} k_i).</math> Iš paskutinės lygybės gauname
:[pasinaudodami formule <math> \tan(\alpha-\beta)=\frac{\tan\alpha -\tan\beta }{1 + \tan\alpha \tan\beta} </math>]
:<math>x_i=\operatorname{tg}(y-\operatorname{arctg} k_i)=\frac{\operatorname{tg} y -\operatorname{tg}(\operatorname{arctg} k_i)}{1+\operatorname{tg} y \cdot \operatorname{tg}(\operatorname{arctg} k_i)}=\frac{\operatorname{tg} y - k_i}{1+\operatorname{tg} y \cdot k_i}=\frac{x - k_i}{1+k_i x}.</math>
:Kadangi <math>x>0,</math> tai <math>1+k_i x>1.</math> Be to, iš dešiniosios (8.94) nelygybės išplaukia <math>x-k_i < 2k_i- k_1=k_i.</math> Todėl iš paskutinės <math>x_i</math> išraiškos gauname nelygybę <math>x_i<k_i.</math> Kadangi
:<math>\operatorname{arctg} x_i=\operatorname{arctg}[\operatorname{tg}(y-\operatorname{arctg} k_i)]=y-\operatorname{arctg} k_i=\operatorname{arctg} x -\operatorname{arctg} k_i,</math>
:<math>\operatorname{arctg} x=\operatorname{arctg} k_i +\operatorname{arctg} x_i,</math>
:tai <math>\operatorname{arctg} x</math> skaičiavimas, kai ''x'' tenkina (8.94) nelygybes, pakeičiamas <math>\operatorname{arctg} x_i</math> skaičiavimu, kai <math>0< x_i < k_i.</math>
:Jei aprašytąsias argumento ''x'' transformacijas pakartosime daugių daugiausia keturis kartus, tai <math>\operatorname{arctg} x</math> skaičiavimą, kai ''x'' reikšmės priklauso pusintervaliui <math>\frac{1}{8} \leq x<1,</math> pakeisime arktangento skaičiavimu, kai argumento reikšmės mažesnės už <math>\frac{1}{8}.</math>
:[Ten klaidelė. Maksimum keturių transformacijų reikia, kai ''x'' reikšmės priklauso pusintervaliui <math>\frac{1}{8} \leq x,</math> o kai ''x'' reikšmės priklauso pusintervaliui <math>\frac{1}{8} \leq x<1,</math> tai tada daugių daugiausia gali prireikti 3 transformacijos.]
:Skaičiuojant <math>\operatorname{arctg} x,</math> kai <math>x< \frac{1}{8},</math> naudojama Makloreno formulė (kuri išvedama čia: https://lt.wikibooks.org/wiki/Matematika/Matematinės_eilutės)
:<math>\operatorname{arctg} x= x-\frac{x^3}{3}+\frac{x^5}{5}-\frac{x^7}{7}+...+(-1)^n \frac{x^{2n+1}}{2n+1} +R_{2n+2}(x).</math>
:Dažniausiai šioje formulėje imama <math>n=6</math> ir atmetamas liekamasis narys (taip, pavyzdžiui, daroma skaičiuojant elektronine mašina БЭСМ-6). Logaritmo ir arktangento skaičiavimo programa yra bendra. Naudojant tą programą arktangentui skaičiuoti, reikia, kad gretimi nariai <math>\frac{x^{2n+1}}{2n+1}</math> būtų priešingų ženklų.
==Pavyzdžiai==
*Apskaičiuosime <math>\operatorname{arctg} 5.</math> Čia <math>x=5.</math> Tada
:<math>x_i=\frac{x - k_i}{1+k_i x}.</math>
:Pradėsime nuo to, kad <math>k_1=1.</math> Tada
:<math>x_1=\frac{x - k_1}{1+k_1 x}=\frac{x - 1}{1+ x}=\frac{5 - 1}{1+ 5}=\frac{4}{6}=\frac{2}{3}.</math>
:Toliau
:<math>\operatorname{arctg} x=\operatorname{arctg} k_i +\operatorname{arctg} x_i=\operatorname{arctg} k_1 +\operatorname{arctg} x_1=\operatorname{arctg} 1 +\operatorname{arctg} \frac{2}{3}=\frac{\pi}{4} +\operatorname{arctg} \frac{2}{3}.</math>
:Toliau imsime <math>k_2=\frac{1}{2}.</math> Tada
:<math>x_2=\frac{x_1 - k_2}{1+k_2 x_1}=\frac{x_1 - \frac{1}{2}}{1+\frac{1}{2} x_1}=\frac{\frac{2}{3} - \frac{1}{2}}{1+\frac{1}{2} \cdot \frac{2}{3}}=\frac{\frac{4-3}{6} }{1+ \frac{1}{3}}=\frac{\frac{1}{6} }{\frac{3+1}{3}}=\frac{\frac{1}{6} }{\frac{4}{3}}=\frac{1}{6} \cdot\frac{3}{4}=\frac{1}{8}.</math>
:Toliau
:<math>\operatorname{arctg} \frac{2}{3}=\operatorname{arctg} x_1=\operatorname{arctg} k_2 +\operatorname{arctg} x_2=\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{1}{8}.</math>
:Toliau imsime <math>k_4=\frac{1}{8}.</math> Tada
:<math>x_4=\frac{x_2 - k_4}{1+k_4 x_2}=\frac{x_2 - \frac{1}{8}}{1+\frac{1}{8} x_2}=\frac{\frac{1}{8} - \frac{1}{8}}{1+\frac{1}{8} \cdot \frac{1}{8}}=\frac{0 }{1+ \frac{1}{64}}=\frac{0 }{\frac{64+1}{64}}=\frac{0 }{\frac{65}{64}}=0.</math>
:Ir gauname
:<math>\operatorname{arctg} \frac{1}{8}=\operatorname{arctg} x_2=\operatorname{arctg} k_4 +\operatorname{arctg} x_4=\operatorname{arctg} \frac{1}{8} +\operatorname{arctg} 0=\operatorname{arctg} \frac{1}{8} +0=\operatorname{arctg} \frac{1}{8}.</math>
:Tokiu budu
:<math>\operatorname{arctg} 5=\operatorname{arctg} x=\frac{\pi}{4} +\operatorname{arctg} \frac{2}{3}=\frac{\pi}{4} +\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{1}{8}.</math>
:<math>\frac{\pi}{4}=</math> 0.78539816339744830961566084581988;
:<math>\operatorname{arctg} \frac{1}{2}=</math> 0.46364760900080611621425623146121;
:<math>\operatorname{arctg} \frac{1}{8}=</math> 0.12435499454676143503135484916387.
:Šiame pavyzdyje skaičiuoti Makloreno eilutės nereikia su ''x'' reikšme mažesne už 1/8, nes <math>x_4=0.</math>
:Taigi,
:arctg(5) = 0.78539816339744830961566084581988 + 0.46364760900080611621425623146121 + 0.12435499454676143503135484916387 =
:= 1.373400766945015860861271926445.
:Tiksli arctg(5) reikšmė iš kalkuliatoriaus yra tokia:
:arctg(5) = 1.373400766945015860861271926445.
:Gavome tą patį atsakymą.
*Apskaičiuosime <math>\operatorname{arctg} 7.</math> Čia <math>x=7.</math>
:Pradėsime nuo to, kad <math>k_1=1.</math> Tada
:<math>x_1=\frac{x - k_1}{1+k_1 x}=\frac{x - 1}{1+ x}=\frac{7 - 1}{1+ 7}=\frac{6}{8}=\frac{3}{4}.</math>
:Toliau
:<math>\operatorname{arctg} x=\operatorname{arctg} k_1 +\operatorname{arctg} x_1=\operatorname{arctg} 1 +\operatorname{arctg} \frac{3}{4}=\frac{\pi}{4} +\operatorname{arctg} \frac{3}{4}.</math>
:Toliau imsime <math>k_2=\frac{1}{2}.</math> Tada
:<math>x_2=\frac{x_1 - k_2}{1+k_2 x_1}=\frac{x_1 - \frac{1}{2}}{1+\frac{1}{2} x_1}=\frac{\frac{3}{4} - \frac{1}{2}}{1+\frac{1}{2} \cdot \frac{3}{4}}=\frac{\frac{3-2}{4} }{1+ \frac{3}{8}}=\frac{\frac{1}{4} }{\frac{8+3}{8}}=\frac{\frac{1}{4} }{ \frac{11}{8}}=\frac{1}{4} \cdot\frac{8}{11}=\frac{2}{11}=0.(18).</math>
:Tuo tarpu <math>k_3=\frac{1}{4}=0.25</math> yra daugiau už 0.(18). Todėl skaičiavimus su <math>k_3=\frac{1}{4}</math> praleisime ir iškart skaičiuosime toliau su <math>k_4=\frac{1}{8}=0.125</math> (nes 0.125 yra mažiau nei 2/11=0.(18)). Taigi,
:<math>x_4=\frac{x_2 - k_4}{1+k_4 x_2}=\frac{x_2 - \frac{1}{8}}{1+\frac{1}{8} x_2}=\frac{\frac{2}{11} - \frac{1}{8}}{1+\frac{1}{8} \cdot \frac{2}{11}}=\frac{\frac{16-11}{88} }{1+ \frac{2}{88}}=\frac{\frac{5}{88} }{\frac{88+2}{88}}=\frac{\frac{5}{88} }{\frac{90}{88}}=\frac{5}{88}\cdot \frac{88}{90}=\frac{5}{90}=\frac{1}{18}=0.0(5).</math>
:[1/18 = 0.05555555555555555555555555555556.]
:Toliau galime skaičiuoti pagal Makloreno formulę,
:<math>\operatorname{arctg} x= x-\frac{x^3}{3}+\frac{x^5}{5}-\frac{x^7}{7}+...+(-1)^n \frac{x^{2n+1}}{2n+1} +R_{2n+2}(x),</math>
:imdami n=6 ir vietoje ''x'' įrašę <math>x_4.</math> Tada gauname:
:<math>\operatorname{arctg} \frac{1}{18}=\operatorname{arctg} x_4= x_4-\frac{x_4^3}{3}+\frac{x_4^5}{5}-\frac{x_4^7}{7}+\frac{x_4^9}{9}-\frac{x_4^{11}}{11}+ \frac{x_4^{13}}{13} =</math>
:= 1/18 - 1/18^3/3 + 1/18^5/5 - 1/18^7/7 + 1/18^9/9 - 1/18^11/11 + 1/18^13/13 = 0.05549850524571683556705277298107.
:(Kad gauti tokį atsakymą greitai, tereikia aukščiau esančią eilutę nukopijuoti ir įdėti į ''Windows 10'' kalkuliaorių, padarius "Paste").
:Atėmę gautą arctg(1/18) reikšmę iš tikslios arctg(1/18) reikšmės, gauname paklaidą:
:0.05549850524571683555719814809224 - 0.05549850524571683556705277298107 = -0.00000000000000000000985462488883 = <math>= -9.85462488883\cdot 10^{-21}.</math>
:Kaip ir su natūrinio logaritmo skaičiavimu, liekamąjį narį galima įvertinti taip:
:<math>|R_{2n+2}(x_4)|< |\frac{x_4^{2n+2}}{2n+2}|=</math> 1/18^14/14 = 1.9057103509769875767803163358316e-19 <math>\approx 1.90571035\cdot 10^{-19}.</math>
:Tada
:<math>\operatorname{arctg} \frac{3}{4}=\operatorname{arctg} x_1=\operatorname{arctg} k_2 +\operatorname{arctg} x_2=\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{2}{11};</math>
:<math>\operatorname{arctg} \frac{2}{11}=\operatorname{arctg} x_2=\operatorname{arctg} k_4 +\operatorname{arctg} x_4=\operatorname{arctg} \frac{1}{8} +\operatorname{arctg} \frac{1}{18}.</math>
:Todėl
:<math>\operatorname{arctg} 7=\operatorname{arctg} x=\frac{\pi}{4} +\operatorname{arctg} \frac{3}{4}=\frac{\pi}{4} +\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{2}{11}=</math>
:<math>=\frac{\pi}{4} +\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{1}{8} +\operatorname{arctg} \frac{1}{18}= </math>
:= 0.78539816339744830961566084581988 + 0.46364760900080611621425623146121 +0.12435499454676143503135484916387 + 0.05549850524571683556705277298107 = 1.428899272190732696428324699426.
:Atėmę ką tik gautą arctg(7) reikšmę iš kalkuliatoriaus tikslios arctg(7) reikšmės, gauname paklaidą:
:1.4288992721907326964184700745372 - 1.428899272190732696428324699426 = -9.8546248888316409091970590727231e-21 =
:= -0.0000000000000000000098546248888 <math>\approx -9.8546248888\cdot 10^{-21}.</math>
:Pastabos. Čia visos arkatangento reikšmės skaičiuojamos radianais. Kad kalkuliatorius skaičiuotų radianais, reikia paspausti mygtuką, kuris keičia tarp laipsnių, radianų ir gradianų (iš "DEG", "RAD" ir "GRAD" reikia išrinkti, kad rodytų "RAD"). O tam, kad kalkuliatorius apskaičiuotų arktangento reikšmę, reikia iš pradžių įrašyti skaičių į kalkuliatorių ir paskui ''Windows 10'' kalkuliatoriuje (kuris turi būti nustatytas [vienu paspaudimu] per patį kalkuliatorių, kad būtų "Scientific") paspausti "Trigonometry", vėliau paspausti <math>2^{nd}</math> ir tada paspausti <math>\tan^{-1}</math>. Tada ir bus gauta arktangento reikšmė radianais, jei buvo pasirinkta "RAD".
:<math>\operatorname{arctg} 1 = </math> 0.78539816339744830961566084581988.
:<math>\operatorname{arctg} 0.5 = </math> 0.46364760900080611621425623146121.
:<math>\operatorname{arctg} 0.25 =</math> 0.24497866312686415417208248121128.
:<math>\operatorname{arctg} 0.125 =</math> 0.12435499454676143503135484916387.
*<math>\operatorname{arctg} 0.9.</math>
:<math>\operatorname{arctg} a = \operatorname{arctg} 0.9 - \operatorname{arctg} 0.5.</math>
:<math>\tan(\alpha-\beta) = \tan\frac{\tan\alpha - \tan\beta}{1+\tan\alpha \tan\beta}. </math>
:<math>a = \operatorname{tg}\left( \operatorname{arctg} 0.9 - \operatorname{arctg} 0.5 \right) =</math>
:<math>=\tan\frac{\tan(\operatorname{arctg} 0.9) - \tan(\operatorname{arctg} 0.5)}{1+\tan(\operatorname{arctg} 0.9) \tan(\operatorname{arctg} 0.5)}= \tan\frac{0.9 - 0.5}{1+ 0.9\cdot 0.5}= \tan\frac{0.4}{1+ 0.45}=\tan\frac{0.4}{1.45}=</math>
:= 0.27586206896551724137931034482759.
:<math>\operatorname{arctg} (0.27586206896551724137931034482759)=</math>
:= 0.27586206896551724137931034482759 - 0.27586206896551724137931034482759^3/3 + 0.27586206896551724137931034482759^5/5 - 0.27586206896551724137931034482759^7/7 + 0.27586206896551724137931034482759^9/9 - 0.27586206896551724137931034482759^11/11 + 0.27586206896551724137931034482759^13/13 =
:= '''0.26916749'''304043554450715959336444.
:<math>\operatorname{arctg} (0.27586206896551724137931034482759)=</math>
:= '''0.26916749'''278570047542653584127307.
:<math>\operatorname{arctg} (0.27586206896551724137931034482759) + \operatorname{arctg} 0.5 =</math>
:= 0.26916749304043554450715959336444 + 0.46364760900080611621425623146121 =
:= '''0.73281510'''204124166072141582482565.
:<math>\operatorname{arctg} 0.9 =</math>
:= '''0.73281510'''178650659164079207273428.
:<math>\operatorname{arctg} b = \operatorname{arctg} a - \operatorname{arctg} 0.25 =</math>
:<math>b = \operatorname{tg}\left( \operatorname{arctg} (0.278299659434360506011219170928) - \operatorname{arctg} 0.25 \right) =</math>
:<math>= \tan\frac{0.26916749304043554450715959336444 - 0.25}{1+ 0.26916749304043554450715959336444\cdot 0.25}=</math>
:<math>\tan\frac{0.01916749304043554450715959336444}{1 + 0.06729187326010888612678989834111} = \tan\frac{0.01916749304043554450715959336444}{1.06729187326010888612678989834111}=</math>
:= 0.019167493040435544507159593364/1.067291873260108886126789898341 = 0.0179589983964623044012469281158.
:<math>\operatorname{arctg} (0.0179589983964623044012469281158)=</math>
:= 0.0179589983964623044012469281158 - 0.0179589983964623044012469281158^3/3 + 0.0179589983964623044012469281158^5/5 - 0.0179589983964623044012469281158^7/7 + 0.0179589983964623044012469281158^9/9 - 0.0179589983964623044012469281158^11/11 + 0.0179589983964623044012469281158^13/13 - 0.0179589983964623044012469281158^15/15 =
:= '''0.017957068024287386522471323702'''2.
:<math>\operatorname{arctg} (0.0179589983964623044012469281158)=</math>
:= '''0.017957068024287386522471323702'''33.
:<math>\operatorname{arctg} 0.9 = \operatorname{arctg} 0.5 + \operatorname{arctg} a = </math>
:<math>\operatorname{arctg} 0.9 = \operatorname{arctg} 0.5 + \operatorname{arctg} 0.25 + \operatorname{arctg} b = </math>
:= 0.46364760900080611621425623146121 + 0.24497866312686415417208248121128 + 0.0179570680242873865224713237022 =
:= '''0.7'''2658334015195765690881003637469.
:<math>\operatorname{arctg} 0.9 =</math>
:= '''0.7'''3281510178650659164079207273428.
:a = 0.27586206896551724137931034482759.
:<math>\operatorname{arctg} a=</math>
:= 0.26916749304043554450715959336444.
:<math>\operatorname{arctg} a = \operatorname{arctg} 0.25 + \operatorname{arctg} b =</math>
:= 0.24497866312686415417208248121128 + 0.0179570680242873865224713237022 =
:= '''0.26'''293573115115154069455380491348.
:Kalkuliatoriaus:
:arctg(0.27586206896551724137931034482759) =
:= '''0.26'''916749278570047542653584127307.
*<math>\operatorname{arctg} 1.6.</math>
:<math>\operatorname{arctg} a = \operatorname{arctg} 1.6 - \operatorname{arctg} 1.</math>
:<math>\tan(\alpha-\beta) = \tan\frac{\tan\alpha - \tan\beta}{1+\tan\alpha \tan\beta}. </math>
:<math>a = \operatorname{tg}\left( \operatorname{arctg} 1.6 - \operatorname{arctg} 1 \right) =</math>
:<math>=\tan\frac{\tan(\operatorname{arctg} 1.6) - \tan(\operatorname{arctg} 1)}{1+\tan(\operatorname{arctg} 1.6) \tan(\operatorname{arctg} 1)}= \tan\frac{1.6 - 1}{1+ 1.6\cdot 1}= \tan\frac{0.6}{2.6}=</math>
:= 0.23076923076923076923076923076923.
:<math>\operatorname{arctg} (0.23076923076923076923076923076923)=</math>
:= 0.23076923076923076923076923076923 - 0.23076923076923076923076923076923^3/3 + 0.23076923076923076923076923076923^5/5 - 0.23076923076923076923076923076923^7/7 + 0.23076923076923076923076923076923^9/9 - 0.23076923076923076923076923076923^11/11 + 0.23076923076923076923076923076923^13/13 - 0.23076923076923076923076923076923^15/15 =
:= '''0.226798848053'''04763076023291256713.
:<math>\operatorname{arctg} (0.23076923076923076923076923076923)=</math>
:= '''0.226798848053'''88587364415262941821.
:<math>\operatorname{arctg} 1.6 = \operatorname{arctg} 1 + \operatorname{arctg} a =</math>
:= 0.78539816339744830961566084581988 + 0.22679884805304763076023291256713 =
:= '''1.01219701145'''0495940375893758387.
:Kalkuliatoriaus:
:arctg(1.6) =
:= '''1.01219701145'''13341832598134752381.
:<math>\operatorname{arctg} b = \operatorname{arctg} a - \operatorname{arctg} 0.125.</math>
:<math>\operatorname{arctg} b = \operatorname{arctg} 0.23076923076923076923076923076923 - \operatorname{arctg} 0.125.</math>
:<math>\tan(\alpha-\beta) = \tan\frac{\tan\alpha - \tan\beta}{1+\tan\alpha \tan\beta}. </math>
:<math>b = \operatorname{tg}\left( \operatorname{arctg} 0.23076923076923076923076923076923 - \operatorname{arctg} 0.125 \right) =</math>
:<math>=\tan\frac{\tan(\operatorname{arctg} 0.23076923076923076923076923076923) - \tan(\operatorname{arctg} 0.125)}{1+\tan(\operatorname{arctg} 0.23076923076923076923076923076923) \tan(\operatorname{arctg} 0.125)}=</math>
:<math>= \tan\frac{0.23076923076923076923076923076923 - 0.125}{1+ 0.23076923076923076923076923076923\cdot 0.125}= \tan\frac{0.10576923076923076923076923076923}{1+0.02884615384615384615384615384615}=</math>
:0.105769230769230769230769230769/1.028846153846153846153846153846 =
:= 0.10280373831775700934579439252316.
:<math>\operatorname{arctg} (0.10280373831775700934579439252316)=</math>
:= 0.10280373831775700934579439252316 - 0.10280373831775700934579439252316^3/3 + 0.10280373831775700934579439252316^5/5 - 0.10280373831775700934579439252316^7/7 + 0.10280373831775700934579439252316^9/9 - 0.10280373831775700934579439252316^11/11 + 0.10280373831775700934579439252316^13/13 - 0.10280373831775700934579439252316^15/15 =
:= '''0.10244385350712443'''768036939404847.
:Kalkuliatoriaus:
:<math>\operatorname{arctg} (0.10280373831775700934579439252316)=</math>
:= '''0.10244385350712443'''861279778025414.
:<math>\operatorname{arctg} 1.6 = \operatorname{arctg} 1 + \operatorname{arctg} a = </math>
:<math>\operatorname{arctg} 1.6 = \operatorname{arctg} 1 + \operatorname{arctg} 0.125 + \operatorname{arctg} b = </math>
:= 0.78539816339744830961566084581988 + 0.12435499454676143503135484916387 + 0.10244385350712443768036939404847 =
:= '''1.01219701145133418'''23273850890322.
:Kalukuliatoriaus:
:<math>\operatorname{arctg} 1.6 =</math>
:= '''1.01219701145133418'''32598134752381.
:'''Free Pacal''' kodas, skaičiuoti arctg(a):
var a:real; b:real; c:real; d:real; g:real; f:real;
begin
//for a:=2 to 1000000000 do
begin
a:=7.0;
b:=(a-1.0)/(a+1.0);
c:=(b-0.5)/(1.0+b*0.5);
d:=(c-0.25)/(1.0+c*0.25);
g:=(d-0.125)/(1.0+0.125*d);
f:=g - g*g*(g/3 + g*g* (g/5-g*g* (g/7 + g*g* (g/9 -g*g*g/11))))+1.61837943007188001503;
// arctan(1)=pi/4 = 0.78539816339744830961566
// arctan(1/2) = 0.46364760900080611621425
// arctan(1/4) = 0.244978663126864154172
// arctan(1/8) = 0.12435499454676143503135
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
//f:=f+1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:Resultatas 1.4290003193181138E+000.
:Skaičiuojama iki (a^11)/11.
:Kalkuliatoriaus arctan(7) reikšmė yra 1.4288992721907326964184700745372.
:Šituo budu apskaičiuota kalkuliatoriumi arctan(7) reikšmė iki (x_4^11)/11 yra 1.4288992722261246066538981860865.
:Su kalkuliatoriumi skaičiuojant viską gaunama 10 pirmų teisingų skaitmenų. '''Free Pascal''' kodas duoda tik 3 pirmus teisingus skaitmenis. Looks like Pascal (or FPU) can't comprehend too complex code.
:Kodas skaičiuoja teisingai, nepaisant ar kuri nors iš reikšmių c, d, g gausis neigiama ar teigiama (jei kuri nors gaunasi neigiama, tai tiesiog dažniausiai (arba visada) prarandama kažkiek tikslumo).
:a=7.0;
:b=(a-1.0)/(a+1.0) = 6/8 = 0.75.
:c=(b-0.5)/(1.0+b*0.5) = (0.75-0.5)/(1.0+0.75*0.5) = 0.18181818181818181818181818181818.
:d=(c-0.25)/(1.0+c*0.25)=
:= (0.18181818181818181818181-0.25)/(1.0+0.18181818181818181818181*0.25)= -0.06521739130434782608696447542533.
:g=(d-0.125)/(1.0+0.125*d) =
:= (-0.06521739130434782608696-0.125)/(1.0-0.06521739130434782608696*0.125) = -0.19178082191780821917808578269844.
:Šis '''Free Pascal''' kodas:
var a:real; b:real; f:real; d:longint; h:real;
begin
//for a:=2 to 1000000000 do
begin
a:=7.0;
begin
b:=a;
h:=2.0;
for d:=1 to 4 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
end;
f:=b - b*b*(b/3.0 + b*b* (b/5.0-b*b* (b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:Duoda tą patį rezultatą 1.4290003193181138E+000.
:Reikšmė b kode apskaičiuota teisingai ir yra lygi -1.9178082191780821E-001 arba
:a:=7.0;
:b:=(a-1.0)/(a+1.0) = 6/8 = 0.75.
:c:=(b-0.5)/(1.0+b*0.5) = (0.75-0.5)/(1.0+0.75*0.5) = 0.18181818181818181818181818181818.
:d:=(c-0.25)/(1.0+c*0.25)=
:= (0.18181818181818181818181-0.25)/(1.0+0.18181818181818181818181*0.25)= -0.06521739130434782608696447542533.
:g:=(d-0.125)/(1.0+0.125*d) =
:= (-0.06521739130434782608696-0.125)/(1.0-0.06521739130434782608696*0.125) = -0.19178082191780821917808578269844.
:Reikšmė lygiai tokia pati kaip ir preitame kode reikšmė g.
:Tikslumo praradimai panašu prasideda skaičiuojant reikšmę f. Skaičiavimas su kalkuliatoriumi:
-0.19178082191780821917808219178082 - (-0.19178082191780821917808219178082)^3/3 +(-0.19178082191780821917808219178082)^5/5 - (-0.19178082191780821917808219178082)^7/7 +(-0.19178082191780821917808219178082)^9/9 - (-0.19178082191780821917808219178082)^11/11 = -0.18948015784575540837945622156966.
-0.18948015784575540837945622156966 + 1.6183794300718800150333544076562 =1.4288992722261246066538981860865.
:Čia 10 pirmų skaitmenų teisingi.
:Toks '''Free Pascal''' kodas:
var a:real; b:real; f:real; d:longint; h:real;
begin
//for a:=2 to 1000000000 do
begin
a:=7.0;
begin
b:=a;
h:=2.0;
for d:=1 to 2 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
end;
f:=b - b*b*(b/3.0 + b*b* (b/5.0-b*b* (b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.2490457723982544258;
//pi/4+arctan(1/2) = 1.2490457723982544258
end;
writeln(f);
Readln;
End.
:duoda atsakymą:
:1.4288216709361827E+000. Tiksli arctg(7) reikšmė yra:
:1.4288992721907326964184700745372.
:Pirmi penki skaitmenys teisingi. Čia d yra dviejų iteracijų vietoje keturių iteracijų. Dėl to kažkaip arktangento eilutė tiksliau/geriau paskaičiuojama.
===Arktangento Benchmark===
:Toks arktangentų reikšmių (nuo 2 iki 1 milijardo) skaičiavimo kodas:
var a:longint; b:real; c:real; d:real; g:real; f:real;
begin
for a:=1 to 1000000000 do
begin
b:=(1.0*a-1.0)/(1.0*a+1.0);
c:=(b-0.5)/(1.0+b*0.5);
d:=(c-0.25)/(1.0+c*0.25);
g:=(d-0.125)/(1.0+0.125*d);
f:=f+g - g*g*(g/3 + g*g* (g/5-g*g* (g/7 + g*g* (g/9 -g*g*g/11))))+1.61837943007188001503;
end;
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
// f:=f+1.61837943007188001503;
writeln(f);
Readln;
End.
:duoda 1.5707964092145209E+009. Labai didelės a reikšmės duoda <math>\arctan a \approx\pi/2</math>. Pirmą kartą skaičiuojama 1 minutę ir 9 sekundes. Antrą ir trečią kartą - 1 minutę ir 7 sekundes. Su 4.16 GHz procesorium.
:<math>\pi/2 =</math> 1.5707963267948966192313216916398.
:Truputi labiau optimizuotas '''Free Pascal''' kodas:
var a:longint; b:real; c:real; d:real; g:real; f:real;
begin
for a:=2 to 1000000000 do
begin
b:=(a-1.0)/(a+1.0);
c:=(b-0.5)/(1.0+b*0.5);
d:=(c-0.25)/(1.0+c*0.25);
g:=(d-0.125)/(1.0+0.125*d);
f:=f+g - g*g*(g/3 + g*g* (g/5-g*g* (g/7 + g*g* (g/9 -g*g*g/11))))+1.61837943007188001503;
end;
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
// f:=f+1.61837943007188001503;
writeln(f);
Readln;
End.
:duoda atsakymą 1.5707964082113807E+009. Pirmą kartą po minutės ir 7 sekundžių (67 sekundžių). Antrą kartą po minutės ir 4 sekundžių (64 sekundžių). Su 4.16 GHz CPU.
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; f:real; d:longint; h:real;
begin
for a:=2 to 1000000000 do
begin
b:=a;
h:=2;
for d:=1 to 2 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
f:=f+b - b*b*(b/3.0 + b*b* (b/5.0-b*b* (b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.2490457723982544258;
//pi/4+arctan(1/2) = 1.2490457723982544258
end;
writeln(f);
Readln;
End.
:duoda atsakymą 1.5692808286515808E+009. Pirmą kartą po minutės ir 45 sekundžių (105 sekundžių). Antrą kartą po minutės ir 27 sekundžių (87 sekundžių). Su 4.16 GHz procesorium.
:Toks kodas:
var a:longint; b:real; f:real; d:longint; h:real;
begin
for a:=2 to 1000000000 do
begin
b:=a;
h:=2;
for d:=1 to 4 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
f:=f+b - b*b*(b/3.0 + b*b* (b/5.0-b*b*(b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:duoda 1.5707964082113807E+009. Pirmą kartą po 2 minučių ir 24 sekundžių (144 sekundžių). Antrą kartą po 2 minučių ir 2 sekundžių (122 sekundžių). Su 4.16 GHz CPU.
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; c:real; d:real; e:real; f:real; g:real;
begin
for a:=2 to 1000000000 do
//a:=7;
begin
b:=(a-1)/(a+1);
c:=(b-0.5)/(1+0.5*b);
d:=(c-0.25)/(1+0.25*c);
e:=(d-0.125)/(1+0.125*d);
f:=e*(1.0-e*e*(0.3333333333333333333333+e*e*(0.2-e*e*(0.1428571428571428571428+
e*e*(0.11111111111111111111111-e*e*0.0909090909090909090909)))));
// arctan(1)=pi/4 = 0.78539816339744830961566
// arctan(1/2) = 0.46364760900080611621425
// arctan(1/4) = 0.244978663126864154172
// arctan(1/8) = 0.12435499454676143503135
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
g:=g+f+1.61837943007188001503;
end;
writeln(g);
Readln;
End.
:duoda atsakymą 1.5707964082133019E+009. Pirmą kartą po 55 sekundžių. Antrą kartą po 54 sekundžių. Su 4,16 GHz procesorium. Išeina arktangento eilutės konstantos arba apskaičiuojamos prieš paleidžiant kodą arba dalyba iš mažų sveikųjų skaičių yra greitesnė nei iš didelių sveikųjų skaičių ir tuo labiau 64 bitų realių skaičių. Nes skaičiavimo laikas tik 10 sekundžių trumpesnis (64 s VS 54 s).
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; f:real; d:longint; h:real;
begin
for a:=2 to 1000000000 do
begin
b:=a;
h:=2;
for d:=1 to 4 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
f:=f+b*(1.0-b*b*(0.3333333333333333333333+b*b*(0.2-b*b*(0.1428571428571428571428+
b*b*(0.11111111111111111111111-b*b*0.0909090909090909090909))))) +1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:duoda atsakymą 1.5707964082133019E+009. Pirmą kartą po 2 minučių ir 6 sekundžių (126 sekundžių). Antrą kartą po minutės ir 46 sekundžių (106 sekundžių). Su 4.16 GHz CPU. Kode 1 milijardas (-1) pagrindinių iteracijų ir kiekvienoje jų 4 vidinės iteracijos.
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; c:real; d:real; e:real; f:real; g:real;
begin
for a:=2 to 1000000000 do
begin
b:=(a-1)/(a+1);
c:=(b-0.5)/(1+0.5*b);
d:=(c-0.25)/(1+0.25*c);
e:=(d-0.125)/(1+0.125*d);
f:=e*(1.0-e*e*(1/3+e*e*(1/5-e*e*(1/7+e*e*(1/9-e*e/11)))));
g:=g+f+1.61837943007188001503;
end;
writeln(g);
Readln;
End.
:duoda atsakymą 1.5707964082133019E+009. Pirmą kartą po 1 minutės ir 1 sekundės. Antrą kartą po 58 sekundžių. Su 4.16 GHz CPU. Panašiau, kad Free Pascal iš pradžių apskaičiuoja konstantas, kurias paskui naudoja. Šitoje arktangento eilutėje mažiau operacijų nei, kur skaičiuota 64 sekundes per antrą kartą. Nes eilutė protingiau parašyta ir gavosi trumpesnė (11 daugybų vietoje 15 daugybų, jei pvz. 1/3 skaičiuoti kaip konstantą 0.333333333333333). Bet vis tiek 4 sekundėm ilgiau skaičiuota. Gal dalyba iš 11 buvo tikra. Arba visos dalybos iš mažų skaičiui labai greitai atliekamos su CPU.
f85gim3j6hqa2s4z4ixuyj5tpkbxz98
59136
59135
2026-11-12T08:11:43Z
Paraboloid
1294
/* Arktangento Benchmark */
59136
wikitext
text/x-wiki
[[Elementariųjų funkcijų reikšmių skaičiavimas]]
:Logaritminės ir atvirkštinių trigonometrinių funkcijų reikšmių skaičiavimas pagrįstas Teiloro formulės taikymu. Čia smulkiai aptarsime, kaip skaičiuojamos logaritmo ir arktangento reikšmės. Funkcijų <math>\operatorname{arcctg} x, \;</math> <math>\operatorname{arcsin} x \;</math> ir <math>\operatorname{arccos} x \;</math> reikšmių skaičiavimas pakeičiamas arktangento reikšmių skaičiavimu pagal šitokias žinomas formules:
:[ https://en.wikipedia.org/wiki/Inverse_trigonometric_functions#Relationships_among_the_inverse_trigonometric_functions ]
:<math>\operatorname{arcctg} x =\frac{\pi}{2} -\operatorname{arctg} x, \;\;\; \operatorname{arcsin} x=\operatorname{arctg}\frac{x}{\sqrt{1-x^2}},</math>
:<math>\operatorname{arccos} x =\operatorname{arcctg}\frac{x}{\sqrt{1-x^2}} =\operatorname{arctg}\frac{\sqrt{1-x^2}}{x}.</math>
==1. Skaičiaus ln(a) radimas==
:Skaičių a>0 išreikškime sandauga
:<math>a=2^p M. \quad (8.83)</math>
:kurioje ''p'' – sveikasis skaičius, o ''M'' tenkina nelygybes
:<math>\frac{1}{2}\leq M<1. \quad (8.84)</math>
:Pastebėsime, kad skaičių ''a'' išreikšti (8.83) sandauga galima vieninteliu būdu. Remdamiesi (8.83) formule, logaritmą <math>\ln a</math> užrašome šitaip:
:<math>\ln a=\ln(2^p M)=p\ln 2 +\ln M. \quad (8.85)</math>
:Sakykime,
:<math>M=\frac{1}{\sqrt{2}} \, \frac{1+x}{1-x}, \quad (8.86)</math>
:ir šitą ''M'' išraišką įrašykime į (8.85) lygybę. Tada logaritmo <math>\ln a</math> išraiška bus šitokia:
:<math>\ln a=p\ln 2 +\ln M=p\ln 2 +\ln \left(\frac{1}{\sqrt{2}} \frac{1+x}{1-x}\right)=p\ln 2 +\ln \frac{1}{\sqrt{2}} +\ln \frac{1+x}{1-x}=</math>
:<math>=p\ln 2 -\frac{1}{2}\ln 2 +\ln \frac{1+x}{1-x}=\left(p -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}.</math>
:<math>\ln a=\left(p -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}. \quad (8.87)</math>
:Funkciją <math>\ln \frac{1+x}{1-x}</math> išdėstysime pagal Makloreno formulę. Pirma rasime kelias funkcijos <math>g(x)=\ln \frac{1+x}{1-x}</math> išvestines ir pagal jas nuspėsime aukštesnių eilių šios funkcijos išvestines (ir jų reikšmes, kai <math>x=0</math>).
:<math>g'(x)=\left(\ln \frac{1+x}{1-x}\right)'=\frac{1-x}{1+x}\cdot \left(\frac{1+x}{1-x}\right)'=</math>
:<math>=\frac{1-x}{1+x}\cdot \frac{(1+x)'(1-x)-(1+x)(1-x)'}{(1-x)^2}=\frac{1-x}{1+x}\cdot \frac{(1-x)-(1+x)(-1)}{(1-x)^2}=\frac{1-x}{1+x}\cdot \frac{(1-x)+(1+x)}{(1-x)^2}=</math>
:<math>=\frac{1-x}{1+x}\cdot \frac{2}{(1-x)^2}=\frac{2}{(1+x)(1-x)}=\frac{2}{1-x^2}.</math>
:<math>g''(x)=\left(\ln \frac{1+x}{1-x}\right)''=\left(\frac{2}{1-x^2}\right)'=-\frac{2}{(1-x^2)^2}\cdot (1-x^2)'=-\frac{2}{(1-x^2)^2}\cdot (-2x)=\frac{4x}{(1-x^2)^2}. </math>
:<math>g'''(x)=\left(\ln \frac{1+x}{1-x}\right)'''=\left(\frac{4x}{(1-x^2)^2}\right)'=\frac{(4x)'(1-x^2)^2 - 4x[(1-x^2)^2]'}{((1-x^2)^2)^2}= </math>
:<math>=\frac{4(1-x^2)^2 - 4x[2(1-x^2)']}{(1-x^2)^4}=\frac{4(1-2x^2+x^4) - 4x[2(-2x)]}{(1-x^2)^4}= \frac{4-8x^2+4x^4 + 16x^2}{(1-x^2)^4}= </math>
:<math>= \frac{4+8x^2+4x^4}{(1-x^2)^4}=\frac{4(1+2x^2+x^4)}{(1-x^2)^4}= \frac{4(1+x^2)^2}{(1-x^2)^4}.</math>
:<math>g^{(4)}(x)=\left(\ln \frac{1+x}{1-x}\right)^{(4)}=\left( \frac{4(1+x^2)^2}{(1-x^2)^4}\right)'=</math>
:<math>= \frac{(8(1+x^2)\cdot 2x)(1-x^2)^4 -4(1+x^2)^2\cdot 4(1-x^2)^3\cdot (-2x)}{(1-x^2)^8}=</math>
:<math>=\frac{16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3}{(1-x^2)^8}.</math>
:<math>g^{(5)}(x)=\left(\ln \frac{1+x}{1-x}\right)^{(5)}=\left(\frac{16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3}{(1-x^2)^8} \right)'=</math>
:<math>=\frac{[16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3]'(1-x^2)^8 - [16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3] ((1-x^2)^8)'}{(1-x^2)^{16}}=</math>
:<math>=\frac{[16(1+x^2)(1-x^2)^4+16x g_1(x) +32(1+x^2)^2 (1-x^2)^3+32x g_2(x)](1-x^2)^8 - [16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3] 8(1-x^2)^7 \cdot (-2x)}{(1-x^2)^{16}}=</math>
:<math>=\frac{[16(1+x^2)(1-x^2)^4+16x g_1(x) +32(1+x^2)^2 (1-x^2)^3+32x g_2(x)](1-x^2)^8 + 16x[16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3] (1-x^2)^7 }{(1-x^2)^{16}};</math>
:čia
:<math>g_1(x)=[(1+x^2)(1-x^2)^4]'=2x(1-x^2)^4 +(1+x^2)\cdot 4(1-x^2)^3 \cdot(-2x)=2x(1-x^2)^4 -8x(1+x^2)(1-x^2)^3,</math>
:<math>g_2(x)=[(1+x^2)^2 (1-x^2)^3]'=2(1+x^2)\cdot 2x \cdot (1-x^2)^3 +(1+x^2)^2 \cdot 3(1-x^2)^2 \cdot (-2x)=</math>
:<math>=4x(1+x^2)(1-x^2)^3 -6x(1+x^2)^2 (1-x^2)^2 .</math>
:Akivaizdu, kad <math>g_1(0)=0</math> ir <math>g_2(0)=0.</math>
:Randame funkcijos g(x) ir jos išvestinių reikšmes taške <math>x=0</math>:
:<math>g(0)=\ln \frac{1+0}{1-0}=\ln 1=0,</math>
:<math>g'(0)=\frac{2}{1-0^2}=2,</math>
:<math>g''(0)=\frac{4\cdot 0}{(1-0^2)^2}=0,</math>
:<math>g'''(0)=\frac{4(1+2\cdot 0^2+0^4)}{(1-0^2)^4}=4, </math>
:<math>g^{(4)}(0)=\frac{16\cdot 0(1+0^2)(1-x^2)^4 +32\cdot 0(1+0^2)^2 (1-0^2)^3}{(1-0^2)^8}=0.</math>
:<math>g^{(5)}(0)=\frac{[16(1+0^2)(1-0^2)^4+16\cdot 0\cdot g_1(0) +32(1+0^2)^2 (1-0^2)^3+32\cdot 0\cdot g_2(0)](1-0^2)^8 + 16\cdot 0[16\cdot 0(1+0^2)(1-0^2)^4 +32\cdot 0(1+0^2)^2 (1-0^2)^3] (1-0^2)^7 }{(1-0^2)^{16}}=</math>
:<math>=\frac{[16+32] +0}{1}=48.</math>
:Makloreno eilutės dėstinys su Lagranžo formos liekamuoju nariu bus šitoks:
:<math>\ln \frac{1+x}{1-x}=g(0)+\frac{g'(0)}{1!}x+\frac{g''(0)}{2!}x^2+ \frac{g'''(0)}{3!}x^3+...+ \frac{g^{(n)}(0)}{n!}x^n +\frac{g^{(n+1)}(\theta x)}{(n+1)!} x^{n+1}=</math>
:<math>=0+\frac{2}{1!}x+\frac{0}{2!}x^2+ \frac{4}{3!}x^3+\frac{0}{4!}x^4+\frac{48}{5!}x^5+...+ R_{2n+2}(x)=</math>
:<math>=2x+ \frac{2}{3}x^3+\frac{6\cdot 8}{5\cdot 4\cdot 3\cdot 2}x^5+...+ R_{2n+2}(x)=</math>
:<math>=2x+ \frac{2}{3}x^3+\frac{ 8}{5\cdot 4}x^5+...+ R_{2n+2}(x)=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+...+ \frac{2x^{2n+1}}{2n+1}+R_{2n+2}(x).</math>
:<math>\ln \frac{1+x}{1-x}=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+...+ \frac{2x^{2n+1}}{2n+1}+R_{2n+2}(x), \quad (8.88)</math>
:<math>R_{2n+2}(x)=-\frac{x^{2n+2}}{2n+2}\left[ \frac{1}{(1+\theta x)^{2n+2}} -\frac{1}{(1-\theta x)^{2n+2}}\right]; \quad (8.89)</math>
:skaičius <math>\theta</math> griežtai įterptas tarp nulio ir vieneto.
:[Naudotojas '''Paraboloid''' neįsivaizduoja iš kur ir kaip gauta tokia <math>R_{2n+2}(x)</math> išraiška. Ar ji teisinga, paaiškės apskaičiavus pavyzdį.]
:Skaičiuojant <math>\ln a</math> artinį, naudojama formulė
:<math>\ln a\approx\left(p -\frac{1}{2}\right)\ln 2 + 2\left( x+ \frac{x^3}{3}+\frac{x^5}{5}+...+ \frac{x^{2n+1}}{2n+1}\right), \quad (8.90)</math>
:kuri gaunama iš (8.87) lygybės, funkciją <math>\ln \frac{1+x}{1-x}</math> pakeitus šios funkcijos (8.88) Makloreno formulės dalimi be liekamojo nario <math>R_{2n+2}(x).</math> Pastebėsime, kad skaičius ''x'' apytikslėje <math>\ln a</math> formulėje randamas iš (8.86) formulės, atsižvelgus į (8.84) nelygybes, kurias turi tenkinti skaičius ''M''.
:Įvertinsime (8.90) formulės paklaidą. Kadangi skaičiaus <math>\ln a</math> artinio, apskaičiuoto pagal (8.90) formulę, ir tikslios reikšmės, gaunamos pagal (8.87) formulę, skirtumas lygus liekamajam nariui <math>R_{2n+2}(x),</math> tai, aiškinantis paklaidą, užtenka įvertinti tą liekamąjį narį.
:Iš pradžių išsiaiškinsime ''x'' kitimo ribas. Iš (8.86) formulės gauname
:<math>M=\frac{1}{\sqrt{2}} \, \frac{1+x}{1-x}, \quad (8.86)</math>
:<math>M\sqrt{2}= \frac{1+x}{1-x},</math>
:<math>M\sqrt{2}(1-x)= 1+x,</math>
:<math>M\sqrt{2}-1= x+xM\sqrt{2},</math>
:<math>x=\frac{M\sqrt{2}-1}{M\sqrt{2}+1}. \quad (8.91)</math>
:Jei ''M'' reikšmės tenkina (8.84) nelygybes, tai ''x'' tenkina sąlygą*
:<math>|x|<0.172. \quad (8.92)</math>
:[ <math>h'(M)=\left(\frac{M\sqrt{2}-1}{M\sqrt{2}+1}\right)'=\frac{\sqrt{2}(M\sqrt{2}+1)-(M\sqrt{2}-1)\sqrt{2}}{(M\sqrt{2}+1)^2} =\frac{(2M+\sqrt{2})-(2M-\sqrt{2})}{(M\sqrt{2}+1)^2} =\frac{2\sqrt{2}}{(M\sqrt{2}+1)^2}.</math>
:<math>\frac{2\sqrt{2}}{(M\sqrt{2}+1)^2}=0.</math> Matome, kad nėra tokių ''M'' reikšmių, su kuriom h'(M) būtų lygi nuliui. Todėl funkcija <math>h(M)=\frac{M\sqrt{2}-1}{M\sqrt{2}+1}</math> neturi maksimumo ir minimumo taškų.
:<math>h(1/2)=\frac{\frac{1}{2}\sqrt{2}-1}{\frac{1}{2}\sqrt{2}+1}=\frac{\frac{1}{\sqrt{2}}-1}{\frac{1}{\sqrt{2}}+1}=</math>
:=(0.70710678118654752440084436210485-1)/(0.70710678118654752440084436210485+1) =
:= -0.29289321881345247559915563789515/1.7071067811865475244008443621048 = -0.17157287525380990239662255158061.
:<math>h(1)=\frac{1\cdot \sqrt{2}-1}{1\cdot \sqrt{2}+1}=</math>
:=(1.4142135623730950488016887242097-1)/(1.4142135623730950488016887242097+1)=
:= 0.4142135623730950488016887242097/2.4142135623730950488016887242097 = 0.1715728752538099023966225515806.
:Taigi, matome, kad
:-0.17157287525380990239662255158061 < x < 0.1715728752538099023966225515806. Arba |x| < 0.171572875254.]
:Dabar pastebėsime, kad liekamasis narys <math>R_{2n+2}(x)</math> vienodai įvertinamas tiek tada, kai ''x'' reikšmės teigiamos, tiek tada, kai jos neigiamos (iš (8.89) formulės matyti, kad, ''x'' pakeitus -''x'', liekamojo nario <math>R_{2n+2}(x)</math> struktūra nepasikeičia). Todėl užtenka įvertinti <math>R_{2n+2}(x),</math> kai <math>x>0.</math> Atsižvelgę į tai ir į (8.92) nelygybę, dešiniojoje (8.89) formulės pusėje vietoj ''x'' rašome skaičių 0.172, vietoj trupmenos <math>\frac{1}{1+\theta x} </math> rašome vienetą, o vietoj <math>\frac{1}{1-\theta x} </math> – skaičių <math>\frac{1}{1-0.172} \;</math> ir gauname šitokį įvertį:
:<math>|R_{2n+2}(x)| \leq \frac{(0.172)^{2n+2}}{2n+2} \left[ 1+\frac{1}{(1-0.172)^{2n+2}}\right].</math>
:[Taip, čia laužtiniuose skliaustuose jau pliusas pasidarė. Tai arba (8.89) formulėje klaida arba čia.]
:Daugiklį <math>(0.172)^{2n+2}</math> įkelsime į laužtinius skliaustus. Kadangi <math>\frac{0.172}{1-0.172}< 0.208 \;</math> (0.172/(1-0.172)=0.172/0.828=~0.207729), tai
:<math>|R_{2n+2}(x)| \leq \frac{(0.172)^{2n+2} +(0.208)^{2n+2}}{2n+2}.\quad (8.93)</math>
:Skaičiuojant <math>\ln a</math> elektronine skaičiavimo mašina**, (8.90) formulėje dažniausiai imama <math>n=6.</math> Tuomet skaičiavimo tikslumas, kaip matyti iš (8.93), įvertinamas skaičiumi <math>\frac{(0.172)^{14} +(0.208)^{14}}{14}, \;</math> mažesniu kaip <math>1.625\cdot 10^{-10}.</math>
:[ (0.172^14 + 0.208^14)/14 = 2.1682237054688578614343997699803e-11 <math>\approx 2.1682237\cdot 10^{-11}.</math> ]
:[O jeigu ten turi būti minusas laužtiniuose skliaustuose kaip (8.89) formulėje, tai
:(0.172^14 - 0.208^14)/14 = -1.8848887113203326016424566362697e-11 <math>\approx -1.88488871132\cdot 10^{-11}.</math> Matome, kad nuo to nėra didelio skirtumo.]
________________
:''*'' Kadangi ''x'' yra argumento ''M'' funkcija, tai užtenka rasti maksimalią (8.91) funkcijos modulio reikšmę segmente <math>\left[\frac{1}{2}; \; 1 \right].</math>
:''**'' Taip skaičiuojamas <math>\ln a</math> elektronine skaičiavimo mašina БЭСМ-6.
===Pavyzdžiai===
*Apskaičiuosime ln(a)=ln(143). Pagal (8.83) formulę
:[<math>a=2^p M. \quad (8.83)</math>]
:<math>143=2^{8} M,</math>
:<math>M=\frac{143}{256}=0.55859375.</math>
:Toliau, pagal (8.87) formulę
:[<math>\ln a=\left(p -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}. \quad (8.87)</math>]
:<math>\ln 143=\left(8 -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}. </math>
:<math>\left(8 -\frac{1}{2}\right)\ln 2=7.5\ln 2=</math> 7.5*0.69314718055994530941723212145818 = 5.1986038541995898206292409109363.
:Tiksli ln(143) reikšmė yra ln(143)=4.9628446302599072801154310195304.
:Iš (8.91) formulės randame ''x'':
:<math>x=\frac{M\sqrt{2}-1}{M\sqrt{2}+1}=\frac{0.55859375\sqrt{2}-1}{0.55859375\sqrt{2}+1}=</math>
:= (0.55859375*1.4142135623730950488016887242097 - 1)/(0.55859375*1.4142135623730950488016887242097+1) =
:= -0.11733662705136264741194733209931.
:Toliau pagal (8.88) formulę apskaičiuosime <math>\ln \frac{1+x}{1-x}, \,</math> kai n=6.
:<math>\ln \frac{1+x}{1-x}=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+...+ \frac{2x^{2n+1}}{2n+1}=</math>
:<math>=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+\frac{ 2x^7}{7}+\frac{ 2x^9}{9}+\frac{ 2x^{11}}{11}+\frac{ 2x^{13}}{13}=2\left(x+ \frac{x^3}{3}+\frac{ x^5}{5}+\frac{ x^7}{7}+\frac{ x^9}{9}+\frac{ x^{11}}{11}+\frac{ x^{13}}{13} \right)=</math>
:= 2*(-0.11733662705136264741194733209931 -0.11733662705136264741194733209931^3/3 -0.11733662705136264741194733209931^5/5
:-0.11733662705136264741194733209931^7/7 -0.11733662705136264741194733209931^9/9 -0.11733662705136264741194733209931^11/11
:-0.11733662705136264741194733209931^13/13) =
:(nukopijavus viską nuo "2" iki ženklo "=" ir įdėjus (padarius "Paste") į ''Windows 10'' kalkuliatorių gaunamas žemiau esantis atsakymas)
:= -0.23575922393968105542703851052716.
:Pridėjus gautą atsakymą prie 7.5*ln(2) reikšmės, gauname ln(a)=ln(143) artinį:
:<math>\ln 143=\left(8 -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}= 7.5\ln 2+\ln \frac{1+x}{1-x}=</math>
:= 5.1986038541995898206292409109363 + (-0.23575922393968105542703851052716) = 4.9628446302599087652022024004091.
:Atėmę gautą ln(143) reikšmę iš tikslios ln(143) reikšmės, gauname
:4.9628446302599072801154310195304 - 4.9628446302599087652022024004091 = -0.0000000000000014850867713808787 = <math>\approx -1.48508677\cdot 10^{-15}.</math>
:<math>\frac{1+x}{1-x}=</math> (1+(-0.11733662705136264741194733209931))/(1-(-0.11733662705136264741194733209931)) =
:= (1-0.11733662705136264741194733209931)/(1+0.11733662705136264741194733209931) = 0.78997085710684606241656831078901.
:Tiksli ln(0.78997085710684606241656831078901) reikšmė yra tokia:
:ln(0.78997085710684606241656831078901) = -0.23575922393968254051380989140588.
:<math>\ln \frac{1+x}{1-x}\,</math> (su x=-0.11733662705136264741194733209931) paklaida yra tokia:
:-0.23575922393968254051380989140588 - (-0.23575922393968105542703851052716) =
:= -0.23575922393968254051380989140588 + 0.23575922393968105542703851052716 = -0.00000000000000148508677138087872 = <math>\approx -1.48508677\cdot 10^{-15}.</math>
:Pagal (8.89) formulę
:<math>R_{2n+2}(x)=-\frac{x^{2n+2}}{2n+2}\left[ \frac{1}{(1+\theta x)^{2n+2}} -\frac{1}{(1-\theta x)^{2n+2}}\right]. \quad (8.89)</math>
:<math>|R_{2n+2}(x)|<\frac{(-0.117336627)^{2n+2}}{2n+2}\left[ \frac{1}{(1+(-0.117336627))^{2n+2}} -1\right]= \frac{(-0.117336627)^{2\cdot 6+2}}{2\cdot 6+2}\left[ \frac{1}{(1-0.117336627)^{2\cdot 6+2}} -1\right]=</math>
:<math>= \frac{(-0.117336627)^{14}}{14}\left[ \frac{1}{(1-0.117336627)^{14}} -1\right]=</math>
:= (-0.11733662705136264741194733209931)^14 * (1/(1-0.11733662705136264741194733209931)^14 -1)/14 =
:= 3.1744477658835444278622203928479e-14 <math>\approx 3.1744477658835444\cdot 10^{-14}.</math>
:Matome, kad paklaida įvertinta teisingai, nes
:<math>1.48508677\cdot 10^{-15} < 3.1744477658835444\cdot 10^{-14}.</math>
:Pastebėsime, kad
:<math>\frac{(-0.117336627)^{14}}{14} =</math> 6.6979571136742061476086008278822e-15 <math>\approx 6.6979571136742\cdot 10^{-15}</math>;
:<math>\frac{(-0.117336627)^{15}}{15} =</math> -0.11733662705136264741194733209931^15/15 = -7.3352131612966428681484668924553e-16.
:Todėl (8.88) formulėje liekamąjį narį tikriausiai galima įvertinti taip:
:<math>|R_{2n+2}(x)|< |\frac{x^{2n+2}}{2n+2}|\approx 6.6979571136742\cdot 10^{-15}.</math>
:Arba garantuotai visais atvejais R(x) turėtų būti teisingas, kai
:<math>|R(x)|< |\frac{x^{2n+1}}{2n+1}|.</math>
:Nes <math>\frac{(-0.117336627)^{13}}{13} =</math> -0.11733662705136264741194733209931^13/13 = -6.1474279304103020252424035678064e-14.
==2. Skaičiaus arctg(x) radimas.==
:Skaičiuojant <math>\operatorname{arctg}\alpha,</math> užtenka nagrinėti teigiamas argumento reikšmes, nes, kai <math>|\alpha|=x,</math> gauname
:<math>\operatorname{arctg}\alpha=\sgn\alpha \cdot \operatorname{arctg} x.</math>
:Aprašysime standartines transformacijas, kuriomis <math> \operatorname{arctg} x</math> skaičiavimas, kai argumento ''x'' reikšmės ne mažesnės kaip <math>\frac{1}{8},</math> pakeičiamas arktangento skaičiavimu, kai argumento reikšmės mažesnės už <math>\frac{1}{8}.</math>
:Iš pradžių tarkime, kad <math>x\geq 1.</math> Sakykime, <math>y=\operatorname{arctg} x, \;</math> t. y. <math>x=\operatorname{tg} y, \;</math> o <math>x_1=\operatorname{tg}(y-\operatorname{arctg} 1).</math> Iš paskutinės lygybės gauname
:[pasinaudodami formule (iš https://lt.wikibooks.org/wiki/Matematika/Trigonometrinės_formulės) <math> \tan(\alpha-\beta)=\frac{\tan\alpha -\tan\beta }{1 + \tan\alpha \tan\beta} . \quad (7)</math>]
:<math>x_1=\operatorname{tg}(y-\operatorname{arctg} 1)=\frac{\operatorname{tg} y -\operatorname{tg}(\operatorname{arctg} 1)}{1+\operatorname{tg} y \cdot \operatorname{tg}(\operatorname{arctg} 1)}=\frac{\operatorname{tg} y - 1}{1+\operatorname{tg} y \cdot 1}=\frac{\operatorname{tg} y - 1}{\operatorname{tg} y + 1}=\frac{x - 1}{x + 1}<1.</math>
:Kadangi
:<math>\operatorname{arctg} x_1=\operatorname{arctg}[\operatorname{tg}(y-\operatorname{arctg} 1)]=y-\operatorname{arctg} 1=\operatorname{arctg} x -\operatorname{arctg} 1,</math>
:<math>\operatorname{arctg} x=\operatorname{arctg} 1 +\operatorname{arctg} x_1=\frac{\pi}{4} +\operatorname{arctg} x_1,</math>
:tai, norint apskaičiuoti <math>\operatorname{arctg} x,</math> kai <math>x\geq 1,</math> pakanka apskaičiuoti <math>\operatorname{arctg} x_1,</math> kai <math>0<x_1<1.</math>
:Dabar aptarsime atvejį, kai argumentas tenkina nelygybes <math>\frac{1}{8} \leq x<1.</math>
:Sakykime, <math>k_1=1, \;\; k_2=\frac{1}{2}, \;\; k_3=\frac{1}{4}, \;\; k_4=\frac{1}{8}.</math> Savaime aišku, su kokia nors <math>i=1, \; 2, \; 3, \; 4 \;</math> reikšme yra teisingos nelygybės
:<math>k_i\leq x<2k_i. \quad (8.94)</math>
:[Kai ''x'' daugiau už 1, tai ''x'' gali būti daugiau už <math>2k_i.</math> Tiksliau, kai ''x''>2, tai <math>x>2k_1=2.</math>]
:Tarkime, kad <math>y=\operatorname{arctg} x, \;</math> t. y. <math>x=\operatorname{tg} y, \;</math> o <math>x_i=\operatorname{tg}(y-\operatorname{arctg} k_i).</math> Iš paskutinės lygybės gauname
:[pasinaudodami formule <math> \tan(\alpha-\beta)=\frac{\tan\alpha -\tan\beta }{1 + \tan\alpha \tan\beta} </math>]
:<math>x_i=\operatorname{tg}(y-\operatorname{arctg} k_i)=\frac{\operatorname{tg} y -\operatorname{tg}(\operatorname{arctg} k_i)}{1+\operatorname{tg} y \cdot \operatorname{tg}(\operatorname{arctg} k_i)}=\frac{\operatorname{tg} y - k_i}{1+\operatorname{tg} y \cdot k_i}=\frac{x - k_i}{1+k_i x}.</math>
:Kadangi <math>x>0,</math> tai <math>1+k_i x>1.</math> Be to, iš dešiniosios (8.94) nelygybės išplaukia <math>x-k_i < 2k_i- k_1=k_i.</math> Todėl iš paskutinės <math>x_i</math> išraiškos gauname nelygybę <math>x_i<k_i.</math> Kadangi
:<math>\operatorname{arctg} x_i=\operatorname{arctg}[\operatorname{tg}(y-\operatorname{arctg} k_i)]=y-\operatorname{arctg} k_i=\operatorname{arctg} x -\operatorname{arctg} k_i,</math>
:<math>\operatorname{arctg} x=\operatorname{arctg} k_i +\operatorname{arctg} x_i,</math>
:tai <math>\operatorname{arctg} x</math> skaičiavimas, kai ''x'' tenkina (8.94) nelygybes, pakeičiamas <math>\operatorname{arctg} x_i</math> skaičiavimu, kai <math>0< x_i < k_i.</math>
:Jei aprašytąsias argumento ''x'' transformacijas pakartosime daugių daugiausia keturis kartus, tai <math>\operatorname{arctg} x</math> skaičiavimą, kai ''x'' reikšmės priklauso pusintervaliui <math>\frac{1}{8} \leq x<1,</math> pakeisime arktangento skaičiavimu, kai argumento reikšmės mažesnės už <math>\frac{1}{8}.</math>
:[Ten klaidelė. Maksimum keturių transformacijų reikia, kai ''x'' reikšmės priklauso pusintervaliui <math>\frac{1}{8} \leq x,</math> o kai ''x'' reikšmės priklauso pusintervaliui <math>\frac{1}{8} \leq x<1,</math> tai tada daugių daugiausia gali prireikti 3 transformacijos.]
:Skaičiuojant <math>\operatorname{arctg} x,</math> kai <math>x< \frac{1}{8},</math> naudojama Makloreno formulė (kuri išvedama čia: https://lt.wikibooks.org/wiki/Matematika/Matematinės_eilutės)
:<math>\operatorname{arctg} x= x-\frac{x^3}{3}+\frac{x^5}{5}-\frac{x^7}{7}+...+(-1)^n \frac{x^{2n+1}}{2n+1} +R_{2n+2}(x).</math>
:Dažniausiai šioje formulėje imama <math>n=6</math> ir atmetamas liekamasis narys (taip, pavyzdžiui, daroma skaičiuojant elektronine mašina БЭСМ-6). Logaritmo ir arktangento skaičiavimo programa yra bendra. Naudojant tą programą arktangentui skaičiuoti, reikia, kad gretimi nariai <math>\frac{x^{2n+1}}{2n+1}</math> būtų priešingų ženklų.
==Pavyzdžiai==
*Apskaičiuosime <math>\operatorname{arctg} 5.</math> Čia <math>x=5.</math> Tada
:<math>x_i=\frac{x - k_i}{1+k_i x}.</math>
:Pradėsime nuo to, kad <math>k_1=1.</math> Tada
:<math>x_1=\frac{x - k_1}{1+k_1 x}=\frac{x - 1}{1+ x}=\frac{5 - 1}{1+ 5}=\frac{4}{6}=\frac{2}{3}.</math>
:Toliau
:<math>\operatorname{arctg} x=\operatorname{arctg} k_i +\operatorname{arctg} x_i=\operatorname{arctg} k_1 +\operatorname{arctg} x_1=\operatorname{arctg} 1 +\operatorname{arctg} \frac{2}{3}=\frac{\pi}{4} +\operatorname{arctg} \frac{2}{3}.</math>
:Toliau imsime <math>k_2=\frac{1}{2}.</math> Tada
:<math>x_2=\frac{x_1 - k_2}{1+k_2 x_1}=\frac{x_1 - \frac{1}{2}}{1+\frac{1}{2} x_1}=\frac{\frac{2}{3} - \frac{1}{2}}{1+\frac{1}{2} \cdot \frac{2}{3}}=\frac{\frac{4-3}{6} }{1+ \frac{1}{3}}=\frac{\frac{1}{6} }{\frac{3+1}{3}}=\frac{\frac{1}{6} }{\frac{4}{3}}=\frac{1}{6} \cdot\frac{3}{4}=\frac{1}{8}.</math>
:Toliau
:<math>\operatorname{arctg} \frac{2}{3}=\operatorname{arctg} x_1=\operatorname{arctg} k_2 +\operatorname{arctg} x_2=\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{1}{8}.</math>
:Toliau imsime <math>k_4=\frac{1}{8}.</math> Tada
:<math>x_4=\frac{x_2 - k_4}{1+k_4 x_2}=\frac{x_2 - \frac{1}{8}}{1+\frac{1}{8} x_2}=\frac{\frac{1}{8} - \frac{1}{8}}{1+\frac{1}{8} \cdot \frac{1}{8}}=\frac{0 }{1+ \frac{1}{64}}=\frac{0 }{\frac{64+1}{64}}=\frac{0 }{\frac{65}{64}}=0.</math>
:Ir gauname
:<math>\operatorname{arctg} \frac{1}{8}=\operatorname{arctg} x_2=\operatorname{arctg} k_4 +\operatorname{arctg} x_4=\operatorname{arctg} \frac{1}{8} +\operatorname{arctg} 0=\operatorname{arctg} \frac{1}{8} +0=\operatorname{arctg} \frac{1}{8}.</math>
:Tokiu budu
:<math>\operatorname{arctg} 5=\operatorname{arctg} x=\frac{\pi}{4} +\operatorname{arctg} \frac{2}{3}=\frac{\pi}{4} +\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{1}{8}.</math>
:<math>\frac{\pi}{4}=</math> 0.78539816339744830961566084581988;
:<math>\operatorname{arctg} \frac{1}{2}=</math> 0.46364760900080611621425623146121;
:<math>\operatorname{arctg} \frac{1}{8}=</math> 0.12435499454676143503135484916387.
:Šiame pavyzdyje skaičiuoti Makloreno eilutės nereikia su ''x'' reikšme mažesne už 1/8, nes <math>x_4=0.</math>
:Taigi,
:arctg(5) = 0.78539816339744830961566084581988 + 0.46364760900080611621425623146121 + 0.12435499454676143503135484916387 =
:= 1.373400766945015860861271926445.
:Tiksli arctg(5) reikšmė iš kalkuliatoriaus yra tokia:
:arctg(5) = 1.373400766945015860861271926445.
:Gavome tą patį atsakymą.
*Apskaičiuosime <math>\operatorname{arctg} 7.</math> Čia <math>x=7.</math>
:Pradėsime nuo to, kad <math>k_1=1.</math> Tada
:<math>x_1=\frac{x - k_1}{1+k_1 x}=\frac{x - 1}{1+ x}=\frac{7 - 1}{1+ 7}=\frac{6}{8}=\frac{3}{4}.</math>
:Toliau
:<math>\operatorname{arctg} x=\operatorname{arctg} k_1 +\operatorname{arctg} x_1=\operatorname{arctg} 1 +\operatorname{arctg} \frac{3}{4}=\frac{\pi}{4} +\operatorname{arctg} \frac{3}{4}.</math>
:Toliau imsime <math>k_2=\frac{1}{2}.</math> Tada
:<math>x_2=\frac{x_1 - k_2}{1+k_2 x_1}=\frac{x_1 - \frac{1}{2}}{1+\frac{1}{2} x_1}=\frac{\frac{3}{4} - \frac{1}{2}}{1+\frac{1}{2} \cdot \frac{3}{4}}=\frac{\frac{3-2}{4} }{1+ \frac{3}{8}}=\frac{\frac{1}{4} }{\frac{8+3}{8}}=\frac{\frac{1}{4} }{ \frac{11}{8}}=\frac{1}{4} \cdot\frac{8}{11}=\frac{2}{11}=0.(18).</math>
:Tuo tarpu <math>k_3=\frac{1}{4}=0.25</math> yra daugiau už 0.(18). Todėl skaičiavimus su <math>k_3=\frac{1}{4}</math> praleisime ir iškart skaičiuosime toliau su <math>k_4=\frac{1}{8}=0.125</math> (nes 0.125 yra mažiau nei 2/11=0.(18)). Taigi,
:<math>x_4=\frac{x_2 - k_4}{1+k_4 x_2}=\frac{x_2 - \frac{1}{8}}{1+\frac{1}{8} x_2}=\frac{\frac{2}{11} - \frac{1}{8}}{1+\frac{1}{8} \cdot \frac{2}{11}}=\frac{\frac{16-11}{88} }{1+ \frac{2}{88}}=\frac{\frac{5}{88} }{\frac{88+2}{88}}=\frac{\frac{5}{88} }{\frac{90}{88}}=\frac{5}{88}\cdot \frac{88}{90}=\frac{5}{90}=\frac{1}{18}=0.0(5).</math>
:[1/18 = 0.05555555555555555555555555555556.]
:Toliau galime skaičiuoti pagal Makloreno formulę,
:<math>\operatorname{arctg} x= x-\frac{x^3}{3}+\frac{x^5}{5}-\frac{x^7}{7}+...+(-1)^n \frac{x^{2n+1}}{2n+1} +R_{2n+2}(x),</math>
:imdami n=6 ir vietoje ''x'' įrašę <math>x_4.</math> Tada gauname:
:<math>\operatorname{arctg} \frac{1}{18}=\operatorname{arctg} x_4= x_4-\frac{x_4^3}{3}+\frac{x_4^5}{5}-\frac{x_4^7}{7}+\frac{x_4^9}{9}-\frac{x_4^{11}}{11}+ \frac{x_4^{13}}{13} =</math>
:= 1/18 - 1/18^3/3 + 1/18^5/5 - 1/18^7/7 + 1/18^9/9 - 1/18^11/11 + 1/18^13/13 = 0.05549850524571683556705277298107.
:(Kad gauti tokį atsakymą greitai, tereikia aukščiau esančią eilutę nukopijuoti ir įdėti į ''Windows 10'' kalkuliaorių, padarius "Paste").
:Atėmę gautą arctg(1/18) reikšmę iš tikslios arctg(1/18) reikšmės, gauname paklaidą:
:0.05549850524571683555719814809224 - 0.05549850524571683556705277298107 = -0.00000000000000000000985462488883 = <math>= -9.85462488883\cdot 10^{-21}.</math>
:Kaip ir su natūrinio logaritmo skaičiavimu, liekamąjį narį galima įvertinti taip:
:<math>|R_{2n+2}(x_4)|< |\frac{x_4^{2n+2}}{2n+2}|=</math> 1/18^14/14 = 1.9057103509769875767803163358316e-19 <math>\approx 1.90571035\cdot 10^{-19}.</math>
:Tada
:<math>\operatorname{arctg} \frac{3}{4}=\operatorname{arctg} x_1=\operatorname{arctg} k_2 +\operatorname{arctg} x_2=\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{2}{11};</math>
:<math>\operatorname{arctg} \frac{2}{11}=\operatorname{arctg} x_2=\operatorname{arctg} k_4 +\operatorname{arctg} x_4=\operatorname{arctg} \frac{1}{8} +\operatorname{arctg} \frac{1}{18}.</math>
:Todėl
:<math>\operatorname{arctg} 7=\operatorname{arctg} x=\frac{\pi}{4} +\operatorname{arctg} \frac{3}{4}=\frac{\pi}{4} +\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{2}{11}=</math>
:<math>=\frac{\pi}{4} +\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{1}{8} +\operatorname{arctg} \frac{1}{18}= </math>
:= 0.78539816339744830961566084581988 + 0.46364760900080611621425623146121 +0.12435499454676143503135484916387 + 0.05549850524571683556705277298107 = 1.428899272190732696428324699426.
:Atėmę ką tik gautą arctg(7) reikšmę iš kalkuliatoriaus tikslios arctg(7) reikšmės, gauname paklaidą:
:1.4288992721907326964184700745372 - 1.428899272190732696428324699426 = -9.8546248888316409091970590727231e-21 =
:= -0.0000000000000000000098546248888 <math>\approx -9.8546248888\cdot 10^{-21}.</math>
:Pastabos. Čia visos arkatangento reikšmės skaičiuojamos radianais. Kad kalkuliatorius skaičiuotų radianais, reikia paspausti mygtuką, kuris keičia tarp laipsnių, radianų ir gradianų (iš "DEG", "RAD" ir "GRAD" reikia išrinkti, kad rodytų "RAD"). O tam, kad kalkuliatorius apskaičiuotų arktangento reikšmę, reikia iš pradžių įrašyti skaičių į kalkuliatorių ir paskui ''Windows 10'' kalkuliatoriuje (kuris turi būti nustatytas [vienu paspaudimu] per patį kalkuliatorių, kad būtų "Scientific") paspausti "Trigonometry", vėliau paspausti <math>2^{nd}</math> ir tada paspausti <math>\tan^{-1}</math>. Tada ir bus gauta arktangento reikšmė radianais, jei buvo pasirinkta "RAD".
:<math>\operatorname{arctg} 1 = </math> 0.78539816339744830961566084581988.
:<math>\operatorname{arctg} 0.5 = </math> 0.46364760900080611621425623146121.
:<math>\operatorname{arctg} 0.25 =</math> 0.24497866312686415417208248121128.
:<math>\operatorname{arctg} 0.125 =</math> 0.12435499454676143503135484916387.
*<math>\operatorname{arctg} 0.9.</math>
:<math>\operatorname{arctg} a = \operatorname{arctg} 0.9 - \operatorname{arctg} 0.5.</math>
:<math>\tan(\alpha-\beta) = \tan\frac{\tan\alpha - \tan\beta}{1+\tan\alpha \tan\beta}. </math>
:<math>a = \operatorname{tg}\left( \operatorname{arctg} 0.9 - \operatorname{arctg} 0.5 \right) =</math>
:<math>=\tan\frac{\tan(\operatorname{arctg} 0.9) - \tan(\operatorname{arctg} 0.5)}{1+\tan(\operatorname{arctg} 0.9) \tan(\operatorname{arctg} 0.5)}= \tan\frac{0.9 - 0.5}{1+ 0.9\cdot 0.5}= \tan\frac{0.4}{1+ 0.45}=\tan\frac{0.4}{1.45}=</math>
:= 0.27586206896551724137931034482759.
:<math>\operatorname{arctg} (0.27586206896551724137931034482759)=</math>
:= 0.27586206896551724137931034482759 - 0.27586206896551724137931034482759^3/3 + 0.27586206896551724137931034482759^5/5 - 0.27586206896551724137931034482759^7/7 + 0.27586206896551724137931034482759^9/9 - 0.27586206896551724137931034482759^11/11 + 0.27586206896551724137931034482759^13/13 =
:= '''0.26916749'''304043554450715959336444.
:<math>\operatorname{arctg} (0.27586206896551724137931034482759)=</math>
:= '''0.26916749'''278570047542653584127307.
:<math>\operatorname{arctg} (0.27586206896551724137931034482759) + \operatorname{arctg} 0.5 =</math>
:= 0.26916749304043554450715959336444 + 0.46364760900080611621425623146121 =
:= '''0.73281510'''204124166072141582482565.
:<math>\operatorname{arctg} 0.9 =</math>
:= '''0.73281510'''178650659164079207273428.
:<math>\operatorname{arctg} b = \operatorname{arctg} a - \operatorname{arctg} 0.25 =</math>
:<math>b = \operatorname{tg}\left( \operatorname{arctg} (0.278299659434360506011219170928) - \operatorname{arctg} 0.25 \right) =</math>
:<math>= \tan\frac{0.26916749304043554450715959336444 - 0.25}{1+ 0.26916749304043554450715959336444\cdot 0.25}=</math>
:<math>\tan\frac{0.01916749304043554450715959336444}{1 + 0.06729187326010888612678989834111} = \tan\frac{0.01916749304043554450715959336444}{1.06729187326010888612678989834111}=</math>
:= 0.019167493040435544507159593364/1.067291873260108886126789898341 = 0.0179589983964623044012469281158.
:<math>\operatorname{arctg} (0.0179589983964623044012469281158)=</math>
:= 0.0179589983964623044012469281158 - 0.0179589983964623044012469281158^3/3 + 0.0179589983964623044012469281158^5/5 - 0.0179589983964623044012469281158^7/7 + 0.0179589983964623044012469281158^9/9 - 0.0179589983964623044012469281158^11/11 + 0.0179589983964623044012469281158^13/13 - 0.0179589983964623044012469281158^15/15 =
:= '''0.017957068024287386522471323702'''2.
:<math>\operatorname{arctg} (0.0179589983964623044012469281158)=</math>
:= '''0.017957068024287386522471323702'''33.
:<math>\operatorname{arctg} 0.9 = \operatorname{arctg} 0.5 + \operatorname{arctg} a = </math>
:<math>\operatorname{arctg} 0.9 = \operatorname{arctg} 0.5 + \operatorname{arctg} 0.25 + \operatorname{arctg} b = </math>
:= 0.46364760900080611621425623146121 + 0.24497866312686415417208248121128 + 0.0179570680242873865224713237022 =
:= '''0.7'''2658334015195765690881003637469.
:<math>\operatorname{arctg} 0.9 =</math>
:= '''0.7'''3281510178650659164079207273428.
:a = 0.27586206896551724137931034482759.
:<math>\operatorname{arctg} a=</math>
:= 0.26916749304043554450715959336444.
:<math>\operatorname{arctg} a = \operatorname{arctg} 0.25 + \operatorname{arctg} b =</math>
:= 0.24497866312686415417208248121128 + 0.0179570680242873865224713237022 =
:= '''0.26'''293573115115154069455380491348.
:Kalkuliatoriaus:
:arctg(0.27586206896551724137931034482759) =
:= '''0.26'''916749278570047542653584127307.
*<math>\operatorname{arctg} 1.6.</math>
:<math>\operatorname{arctg} a = \operatorname{arctg} 1.6 - \operatorname{arctg} 1.</math>
:<math>\tan(\alpha-\beta) = \tan\frac{\tan\alpha - \tan\beta}{1+\tan\alpha \tan\beta}. </math>
:<math>a = \operatorname{tg}\left( \operatorname{arctg} 1.6 - \operatorname{arctg} 1 \right) =</math>
:<math>=\tan\frac{\tan(\operatorname{arctg} 1.6) - \tan(\operatorname{arctg} 1)}{1+\tan(\operatorname{arctg} 1.6) \tan(\operatorname{arctg} 1)}= \tan\frac{1.6 - 1}{1+ 1.6\cdot 1}= \tan\frac{0.6}{2.6}=</math>
:= 0.23076923076923076923076923076923.
:<math>\operatorname{arctg} (0.23076923076923076923076923076923)=</math>
:= 0.23076923076923076923076923076923 - 0.23076923076923076923076923076923^3/3 + 0.23076923076923076923076923076923^5/5 - 0.23076923076923076923076923076923^7/7 + 0.23076923076923076923076923076923^9/9 - 0.23076923076923076923076923076923^11/11 + 0.23076923076923076923076923076923^13/13 - 0.23076923076923076923076923076923^15/15 =
:= '''0.226798848053'''04763076023291256713.
:<math>\operatorname{arctg} (0.23076923076923076923076923076923)=</math>
:= '''0.226798848053'''88587364415262941821.
:<math>\operatorname{arctg} 1.6 = \operatorname{arctg} 1 + \operatorname{arctg} a =</math>
:= 0.78539816339744830961566084581988 + 0.22679884805304763076023291256713 =
:= '''1.01219701145'''0495940375893758387.
:Kalkuliatoriaus:
:arctg(1.6) =
:= '''1.01219701145'''13341832598134752381.
:<math>\operatorname{arctg} b = \operatorname{arctg} a - \operatorname{arctg} 0.125.</math>
:<math>\operatorname{arctg} b = \operatorname{arctg} 0.23076923076923076923076923076923 - \operatorname{arctg} 0.125.</math>
:<math>\tan(\alpha-\beta) = \tan\frac{\tan\alpha - \tan\beta}{1+\tan\alpha \tan\beta}. </math>
:<math>b = \operatorname{tg}\left( \operatorname{arctg} 0.23076923076923076923076923076923 - \operatorname{arctg} 0.125 \right) =</math>
:<math>=\tan\frac{\tan(\operatorname{arctg} 0.23076923076923076923076923076923) - \tan(\operatorname{arctg} 0.125)}{1+\tan(\operatorname{arctg} 0.23076923076923076923076923076923) \tan(\operatorname{arctg} 0.125)}=</math>
:<math>= \tan\frac{0.23076923076923076923076923076923 - 0.125}{1+ 0.23076923076923076923076923076923\cdot 0.125}= \tan\frac{0.10576923076923076923076923076923}{1+0.02884615384615384615384615384615}=</math>
:0.105769230769230769230769230769/1.028846153846153846153846153846 =
:= 0.10280373831775700934579439252316.
:<math>\operatorname{arctg} (0.10280373831775700934579439252316)=</math>
:= 0.10280373831775700934579439252316 - 0.10280373831775700934579439252316^3/3 + 0.10280373831775700934579439252316^5/5 - 0.10280373831775700934579439252316^7/7 + 0.10280373831775700934579439252316^9/9 - 0.10280373831775700934579439252316^11/11 + 0.10280373831775700934579439252316^13/13 - 0.10280373831775700934579439252316^15/15 =
:= '''0.10244385350712443'''768036939404847.
:Kalkuliatoriaus:
:<math>\operatorname{arctg} (0.10280373831775700934579439252316)=</math>
:= '''0.10244385350712443'''861279778025414.
:<math>\operatorname{arctg} 1.6 = \operatorname{arctg} 1 + \operatorname{arctg} a = </math>
:<math>\operatorname{arctg} 1.6 = \operatorname{arctg} 1 + \operatorname{arctg} 0.125 + \operatorname{arctg} b = </math>
:= 0.78539816339744830961566084581988 + 0.12435499454676143503135484916387 + 0.10244385350712443768036939404847 =
:= '''1.01219701145133418'''23273850890322.
:Kalukuliatoriaus:
:<math>\operatorname{arctg} 1.6 =</math>
:= '''1.01219701145133418'''32598134752381.
:'''Free Pacal''' kodas, skaičiuoti arctg(a):
var a:real; b:real; c:real; d:real; g:real; f:real;
begin
//for a:=2 to 1000000000 do
begin
a:=7.0;
b:=(a-1.0)/(a+1.0);
c:=(b-0.5)/(1.0+b*0.5);
d:=(c-0.25)/(1.0+c*0.25);
g:=(d-0.125)/(1.0+0.125*d);
f:=g - g*g*(g/3 + g*g* (g/5-g*g* (g/7 + g*g* (g/9 -g*g*g/11))))+1.61837943007188001503;
// arctan(1)=pi/4 = 0.78539816339744830961566
// arctan(1/2) = 0.46364760900080611621425
// arctan(1/4) = 0.244978663126864154172
// arctan(1/8) = 0.12435499454676143503135
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
//f:=f+1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:Resultatas 1.4290003193181138E+000.
:Skaičiuojama iki (a^11)/11.
:Kalkuliatoriaus arctan(7) reikšmė yra 1.4288992721907326964184700745372.
:Šituo budu apskaičiuota kalkuliatoriumi arctan(7) reikšmė iki (x_4^11)/11 yra 1.4288992722261246066538981860865.
:Su kalkuliatoriumi skaičiuojant viską gaunama 10 pirmų teisingų skaitmenų. '''Free Pascal''' kodas duoda tik 3 pirmus teisingus skaitmenis. Looks like Pascal (or FPU) can't comprehend too complex code.
:Kodas skaičiuoja teisingai, nepaisant ar kuri nors iš reikšmių c, d, g gausis neigiama ar teigiama (jei kuri nors gaunasi neigiama, tai tiesiog dažniausiai (arba visada) prarandama kažkiek tikslumo).
:a=7.0;
:b=(a-1.0)/(a+1.0) = 6/8 = 0.75.
:c=(b-0.5)/(1.0+b*0.5) = (0.75-0.5)/(1.0+0.75*0.5) = 0.18181818181818181818181818181818.
:d=(c-0.25)/(1.0+c*0.25)=
:= (0.18181818181818181818181-0.25)/(1.0+0.18181818181818181818181*0.25)= -0.06521739130434782608696447542533.
:g=(d-0.125)/(1.0+0.125*d) =
:= (-0.06521739130434782608696-0.125)/(1.0-0.06521739130434782608696*0.125) = -0.19178082191780821917808578269844.
:Šis '''Free Pascal''' kodas:
var a:real; b:real; f:real; d:longint; h:real;
begin
//for a:=2 to 1000000000 do
begin
a:=7.0;
begin
b:=a;
h:=2.0;
for d:=1 to 4 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
end;
f:=b - b*b*(b/3.0 + b*b* (b/5.0-b*b* (b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:Duoda tą patį rezultatą 1.4290003193181138E+000.
:Reikšmė b kode apskaičiuota teisingai ir yra lygi -1.9178082191780821E-001 arba
:a:=7.0;
:b:=(a-1.0)/(a+1.0) = 6/8 = 0.75.
:c:=(b-0.5)/(1.0+b*0.5) = (0.75-0.5)/(1.0+0.75*0.5) = 0.18181818181818181818181818181818.
:d:=(c-0.25)/(1.0+c*0.25)=
:= (0.18181818181818181818181-0.25)/(1.0+0.18181818181818181818181*0.25)= -0.06521739130434782608696447542533.
:g:=(d-0.125)/(1.0+0.125*d) =
:= (-0.06521739130434782608696-0.125)/(1.0-0.06521739130434782608696*0.125) = -0.19178082191780821917808578269844.
:Reikšmė lygiai tokia pati kaip ir preitame kode reikšmė g.
:Tikslumo praradimai panašu prasideda skaičiuojant reikšmę f. Skaičiavimas su kalkuliatoriumi:
-0.19178082191780821917808219178082 - (-0.19178082191780821917808219178082)^3/3 +(-0.19178082191780821917808219178082)^5/5 - (-0.19178082191780821917808219178082)^7/7 +(-0.19178082191780821917808219178082)^9/9 - (-0.19178082191780821917808219178082)^11/11 = -0.18948015784575540837945622156966.
-0.18948015784575540837945622156966 + 1.6183794300718800150333544076562 =1.4288992722261246066538981860865.
:Čia 10 pirmų skaitmenų teisingi.
:Toks '''Free Pascal''' kodas:
var a:real; b:real; f:real; d:longint; h:real;
begin
//for a:=2 to 1000000000 do
begin
a:=7.0;
begin
b:=a;
h:=2.0;
for d:=1 to 2 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
end;
f:=b - b*b*(b/3.0 + b*b* (b/5.0-b*b* (b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.2490457723982544258;
//pi/4+arctan(1/2) = 1.2490457723982544258
end;
writeln(f);
Readln;
End.
:duoda atsakymą:
:1.4288216709361827E+000. Tiksli arctg(7) reikšmė yra:
:1.4288992721907326964184700745372.
:Pirmi penki skaitmenys teisingi. Čia d yra dviejų iteracijų vietoje keturių iteracijų. Dėl to kažkaip arktangento eilutė tiksliau/geriau paskaičiuojama.
===Arktangento Benchmark===
:Toks arktangentų reikšmių (nuo 2 iki 1 milijardo) skaičiavimo kodas:
var a:longint; b:real; c:real; d:real; g:real; f:real;
begin
for a:=1 to 1000000000 do
begin
b:=(1.0*a-1.0)/(1.0*a+1.0);
c:=(b-0.5)/(1.0+b*0.5);
d:=(c-0.25)/(1.0+c*0.25);
g:=(d-0.125)/(1.0+0.125*d);
f:=f+g - g*g*(g/3 + g*g* (g/5-g*g* (g/7 + g*g* (g/9 -g*g*g/11))))+1.61837943007188001503;
end;
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
// f:=f+1.61837943007188001503;
writeln(f);
Readln;
End.
:duoda 1.5707964092145209E+009. Labai didelės a reikšmės duoda <math>\arctan a \approx\pi/2</math>. Pirmą kartą skaičiuojama 1 minutę ir 9 sekundes. Antrą ir trečią kartą - 1 minutę ir 7 sekundes. Su 4.16 GHz procesorium.
:<math>\pi/2 =</math> 1.5707963267948966192313216916398.
:Truputi labiau optimizuotas '''Free Pascal''' kodas:
var a:longint; b:real; c:real; d:real; g:real; f:real;
begin
for a:=2 to 1000000000 do
begin
b:=(a-1.0)/(a+1.0);
c:=(b-0.5)/(1.0+b*0.5);
d:=(c-0.25)/(1.0+c*0.25);
g:=(d-0.125)/(1.0+0.125*d);
f:=f+g - g*g*(g/3 + g*g* (g/5-g*g* (g/7 + g*g* (g/9 -g*g*g/11))))+1.61837943007188001503;
end;
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
// f:=f+1.61837943007188001503;
writeln(f);
Readln;
End.
:duoda atsakymą 1.5707964082113807E+009. Pirmą kartą po minutės ir 7 sekundžių (67 sekundžių). Antrą kartą po minutės ir 4 sekundžių (64 sekundžių). Su 4.16 GHz CPU.
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; f:real; d:longint; h:real;
begin
for a:=2 to 1000000000 do
begin
b:=a;
h:=2;
for d:=1 to 2 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
f:=f+b - b*b*(b/3.0 + b*b* (b/5.0-b*b* (b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.2490457723982544258;
//pi/4+arctan(1/2) = 1.2490457723982544258
end;
writeln(f);
Readln;
End.
:duoda atsakymą 1.5692808286515808E+009. Pirmą kartą po minutės ir 45 sekundžių (105 sekundžių). Antrą kartą po minutės ir 27 sekundžių (87 sekundžių). Su 4.16 GHz procesorium.
:Toks kodas:
var a:longint; b:real; f:real; d:longint; h:real;
begin
for a:=2 to 1000000000 do
begin
b:=a;
h:=2;
for d:=1 to 4 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
f:=f+b - b*b*(b/3.0 + b*b* (b/5.0-b*b*(b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:duoda 1.5707964082113807E+009. Pirmą kartą po 2 minučių ir 24 sekundžių (144 sekundžių). Antrą kartą po 2 minučių ir 2 sekundžių (122 sekundžių). Su 4.16 GHz CPU.
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; c:real; d:real; e:real; f:real; g:real;
begin
for a:=2 to 1000000000 do
//a:=7;
begin
b:=(a-1)/(a+1);
c:=(b-0.5)/(1+0.5*b);
d:=(c-0.25)/(1+0.25*c);
e:=(d-0.125)/(1+0.125*d);
f:=e*(1.0-e*e*(0.3333333333333333333333+e*e*(0.2-e*e*(0.1428571428571428571428+
e*e*(0.11111111111111111111111-e*e*0.0909090909090909090909)))));
// arctan(1)=pi/4 = 0.78539816339744830961566
// arctan(1/2) = 0.46364760900080611621425
// arctan(1/4) = 0.244978663126864154172
// arctan(1/8) = 0.12435499454676143503135
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
g:=g+f+1.61837943007188001503;
end;
writeln(g);
Readln;
End.
:duoda atsakymą 1.5707964082133019E+009. Pirmą kartą po 55 sekundžių. Antrą kartą po 54 sekundžių. Su 4,16 GHz procesorium. Išeina arktangento eilutės konstantos arba apskaičiuojamos prieš paleidžiant kodą arba dalyba iš mažų sveikųjų skaičių yra greitesnė nei iš didelių sveikųjų skaičių ir tuo labiau 64 bitų realių skaičių. Nes skaičiavimo laikas tik 10 sekundžių trumpesnis (64 s VS 54 s).
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; f:real; d:longint; h:real;
begin
for a:=2 to 1000000000 do
begin
b:=a;
h:=2;
for d:=1 to 4 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
f:=f+b*(1.0-b*b*(0.3333333333333333333333+b*b*(0.2-b*b*(0.1428571428571428571428+
b*b*(0.11111111111111111111111-b*b*0.0909090909090909090909))))) +1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:duoda atsakymą 1.5707964082133019E+009. Pirmą kartą po 2 minučių ir 6 sekundžių (126 sekundžių). Antrą kartą po minutės ir 46 sekundžių (106 sekundžių). Su 4.16 GHz CPU. Kode 1 milijardas (-1) pagrindinių iteracijų ir kiekvienoje jų 4 vidinės iteracijos.
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; c:real; d:real; e:real; f:real; g:real;
begin
for a:=2 to 1000000000 do
begin
b:=(a-1)/(a+1);
c:=(b-0.5)/(1+0.5*b);
d:=(c-0.25)/(1+0.25*c);
e:=(d-0.125)/(1+0.125*d);
f:=e*(1.0-e*e*(1/3+e*e*(1/5-e*e*(1/7+e*e*(1/9-e*e/11)))));
g:=g+f+1.61837943007188001503;
end;
writeln(g);
Readln;
End.
:duoda atsakymą 1.5707964082133019E+009. Pirmą kartą po 1 minutės ir 1 sekundės. Antrą kartą po 58 sekundžių. Su 4.16 GHz CPU. Panašiau, kad Free Pascal iš pradžių apskaičiuoja konstantas, kurias paskui naudoja. Šitoje arktangento eilutėje mažiau operacijų nei, kur skaičiuota 64 sekundes per antrą kartą. Nes eilutė protingiau parašyta ir gavosi trumpesnė (11 daugybų vietoje 15 daugybų, jei pvz. 1/3 skaičiuoti kaip konstantą 0.333333333333333). Bet vis tiek 4 sekundėm ilgiau skaičiuota. Gal dalyba iš 11 buvo tikra. Arba visos dalybos iš mažų skaičiui labai greitai atliekamos su CPU.
:Toks kodas:
var a:longint; b:real; c:real; d:real; e:real; f:real; g:real;
begin
for a:=2 to 1000000000 do
begin
b:=(a-1)/(a+1);
c:=(b-0.5)/(1+0.5*b);
d:=(c-0.25)/(1+0.25*c);
e:=(d-0.125)/(1+0.125*d);
f:=e*(1.0-e*e*(1/3.001065006421+e*e*(1/5.0000879004912-e*e*(1/7.00001448879+e*e*(1/9.0049464789-e*e/11.0008987041519494)))));
g:=g+f+1.61837943007188001503;
end;
writeln(g);
Readln;
End.
:duoda atsakymą 1.5707964052086353E+009. Pirmą kartą po 60 sekundžių. Antrą kartą po 59 sekundžių. Su 4.16 GHz CPU.
l8h227julo8le377j97vrf5i75wbxeo
59137
59136
2026-11-12T08:28:56Z
Paraboloid
1294
/* Arktangento Benchmark */
59137
wikitext
text/x-wiki
[[Elementariųjų funkcijų reikšmių skaičiavimas]]
:Logaritminės ir atvirkštinių trigonometrinių funkcijų reikšmių skaičiavimas pagrįstas Teiloro formulės taikymu. Čia smulkiai aptarsime, kaip skaičiuojamos logaritmo ir arktangento reikšmės. Funkcijų <math>\operatorname{arcctg} x, \;</math> <math>\operatorname{arcsin} x \;</math> ir <math>\operatorname{arccos} x \;</math> reikšmių skaičiavimas pakeičiamas arktangento reikšmių skaičiavimu pagal šitokias žinomas formules:
:[ https://en.wikipedia.org/wiki/Inverse_trigonometric_functions#Relationships_among_the_inverse_trigonometric_functions ]
:<math>\operatorname{arcctg} x =\frac{\pi}{2} -\operatorname{arctg} x, \;\;\; \operatorname{arcsin} x=\operatorname{arctg}\frac{x}{\sqrt{1-x^2}},</math>
:<math>\operatorname{arccos} x =\operatorname{arcctg}\frac{x}{\sqrt{1-x^2}} =\operatorname{arctg}\frac{\sqrt{1-x^2}}{x}.</math>
==1. Skaičiaus ln(a) radimas==
:Skaičių a>0 išreikškime sandauga
:<math>a=2^p M. \quad (8.83)</math>
:kurioje ''p'' – sveikasis skaičius, o ''M'' tenkina nelygybes
:<math>\frac{1}{2}\leq M<1. \quad (8.84)</math>
:Pastebėsime, kad skaičių ''a'' išreikšti (8.83) sandauga galima vieninteliu būdu. Remdamiesi (8.83) formule, logaritmą <math>\ln a</math> užrašome šitaip:
:<math>\ln a=\ln(2^p M)=p\ln 2 +\ln M. \quad (8.85)</math>
:Sakykime,
:<math>M=\frac{1}{\sqrt{2}} \, \frac{1+x}{1-x}, \quad (8.86)</math>
:ir šitą ''M'' išraišką įrašykime į (8.85) lygybę. Tada logaritmo <math>\ln a</math> išraiška bus šitokia:
:<math>\ln a=p\ln 2 +\ln M=p\ln 2 +\ln \left(\frac{1}{\sqrt{2}} \frac{1+x}{1-x}\right)=p\ln 2 +\ln \frac{1}{\sqrt{2}} +\ln \frac{1+x}{1-x}=</math>
:<math>=p\ln 2 -\frac{1}{2}\ln 2 +\ln \frac{1+x}{1-x}=\left(p -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}.</math>
:<math>\ln a=\left(p -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}. \quad (8.87)</math>
:Funkciją <math>\ln \frac{1+x}{1-x}</math> išdėstysime pagal Makloreno formulę. Pirma rasime kelias funkcijos <math>g(x)=\ln \frac{1+x}{1-x}</math> išvestines ir pagal jas nuspėsime aukštesnių eilių šios funkcijos išvestines (ir jų reikšmes, kai <math>x=0</math>).
:<math>g'(x)=\left(\ln \frac{1+x}{1-x}\right)'=\frac{1-x}{1+x}\cdot \left(\frac{1+x}{1-x}\right)'=</math>
:<math>=\frac{1-x}{1+x}\cdot \frac{(1+x)'(1-x)-(1+x)(1-x)'}{(1-x)^2}=\frac{1-x}{1+x}\cdot \frac{(1-x)-(1+x)(-1)}{(1-x)^2}=\frac{1-x}{1+x}\cdot \frac{(1-x)+(1+x)}{(1-x)^2}=</math>
:<math>=\frac{1-x}{1+x}\cdot \frac{2}{(1-x)^2}=\frac{2}{(1+x)(1-x)}=\frac{2}{1-x^2}.</math>
:<math>g''(x)=\left(\ln \frac{1+x}{1-x}\right)''=\left(\frac{2}{1-x^2}\right)'=-\frac{2}{(1-x^2)^2}\cdot (1-x^2)'=-\frac{2}{(1-x^2)^2}\cdot (-2x)=\frac{4x}{(1-x^2)^2}. </math>
:<math>g'''(x)=\left(\ln \frac{1+x}{1-x}\right)'''=\left(\frac{4x}{(1-x^2)^2}\right)'=\frac{(4x)'(1-x^2)^2 - 4x[(1-x^2)^2]'}{((1-x^2)^2)^2}= </math>
:<math>=\frac{4(1-x^2)^2 - 4x[2(1-x^2)']}{(1-x^2)^4}=\frac{4(1-2x^2+x^4) - 4x[2(-2x)]}{(1-x^2)^4}= \frac{4-8x^2+4x^4 + 16x^2}{(1-x^2)^4}= </math>
:<math>= \frac{4+8x^2+4x^4}{(1-x^2)^4}=\frac{4(1+2x^2+x^4)}{(1-x^2)^4}= \frac{4(1+x^2)^2}{(1-x^2)^4}.</math>
:<math>g^{(4)}(x)=\left(\ln \frac{1+x}{1-x}\right)^{(4)}=\left( \frac{4(1+x^2)^2}{(1-x^2)^4}\right)'=</math>
:<math>= \frac{(8(1+x^2)\cdot 2x)(1-x^2)^4 -4(1+x^2)^2\cdot 4(1-x^2)^3\cdot (-2x)}{(1-x^2)^8}=</math>
:<math>=\frac{16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3}{(1-x^2)^8}.</math>
:<math>g^{(5)}(x)=\left(\ln \frac{1+x}{1-x}\right)^{(5)}=\left(\frac{16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3}{(1-x^2)^8} \right)'=</math>
:<math>=\frac{[16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3]'(1-x^2)^8 - [16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3] ((1-x^2)^8)'}{(1-x^2)^{16}}=</math>
:<math>=\frac{[16(1+x^2)(1-x^2)^4+16x g_1(x) +32(1+x^2)^2 (1-x^2)^3+32x g_2(x)](1-x^2)^8 - [16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3] 8(1-x^2)^7 \cdot (-2x)}{(1-x^2)^{16}}=</math>
:<math>=\frac{[16(1+x^2)(1-x^2)^4+16x g_1(x) +32(1+x^2)^2 (1-x^2)^3+32x g_2(x)](1-x^2)^8 + 16x[16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3] (1-x^2)^7 }{(1-x^2)^{16}};</math>
:čia
:<math>g_1(x)=[(1+x^2)(1-x^2)^4]'=2x(1-x^2)^4 +(1+x^2)\cdot 4(1-x^2)^3 \cdot(-2x)=2x(1-x^2)^4 -8x(1+x^2)(1-x^2)^3,</math>
:<math>g_2(x)=[(1+x^2)^2 (1-x^2)^3]'=2(1+x^2)\cdot 2x \cdot (1-x^2)^3 +(1+x^2)^2 \cdot 3(1-x^2)^2 \cdot (-2x)=</math>
:<math>=4x(1+x^2)(1-x^2)^3 -6x(1+x^2)^2 (1-x^2)^2 .</math>
:Akivaizdu, kad <math>g_1(0)=0</math> ir <math>g_2(0)=0.</math>
:Randame funkcijos g(x) ir jos išvestinių reikšmes taške <math>x=0</math>:
:<math>g(0)=\ln \frac{1+0}{1-0}=\ln 1=0,</math>
:<math>g'(0)=\frac{2}{1-0^2}=2,</math>
:<math>g''(0)=\frac{4\cdot 0}{(1-0^2)^2}=0,</math>
:<math>g'''(0)=\frac{4(1+2\cdot 0^2+0^4)}{(1-0^2)^4}=4, </math>
:<math>g^{(4)}(0)=\frac{16\cdot 0(1+0^2)(1-x^2)^4 +32\cdot 0(1+0^2)^2 (1-0^2)^3}{(1-0^2)^8}=0.</math>
:<math>g^{(5)}(0)=\frac{[16(1+0^2)(1-0^2)^4+16\cdot 0\cdot g_1(0) +32(1+0^2)^2 (1-0^2)^3+32\cdot 0\cdot g_2(0)](1-0^2)^8 + 16\cdot 0[16\cdot 0(1+0^2)(1-0^2)^4 +32\cdot 0(1+0^2)^2 (1-0^2)^3] (1-0^2)^7 }{(1-0^2)^{16}}=</math>
:<math>=\frac{[16+32] +0}{1}=48.</math>
:Makloreno eilutės dėstinys su Lagranžo formos liekamuoju nariu bus šitoks:
:<math>\ln \frac{1+x}{1-x}=g(0)+\frac{g'(0)}{1!}x+\frac{g''(0)}{2!}x^2+ \frac{g'''(0)}{3!}x^3+...+ \frac{g^{(n)}(0)}{n!}x^n +\frac{g^{(n+1)}(\theta x)}{(n+1)!} x^{n+1}=</math>
:<math>=0+\frac{2}{1!}x+\frac{0}{2!}x^2+ \frac{4}{3!}x^3+\frac{0}{4!}x^4+\frac{48}{5!}x^5+...+ R_{2n+2}(x)=</math>
:<math>=2x+ \frac{2}{3}x^3+\frac{6\cdot 8}{5\cdot 4\cdot 3\cdot 2}x^5+...+ R_{2n+2}(x)=</math>
:<math>=2x+ \frac{2}{3}x^3+\frac{ 8}{5\cdot 4}x^5+...+ R_{2n+2}(x)=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+...+ \frac{2x^{2n+1}}{2n+1}+R_{2n+2}(x).</math>
:<math>\ln \frac{1+x}{1-x}=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+...+ \frac{2x^{2n+1}}{2n+1}+R_{2n+2}(x), \quad (8.88)</math>
:<math>R_{2n+2}(x)=-\frac{x^{2n+2}}{2n+2}\left[ \frac{1}{(1+\theta x)^{2n+2}} -\frac{1}{(1-\theta x)^{2n+2}}\right]; \quad (8.89)</math>
:skaičius <math>\theta</math> griežtai įterptas tarp nulio ir vieneto.
:[Naudotojas '''Paraboloid''' neįsivaizduoja iš kur ir kaip gauta tokia <math>R_{2n+2}(x)</math> išraiška. Ar ji teisinga, paaiškės apskaičiavus pavyzdį.]
:Skaičiuojant <math>\ln a</math> artinį, naudojama formulė
:<math>\ln a\approx\left(p -\frac{1}{2}\right)\ln 2 + 2\left( x+ \frac{x^3}{3}+\frac{x^5}{5}+...+ \frac{x^{2n+1}}{2n+1}\right), \quad (8.90)</math>
:kuri gaunama iš (8.87) lygybės, funkciją <math>\ln \frac{1+x}{1-x}</math> pakeitus šios funkcijos (8.88) Makloreno formulės dalimi be liekamojo nario <math>R_{2n+2}(x).</math> Pastebėsime, kad skaičius ''x'' apytikslėje <math>\ln a</math> formulėje randamas iš (8.86) formulės, atsižvelgus į (8.84) nelygybes, kurias turi tenkinti skaičius ''M''.
:Įvertinsime (8.90) formulės paklaidą. Kadangi skaičiaus <math>\ln a</math> artinio, apskaičiuoto pagal (8.90) formulę, ir tikslios reikšmės, gaunamos pagal (8.87) formulę, skirtumas lygus liekamajam nariui <math>R_{2n+2}(x),</math> tai, aiškinantis paklaidą, užtenka įvertinti tą liekamąjį narį.
:Iš pradžių išsiaiškinsime ''x'' kitimo ribas. Iš (8.86) formulės gauname
:<math>M=\frac{1}{\sqrt{2}} \, \frac{1+x}{1-x}, \quad (8.86)</math>
:<math>M\sqrt{2}= \frac{1+x}{1-x},</math>
:<math>M\sqrt{2}(1-x)= 1+x,</math>
:<math>M\sqrt{2}-1= x+xM\sqrt{2},</math>
:<math>x=\frac{M\sqrt{2}-1}{M\sqrt{2}+1}. \quad (8.91)</math>
:Jei ''M'' reikšmės tenkina (8.84) nelygybes, tai ''x'' tenkina sąlygą*
:<math>|x|<0.172. \quad (8.92)</math>
:[ <math>h'(M)=\left(\frac{M\sqrt{2}-1}{M\sqrt{2}+1}\right)'=\frac{\sqrt{2}(M\sqrt{2}+1)-(M\sqrt{2}-1)\sqrt{2}}{(M\sqrt{2}+1)^2} =\frac{(2M+\sqrt{2})-(2M-\sqrt{2})}{(M\sqrt{2}+1)^2} =\frac{2\sqrt{2}}{(M\sqrt{2}+1)^2}.</math>
:<math>\frac{2\sqrt{2}}{(M\sqrt{2}+1)^2}=0.</math> Matome, kad nėra tokių ''M'' reikšmių, su kuriom h'(M) būtų lygi nuliui. Todėl funkcija <math>h(M)=\frac{M\sqrt{2}-1}{M\sqrt{2}+1}</math> neturi maksimumo ir minimumo taškų.
:<math>h(1/2)=\frac{\frac{1}{2}\sqrt{2}-1}{\frac{1}{2}\sqrt{2}+1}=\frac{\frac{1}{\sqrt{2}}-1}{\frac{1}{\sqrt{2}}+1}=</math>
:=(0.70710678118654752440084436210485-1)/(0.70710678118654752440084436210485+1) =
:= -0.29289321881345247559915563789515/1.7071067811865475244008443621048 = -0.17157287525380990239662255158061.
:<math>h(1)=\frac{1\cdot \sqrt{2}-1}{1\cdot \sqrt{2}+1}=</math>
:=(1.4142135623730950488016887242097-1)/(1.4142135623730950488016887242097+1)=
:= 0.4142135623730950488016887242097/2.4142135623730950488016887242097 = 0.1715728752538099023966225515806.
:Taigi, matome, kad
:-0.17157287525380990239662255158061 < x < 0.1715728752538099023966225515806. Arba |x| < 0.171572875254.]
:Dabar pastebėsime, kad liekamasis narys <math>R_{2n+2}(x)</math> vienodai įvertinamas tiek tada, kai ''x'' reikšmės teigiamos, tiek tada, kai jos neigiamos (iš (8.89) formulės matyti, kad, ''x'' pakeitus -''x'', liekamojo nario <math>R_{2n+2}(x)</math> struktūra nepasikeičia). Todėl užtenka įvertinti <math>R_{2n+2}(x),</math> kai <math>x>0.</math> Atsižvelgę į tai ir į (8.92) nelygybę, dešiniojoje (8.89) formulės pusėje vietoj ''x'' rašome skaičių 0.172, vietoj trupmenos <math>\frac{1}{1+\theta x} </math> rašome vienetą, o vietoj <math>\frac{1}{1-\theta x} </math> – skaičių <math>\frac{1}{1-0.172} \;</math> ir gauname šitokį įvertį:
:<math>|R_{2n+2}(x)| \leq \frac{(0.172)^{2n+2}}{2n+2} \left[ 1+\frac{1}{(1-0.172)^{2n+2}}\right].</math>
:[Taip, čia laužtiniuose skliaustuose jau pliusas pasidarė. Tai arba (8.89) formulėje klaida arba čia.]
:Daugiklį <math>(0.172)^{2n+2}</math> įkelsime į laužtinius skliaustus. Kadangi <math>\frac{0.172}{1-0.172}< 0.208 \;</math> (0.172/(1-0.172)=0.172/0.828=~0.207729), tai
:<math>|R_{2n+2}(x)| \leq \frac{(0.172)^{2n+2} +(0.208)^{2n+2}}{2n+2}.\quad (8.93)</math>
:Skaičiuojant <math>\ln a</math> elektronine skaičiavimo mašina**, (8.90) formulėje dažniausiai imama <math>n=6.</math> Tuomet skaičiavimo tikslumas, kaip matyti iš (8.93), įvertinamas skaičiumi <math>\frac{(0.172)^{14} +(0.208)^{14}}{14}, \;</math> mažesniu kaip <math>1.625\cdot 10^{-10}.</math>
:[ (0.172^14 + 0.208^14)/14 = 2.1682237054688578614343997699803e-11 <math>\approx 2.1682237\cdot 10^{-11}.</math> ]
:[O jeigu ten turi būti minusas laužtiniuose skliaustuose kaip (8.89) formulėje, tai
:(0.172^14 - 0.208^14)/14 = -1.8848887113203326016424566362697e-11 <math>\approx -1.88488871132\cdot 10^{-11}.</math> Matome, kad nuo to nėra didelio skirtumo.]
________________
:''*'' Kadangi ''x'' yra argumento ''M'' funkcija, tai užtenka rasti maksimalią (8.91) funkcijos modulio reikšmę segmente <math>\left[\frac{1}{2}; \; 1 \right].</math>
:''**'' Taip skaičiuojamas <math>\ln a</math> elektronine skaičiavimo mašina БЭСМ-6.
===Pavyzdžiai===
*Apskaičiuosime ln(a)=ln(143). Pagal (8.83) formulę
:[<math>a=2^p M. \quad (8.83)</math>]
:<math>143=2^{8} M,</math>
:<math>M=\frac{143}{256}=0.55859375.</math>
:Toliau, pagal (8.87) formulę
:[<math>\ln a=\left(p -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}. \quad (8.87)</math>]
:<math>\ln 143=\left(8 -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}. </math>
:<math>\left(8 -\frac{1}{2}\right)\ln 2=7.5\ln 2=</math> 7.5*0.69314718055994530941723212145818 = 5.1986038541995898206292409109363.
:Tiksli ln(143) reikšmė yra ln(143)=4.9628446302599072801154310195304.
:Iš (8.91) formulės randame ''x'':
:<math>x=\frac{M\sqrt{2}-1}{M\sqrt{2}+1}=\frac{0.55859375\sqrt{2}-1}{0.55859375\sqrt{2}+1}=</math>
:= (0.55859375*1.4142135623730950488016887242097 - 1)/(0.55859375*1.4142135623730950488016887242097+1) =
:= -0.11733662705136264741194733209931.
:Toliau pagal (8.88) formulę apskaičiuosime <math>\ln \frac{1+x}{1-x}, \,</math> kai n=6.
:<math>\ln \frac{1+x}{1-x}=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+...+ \frac{2x^{2n+1}}{2n+1}=</math>
:<math>=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+\frac{ 2x^7}{7}+\frac{ 2x^9}{9}+\frac{ 2x^{11}}{11}+\frac{ 2x^{13}}{13}=2\left(x+ \frac{x^3}{3}+\frac{ x^5}{5}+\frac{ x^7}{7}+\frac{ x^9}{9}+\frac{ x^{11}}{11}+\frac{ x^{13}}{13} \right)=</math>
:= 2*(-0.11733662705136264741194733209931 -0.11733662705136264741194733209931^3/3 -0.11733662705136264741194733209931^5/5
:-0.11733662705136264741194733209931^7/7 -0.11733662705136264741194733209931^9/9 -0.11733662705136264741194733209931^11/11
:-0.11733662705136264741194733209931^13/13) =
:(nukopijavus viską nuo "2" iki ženklo "=" ir įdėjus (padarius "Paste") į ''Windows 10'' kalkuliatorių gaunamas žemiau esantis atsakymas)
:= -0.23575922393968105542703851052716.
:Pridėjus gautą atsakymą prie 7.5*ln(2) reikšmės, gauname ln(a)=ln(143) artinį:
:<math>\ln 143=\left(8 -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}= 7.5\ln 2+\ln \frac{1+x}{1-x}=</math>
:= 5.1986038541995898206292409109363 + (-0.23575922393968105542703851052716) = 4.9628446302599087652022024004091.
:Atėmę gautą ln(143) reikšmę iš tikslios ln(143) reikšmės, gauname
:4.9628446302599072801154310195304 - 4.9628446302599087652022024004091 = -0.0000000000000014850867713808787 = <math>\approx -1.48508677\cdot 10^{-15}.</math>
:<math>\frac{1+x}{1-x}=</math> (1+(-0.11733662705136264741194733209931))/(1-(-0.11733662705136264741194733209931)) =
:= (1-0.11733662705136264741194733209931)/(1+0.11733662705136264741194733209931) = 0.78997085710684606241656831078901.
:Tiksli ln(0.78997085710684606241656831078901) reikšmė yra tokia:
:ln(0.78997085710684606241656831078901) = -0.23575922393968254051380989140588.
:<math>\ln \frac{1+x}{1-x}\,</math> (su x=-0.11733662705136264741194733209931) paklaida yra tokia:
:-0.23575922393968254051380989140588 - (-0.23575922393968105542703851052716) =
:= -0.23575922393968254051380989140588 + 0.23575922393968105542703851052716 = -0.00000000000000148508677138087872 = <math>\approx -1.48508677\cdot 10^{-15}.</math>
:Pagal (8.89) formulę
:<math>R_{2n+2}(x)=-\frac{x^{2n+2}}{2n+2}\left[ \frac{1}{(1+\theta x)^{2n+2}} -\frac{1}{(1-\theta x)^{2n+2}}\right]. \quad (8.89)</math>
:<math>|R_{2n+2}(x)|<\frac{(-0.117336627)^{2n+2}}{2n+2}\left[ \frac{1}{(1+(-0.117336627))^{2n+2}} -1\right]= \frac{(-0.117336627)^{2\cdot 6+2}}{2\cdot 6+2}\left[ \frac{1}{(1-0.117336627)^{2\cdot 6+2}} -1\right]=</math>
:<math>= \frac{(-0.117336627)^{14}}{14}\left[ \frac{1}{(1-0.117336627)^{14}} -1\right]=</math>
:= (-0.11733662705136264741194733209931)^14 * (1/(1-0.11733662705136264741194733209931)^14 -1)/14 =
:= 3.1744477658835444278622203928479e-14 <math>\approx 3.1744477658835444\cdot 10^{-14}.</math>
:Matome, kad paklaida įvertinta teisingai, nes
:<math>1.48508677\cdot 10^{-15} < 3.1744477658835444\cdot 10^{-14}.</math>
:Pastebėsime, kad
:<math>\frac{(-0.117336627)^{14}}{14} =</math> 6.6979571136742061476086008278822e-15 <math>\approx 6.6979571136742\cdot 10^{-15}</math>;
:<math>\frac{(-0.117336627)^{15}}{15} =</math> -0.11733662705136264741194733209931^15/15 = -7.3352131612966428681484668924553e-16.
:Todėl (8.88) formulėje liekamąjį narį tikriausiai galima įvertinti taip:
:<math>|R_{2n+2}(x)|< |\frac{x^{2n+2}}{2n+2}|\approx 6.6979571136742\cdot 10^{-15}.</math>
:Arba garantuotai visais atvejais R(x) turėtų būti teisingas, kai
:<math>|R(x)|< |\frac{x^{2n+1}}{2n+1}|.</math>
:Nes <math>\frac{(-0.117336627)^{13}}{13} =</math> -0.11733662705136264741194733209931^13/13 = -6.1474279304103020252424035678064e-14.
==2. Skaičiaus arctg(x) radimas.==
:Skaičiuojant <math>\operatorname{arctg}\alpha,</math> užtenka nagrinėti teigiamas argumento reikšmes, nes, kai <math>|\alpha|=x,</math> gauname
:<math>\operatorname{arctg}\alpha=\sgn\alpha \cdot \operatorname{arctg} x.</math>
:Aprašysime standartines transformacijas, kuriomis <math> \operatorname{arctg} x</math> skaičiavimas, kai argumento ''x'' reikšmės ne mažesnės kaip <math>\frac{1}{8},</math> pakeičiamas arktangento skaičiavimu, kai argumento reikšmės mažesnės už <math>\frac{1}{8}.</math>
:Iš pradžių tarkime, kad <math>x\geq 1.</math> Sakykime, <math>y=\operatorname{arctg} x, \;</math> t. y. <math>x=\operatorname{tg} y, \;</math> o <math>x_1=\operatorname{tg}(y-\operatorname{arctg} 1).</math> Iš paskutinės lygybės gauname
:[pasinaudodami formule (iš https://lt.wikibooks.org/wiki/Matematika/Trigonometrinės_formulės) <math> \tan(\alpha-\beta)=\frac{\tan\alpha -\tan\beta }{1 + \tan\alpha \tan\beta} . \quad (7)</math>]
:<math>x_1=\operatorname{tg}(y-\operatorname{arctg} 1)=\frac{\operatorname{tg} y -\operatorname{tg}(\operatorname{arctg} 1)}{1+\operatorname{tg} y \cdot \operatorname{tg}(\operatorname{arctg} 1)}=\frac{\operatorname{tg} y - 1}{1+\operatorname{tg} y \cdot 1}=\frac{\operatorname{tg} y - 1}{\operatorname{tg} y + 1}=\frac{x - 1}{x + 1}<1.</math>
:Kadangi
:<math>\operatorname{arctg} x_1=\operatorname{arctg}[\operatorname{tg}(y-\operatorname{arctg} 1)]=y-\operatorname{arctg} 1=\operatorname{arctg} x -\operatorname{arctg} 1,</math>
:<math>\operatorname{arctg} x=\operatorname{arctg} 1 +\operatorname{arctg} x_1=\frac{\pi}{4} +\operatorname{arctg} x_1,</math>
:tai, norint apskaičiuoti <math>\operatorname{arctg} x,</math> kai <math>x\geq 1,</math> pakanka apskaičiuoti <math>\operatorname{arctg} x_1,</math> kai <math>0<x_1<1.</math>
:Dabar aptarsime atvejį, kai argumentas tenkina nelygybes <math>\frac{1}{8} \leq x<1.</math>
:Sakykime, <math>k_1=1, \;\; k_2=\frac{1}{2}, \;\; k_3=\frac{1}{4}, \;\; k_4=\frac{1}{8}.</math> Savaime aišku, su kokia nors <math>i=1, \; 2, \; 3, \; 4 \;</math> reikšme yra teisingos nelygybės
:<math>k_i\leq x<2k_i. \quad (8.94)</math>
:[Kai ''x'' daugiau už 1, tai ''x'' gali būti daugiau už <math>2k_i.</math> Tiksliau, kai ''x''>2, tai <math>x>2k_1=2.</math>]
:Tarkime, kad <math>y=\operatorname{arctg} x, \;</math> t. y. <math>x=\operatorname{tg} y, \;</math> o <math>x_i=\operatorname{tg}(y-\operatorname{arctg} k_i).</math> Iš paskutinės lygybės gauname
:[pasinaudodami formule <math> \tan(\alpha-\beta)=\frac{\tan\alpha -\tan\beta }{1 + \tan\alpha \tan\beta} </math>]
:<math>x_i=\operatorname{tg}(y-\operatorname{arctg} k_i)=\frac{\operatorname{tg} y -\operatorname{tg}(\operatorname{arctg} k_i)}{1+\operatorname{tg} y \cdot \operatorname{tg}(\operatorname{arctg} k_i)}=\frac{\operatorname{tg} y - k_i}{1+\operatorname{tg} y \cdot k_i}=\frac{x - k_i}{1+k_i x}.</math>
:Kadangi <math>x>0,</math> tai <math>1+k_i x>1.</math> Be to, iš dešiniosios (8.94) nelygybės išplaukia <math>x-k_i < 2k_i- k_1=k_i.</math> Todėl iš paskutinės <math>x_i</math> išraiškos gauname nelygybę <math>x_i<k_i.</math> Kadangi
:<math>\operatorname{arctg} x_i=\operatorname{arctg}[\operatorname{tg}(y-\operatorname{arctg} k_i)]=y-\operatorname{arctg} k_i=\operatorname{arctg} x -\operatorname{arctg} k_i,</math>
:<math>\operatorname{arctg} x=\operatorname{arctg} k_i +\operatorname{arctg} x_i,</math>
:tai <math>\operatorname{arctg} x</math> skaičiavimas, kai ''x'' tenkina (8.94) nelygybes, pakeičiamas <math>\operatorname{arctg} x_i</math> skaičiavimu, kai <math>0< x_i < k_i.</math>
:Jei aprašytąsias argumento ''x'' transformacijas pakartosime daugių daugiausia keturis kartus, tai <math>\operatorname{arctg} x</math> skaičiavimą, kai ''x'' reikšmės priklauso pusintervaliui <math>\frac{1}{8} \leq x<1,</math> pakeisime arktangento skaičiavimu, kai argumento reikšmės mažesnės už <math>\frac{1}{8}.</math>
:[Ten klaidelė. Maksimum keturių transformacijų reikia, kai ''x'' reikšmės priklauso pusintervaliui <math>\frac{1}{8} \leq x,</math> o kai ''x'' reikšmės priklauso pusintervaliui <math>\frac{1}{8} \leq x<1,</math> tai tada daugių daugiausia gali prireikti 3 transformacijos.]
:Skaičiuojant <math>\operatorname{arctg} x,</math> kai <math>x< \frac{1}{8},</math> naudojama Makloreno formulė (kuri išvedama čia: https://lt.wikibooks.org/wiki/Matematika/Matematinės_eilutės)
:<math>\operatorname{arctg} x= x-\frac{x^3}{3}+\frac{x^5}{5}-\frac{x^7}{7}+...+(-1)^n \frac{x^{2n+1}}{2n+1} +R_{2n+2}(x).</math>
:Dažniausiai šioje formulėje imama <math>n=6</math> ir atmetamas liekamasis narys (taip, pavyzdžiui, daroma skaičiuojant elektronine mašina БЭСМ-6). Logaritmo ir arktangento skaičiavimo programa yra bendra. Naudojant tą programą arktangentui skaičiuoti, reikia, kad gretimi nariai <math>\frac{x^{2n+1}}{2n+1}</math> būtų priešingų ženklų.
==Pavyzdžiai==
*Apskaičiuosime <math>\operatorname{arctg} 5.</math> Čia <math>x=5.</math> Tada
:<math>x_i=\frac{x - k_i}{1+k_i x}.</math>
:Pradėsime nuo to, kad <math>k_1=1.</math> Tada
:<math>x_1=\frac{x - k_1}{1+k_1 x}=\frac{x - 1}{1+ x}=\frac{5 - 1}{1+ 5}=\frac{4}{6}=\frac{2}{3}.</math>
:Toliau
:<math>\operatorname{arctg} x=\operatorname{arctg} k_i +\operatorname{arctg} x_i=\operatorname{arctg} k_1 +\operatorname{arctg} x_1=\operatorname{arctg} 1 +\operatorname{arctg} \frac{2}{3}=\frac{\pi}{4} +\operatorname{arctg} \frac{2}{3}.</math>
:Toliau imsime <math>k_2=\frac{1}{2}.</math> Tada
:<math>x_2=\frac{x_1 - k_2}{1+k_2 x_1}=\frac{x_1 - \frac{1}{2}}{1+\frac{1}{2} x_1}=\frac{\frac{2}{3} - \frac{1}{2}}{1+\frac{1}{2} \cdot \frac{2}{3}}=\frac{\frac{4-3}{6} }{1+ \frac{1}{3}}=\frac{\frac{1}{6} }{\frac{3+1}{3}}=\frac{\frac{1}{6} }{\frac{4}{3}}=\frac{1}{6} \cdot\frac{3}{4}=\frac{1}{8}.</math>
:Toliau
:<math>\operatorname{arctg} \frac{2}{3}=\operatorname{arctg} x_1=\operatorname{arctg} k_2 +\operatorname{arctg} x_2=\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{1}{8}.</math>
:Toliau imsime <math>k_4=\frac{1}{8}.</math> Tada
:<math>x_4=\frac{x_2 - k_4}{1+k_4 x_2}=\frac{x_2 - \frac{1}{8}}{1+\frac{1}{8} x_2}=\frac{\frac{1}{8} - \frac{1}{8}}{1+\frac{1}{8} \cdot \frac{1}{8}}=\frac{0 }{1+ \frac{1}{64}}=\frac{0 }{\frac{64+1}{64}}=\frac{0 }{\frac{65}{64}}=0.</math>
:Ir gauname
:<math>\operatorname{arctg} \frac{1}{8}=\operatorname{arctg} x_2=\operatorname{arctg} k_4 +\operatorname{arctg} x_4=\operatorname{arctg} \frac{1}{8} +\operatorname{arctg} 0=\operatorname{arctg} \frac{1}{8} +0=\operatorname{arctg} \frac{1}{8}.</math>
:Tokiu budu
:<math>\operatorname{arctg} 5=\operatorname{arctg} x=\frac{\pi}{4} +\operatorname{arctg} \frac{2}{3}=\frac{\pi}{4} +\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{1}{8}.</math>
:<math>\frac{\pi}{4}=</math> 0.78539816339744830961566084581988;
:<math>\operatorname{arctg} \frac{1}{2}=</math> 0.46364760900080611621425623146121;
:<math>\operatorname{arctg} \frac{1}{8}=</math> 0.12435499454676143503135484916387.
:Šiame pavyzdyje skaičiuoti Makloreno eilutės nereikia su ''x'' reikšme mažesne už 1/8, nes <math>x_4=0.</math>
:Taigi,
:arctg(5) = 0.78539816339744830961566084581988 + 0.46364760900080611621425623146121 + 0.12435499454676143503135484916387 =
:= 1.373400766945015860861271926445.
:Tiksli arctg(5) reikšmė iš kalkuliatoriaus yra tokia:
:arctg(5) = 1.373400766945015860861271926445.
:Gavome tą patį atsakymą.
*Apskaičiuosime <math>\operatorname{arctg} 7.</math> Čia <math>x=7.</math>
:Pradėsime nuo to, kad <math>k_1=1.</math> Tada
:<math>x_1=\frac{x - k_1}{1+k_1 x}=\frac{x - 1}{1+ x}=\frac{7 - 1}{1+ 7}=\frac{6}{8}=\frac{3}{4}.</math>
:Toliau
:<math>\operatorname{arctg} x=\operatorname{arctg} k_1 +\operatorname{arctg} x_1=\operatorname{arctg} 1 +\operatorname{arctg} \frac{3}{4}=\frac{\pi}{4} +\operatorname{arctg} \frac{3}{4}.</math>
:Toliau imsime <math>k_2=\frac{1}{2}.</math> Tada
:<math>x_2=\frac{x_1 - k_2}{1+k_2 x_1}=\frac{x_1 - \frac{1}{2}}{1+\frac{1}{2} x_1}=\frac{\frac{3}{4} - \frac{1}{2}}{1+\frac{1}{2} \cdot \frac{3}{4}}=\frac{\frac{3-2}{4} }{1+ \frac{3}{8}}=\frac{\frac{1}{4} }{\frac{8+3}{8}}=\frac{\frac{1}{4} }{ \frac{11}{8}}=\frac{1}{4} \cdot\frac{8}{11}=\frac{2}{11}=0.(18).</math>
:Tuo tarpu <math>k_3=\frac{1}{4}=0.25</math> yra daugiau už 0.(18). Todėl skaičiavimus su <math>k_3=\frac{1}{4}</math> praleisime ir iškart skaičiuosime toliau su <math>k_4=\frac{1}{8}=0.125</math> (nes 0.125 yra mažiau nei 2/11=0.(18)). Taigi,
:<math>x_4=\frac{x_2 - k_4}{1+k_4 x_2}=\frac{x_2 - \frac{1}{8}}{1+\frac{1}{8} x_2}=\frac{\frac{2}{11} - \frac{1}{8}}{1+\frac{1}{8} \cdot \frac{2}{11}}=\frac{\frac{16-11}{88} }{1+ \frac{2}{88}}=\frac{\frac{5}{88} }{\frac{88+2}{88}}=\frac{\frac{5}{88} }{\frac{90}{88}}=\frac{5}{88}\cdot \frac{88}{90}=\frac{5}{90}=\frac{1}{18}=0.0(5).</math>
:[1/18 = 0.05555555555555555555555555555556.]
:Toliau galime skaičiuoti pagal Makloreno formulę,
:<math>\operatorname{arctg} x= x-\frac{x^3}{3}+\frac{x^5}{5}-\frac{x^7}{7}+...+(-1)^n \frac{x^{2n+1}}{2n+1} +R_{2n+2}(x),</math>
:imdami n=6 ir vietoje ''x'' įrašę <math>x_4.</math> Tada gauname:
:<math>\operatorname{arctg} \frac{1}{18}=\operatorname{arctg} x_4= x_4-\frac{x_4^3}{3}+\frac{x_4^5}{5}-\frac{x_4^7}{7}+\frac{x_4^9}{9}-\frac{x_4^{11}}{11}+ \frac{x_4^{13}}{13} =</math>
:= 1/18 - 1/18^3/3 + 1/18^5/5 - 1/18^7/7 + 1/18^9/9 - 1/18^11/11 + 1/18^13/13 = 0.05549850524571683556705277298107.
:(Kad gauti tokį atsakymą greitai, tereikia aukščiau esančią eilutę nukopijuoti ir įdėti į ''Windows 10'' kalkuliaorių, padarius "Paste").
:Atėmę gautą arctg(1/18) reikšmę iš tikslios arctg(1/18) reikšmės, gauname paklaidą:
:0.05549850524571683555719814809224 - 0.05549850524571683556705277298107 = -0.00000000000000000000985462488883 = <math>= -9.85462488883\cdot 10^{-21}.</math>
:Kaip ir su natūrinio logaritmo skaičiavimu, liekamąjį narį galima įvertinti taip:
:<math>|R_{2n+2}(x_4)|< |\frac{x_4^{2n+2}}{2n+2}|=</math> 1/18^14/14 = 1.9057103509769875767803163358316e-19 <math>\approx 1.90571035\cdot 10^{-19}.</math>
:Tada
:<math>\operatorname{arctg} \frac{3}{4}=\operatorname{arctg} x_1=\operatorname{arctg} k_2 +\operatorname{arctg} x_2=\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{2}{11};</math>
:<math>\operatorname{arctg} \frac{2}{11}=\operatorname{arctg} x_2=\operatorname{arctg} k_4 +\operatorname{arctg} x_4=\operatorname{arctg} \frac{1}{8} +\operatorname{arctg} \frac{1}{18}.</math>
:Todėl
:<math>\operatorname{arctg} 7=\operatorname{arctg} x=\frac{\pi}{4} +\operatorname{arctg} \frac{3}{4}=\frac{\pi}{4} +\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{2}{11}=</math>
:<math>=\frac{\pi}{4} +\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{1}{8} +\operatorname{arctg} \frac{1}{18}= </math>
:= 0.78539816339744830961566084581988 + 0.46364760900080611621425623146121 +0.12435499454676143503135484916387 + 0.05549850524571683556705277298107 = 1.428899272190732696428324699426.
:Atėmę ką tik gautą arctg(7) reikšmę iš kalkuliatoriaus tikslios arctg(7) reikšmės, gauname paklaidą:
:1.4288992721907326964184700745372 - 1.428899272190732696428324699426 = -9.8546248888316409091970590727231e-21 =
:= -0.0000000000000000000098546248888 <math>\approx -9.8546248888\cdot 10^{-21}.</math>
:Pastabos. Čia visos arkatangento reikšmės skaičiuojamos radianais. Kad kalkuliatorius skaičiuotų radianais, reikia paspausti mygtuką, kuris keičia tarp laipsnių, radianų ir gradianų (iš "DEG", "RAD" ir "GRAD" reikia išrinkti, kad rodytų "RAD"). O tam, kad kalkuliatorius apskaičiuotų arktangento reikšmę, reikia iš pradžių įrašyti skaičių į kalkuliatorių ir paskui ''Windows 10'' kalkuliatoriuje (kuris turi būti nustatytas [vienu paspaudimu] per patį kalkuliatorių, kad būtų "Scientific") paspausti "Trigonometry", vėliau paspausti <math>2^{nd}</math> ir tada paspausti <math>\tan^{-1}</math>. Tada ir bus gauta arktangento reikšmė radianais, jei buvo pasirinkta "RAD".
:<math>\operatorname{arctg} 1 = </math> 0.78539816339744830961566084581988.
:<math>\operatorname{arctg} 0.5 = </math> 0.46364760900080611621425623146121.
:<math>\operatorname{arctg} 0.25 =</math> 0.24497866312686415417208248121128.
:<math>\operatorname{arctg} 0.125 =</math> 0.12435499454676143503135484916387.
*<math>\operatorname{arctg} 0.9.</math>
:<math>\operatorname{arctg} a = \operatorname{arctg} 0.9 - \operatorname{arctg} 0.5.</math>
:<math>\tan(\alpha-\beta) = \tan\frac{\tan\alpha - \tan\beta}{1+\tan\alpha \tan\beta}. </math>
:<math>a = \operatorname{tg}\left( \operatorname{arctg} 0.9 - \operatorname{arctg} 0.5 \right) =</math>
:<math>=\tan\frac{\tan(\operatorname{arctg} 0.9) - \tan(\operatorname{arctg} 0.5)}{1+\tan(\operatorname{arctg} 0.9) \tan(\operatorname{arctg} 0.5)}= \tan\frac{0.9 - 0.5}{1+ 0.9\cdot 0.5}= \tan\frac{0.4}{1+ 0.45}=\tan\frac{0.4}{1.45}=</math>
:= 0.27586206896551724137931034482759.
:<math>\operatorname{arctg} (0.27586206896551724137931034482759)=</math>
:= 0.27586206896551724137931034482759 - 0.27586206896551724137931034482759^3/3 + 0.27586206896551724137931034482759^5/5 - 0.27586206896551724137931034482759^7/7 + 0.27586206896551724137931034482759^9/9 - 0.27586206896551724137931034482759^11/11 + 0.27586206896551724137931034482759^13/13 =
:= '''0.26916749'''304043554450715959336444.
:<math>\operatorname{arctg} (0.27586206896551724137931034482759)=</math>
:= '''0.26916749'''278570047542653584127307.
:<math>\operatorname{arctg} (0.27586206896551724137931034482759) + \operatorname{arctg} 0.5 =</math>
:= 0.26916749304043554450715959336444 + 0.46364760900080611621425623146121 =
:= '''0.73281510'''204124166072141582482565.
:<math>\operatorname{arctg} 0.9 =</math>
:= '''0.73281510'''178650659164079207273428.
:<math>\operatorname{arctg} b = \operatorname{arctg} a - \operatorname{arctg} 0.25 =</math>
:<math>b = \operatorname{tg}\left( \operatorname{arctg} (0.278299659434360506011219170928) - \operatorname{arctg} 0.25 \right) =</math>
:<math>= \tan\frac{0.26916749304043554450715959336444 - 0.25}{1+ 0.26916749304043554450715959336444\cdot 0.25}=</math>
:<math>\tan\frac{0.01916749304043554450715959336444}{1 + 0.06729187326010888612678989834111} = \tan\frac{0.01916749304043554450715959336444}{1.06729187326010888612678989834111}=</math>
:= 0.019167493040435544507159593364/1.067291873260108886126789898341 = 0.0179589983964623044012469281158.
:<math>\operatorname{arctg} (0.0179589983964623044012469281158)=</math>
:= 0.0179589983964623044012469281158 - 0.0179589983964623044012469281158^3/3 + 0.0179589983964623044012469281158^5/5 - 0.0179589983964623044012469281158^7/7 + 0.0179589983964623044012469281158^9/9 - 0.0179589983964623044012469281158^11/11 + 0.0179589983964623044012469281158^13/13 - 0.0179589983964623044012469281158^15/15 =
:= '''0.017957068024287386522471323702'''2.
:<math>\operatorname{arctg} (0.0179589983964623044012469281158)=</math>
:= '''0.017957068024287386522471323702'''33.
:<math>\operatorname{arctg} 0.9 = \operatorname{arctg} 0.5 + \operatorname{arctg} a = </math>
:<math>\operatorname{arctg} 0.9 = \operatorname{arctg} 0.5 + \operatorname{arctg} 0.25 + \operatorname{arctg} b = </math>
:= 0.46364760900080611621425623146121 + 0.24497866312686415417208248121128 + 0.0179570680242873865224713237022 =
:= '''0.7'''2658334015195765690881003637469.
:<math>\operatorname{arctg} 0.9 =</math>
:= '''0.7'''3281510178650659164079207273428.
:a = 0.27586206896551724137931034482759.
:<math>\operatorname{arctg} a=</math>
:= 0.26916749304043554450715959336444.
:<math>\operatorname{arctg} a = \operatorname{arctg} 0.25 + \operatorname{arctg} b =</math>
:= 0.24497866312686415417208248121128 + 0.0179570680242873865224713237022 =
:= '''0.26'''293573115115154069455380491348.
:Kalkuliatoriaus:
:arctg(0.27586206896551724137931034482759) =
:= '''0.26'''916749278570047542653584127307.
*<math>\operatorname{arctg} 1.6.</math>
:<math>\operatorname{arctg} a = \operatorname{arctg} 1.6 - \operatorname{arctg} 1.</math>
:<math>\tan(\alpha-\beta) = \tan\frac{\tan\alpha - \tan\beta}{1+\tan\alpha \tan\beta}. </math>
:<math>a = \operatorname{tg}\left( \operatorname{arctg} 1.6 - \operatorname{arctg} 1 \right) =</math>
:<math>=\tan\frac{\tan(\operatorname{arctg} 1.6) - \tan(\operatorname{arctg} 1)}{1+\tan(\operatorname{arctg} 1.6) \tan(\operatorname{arctg} 1)}= \tan\frac{1.6 - 1}{1+ 1.6\cdot 1}= \tan\frac{0.6}{2.6}=</math>
:= 0.23076923076923076923076923076923.
:<math>\operatorname{arctg} (0.23076923076923076923076923076923)=</math>
:= 0.23076923076923076923076923076923 - 0.23076923076923076923076923076923^3/3 + 0.23076923076923076923076923076923^5/5 - 0.23076923076923076923076923076923^7/7 + 0.23076923076923076923076923076923^9/9 - 0.23076923076923076923076923076923^11/11 + 0.23076923076923076923076923076923^13/13 - 0.23076923076923076923076923076923^15/15 =
:= '''0.226798848053'''04763076023291256713.
:<math>\operatorname{arctg} (0.23076923076923076923076923076923)=</math>
:= '''0.226798848053'''88587364415262941821.
:<math>\operatorname{arctg} 1.6 = \operatorname{arctg} 1 + \operatorname{arctg} a =</math>
:= 0.78539816339744830961566084581988 + 0.22679884805304763076023291256713 =
:= '''1.01219701145'''0495940375893758387.
:Kalkuliatoriaus:
:arctg(1.6) =
:= '''1.01219701145'''13341832598134752381.
:<math>\operatorname{arctg} b = \operatorname{arctg} a - \operatorname{arctg} 0.125.</math>
:<math>\operatorname{arctg} b = \operatorname{arctg} 0.23076923076923076923076923076923 - \operatorname{arctg} 0.125.</math>
:<math>\tan(\alpha-\beta) = \tan\frac{\tan\alpha - \tan\beta}{1+\tan\alpha \tan\beta}. </math>
:<math>b = \operatorname{tg}\left( \operatorname{arctg} 0.23076923076923076923076923076923 - \operatorname{arctg} 0.125 \right) =</math>
:<math>=\tan\frac{\tan(\operatorname{arctg} 0.23076923076923076923076923076923) - \tan(\operatorname{arctg} 0.125)}{1+\tan(\operatorname{arctg} 0.23076923076923076923076923076923) \tan(\operatorname{arctg} 0.125)}=</math>
:<math>= \tan\frac{0.23076923076923076923076923076923 - 0.125}{1+ 0.23076923076923076923076923076923\cdot 0.125}= \tan\frac{0.10576923076923076923076923076923}{1+0.02884615384615384615384615384615}=</math>
:0.105769230769230769230769230769/1.028846153846153846153846153846 =
:= 0.10280373831775700934579439252316.
:<math>\operatorname{arctg} (0.10280373831775700934579439252316)=</math>
:= 0.10280373831775700934579439252316 - 0.10280373831775700934579439252316^3/3 + 0.10280373831775700934579439252316^5/5 - 0.10280373831775700934579439252316^7/7 + 0.10280373831775700934579439252316^9/9 - 0.10280373831775700934579439252316^11/11 + 0.10280373831775700934579439252316^13/13 - 0.10280373831775700934579439252316^15/15 =
:= '''0.10244385350712443'''768036939404847.
:Kalkuliatoriaus:
:<math>\operatorname{arctg} (0.10280373831775700934579439252316)=</math>
:= '''0.10244385350712443'''861279778025414.
:<math>\operatorname{arctg} 1.6 = \operatorname{arctg} 1 + \operatorname{arctg} a = </math>
:<math>\operatorname{arctg} 1.6 = \operatorname{arctg} 1 + \operatorname{arctg} 0.125 + \operatorname{arctg} b = </math>
:= 0.78539816339744830961566084581988 + 0.12435499454676143503135484916387 + 0.10244385350712443768036939404847 =
:= '''1.01219701145133418'''23273850890322.
:Kalukuliatoriaus:
:<math>\operatorname{arctg} 1.6 =</math>
:= '''1.01219701145133418'''32598134752381.
:'''Free Pacal''' kodas, skaičiuoti arctg(a):
var a:real; b:real; c:real; d:real; g:real; f:real;
begin
//for a:=2 to 1000000000 do
begin
a:=7.0;
b:=(a-1.0)/(a+1.0);
c:=(b-0.5)/(1.0+b*0.5);
d:=(c-0.25)/(1.0+c*0.25);
g:=(d-0.125)/(1.0+0.125*d);
f:=g - g*g*(g/3 + g*g* (g/5-g*g* (g/7 + g*g* (g/9 -g*g*g/11))))+1.61837943007188001503;
// arctan(1)=pi/4 = 0.78539816339744830961566
// arctan(1/2) = 0.46364760900080611621425
// arctan(1/4) = 0.244978663126864154172
// arctan(1/8) = 0.12435499454676143503135
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
//f:=f+1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:Resultatas 1.4290003193181138E+000.
:Skaičiuojama iki (a^11)/11.
:Kalkuliatoriaus arctan(7) reikšmė yra 1.4288992721907326964184700745372.
:Šituo budu apskaičiuota kalkuliatoriumi arctan(7) reikšmė iki (x_4^11)/11 yra 1.4288992722261246066538981860865.
:Su kalkuliatoriumi skaičiuojant viską gaunama 10 pirmų teisingų skaitmenų. '''Free Pascal''' kodas duoda tik 3 pirmus teisingus skaitmenis. Looks like Pascal (or FPU) can't comprehend too complex code.
:Kodas skaičiuoja teisingai, nepaisant ar kuri nors iš reikšmių c, d, g gausis neigiama ar teigiama (jei kuri nors gaunasi neigiama, tai tiesiog dažniausiai (arba visada) prarandama kažkiek tikslumo).
:a=7.0;
:b=(a-1.0)/(a+1.0) = 6/8 = 0.75.
:c=(b-0.5)/(1.0+b*0.5) = (0.75-0.5)/(1.0+0.75*0.5) = 0.18181818181818181818181818181818.
:d=(c-0.25)/(1.0+c*0.25)=
:= (0.18181818181818181818181-0.25)/(1.0+0.18181818181818181818181*0.25)= -0.06521739130434782608696447542533.
:g=(d-0.125)/(1.0+0.125*d) =
:= (-0.06521739130434782608696-0.125)/(1.0-0.06521739130434782608696*0.125) = -0.19178082191780821917808578269844.
:Šis '''Free Pascal''' kodas:
var a:real; b:real; f:real; d:longint; h:real;
begin
//for a:=2 to 1000000000 do
begin
a:=7.0;
begin
b:=a;
h:=2.0;
for d:=1 to 4 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
end;
f:=b - b*b*(b/3.0 + b*b* (b/5.0-b*b* (b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:Duoda tą patį rezultatą 1.4290003193181138E+000.
:Reikšmė b kode apskaičiuota teisingai ir yra lygi -1.9178082191780821E-001 arba
:a:=7.0;
:b:=(a-1.0)/(a+1.0) = 6/8 = 0.75.
:c:=(b-0.5)/(1.0+b*0.5) = (0.75-0.5)/(1.0+0.75*0.5) = 0.18181818181818181818181818181818.
:d:=(c-0.25)/(1.0+c*0.25)=
:= (0.18181818181818181818181-0.25)/(1.0+0.18181818181818181818181*0.25)= -0.06521739130434782608696447542533.
:g:=(d-0.125)/(1.0+0.125*d) =
:= (-0.06521739130434782608696-0.125)/(1.0-0.06521739130434782608696*0.125) = -0.19178082191780821917808578269844.
:Reikšmė lygiai tokia pati kaip ir preitame kode reikšmė g.
:Tikslumo praradimai panašu prasideda skaičiuojant reikšmę f. Skaičiavimas su kalkuliatoriumi:
-0.19178082191780821917808219178082 - (-0.19178082191780821917808219178082)^3/3 +(-0.19178082191780821917808219178082)^5/5 - (-0.19178082191780821917808219178082)^7/7 +(-0.19178082191780821917808219178082)^9/9 - (-0.19178082191780821917808219178082)^11/11 = -0.18948015784575540837945622156966.
-0.18948015784575540837945622156966 + 1.6183794300718800150333544076562 =1.4288992722261246066538981860865.
:Čia 10 pirmų skaitmenų teisingi.
:Toks '''Free Pascal''' kodas:
var a:real; b:real; f:real; d:longint; h:real;
begin
//for a:=2 to 1000000000 do
begin
a:=7.0;
begin
b:=a;
h:=2.0;
for d:=1 to 2 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
end;
f:=b - b*b*(b/3.0 + b*b* (b/5.0-b*b* (b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.2490457723982544258;
//pi/4+arctan(1/2) = 1.2490457723982544258
end;
writeln(f);
Readln;
End.
:duoda atsakymą:
:1.4288216709361827E+000. Tiksli arctg(7) reikšmė yra:
:1.4288992721907326964184700745372.
:Pirmi penki skaitmenys teisingi. Čia d yra dviejų iteracijų vietoje keturių iteracijų. Dėl to kažkaip arktangento eilutė tiksliau/geriau paskaičiuojama.
===Arktangento Benchmark===
:Toks arktangentų reikšmių (nuo 2 iki 1 milijardo) skaičiavimo kodas:
var a:longint; b:real; c:real; d:real; g:real; f:real;
begin
for a:=1 to 1000000000 do
begin
b:=(1.0*a-1.0)/(1.0*a+1.0);
c:=(b-0.5)/(1.0+b*0.5);
d:=(c-0.25)/(1.0+c*0.25);
g:=(d-0.125)/(1.0+0.125*d);
f:=f+g - g*g*(g/3 + g*g* (g/5-g*g* (g/7 + g*g* (g/9 -g*g*g/11))))+1.61837943007188001503;
end;
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
// f:=f+1.61837943007188001503;
writeln(f);
Readln;
End.
:duoda 1.5707964092145209E+009. Labai didelės a reikšmės duoda <math>\arctan a \approx\pi/2</math>. Pirmą kartą skaičiuojama 1 minutę ir 9 sekundes. Antrą ir trečią kartą - 1 minutę ir 7 sekundes. Su 4.16 GHz procesorium.
:<math>\pi/2 =</math> 1.5707963267948966192313216916398.
:Truputi labiau optimizuotas '''Free Pascal''' kodas:
var a:longint; b:real; c:real; d:real; g:real; f:real;
begin
for a:=2 to 1000000000 do
begin
b:=(a-1.0)/(a+1.0);
c:=(b-0.5)/(1.0+b*0.5);
d:=(c-0.25)/(1.0+c*0.25);
g:=(d-0.125)/(1.0+0.125*d);
f:=f+g - g*g*(g/3 + g*g* (g/5-g*g* (g/7 + g*g* (g/9 -g*g*g/11))))+1.61837943007188001503;
end;
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
// f:=f+1.61837943007188001503;
writeln(f);
Readln;
End.
:duoda atsakymą 1.5707964082113807E+009. Pirmą kartą po minutės ir 7 sekundžių (67 sekundžių). Antrą kartą po minutės ir 4 sekundžių (64 sekundžių). Su 4.16 GHz CPU.
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; f:real; d:longint; h:real;
begin
for a:=2 to 1000000000 do
begin
b:=a;
h:=2;
for d:=1 to 2 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
f:=f+b - b*b*(b/3.0 + b*b* (b/5.0-b*b* (b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.2490457723982544258;
//pi/4+arctan(1/2) = 1.2490457723982544258
end;
writeln(f);
Readln;
End.
:duoda atsakymą 1.5692808286515808E+009. Pirmą kartą po minutės ir 45 sekundžių (105 sekundžių). Antrą kartą po minutės ir 27 sekundžių (87 sekundžių). Su 4.16 GHz procesorium.
:Toks kodas:
var a:longint; b:real; f:real; d:longint; h:real;
begin
for a:=2 to 1000000000 do
begin
b:=a;
h:=2;
for d:=1 to 4 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
f:=f+b - b*b*(b/3.0 + b*b* (b/5.0-b*b*(b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:duoda 1.5707964082113807E+009. Pirmą kartą po 2 minučių ir 24 sekundžių (144 sekundžių). Antrą kartą po 2 minučių ir 2 sekundžių (122 sekundžių). Su 4.16 GHz CPU.
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; c:real; d:real; e:real; f:real; g:real;
begin
for a:=2 to 1000000000 do
//a:=7;
begin
b:=(a-1)/(a+1);
c:=(b-0.5)/(1+0.5*b);
d:=(c-0.25)/(1+0.25*c);
e:=(d-0.125)/(1+0.125*d);
f:=e*(1.0-e*e*(0.3333333333333333333333+e*e*(0.2-e*e*(0.1428571428571428571428+
e*e*(0.11111111111111111111111-e*e*0.0909090909090909090909)))));
// arctan(1)=pi/4 = 0.78539816339744830961566
// arctan(1/2) = 0.46364760900080611621425
// arctan(1/4) = 0.244978663126864154172
// arctan(1/8) = 0.12435499454676143503135
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
g:=g+f+1.61837943007188001503;
end;
writeln(g);
Readln;
End.
:duoda atsakymą 1.5707964082133019E+009. Pirmą kartą po 55 sekundžių. Antrą kartą po 54 sekundžių. Su 4,16 GHz procesorium. Išeina arktangento eilutės konstantos arba apskaičiuojamos prieš paleidžiant kodą arba dalyba iš mažų sveikųjų skaičių yra greitesnė nei iš didelių sveikųjų skaičių ir tuo labiau 64 bitų realių skaičių. Nes skaičiavimo laikas tik 10 sekundžių trumpesnis (64 s VS 54 s).
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; f:real; d:longint; h:real;
begin
for a:=2 to 1000000000 do
begin
b:=a;
h:=2;
for d:=1 to 4 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
f:=f+b*(1.0-b*b*(0.3333333333333333333333+b*b*(0.2-b*b*(0.1428571428571428571428+
b*b*(0.11111111111111111111111-b*b*0.0909090909090909090909))))) +1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:duoda atsakymą 1.5707964082133019E+009. Pirmą kartą po 2 minučių ir 6 sekundžių (126 sekundžių). Antrą kartą po minutės ir 46 sekundžių (106 sekundžių). Su 4.16 GHz CPU. Kode 1 milijardas (-1) pagrindinių iteracijų ir kiekvienoje jų 4 vidinės iteracijos.
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; c:real; d:real; e:real; f:real; g:real;
begin
for a:=2 to 1000000000 do
begin
b:=(a-1)/(a+1);
c:=(b-0.5)/(1+0.5*b);
d:=(c-0.25)/(1+0.25*c);
e:=(d-0.125)/(1+0.125*d);
f:=e*(1.0-e*e*(1/3+e*e*(1/5-e*e*(1/7+e*e*(1/9-e*e/11)))));
g:=g+f+1.61837943007188001503;
end;
writeln(g);
Readln;
End.
:duoda atsakymą 1.5707964082133019E+009. Pirmą kartą po 1 minutės ir 1 sekundės. Antrą kartą po 58 sekundžių. Su 4.16 GHz CPU. Panašiau, kad Free Pascal iš pradžių apskaičiuoja konstantas, kurias paskui naudoja. Šitoje arktangento eilutėje mažiau operacijų nei, kur skaičiuota 64 sekundes per antrą kartą. Nes eilutė protingiau parašyta ir gavosi trumpesnė (11 daugybų vietoje 15 daugybų, jei pvz. 1/3 skaičiuoti kaip konstantą 0.333333333333333). Bet vis tiek 4 sekundėm ilgiau skaičiuota. Gal dalyba iš 11 buvo tikra. Arba visos dalybos iš mažų skaičiui labai greitai atliekamos su CPU.
:Toks kodas:
var a:longint; b:real; c:real; d:real; e:real; f:real; g:real;
begin
for a:=2 to 1000000000 do
begin
b:=(a-1)/(a+1);
c:=(b-0.5)/(1+0.5*b);
d:=(c-0.25)/(1+0.25*c);
e:=(d-0.125)/(1+0.125*d);
f:=e*(1.0-e*e*(1/3.001065006421+e*e*(1/5.0000879004912-e*e*(1/7.00001448879+e*e*(1/9.0049464789-e*e/11.0008987041519494)))));
g:=g+f+1.61837943007188001503;
end;
writeln(g);
Readln;
End.
:duoda atsakymą 1.5707964052086353E+009. Pirmą kartą po 60 sekundžių. Antrą kartą po 59 sekundžių. Su 4.16 GHz CPU. Jeigu arktangento eilutės konstantos kode neapskaičiuojamos iš anksto, tai išeitų, kad 5 papildomos dalybos padaromos per 5 sekundes arba per mazdaug 5*4.16 = 20.8 ciklo. Vienai 64 bitų dalybai tada tenka apie 4 ciklai. Tiek pat kaip ir daugybai. Kai sudeties, atimties ir daugybos bei dalybos operacijos sudedamos į vieną eilutę su skliaustais kaip yra čia, tai visi skaičiavimai vyksta daug greičiau, nei jeigu priskirti kiekvienam skaičiui raidę ir atlikinėti veiksmus iš eilės (panašiai kaip yra kodo pradžioje nuo b iki e atliekant atimties, sudeties, daugybos ir dalybos veiksmus). Nes be visa ko raidė priskirta skaičiui, saugo dar ir to skaičiaus adresą arba ofset'ą į to skaičiaus RAM adresą. Kas ten žino ant kiek efektyviai sudaromas tas kodas. Gal jump instrukcijos yra tuos skaičius (kad įkraut juos po vieną) ir paskui atgal, o kai viskas skliaustuose sudėta, tada visos operacijos vykdomos iš eilės kaip su pirmaisiais procesoriais (intel 8080, Z80).
rrynhwwfgt9qdz2cgsxm9ok0o9lqqpk
59138
59137
2026-11-12T08:30:25Z
Paraboloid
1294
/* Arktangento Benchmark */
59138
wikitext
text/x-wiki
[[Elementariųjų funkcijų reikšmių skaičiavimas]]
:Logaritminės ir atvirkštinių trigonometrinių funkcijų reikšmių skaičiavimas pagrįstas Teiloro formulės taikymu. Čia smulkiai aptarsime, kaip skaičiuojamos logaritmo ir arktangento reikšmės. Funkcijų <math>\operatorname{arcctg} x, \;</math> <math>\operatorname{arcsin} x \;</math> ir <math>\operatorname{arccos} x \;</math> reikšmių skaičiavimas pakeičiamas arktangento reikšmių skaičiavimu pagal šitokias žinomas formules:
:[ https://en.wikipedia.org/wiki/Inverse_trigonometric_functions#Relationships_among_the_inverse_trigonometric_functions ]
:<math>\operatorname{arcctg} x =\frac{\pi}{2} -\operatorname{arctg} x, \;\;\; \operatorname{arcsin} x=\operatorname{arctg}\frac{x}{\sqrt{1-x^2}},</math>
:<math>\operatorname{arccos} x =\operatorname{arcctg}\frac{x}{\sqrt{1-x^2}} =\operatorname{arctg}\frac{\sqrt{1-x^2}}{x}.</math>
==1. Skaičiaus ln(a) radimas==
:Skaičių a>0 išreikškime sandauga
:<math>a=2^p M. \quad (8.83)</math>
:kurioje ''p'' – sveikasis skaičius, o ''M'' tenkina nelygybes
:<math>\frac{1}{2}\leq M<1. \quad (8.84)</math>
:Pastebėsime, kad skaičių ''a'' išreikšti (8.83) sandauga galima vieninteliu būdu. Remdamiesi (8.83) formule, logaritmą <math>\ln a</math> užrašome šitaip:
:<math>\ln a=\ln(2^p M)=p\ln 2 +\ln M. \quad (8.85)</math>
:Sakykime,
:<math>M=\frac{1}{\sqrt{2}} \, \frac{1+x}{1-x}, \quad (8.86)</math>
:ir šitą ''M'' išraišką įrašykime į (8.85) lygybę. Tada logaritmo <math>\ln a</math> išraiška bus šitokia:
:<math>\ln a=p\ln 2 +\ln M=p\ln 2 +\ln \left(\frac{1}{\sqrt{2}} \frac{1+x}{1-x}\right)=p\ln 2 +\ln \frac{1}{\sqrt{2}} +\ln \frac{1+x}{1-x}=</math>
:<math>=p\ln 2 -\frac{1}{2}\ln 2 +\ln \frac{1+x}{1-x}=\left(p -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}.</math>
:<math>\ln a=\left(p -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}. \quad (8.87)</math>
:Funkciją <math>\ln \frac{1+x}{1-x}</math> išdėstysime pagal Makloreno formulę. Pirma rasime kelias funkcijos <math>g(x)=\ln \frac{1+x}{1-x}</math> išvestines ir pagal jas nuspėsime aukštesnių eilių šios funkcijos išvestines (ir jų reikšmes, kai <math>x=0</math>).
:<math>g'(x)=\left(\ln \frac{1+x}{1-x}\right)'=\frac{1-x}{1+x}\cdot \left(\frac{1+x}{1-x}\right)'=</math>
:<math>=\frac{1-x}{1+x}\cdot \frac{(1+x)'(1-x)-(1+x)(1-x)'}{(1-x)^2}=\frac{1-x}{1+x}\cdot \frac{(1-x)-(1+x)(-1)}{(1-x)^2}=\frac{1-x}{1+x}\cdot \frac{(1-x)+(1+x)}{(1-x)^2}=</math>
:<math>=\frac{1-x}{1+x}\cdot \frac{2}{(1-x)^2}=\frac{2}{(1+x)(1-x)}=\frac{2}{1-x^2}.</math>
:<math>g''(x)=\left(\ln \frac{1+x}{1-x}\right)''=\left(\frac{2}{1-x^2}\right)'=-\frac{2}{(1-x^2)^2}\cdot (1-x^2)'=-\frac{2}{(1-x^2)^2}\cdot (-2x)=\frac{4x}{(1-x^2)^2}. </math>
:<math>g'''(x)=\left(\ln \frac{1+x}{1-x}\right)'''=\left(\frac{4x}{(1-x^2)^2}\right)'=\frac{(4x)'(1-x^2)^2 - 4x[(1-x^2)^2]'}{((1-x^2)^2)^2}= </math>
:<math>=\frac{4(1-x^2)^2 - 4x[2(1-x^2)']}{(1-x^2)^4}=\frac{4(1-2x^2+x^4) - 4x[2(-2x)]}{(1-x^2)^4}= \frac{4-8x^2+4x^4 + 16x^2}{(1-x^2)^4}= </math>
:<math>= \frac{4+8x^2+4x^4}{(1-x^2)^4}=\frac{4(1+2x^2+x^4)}{(1-x^2)^4}= \frac{4(1+x^2)^2}{(1-x^2)^4}.</math>
:<math>g^{(4)}(x)=\left(\ln \frac{1+x}{1-x}\right)^{(4)}=\left( \frac{4(1+x^2)^2}{(1-x^2)^4}\right)'=</math>
:<math>= \frac{(8(1+x^2)\cdot 2x)(1-x^2)^4 -4(1+x^2)^2\cdot 4(1-x^2)^3\cdot (-2x)}{(1-x^2)^8}=</math>
:<math>=\frac{16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3}{(1-x^2)^8}.</math>
:<math>g^{(5)}(x)=\left(\ln \frac{1+x}{1-x}\right)^{(5)}=\left(\frac{16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3}{(1-x^2)^8} \right)'=</math>
:<math>=\frac{[16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3]'(1-x^2)^8 - [16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3] ((1-x^2)^8)'}{(1-x^2)^{16}}=</math>
:<math>=\frac{[16(1+x^2)(1-x^2)^4+16x g_1(x) +32(1+x^2)^2 (1-x^2)^3+32x g_2(x)](1-x^2)^8 - [16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3] 8(1-x^2)^7 \cdot (-2x)}{(1-x^2)^{16}}=</math>
:<math>=\frac{[16(1+x^2)(1-x^2)^4+16x g_1(x) +32(1+x^2)^2 (1-x^2)^3+32x g_2(x)](1-x^2)^8 + 16x[16x(1+x^2)(1-x^2)^4 +32x(1+x^2)^2 (1-x^2)^3] (1-x^2)^7 }{(1-x^2)^{16}};</math>
:čia
:<math>g_1(x)=[(1+x^2)(1-x^2)^4]'=2x(1-x^2)^4 +(1+x^2)\cdot 4(1-x^2)^3 \cdot(-2x)=2x(1-x^2)^4 -8x(1+x^2)(1-x^2)^3,</math>
:<math>g_2(x)=[(1+x^2)^2 (1-x^2)^3]'=2(1+x^2)\cdot 2x \cdot (1-x^2)^3 +(1+x^2)^2 \cdot 3(1-x^2)^2 \cdot (-2x)=</math>
:<math>=4x(1+x^2)(1-x^2)^3 -6x(1+x^2)^2 (1-x^2)^2 .</math>
:Akivaizdu, kad <math>g_1(0)=0</math> ir <math>g_2(0)=0.</math>
:Randame funkcijos g(x) ir jos išvestinių reikšmes taške <math>x=0</math>:
:<math>g(0)=\ln \frac{1+0}{1-0}=\ln 1=0,</math>
:<math>g'(0)=\frac{2}{1-0^2}=2,</math>
:<math>g''(0)=\frac{4\cdot 0}{(1-0^2)^2}=0,</math>
:<math>g'''(0)=\frac{4(1+2\cdot 0^2+0^4)}{(1-0^2)^4}=4, </math>
:<math>g^{(4)}(0)=\frac{16\cdot 0(1+0^2)(1-x^2)^4 +32\cdot 0(1+0^2)^2 (1-0^2)^3}{(1-0^2)^8}=0.</math>
:<math>g^{(5)}(0)=\frac{[16(1+0^2)(1-0^2)^4+16\cdot 0\cdot g_1(0) +32(1+0^2)^2 (1-0^2)^3+32\cdot 0\cdot g_2(0)](1-0^2)^8 + 16\cdot 0[16\cdot 0(1+0^2)(1-0^2)^4 +32\cdot 0(1+0^2)^2 (1-0^2)^3] (1-0^2)^7 }{(1-0^2)^{16}}=</math>
:<math>=\frac{[16+32] +0}{1}=48.</math>
:Makloreno eilutės dėstinys su Lagranžo formos liekamuoju nariu bus šitoks:
:<math>\ln \frac{1+x}{1-x}=g(0)+\frac{g'(0)}{1!}x+\frac{g''(0)}{2!}x^2+ \frac{g'''(0)}{3!}x^3+...+ \frac{g^{(n)}(0)}{n!}x^n +\frac{g^{(n+1)}(\theta x)}{(n+1)!} x^{n+1}=</math>
:<math>=0+\frac{2}{1!}x+\frac{0}{2!}x^2+ \frac{4}{3!}x^3+\frac{0}{4!}x^4+\frac{48}{5!}x^5+...+ R_{2n+2}(x)=</math>
:<math>=2x+ \frac{2}{3}x^3+\frac{6\cdot 8}{5\cdot 4\cdot 3\cdot 2}x^5+...+ R_{2n+2}(x)=</math>
:<math>=2x+ \frac{2}{3}x^3+\frac{ 8}{5\cdot 4}x^5+...+ R_{2n+2}(x)=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+...+ \frac{2x^{2n+1}}{2n+1}+R_{2n+2}(x).</math>
:<math>\ln \frac{1+x}{1-x}=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+...+ \frac{2x^{2n+1}}{2n+1}+R_{2n+2}(x), \quad (8.88)</math>
:<math>R_{2n+2}(x)=-\frac{x^{2n+2}}{2n+2}\left[ \frac{1}{(1+\theta x)^{2n+2}} -\frac{1}{(1-\theta x)^{2n+2}}\right]; \quad (8.89)</math>
:skaičius <math>\theta</math> griežtai įterptas tarp nulio ir vieneto.
:[Naudotojas '''Paraboloid''' neįsivaizduoja iš kur ir kaip gauta tokia <math>R_{2n+2}(x)</math> išraiška. Ar ji teisinga, paaiškės apskaičiavus pavyzdį.]
:Skaičiuojant <math>\ln a</math> artinį, naudojama formulė
:<math>\ln a\approx\left(p -\frac{1}{2}\right)\ln 2 + 2\left( x+ \frac{x^3}{3}+\frac{x^5}{5}+...+ \frac{x^{2n+1}}{2n+1}\right), \quad (8.90)</math>
:kuri gaunama iš (8.87) lygybės, funkciją <math>\ln \frac{1+x}{1-x}</math> pakeitus šios funkcijos (8.88) Makloreno formulės dalimi be liekamojo nario <math>R_{2n+2}(x).</math> Pastebėsime, kad skaičius ''x'' apytikslėje <math>\ln a</math> formulėje randamas iš (8.86) formulės, atsižvelgus į (8.84) nelygybes, kurias turi tenkinti skaičius ''M''.
:Įvertinsime (8.90) formulės paklaidą. Kadangi skaičiaus <math>\ln a</math> artinio, apskaičiuoto pagal (8.90) formulę, ir tikslios reikšmės, gaunamos pagal (8.87) formulę, skirtumas lygus liekamajam nariui <math>R_{2n+2}(x),</math> tai, aiškinantis paklaidą, užtenka įvertinti tą liekamąjį narį.
:Iš pradžių išsiaiškinsime ''x'' kitimo ribas. Iš (8.86) formulės gauname
:<math>M=\frac{1}{\sqrt{2}} \, \frac{1+x}{1-x}, \quad (8.86)</math>
:<math>M\sqrt{2}= \frac{1+x}{1-x},</math>
:<math>M\sqrt{2}(1-x)= 1+x,</math>
:<math>M\sqrt{2}-1= x+xM\sqrt{2},</math>
:<math>x=\frac{M\sqrt{2}-1}{M\sqrt{2}+1}. \quad (8.91)</math>
:Jei ''M'' reikšmės tenkina (8.84) nelygybes, tai ''x'' tenkina sąlygą*
:<math>|x|<0.172. \quad (8.92)</math>
:[ <math>h'(M)=\left(\frac{M\sqrt{2}-1}{M\sqrt{2}+1}\right)'=\frac{\sqrt{2}(M\sqrt{2}+1)-(M\sqrt{2}-1)\sqrt{2}}{(M\sqrt{2}+1)^2} =\frac{(2M+\sqrt{2})-(2M-\sqrt{2})}{(M\sqrt{2}+1)^2} =\frac{2\sqrt{2}}{(M\sqrt{2}+1)^2}.</math>
:<math>\frac{2\sqrt{2}}{(M\sqrt{2}+1)^2}=0.</math> Matome, kad nėra tokių ''M'' reikšmių, su kuriom h'(M) būtų lygi nuliui. Todėl funkcija <math>h(M)=\frac{M\sqrt{2}-1}{M\sqrt{2}+1}</math> neturi maksimumo ir minimumo taškų.
:<math>h(1/2)=\frac{\frac{1}{2}\sqrt{2}-1}{\frac{1}{2}\sqrt{2}+1}=\frac{\frac{1}{\sqrt{2}}-1}{\frac{1}{\sqrt{2}}+1}=</math>
:=(0.70710678118654752440084436210485-1)/(0.70710678118654752440084436210485+1) =
:= -0.29289321881345247559915563789515/1.7071067811865475244008443621048 = -0.17157287525380990239662255158061.
:<math>h(1)=\frac{1\cdot \sqrt{2}-1}{1\cdot \sqrt{2}+1}=</math>
:=(1.4142135623730950488016887242097-1)/(1.4142135623730950488016887242097+1)=
:= 0.4142135623730950488016887242097/2.4142135623730950488016887242097 = 0.1715728752538099023966225515806.
:Taigi, matome, kad
:-0.17157287525380990239662255158061 < x < 0.1715728752538099023966225515806. Arba |x| < 0.171572875254.]
:Dabar pastebėsime, kad liekamasis narys <math>R_{2n+2}(x)</math> vienodai įvertinamas tiek tada, kai ''x'' reikšmės teigiamos, tiek tada, kai jos neigiamos (iš (8.89) formulės matyti, kad, ''x'' pakeitus -''x'', liekamojo nario <math>R_{2n+2}(x)</math> struktūra nepasikeičia). Todėl užtenka įvertinti <math>R_{2n+2}(x),</math> kai <math>x>0.</math> Atsižvelgę į tai ir į (8.92) nelygybę, dešiniojoje (8.89) formulės pusėje vietoj ''x'' rašome skaičių 0.172, vietoj trupmenos <math>\frac{1}{1+\theta x} </math> rašome vienetą, o vietoj <math>\frac{1}{1-\theta x} </math> – skaičių <math>\frac{1}{1-0.172} \;</math> ir gauname šitokį įvertį:
:<math>|R_{2n+2}(x)| \leq \frac{(0.172)^{2n+2}}{2n+2} \left[ 1+\frac{1}{(1-0.172)^{2n+2}}\right].</math>
:[Taip, čia laužtiniuose skliaustuose jau pliusas pasidarė. Tai arba (8.89) formulėje klaida arba čia.]
:Daugiklį <math>(0.172)^{2n+2}</math> įkelsime į laužtinius skliaustus. Kadangi <math>\frac{0.172}{1-0.172}< 0.208 \;</math> (0.172/(1-0.172)=0.172/0.828=~0.207729), tai
:<math>|R_{2n+2}(x)| \leq \frac{(0.172)^{2n+2} +(0.208)^{2n+2}}{2n+2}.\quad (8.93)</math>
:Skaičiuojant <math>\ln a</math> elektronine skaičiavimo mašina**, (8.90) formulėje dažniausiai imama <math>n=6.</math> Tuomet skaičiavimo tikslumas, kaip matyti iš (8.93), įvertinamas skaičiumi <math>\frac{(0.172)^{14} +(0.208)^{14}}{14}, \;</math> mažesniu kaip <math>1.625\cdot 10^{-10}.</math>
:[ (0.172^14 + 0.208^14)/14 = 2.1682237054688578614343997699803e-11 <math>\approx 2.1682237\cdot 10^{-11}.</math> ]
:[O jeigu ten turi būti minusas laužtiniuose skliaustuose kaip (8.89) formulėje, tai
:(0.172^14 - 0.208^14)/14 = -1.8848887113203326016424566362697e-11 <math>\approx -1.88488871132\cdot 10^{-11}.</math> Matome, kad nuo to nėra didelio skirtumo.]
________________
:''*'' Kadangi ''x'' yra argumento ''M'' funkcija, tai užtenka rasti maksimalią (8.91) funkcijos modulio reikšmę segmente <math>\left[\frac{1}{2}; \; 1 \right].</math>
:''**'' Taip skaičiuojamas <math>\ln a</math> elektronine skaičiavimo mašina БЭСМ-6.
===Pavyzdžiai===
*Apskaičiuosime ln(a)=ln(143). Pagal (8.83) formulę
:[<math>a=2^p M. \quad (8.83)</math>]
:<math>143=2^{8} M,</math>
:<math>M=\frac{143}{256}=0.55859375.</math>
:Toliau, pagal (8.87) formulę
:[<math>\ln a=\left(p -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}. \quad (8.87)</math>]
:<math>\ln 143=\left(8 -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}. </math>
:<math>\left(8 -\frac{1}{2}\right)\ln 2=7.5\ln 2=</math> 7.5*0.69314718055994530941723212145818 = 5.1986038541995898206292409109363.
:Tiksli ln(143) reikšmė yra ln(143)=4.9628446302599072801154310195304.
:Iš (8.91) formulės randame ''x'':
:<math>x=\frac{M\sqrt{2}-1}{M\sqrt{2}+1}=\frac{0.55859375\sqrt{2}-1}{0.55859375\sqrt{2}+1}=</math>
:= (0.55859375*1.4142135623730950488016887242097 - 1)/(0.55859375*1.4142135623730950488016887242097+1) =
:= -0.11733662705136264741194733209931.
:Toliau pagal (8.88) formulę apskaičiuosime <math>\ln \frac{1+x}{1-x}, \,</math> kai n=6.
:<math>\ln \frac{1+x}{1-x}=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+...+ \frac{2x^{2n+1}}{2n+1}=</math>
:<math>=2x+ \frac{2x^3}{3}+\frac{ 2x^5}{5}+\frac{ 2x^7}{7}+\frac{ 2x^9}{9}+\frac{ 2x^{11}}{11}+\frac{ 2x^{13}}{13}=2\left(x+ \frac{x^3}{3}+\frac{ x^5}{5}+\frac{ x^7}{7}+\frac{ x^9}{9}+\frac{ x^{11}}{11}+\frac{ x^{13}}{13} \right)=</math>
:= 2*(-0.11733662705136264741194733209931 -0.11733662705136264741194733209931^3/3 -0.11733662705136264741194733209931^5/5
:-0.11733662705136264741194733209931^7/7 -0.11733662705136264741194733209931^9/9 -0.11733662705136264741194733209931^11/11
:-0.11733662705136264741194733209931^13/13) =
:(nukopijavus viską nuo "2" iki ženklo "=" ir įdėjus (padarius "Paste") į ''Windows 10'' kalkuliatorių gaunamas žemiau esantis atsakymas)
:= -0.23575922393968105542703851052716.
:Pridėjus gautą atsakymą prie 7.5*ln(2) reikšmės, gauname ln(a)=ln(143) artinį:
:<math>\ln 143=\left(8 -\frac{1}{2}\right)\ln 2 +\ln \frac{1+x}{1-x}= 7.5\ln 2+\ln \frac{1+x}{1-x}=</math>
:= 5.1986038541995898206292409109363 + (-0.23575922393968105542703851052716) = 4.9628446302599087652022024004091.
:Atėmę gautą ln(143) reikšmę iš tikslios ln(143) reikšmės, gauname
:4.9628446302599072801154310195304 - 4.9628446302599087652022024004091 = -0.0000000000000014850867713808787 = <math>\approx -1.48508677\cdot 10^{-15}.</math>
:<math>\frac{1+x}{1-x}=</math> (1+(-0.11733662705136264741194733209931))/(1-(-0.11733662705136264741194733209931)) =
:= (1-0.11733662705136264741194733209931)/(1+0.11733662705136264741194733209931) = 0.78997085710684606241656831078901.
:Tiksli ln(0.78997085710684606241656831078901) reikšmė yra tokia:
:ln(0.78997085710684606241656831078901) = -0.23575922393968254051380989140588.
:<math>\ln \frac{1+x}{1-x}\,</math> (su x=-0.11733662705136264741194733209931) paklaida yra tokia:
:-0.23575922393968254051380989140588 - (-0.23575922393968105542703851052716) =
:= -0.23575922393968254051380989140588 + 0.23575922393968105542703851052716 = -0.00000000000000148508677138087872 = <math>\approx -1.48508677\cdot 10^{-15}.</math>
:Pagal (8.89) formulę
:<math>R_{2n+2}(x)=-\frac{x^{2n+2}}{2n+2}\left[ \frac{1}{(1+\theta x)^{2n+2}} -\frac{1}{(1-\theta x)^{2n+2}}\right]. \quad (8.89)</math>
:<math>|R_{2n+2}(x)|<\frac{(-0.117336627)^{2n+2}}{2n+2}\left[ \frac{1}{(1+(-0.117336627))^{2n+2}} -1\right]= \frac{(-0.117336627)^{2\cdot 6+2}}{2\cdot 6+2}\left[ \frac{1}{(1-0.117336627)^{2\cdot 6+2}} -1\right]=</math>
:<math>= \frac{(-0.117336627)^{14}}{14}\left[ \frac{1}{(1-0.117336627)^{14}} -1\right]=</math>
:= (-0.11733662705136264741194733209931)^14 * (1/(1-0.11733662705136264741194733209931)^14 -1)/14 =
:= 3.1744477658835444278622203928479e-14 <math>\approx 3.1744477658835444\cdot 10^{-14}.</math>
:Matome, kad paklaida įvertinta teisingai, nes
:<math>1.48508677\cdot 10^{-15} < 3.1744477658835444\cdot 10^{-14}.</math>
:Pastebėsime, kad
:<math>\frac{(-0.117336627)^{14}}{14} =</math> 6.6979571136742061476086008278822e-15 <math>\approx 6.6979571136742\cdot 10^{-15}</math>;
:<math>\frac{(-0.117336627)^{15}}{15} =</math> -0.11733662705136264741194733209931^15/15 = -7.3352131612966428681484668924553e-16.
:Todėl (8.88) formulėje liekamąjį narį tikriausiai galima įvertinti taip:
:<math>|R_{2n+2}(x)|< |\frac{x^{2n+2}}{2n+2}|\approx 6.6979571136742\cdot 10^{-15}.</math>
:Arba garantuotai visais atvejais R(x) turėtų būti teisingas, kai
:<math>|R(x)|< |\frac{x^{2n+1}}{2n+1}|.</math>
:Nes <math>\frac{(-0.117336627)^{13}}{13} =</math> -0.11733662705136264741194733209931^13/13 = -6.1474279304103020252424035678064e-14.
==2. Skaičiaus arctg(x) radimas.==
:Skaičiuojant <math>\operatorname{arctg}\alpha,</math> užtenka nagrinėti teigiamas argumento reikšmes, nes, kai <math>|\alpha|=x,</math> gauname
:<math>\operatorname{arctg}\alpha=\sgn\alpha \cdot \operatorname{arctg} x.</math>
:Aprašysime standartines transformacijas, kuriomis <math> \operatorname{arctg} x</math> skaičiavimas, kai argumento ''x'' reikšmės ne mažesnės kaip <math>\frac{1}{8},</math> pakeičiamas arktangento skaičiavimu, kai argumento reikšmės mažesnės už <math>\frac{1}{8}.</math>
:Iš pradžių tarkime, kad <math>x\geq 1.</math> Sakykime, <math>y=\operatorname{arctg} x, \;</math> t. y. <math>x=\operatorname{tg} y, \;</math> o <math>x_1=\operatorname{tg}(y-\operatorname{arctg} 1).</math> Iš paskutinės lygybės gauname
:[pasinaudodami formule (iš https://lt.wikibooks.org/wiki/Matematika/Trigonometrinės_formulės) <math> \tan(\alpha-\beta)=\frac{\tan\alpha -\tan\beta }{1 + \tan\alpha \tan\beta} . \quad (7)</math>]
:<math>x_1=\operatorname{tg}(y-\operatorname{arctg} 1)=\frac{\operatorname{tg} y -\operatorname{tg}(\operatorname{arctg} 1)}{1+\operatorname{tg} y \cdot \operatorname{tg}(\operatorname{arctg} 1)}=\frac{\operatorname{tg} y - 1}{1+\operatorname{tg} y \cdot 1}=\frac{\operatorname{tg} y - 1}{\operatorname{tg} y + 1}=\frac{x - 1}{x + 1}<1.</math>
:Kadangi
:<math>\operatorname{arctg} x_1=\operatorname{arctg}[\operatorname{tg}(y-\operatorname{arctg} 1)]=y-\operatorname{arctg} 1=\operatorname{arctg} x -\operatorname{arctg} 1,</math>
:<math>\operatorname{arctg} x=\operatorname{arctg} 1 +\operatorname{arctg} x_1=\frac{\pi}{4} +\operatorname{arctg} x_1,</math>
:tai, norint apskaičiuoti <math>\operatorname{arctg} x,</math> kai <math>x\geq 1,</math> pakanka apskaičiuoti <math>\operatorname{arctg} x_1,</math> kai <math>0<x_1<1.</math>
:Dabar aptarsime atvejį, kai argumentas tenkina nelygybes <math>\frac{1}{8} \leq x<1.</math>
:Sakykime, <math>k_1=1, \;\; k_2=\frac{1}{2}, \;\; k_3=\frac{1}{4}, \;\; k_4=\frac{1}{8}.</math> Savaime aišku, su kokia nors <math>i=1, \; 2, \; 3, \; 4 \;</math> reikšme yra teisingos nelygybės
:<math>k_i\leq x<2k_i. \quad (8.94)</math>
:[Kai ''x'' daugiau už 1, tai ''x'' gali būti daugiau už <math>2k_i.</math> Tiksliau, kai ''x''>2, tai <math>x>2k_1=2.</math>]
:Tarkime, kad <math>y=\operatorname{arctg} x, \;</math> t. y. <math>x=\operatorname{tg} y, \;</math> o <math>x_i=\operatorname{tg}(y-\operatorname{arctg} k_i).</math> Iš paskutinės lygybės gauname
:[pasinaudodami formule <math> \tan(\alpha-\beta)=\frac{\tan\alpha -\tan\beta }{1 + \tan\alpha \tan\beta} </math>]
:<math>x_i=\operatorname{tg}(y-\operatorname{arctg} k_i)=\frac{\operatorname{tg} y -\operatorname{tg}(\operatorname{arctg} k_i)}{1+\operatorname{tg} y \cdot \operatorname{tg}(\operatorname{arctg} k_i)}=\frac{\operatorname{tg} y - k_i}{1+\operatorname{tg} y \cdot k_i}=\frac{x - k_i}{1+k_i x}.</math>
:Kadangi <math>x>0,</math> tai <math>1+k_i x>1.</math> Be to, iš dešiniosios (8.94) nelygybės išplaukia <math>x-k_i < 2k_i- k_1=k_i.</math> Todėl iš paskutinės <math>x_i</math> išraiškos gauname nelygybę <math>x_i<k_i.</math> Kadangi
:<math>\operatorname{arctg} x_i=\operatorname{arctg}[\operatorname{tg}(y-\operatorname{arctg} k_i)]=y-\operatorname{arctg} k_i=\operatorname{arctg} x -\operatorname{arctg} k_i,</math>
:<math>\operatorname{arctg} x=\operatorname{arctg} k_i +\operatorname{arctg} x_i,</math>
:tai <math>\operatorname{arctg} x</math> skaičiavimas, kai ''x'' tenkina (8.94) nelygybes, pakeičiamas <math>\operatorname{arctg} x_i</math> skaičiavimu, kai <math>0< x_i < k_i.</math>
:Jei aprašytąsias argumento ''x'' transformacijas pakartosime daugių daugiausia keturis kartus, tai <math>\operatorname{arctg} x</math> skaičiavimą, kai ''x'' reikšmės priklauso pusintervaliui <math>\frac{1}{8} \leq x<1,</math> pakeisime arktangento skaičiavimu, kai argumento reikšmės mažesnės už <math>\frac{1}{8}.</math>
:[Ten klaidelė. Maksimum keturių transformacijų reikia, kai ''x'' reikšmės priklauso pusintervaliui <math>\frac{1}{8} \leq x,</math> o kai ''x'' reikšmės priklauso pusintervaliui <math>\frac{1}{8} \leq x<1,</math> tai tada daugių daugiausia gali prireikti 3 transformacijos.]
:Skaičiuojant <math>\operatorname{arctg} x,</math> kai <math>x< \frac{1}{8},</math> naudojama Makloreno formulė (kuri išvedama čia: https://lt.wikibooks.org/wiki/Matematika/Matematinės_eilutės)
:<math>\operatorname{arctg} x= x-\frac{x^3}{3}+\frac{x^5}{5}-\frac{x^7}{7}+...+(-1)^n \frac{x^{2n+1}}{2n+1} +R_{2n+2}(x).</math>
:Dažniausiai šioje formulėje imama <math>n=6</math> ir atmetamas liekamasis narys (taip, pavyzdžiui, daroma skaičiuojant elektronine mašina БЭСМ-6). Logaritmo ir arktangento skaičiavimo programa yra bendra. Naudojant tą programą arktangentui skaičiuoti, reikia, kad gretimi nariai <math>\frac{x^{2n+1}}{2n+1}</math> būtų priešingų ženklų.
==Pavyzdžiai==
*Apskaičiuosime <math>\operatorname{arctg} 5.</math> Čia <math>x=5.</math> Tada
:<math>x_i=\frac{x - k_i}{1+k_i x}.</math>
:Pradėsime nuo to, kad <math>k_1=1.</math> Tada
:<math>x_1=\frac{x - k_1}{1+k_1 x}=\frac{x - 1}{1+ x}=\frac{5 - 1}{1+ 5}=\frac{4}{6}=\frac{2}{3}.</math>
:Toliau
:<math>\operatorname{arctg} x=\operatorname{arctg} k_i +\operatorname{arctg} x_i=\operatorname{arctg} k_1 +\operatorname{arctg} x_1=\operatorname{arctg} 1 +\operatorname{arctg} \frac{2}{3}=\frac{\pi}{4} +\operatorname{arctg} \frac{2}{3}.</math>
:Toliau imsime <math>k_2=\frac{1}{2}.</math> Tada
:<math>x_2=\frac{x_1 - k_2}{1+k_2 x_1}=\frac{x_1 - \frac{1}{2}}{1+\frac{1}{2} x_1}=\frac{\frac{2}{3} - \frac{1}{2}}{1+\frac{1}{2} \cdot \frac{2}{3}}=\frac{\frac{4-3}{6} }{1+ \frac{1}{3}}=\frac{\frac{1}{6} }{\frac{3+1}{3}}=\frac{\frac{1}{6} }{\frac{4}{3}}=\frac{1}{6} \cdot\frac{3}{4}=\frac{1}{8}.</math>
:Toliau
:<math>\operatorname{arctg} \frac{2}{3}=\operatorname{arctg} x_1=\operatorname{arctg} k_2 +\operatorname{arctg} x_2=\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{1}{8}.</math>
:Toliau imsime <math>k_4=\frac{1}{8}.</math> Tada
:<math>x_4=\frac{x_2 - k_4}{1+k_4 x_2}=\frac{x_2 - \frac{1}{8}}{1+\frac{1}{8} x_2}=\frac{\frac{1}{8} - \frac{1}{8}}{1+\frac{1}{8} \cdot \frac{1}{8}}=\frac{0 }{1+ \frac{1}{64}}=\frac{0 }{\frac{64+1}{64}}=\frac{0 }{\frac{65}{64}}=0.</math>
:Ir gauname
:<math>\operatorname{arctg} \frac{1}{8}=\operatorname{arctg} x_2=\operatorname{arctg} k_4 +\operatorname{arctg} x_4=\operatorname{arctg} \frac{1}{8} +\operatorname{arctg} 0=\operatorname{arctg} \frac{1}{8} +0=\operatorname{arctg} \frac{1}{8}.</math>
:Tokiu budu
:<math>\operatorname{arctg} 5=\operatorname{arctg} x=\frac{\pi}{4} +\operatorname{arctg} \frac{2}{3}=\frac{\pi}{4} +\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{1}{8}.</math>
:<math>\frac{\pi}{4}=</math> 0.78539816339744830961566084581988;
:<math>\operatorname{arctg} \frac{1}{2}=</math> 0.46364760900080611621425623146121;
:<math>\operatorname{arctg} \frac{1}{8}=</math> 0.12435499454676143503135484916387.
:Šiame pavyzdyje skaičiuoti Makloreno eilutės nereikia su ''x'' reikšme mažesne už 1/8, nes <math>x_4=0.</math>
:Taigi,
:arctg(5) = 0.78539816339744830961566084581988 + 0.46364760900080611621425623146121 + 0.12435499454676143503135484916387 =
:= 1.373400766945015860861271926445.
:Tiksli arctg(5) reikšmė iš kalkuliatoriaus yra tokia:
:arctg(5) = 1.373400766945015860861271926445.
:Gavome tą patį atsakymą.
*Apskaičiuosime <math>\operatorname{arctg} 7.</math> Čia <math>x=7.</math>
:Pradėsime nuo to, kad <math>k_1=1.</math> Tada
:<math>x_1=\frac{x - k_1}{1+k_1 x}=\frac{x - 1}{1+ x}=\frac{7 - 1}{1+ 7}=\frac{6}{8}=\frac{3}{4}.</math>
:Toliau
:<math>\operatorname{arctg} x=\operatorname{arctg} k_1 +\operatorname{arctg} x_1=\operatorname{arctg} 1 +\operatorname{arctg} \frac{3}{4}=\frac{\pi}{4} +\operatorname{arctg} \frac{3}{4}.</math>
:Toliau imsime <math>k_2=\frac{1}{2}.</math> Tada
:<math>x_2=\frac{x_1 - k_2}{1+k_2 x_1}=\frac{x_1 - \frac{1}{2}}{1+\frac{1}{2} x_1}=\frac{\frac{3}{4} - \frac{1}{2}}{1+\frac{1}{2} \cdot \frac{3}{4}}=\frac{\frac{3-2}{4} }{1+ \frac{3}{8}}=\frac{\frac{1}{4} }{\frac{8+3}{8}}=\frac{\frac{1}{4} }{ \frac{11}{8}}=\frac{1}{4} \cdot\frac{8}{11}=\frac{2}{11}=0.(18).</math>
:Tuo tarpu <math>k_3=\frac{1}{4}=0.25</math> yra daugiau už 0.(18). Todėl skaičiavimus su <math>k_3=\frac{1}{4}</math> praleisime ir iškart skaičiuosime toliau su <math>k_4=\frac{1}{8}=0.125</math> (nes 0.125 yra mažiau nei 2/11=0.(18)). Taigi,
:<math>x_4=\frac{x_2 - k_4}{1+k_4 x_2}=\frac{x_2 - \frac{1}{8}}{1+\frac{1}{8} x_2}=\frac{\frac{2}{11} - \frac{1}{8}}{1+\frac{1}{8} \cdot \frac{2}{11}}=\frac{\frac{16-11}{88} }{1+ \frac{2}{88}}=\frac{\frac{5}{88} }{\frac{88+2}{88}}=\frac{\frac{5}{88} }{\frac{90}{88}}=\frac{5}{88}\cdot \frac{88}{90}=\frac{5}{90}=\frac{1}{18}=0.0(5).</math>
:[1/18 = 0.05555555555555555555555555555556.]
:Toliau galime skaičiuoti pagal Makloreno formulę,
:<math>\operatorname{arctg} x= x-\frac{x^3}{3}+\frac{x^5}{5}-\frac{x^7}{7}+...+(-1)^n \frac{x^{2n+1}}{2n+1} +R_{2n+2}(x),</math>
:imdami n=6 ir vietoje ''x'' įrašę <math>x_4.</math> Tada gauname:
:<math>\operatorname{arctg} \frac{1}{18}=\operatorname{arctg} x_4= x_4-\frac{x_4^3}{3}+\frac{x_4^5}{5}-\frac{x_4^7}{7}+\frac{x_4^9}{9}-\frac{x_4^{11}}{11}+ \frac{x_4^{13}}{13} =</math>
:= 1/18 - 1/18^3/3 + 1/18^5/5 - 1/18^7/7 + 1/18^9/9 - 1/18^11/11 + 1/18^13/13 = 0.05549850524571683556705277298107.
:(Kad gauti tokį atsakymą greitai, tereikia aukščiau esančią eilutę nukopijuoti ir įdėti į ''Windows 10'' kalkuliaorių, padarius "Paste").
:Atėmę gautą arctg(1/18) reikšmę iš tikslios arctg(1/18) reikšmės, gauname paklaidą:
:0.05549850524571683555719814809224 - 0.05549850524571683556705277298107 = -0.00000000000000000000985462488883 = <math>= -9.85462488883\cdot 10^{-21}.</math>
:Kaip ir su natūrinio logaritmo skaičiavimu, liekamąjį narį galima įvertinti taip:
:<math>|R_{2n+2}(x_4)|< |\frac{x_4^{2n+2}}{2n+2}|=</math> 1/18^14/14 = 1.9057103509769875767803163358316e-19 <math>\approx 1.90571035\cdot 10^{-19}.</math>
:Tada
:<math>\operatorname{arctg} \frac{3}{4}=\operatorname{arctg} x_1=\operatorname{arctg} k_2 +\operatorname{arctg} x_2=\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{2}{11};</math>
:<math>\operatorname{arctg} \frac{2}{11}=\operatorname{arctg} x_2=\operatorname{arctg} k_4 +\operatorname{arctg} x_4=\operatorname{arctg} \frac{1}{8} +\operatorname{arctg} \frac{1}{18}.</math>
:Todėl
:<math>\operatorname{arctg} 7=\operatorname{arctg} x=\frac{\pi}{4} +\operatorname{arctg} \frac{3}{4}=\frac{\pi}{4} +\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{2}{11}=</math>
:<math>=\frac{\pi}{4} +\operatorname{arctg} \frac{1}{2} +\operatorname{arctg} \frac{1}{8} +\operatorname{arctg} \frac{1}{18}= </math>
:= 0.78539816339744830961566084581988 + 0.46364760900080611621425623146121 +0.12435499454676143503135484916387 + 0.05549850524571683556705277298107 = 1.428899272190732696428324699426.
:Atėmę ką tik gautą arctg(7) reikšmę iš kalkuliatoriaus tikslios arctg(7) reikšmės, gauname paklaidą:
:1.4288992721907326964184700745372 - 1.428899272190732696428324699426 = -9.8546248888316409091970590727231e-21 =
:= -0.0000000000000000000098546248888 <math>\approx -9.8546248888\cdot 10^{-21}.</math>
:Pastabos. Čia visos arkatangento reikšmės skaičiuojamos radianais. Kad kalkuliatorius skaičiuotų radianais, reikia paspausti mygtuką, kuris keičia tarp laipsnių, radianų ir gradianų (iš "DEG", "RAD" ir "GRAD" reikia išrinkti, kad rodytų "RAD"). O tam, kad kalkuliatorius apskaičiuotų arktangento reikšmę, reikia iš pradžių įrašyti skaičių į kalkuliatorių ir paskui ''Windows 10'' kalkuliatoriuje (kuris turi būti nustatytas [vienu paspaudimu] per patį kalkuliatorių, kad būtų "Scientific") paspausti "Trigonometry", vėliau paspausti <math>2^{nd}</math> ir tada paspausti <math>\tan^{-1}</math>. Tada ir bus gauta arktangento reikšmė radianais, jei buvo pasirinkta "RAD".
:<math>\operatorname{arctg} 1 = </math> 0.78539816339744830961566084581988.
:<math>\operatorname{arctg} 0.5 = </math> 0.46364760900080611621425623146121.
:<math>\operatorname{arctg} 0.25 =</math> 0.24497866312686415417208248121128.
:<math>\operatorname{arctg} 0.125 =</math> 0.12435499454676143503135484916387.
*<math>\operatorname{arctg} 0.9.</math>
:<math>\operatorname{arctg} a = \operatorname{arctg} 0.9 - \operatorname{arctg} 0.5.</math>
:<math>\tan(\alpha-\beta) = \tan\frac{\tan\alpha - \tan\beta}{1+\tan\alpha \tan\beta}. </math>
:<math>a = \operatorname{tg}\left( \operatorname{arctg} 0.9 - \operatorname{arctg} 0.5 \right) =</math>
:<math>=\tan\frac{\tan(\operatorname{arctg} 0.9) - \tan(\operatorname{arctg} 0.5)}{1+\tan(\operatorname{arctg} 0.9) \tan(\operatorname{arctg} 0.5)}= \tan\frac{0.9 - 0.5}{1+ 0.9\cdot 0.5}= \tan\frac{0.4}{1+ 0.45}=\tan\frac{0.4}{1.45}=</math>
:= 0.27586206896551724137931034482759.
:<math>\operatorname{arctg} (0.27586206896551724137931034482759)=</math>
:= 0.27586206896551724137931034482759 - 0.27586206896551724137931034482759^3/3 + 0.27586206896551724137931034482759^5/5 - 0.27586206896551724137931034482759^7/7 + 0.27586206896551724137931034482759^9/9 - 0.27586206896551724137931034482759^11/11 + 0.27586206896551724137931034482759^13/13 =
:= '''0.26916749'''304043554450715959336444.
:<math>\operatorname{arctg} (0.27586206896551724137931034482759)=</math>
:= '''0.26916749'''278570047542653584127307.
:<math>\operatorname{arctg} (0.27586206896551724137931034482759) + \operatorname{arctg} 0.5 =</math>
:= 0.26916749304043554450715959336444 + 0.46364760900080611621425623146121 =
:= '''0.73281510'''204124166072141582482565.
:<math>\operatorname{arctg} 0.9 =</math>
:= '''0.73281510'''178650659164079207273428.
:<math>\operatorname{arctg} b = \operatorname{arctg} a - \operatorname{arctg} 0.25 =</math>
:<math>b = \operatorname{tg}\left( \operatorname{arctg} (0.278299659434360506011219170928) - \operatorname{arctg} 0.25 \right) =</math>
:<math>= \tan\frac{0.26916749304043554450715959336444 - 0.25}{1+ 0.26916749304043554450715959336444\cdot 0.25}=</math>
:<math>\tan\frac{0.01916749304043554450715959336444}{1 + 0.06729187326010888612678989834111} = \tan\frac{0.01916749304043554450715959336444}{1.06729187326010888612678989834111}=</math>
:= 0.019167493040435544507159593364/1.067291873260108886126789898341 = 0.0179589983964623044012469281158.
:<math>\operatorname{arctg} (0.0179589983964623044012469281158)=</math>
:= 0.0179589983964623044012469281158 - 0.0179589983964623044012469281158^3/3 + 0.0179589983964623044012469281158^5/5 - 0.0179589983964623044012469281158^7/7 + 0.0179589983964623044012469281158^9/9 - 0.0179589983964623044012469281158^11/11 + 0.0179589983964623044012469281158^13/13 - 0.0179589983964623044012469281158^15/15 =
:= '''0.017957068024287386522471323702'''2.
:<math>\operatorname{arctg} (0.0179589983964623044012469281158)=</math>
:= '''0.017957068024287386522471323702'''33.
:<math>\operatorname{arctg} 0.9 = \operatorname{arctg} 0.5 + \operatorname{arctg} a = </math>
:<math>\operatorname{arctg} 0.9 = \operatorname{arctg} 0.5 + \operatorname{arctg} 0.25 + \operatorname{arctg} b = </math>
:= 0.46364760900080611621425623146121 + 0.24497866312686415417208248121128 + 0.0179570680242873865224713237022 =
:= '''0.7'''2658334015195765690881003637469.
:<math>\operatorname{arctg} 0.9 =</math>
:= '''0.7'''3281510178650659164079207273428.
:a = 0.27586206896551724137931034482759.
:<math>\operatorname{arctg} a=</math>
:= 0.26916749304043554450715959336444.
:<math>\operatorname{arctg} a = \operatorname{arctg} 0.25 + \operatorname{arctg} b =</math>
:= 0.24497866312686415417208248121128 + 0.0179570680242873865224713237022 =
:= '''0.26'''293573115115154069455380491348.
:Kalkuliatoriaus:
:arctg(0.27586206896551724137931034482759) =
:= '''0.26'''916749278570047542653584127307.
*<math>\operatorname{arctg} 1.6.</math>
:<math>\operatorname{arctg} a = \operatorname{arctg} 1.6 - \operatorname{arctg} 1.</math>
:<math>\tan(\alpha-\beta) = \tan\frac{\tan\alpha - \tan\beta}{1+\tan\alpha \tan\beta}. </math>
:<math>a = \operatorname{tg}\left( \operatorname{arctg} 1.6 - \operatorname{arctg} 1 \right) =</math>
:<math>=\tan\frac{\tan(\operatorname{arctg} 1.6) - \tan(\operatorname{arctg} 1)}{1+\tan(\operatorname{arctg} 1.6) \tan(\operatorname{arctg} 1)}= \tan\frac{1.6 - 1}{1+ 1.6\cdot 1}= \tan\frac{0.6}{2.6}=</math>
:= 0.23076923076923076923076923076923.
:<math>\operatorname{arctg} (0.23076923076923076923076923076923)=</math>
:= 0.23076923076923076923076923076923 - 0.23076923076923076923076923076923^3/3 + 0.23076923076923076923076923076923^5/5 - 0.23076923076923076923076923076923^7/7 + 0.23076923076923076923076923076923^9/9 - 0.23076923076923076923076923076923^11/11 + 0.23076923076923076923076923076923^13/13 - 0.23076923076923076923076923076923^15/15 =
:= '''0.226798848053'''04763076023291256713.
:<math>\operatorname{arctg} (0.23076923076923076923076923076923)=</math>
:= '''0.226798848053'''88587364415262941821.
:<math>\operatorname{arctg} 1.6 = \operatorname{arctg} 1 + \operatorname{arctg} a =</math>
:= 0.78539816339744830961566084581988 + 0.22679884805304763076023291256713 =
:= '''1.01219701145'''0495940375893758387.
:Kalkuliatoriaus:
:arctg(1.6) =
:= '''1.01219701145'''13341832598134752381.
:<math>\operatorname{arctg} b = \operatorname{arctg} a - \operatorname{arctg} 0.125.</math>
:<math>\operatorname{arctg} b = \operatorname{arctg} 0.23076923076923076923076923076923 - \operatorname{arctg} 0.125.</math>
:<math>\tan(\alpha-\beta) = \tan\frac{\tan\alpha - \tan\beta}{1+\tan\alpha \tan\beta}. </math>
:<math>b = \operatorname{tg}\left( \operatorname{arctg} 0.23076923076923076923076923076923 - \operatorname{arctg} 0.125 \right) =</math>
:<math>=\tan\frac{\tan(\operatorname{arctg} 0.23076923076923076923076923076923) - \tan(\operatorname{arctg} 0.125)}{1+\tan(\operatorname{arctg} 0.23076923076923076923076923076923) \tan(\operatorname{arctg} 0.125)}=</math>
:<math>= \tan\frac{0.23076923076923076923076923076923 - 0.125}{1+ 0.23076923076923076923076923076923\cdot 0.125}= \tan\frac{0.10576923076923076923076923076923}{1+0.02884615384615384615384615384615}=</math>
:0.105769230769230769230769230769/1.028846153846153846153846153846 =
:= 0.10280373831775700934579439252316.
:<math>\operatorname{arctg} (0.10280373831775700934579439252316)=</math>
:= 0.10280373831775700934579439252316 - 0.10280373831775700934579439252316^3/3 + 0.10280373831775700934579439252316^5/5 - 0.10280373831775700934579439252316^7/7 + 0.10280373831775700934579439252316^9/9 - 0.10280373831775700934579439252316^11/11 + 0.10280373831775700934579439252316^13/13 - 0.10280373831775700934579439252316^15/15 =
:= '''0.10244385350712443'''768036939404847.
:Kalkuliatoriaus:
:<math>\operatorname{arctg} (0.10280373831775700934579439252316)=</math>
:= '''0.10244385350712443'''861279778025414.
:<math>\operatorname{arctg} 1.6 = \operatorname{arctg} 1 + \operatorname{arctg} a = </math>
:<math>\operatorname{arctg} 1.6 = \operatorname{arctg} 1 + \operatorname{arctg} 0.125 + \operatorname{arctg} b = </math>
:= 0.78539816339744830961566084581988 + 0.12435499454676143503135484916387 + 0.10244385350712443768036939404847 =
:= '''1.01219701145133418'''23273850890322.
:Kalukuliatoriaus:
:<math>\operatorname{arctg} 1.6 =</math>
:= '''1.01219701145133418'''32598134752381.
:'''Free Pacal''' kodas, skaičiuoti arctg(a):
var a:real; b:real; c:real; d:real; g:real; f:real;
begin
//for a:=2 to 1000000000 do
begin
a:=7.0;
b:=(a-1.0)/(a+1.0);
c:=(b-0.5)/(1.0+b*0.5);
d:=(c-0.25)/(1.0+c*0.25);
g:=(d-0.125)/(1.0+0.125*d);
f:=g - g*g*(g/3 + g*g* (g/5-g*g* (g/7 + g*g* (g/9 -g*g*g/11))))+1.61837943007188001503;
// arctan(1)=pi/4 = 0.78539816339744830961566
// arctan(1/2) = 0.46364760900080611621425
// arctan(1/4) = 0.244978663126864154172
// arctan(1/8) = 0.12435499454676143503135
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
//f:=f+1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:Resultatas 1.4290003193181138E+000.
:Skaičiuojama iki (a^11)/11.
:Kalkuliatoriaus arctan(7) reikšmė yra 1.4288992721907326964184700745372.
:Šituo budu apskaičiuota kalkuliatoriumi arctan(7) reikšmė iki (x_4^11)/11 yra 1.4288992722261246066538981860865.
:Su kalkuliatoriumi skaičiuojant viską gaunama 10 pirmų teisingų skaitmenų. '''Free Pascal''' kodas duoda tik 3 pirmus teisingus skaitmenis. Looks like Pascal (or FPU) can't comprehend too complex code.
:Kodas skaičiuoja teisingai, nepaisant ar kuri nors iš reikšmių c, d, g gausis neigiama ar teigiama (jei kuri nors gaunasi neigiama, tai tiesiog dažniausiai (arba visada) prarandama kažkiek tikslumo).
:a=7.0;
:b=(a-1.0)/(a+1.0) = 6/8 = 0.75.
:c=(b-0.5)/(1.0+b*0.5) = (0.75-0.5)/(1.0+0.75*0.5) = 0.18181818181818181818181818181818.
:d=(c-0.25)/(1.0+c*0.25)=
:= (0.18181818181818181818181-0.25)/(1.0+0.18181818181818181818181*0.25)= -0.06521739130434782608696447542533.
:g=(d-0.125)/(1.0+0.125*d) =
:= (-0.06521739130434782608696-0.125)/(1.0-0.06521739130434782608696*0.125) = -0.19178082191780821917808578269844.
:Šis '''Free Pascal''' kodas:
var a:real; b:real; f:real; d:longint; h:real;
begin
//for a:=2 to 1000000000 do
begin
a:=7.0;
begin
b:=a;
h:=2.0;
for d:=1 to 4 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
end;
f:=b - b*b*(b/3.0 + b*b* (b/5.0-b*b* (b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:Duoda tą patį rezultatą 1.4290003193181138E+000.
:Reikšmė b kode apskaičiuota teisingai ir yra lygi -1.9178082191780821E-001 arba
:a:=7.0;
:b:=(a-1.0)/(a+1.0) = 6/8 = 0.75.
:c:=(b-0.5)/(1.0+b*0.5) = (0.75-0.5)/(1.0+0.75*0.5) = 0.18181818181818181818181818181818.
:d:=(c-0.25)/(1.0+c*0.25)=
:= (0.18181818181818181818181-0.25)/(1.0+0.18181818181818181818181*0.25)= -0.06521739130434782608696447542533.
:g:=(d-0.125)/(1.0+0.125*d) =
:= (-0.06521739130434782608696-0.125)/(1.0-0.06521739130434782608696*0.125) = -0.19178082191780821917808578269844.
:Reikšmė lygiai tokia pati kaip ir preitame kode reikšmė g.
:Tikslumo praradimai panašu prasideda skaičiuojant reikšmę f. Skaičiavimas su kalkuliatoriumi:
-0.19178082191780821917808219178082 - (-0.19178082191780821917808219178082)^3/3 +(-0.19178082191780821917808219178082)^5/5 - (-0.19178082191780821917808219178082)^7/7 +(-0.19178082191780821917808219178082)^9/9 - (-0.19178082191780821917808219178082)^11/11 = -0.18948015784575540837945622156966.
-0.18948015784575540837945622156966 + 1.6183794300718800150333544076562 =1.4288992722261246066538981860865.
:Čia 10 pirmų skaitmenų teisingi.
:Toks '''Free Pascal''' kodas:
var a:real; b:real; f:real; d:longint; h:real;
begin
//for a:=2 to 1000000000 do
begin
a:=7.0;
begin
b:=a;
h:=2.0;
for d:=1 to 2 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
end;
f:=b - b*b*(b/3.0 + b*b* (b/5.0-b*b* (b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.2490457723982544258;
//pi/4+arctan(1/2) = 1.2490457723982544258
end;
writeln(f);
Readln;
End.
:duoda atsakymą:
:1.4288216709361827E+000. Tiksli arctg(7) reikšmė yra:
:1.4288992721907326964184700745372.
:Pirmi penki skaitmenys teisingi. Čia d yra dviejų iteracijų vietoje keturių iteracijų. Dėl to kažkaip arktangento eilutė tiksliau/geriau paskaičiuojama.
===Arktangento Benchmark===
:Toks arktangentų reikšmių (nuo 2 iki 1 milijardo) skaičiavimo kodas:
var a:longint; b:real; c:real; d:real; g:real; f:real;
begin
for a:=1 to 1000000000 do
begin
b:=(1.0*a-1.0)/(1.0*a+1.0);
c:=(b-0.5)/(1.0+b*0.5);
d:=(c-0.25)/(1.0+c*0.25);
g:=(d-0.125)/(1.0+0.125*d);
f:=f+g - g*g*(g/3 + g*g* (g/5-g*g* (g/7 + g*g* (g/9 -g*g*g/11))))+1.61837943007188001503;
end;
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
// f:=f+1.61837943007188001503;
writeln(f);
Readln;
End.
:duoda 1.5707964092145209E+009. Labai didelės a reikšmės duoda <math>\arctan a \approx\pi/2</math>. Pirmą kartą skaičiuojama 1 minutę ir 9 sekundes. Antrą ir trečią kartą - 1 minutę ir 7 sekundes. Su 4.16 GHz procesorium.
:<math>\pi/2 =</math> 1.5707963267948966192313216916398.
:Truputi labiau optimizuotas '''Free Pascal''' kodas:
var a:longint; b:real; c:real; d:real; g:real; f:real;
begin
for a:=2 to 1000000000 do
begin
b:=(a-1.0)/(a+1.0);
c:=(b-0.5)/(1.0+b*0.5);
d:=(c-0.25)/(1.0+c*0.25);
g:=(d-0.125)/(1.0+0.125*d);
f:=f+g - g*g*(g/3 + g*g* (g/5-g*g* (g/7 + g*g* (g/9 -g*g*g/11))))+1.61837943007188001503;
end;
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
// f:=f+1.61837943007188001503;
writeln(f);
Readln;
End.
:duoda atsakymą 1.5707964082113807E+009. Pirmą kartą po minutės ir 7 sekundžių (67 sekundžių). Antrą kartą po minutės ir 4 sekundžių (64 sekundžių). Su 4.16 GHz CPU.
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; f:real; d:longint; h:real;
begin
for a:=2 to 1000000000 do
begin
b:=a;
h:=2;
for d:=1 to 2 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
f:=f+b - b*b*(b/3.0 + b*b* (b/5.0-b*b* (b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.2490457723982544258;
//pi/4+arctan(1/2) = 1.2490457723982544258
end;
writeln(f);
Readln;
End.
:duoda atsakymą 1.5692808286515808E+009. Pirmą kartą po minutės ir 45 sekundžių (105 sekundžių). Antrą kartą po minutės ir 27 sekundžių (87 sekundžių). Su 4.16 GHz procesorium.
:Toks kodas:
var a:longint; b:real; f:real; d:longint; h:real;
begin
for a:=2 to 1000000000 do
begin
b:=a;
h:=2;
for d:=1 to 4 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
f:=f+b - b*b*(b/3.0 + b*b* (b/5.0-b*b*(b/7.0 + b*b* (b/9.0 -b*b*b/11.0))))+1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:duoda 1.5707964082113807E+009. Pirmą kartą po 2 minučių ir 24 sekundžių (144 sekundžių). Antrą kartą po 2 minučių ir 2 sekundžių (122 sekundžių). Su 4.16 GHz CPU.
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; c:real; d:real; e:real; f:real; g:real;
begin
for a:=2 to 1000000000 do
//a:=7;
begin
b:=(a-1)/(a+1);
c:=(b-0.5)/(1+0.5*b);
d:=(c-0.25)/(1+0.25*c);
e:=(d-0.125)/(1+0.125*d);
f:=e*(1.0-e*e*(0.3333333333333333333333+e*e*(0.2-e*e*(0.1428571428571428571428+
e*e*(0.11111111111111111111111-e*e*0.0909090909090909090909)))));
// arctan(1)=pi/4 = 0.78539816339744830961566
// arctan(1/2) = 0.46364760900080611621425
// arctan(1/4) = 0.244978663126864154172
// arctan(1/8) = 0.12435499454676143503135
// pi/4+arctan(1/2)+arctan(1/4)+arctan(1/8) = 1.6183794300718800150333544076562
g:=g+f+1.61837943007188001503;
end;
writeln(g);
Readln;
End.
:duoda atsakymą 1.5707964082133019E+009. Pirmą kartą po 55 sekundžių. Antrą kartą po 54 sekundžių. Su 4,16 GHz procesorium. Išeina arktangento eilutės konstantos arba apskaičiuojamos prieš paleidžiant kodą arba dalyba iš mažų sveikųjų skaičių yra greitesnė nei iš didelių sveikųjų skaičių ir tuo labiau 64 bitų realių skaičių. Nes skaičiavimo laikas tik 10 sekundžių trumpesnis (64 s VS 54 s).
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; f:real; d:longint; h:real;
begin
for a:=2 to 1000000000 do
begin
b:=a;
h:=2;
for d:=1 to 4 do
begin
h:=h*0.5;
b:=(b-h)/(1.0+b*h);
end;
f:=f+b*(1.0-b*b*(0.3333333333333333333333+b*b*(0.2-b*b*(0.1428571428571428571428+
b*b*(0.11111111111111111111111-b*b*0.0909090909090909090909))))) +1.61837943007188001503;
end;
writeln(f);
Readln;
End.
:duoda atsakymą 1.5707964082133019E+009. Pirmą kartą po 2 minučių ir 6 sekundžių (126 sekundžių). Antrą kartą po minutės ir 46 sekundžių (106 sekundžių). Su 4.16 GHz CPU. Kode 1 milijardas (-1) pagrindinių iteracijų ir kiekvienoje jų 4 vidinės iteracijos.
:Toks '''Free Pascal''' kodas:
var a:longint; b:real; c:real; d:real; e:real; f:real; g:real;
begin
for a:=2 to 1000000000 do
begin
b:=(a-1)/(a+1);
c:=(b-0.5)/(1+0.5*b);
d:=(c-0.25)/(1+0.25*c);
e:=(d-0.125)/(1+0.125*d);
f:=e*(1.0-e*e*(1/3+e*e*(1/5-e*e*(1/7+e*e*(1/9-e*e/11)))));
g:=g+f+1.61837943007188001503;
end;
writeln(g);
Readln;
End.
:duoda atsakymą 1.5707964082133019E+009. Pirmą kartą po 1 minutės ir 1 sekundės. Antrą kartą po 58 sekundžių. Su 4.16 GHz CPU. Panašiau, kad Free Pascal iš pradžių apskaičiuoja konstantas, kurias paskui naudoja. Šitoje arktangento eilutėje mažiau operacijų nei, kur skaičiuota 64 sekundes per antrą kartą. Nes eilutė protingiau parašyta ir gavosi trumpesnė (11 daugybų vietoje 15 daugybų, jei pvz. 1/3 skaičiuoti kaip konstantą 0.333333333333333). Bet vis tiek 4 sekundėm ilgiau skaičiuota. Gal dalyba iš 11 buvo tikra. Arba visos dalybos iš mažų skaičiui labai greitai atliekamos su CPU.
:Toks kodas:
var a:longint; b:real; c:real; d:real; e:real; f:real; g:real;
begin
for a:=2 to 1000000000 do
begin
b:=(a-1)/(a+1);
c:=(b-0.5)/(1+0.5*b);
d:=(c-0.25)/(1+0.25*c);
e:=(d-0.125)/(1+0.125*d);
f:=e*(1.0-e*e*(1/3.001065006421+e*e*(1/5.0000879004912-e*e*(1/7.00001448879+e*e*(1/9.0049464789-e*e/11.0008987041519494)))));
g:=g+f+1.61837943007188001503;
end;
writeln(g);
Readln;
End.
:duoda atsakymą 1.5707964052086353E+009. Pirmą kartą po 60 sekundžių. Antrą kartą po 59 sekundžių. Su 4.16 GHz CPU. Jeigu arktangento eilutės konstantos kode neapskaičiuojamos iš anksto, tai išeitų, kad 5 papildomos dalybos padaromos per 5 sekundes arba per mazdaug 5*4.16 = 20.8 ciklo. Vienai 64 bitų dalybai tada tenka apie 4 ciklai. Tiek pat kaip ir daugybai. Kai sudeties, atimties ir daugybos bei dalybos operacijos sudedamos į vieną eilutę su skliaustais kaip yra čia, tai visi skaičiavimai vyksta daug greičiau, nei jeigu priskirti kiekvienam skaičiui raidę ir atlikinėti veiksmus iš eilės (panašiai kaip yra kodo pradžioje nuo b iki e atliekant atimties, sudeties, daugybos ir dalybos veiksmus). Nes be visa ko raidė priskirta skaičiui, saugo dar ir to skaičiaus adresą arba ofset'ą į to skaičiaus RAM adresą. Kas ten žino ant kiek efektyviai sudaromas tas kodas. Gal jump instrukcijos yra į tuos skaičius (kad įkraut juos po vieną) ir paskui atgal, o kai viskas skliaustuose sudėta, tada visos operacijos vykdomos iš eilės kaip su pirmaisiais procesoriais (intel 8080, Z80).
b3sp8vx70jpxea3z13fvhd2im4m41dv