Re: Re: Arctangent approximation
- To: mathgroup at smc.vnet.net
- Subject: [mg107614] Re: [mg107578] Re: [mg107560] Arctangent approximation
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Fri, 19 Feb 2010 03:36:36 -0500 (EST)
- References: <201002171202.HAA21864@smc.vnet.net> <201002181015.FAA28477@smc.vnet.net>
Murray Eisenberg wrote:
> I'll buy the first four terms of the approximation but not the fifth.
> What you seem to have here are the first 10 terms -- the first 5 nonzero
> terms -- of the Taylor expansion of ArcTan[x] around 0.
>
> Mathematica gives the result as:
>
> Series[ArcTan[x], {x, 0, 9}] // Normal
>
> The result is a standard one that is taught in any standard calculus
> course. You obtain it by beginning with the geometric series expansion
>
> (1-x)^(-1) = Sum[x^n, n,0,Infinity]
>
> (valid for Abs[x]<1), substitute there x = -(x^2), integrate the result
> term-by-term (which is legitimate for Abs[x] < 1), and then take the
> first 9 terms of that resulting infinite series.
It's the beginning of a(n) Hermite-like interpolation, as given in the
Medina article. The idea is to find a polynomial of degree 8*m that
agrees with ArcTan[x] at x=0 on derivatives 0 through 4*m, and agrees
with derivatives 1 through 4*m at x=1.
Code for deriving it is as follows.
m = 2;
f[x_] := ArcTan[x]
derivs = Table[D[f[x],{x,j}],{j,0,4*m}];
zeroCoeffs = derivs /. x->0;
oneCoeffs = Rest[derivs] /. x->1;
poly8m = Sum[a[j]*x^j, {j,0,8*m}];
polyDerivs = Table[D[poly8m,{x,j}],{j,0,4*m}];
polyZeroCoeffs = polyDerivs /. x->0;
polyOneCoeffs = Rest[polyDerivs] /. x->1;
In[41]:= InputForm[poly8m /. Solve[
Join[zeroCoeffs-polyZeroCoeffs,oneCoeffs-polyOneCoeffs]==0]]
Out[41]//InputForm=
{x - x^3/3 + x^5/5 - x^7/7 + (5*x^9)/48 + x^10/20 -
(43*x^11)/176 + x^12/4 - (27*x^13)/208 +
x^14/28 - x^15/240}
The article discusses a more efficient way to obtain these, via recurrences.
Daniel Lichtblau
Wolfram Research
> On 2/17/2010 7:02 AM, sidey wrote:
>> A professor (Herbert Medina) came up with this remarkable
>> approximation.
>>
>> Since I don't have Mathematica, could someone run it for
>> numberofdigits=9 and 12 please? (and send me the result?)
>>
>> here is a short result
>> h2(x) = x - x^3/3 + x^5/5 - x^7/7 + 5x^9/48..
>>
>> Thank you.
>>
>> PS reference is: http://myweb.lmu.edu/hmedina/Papers/Arctan.pdf
>>
>> Clear[h, m, a, numberofdigits]
>> numberofdigits=12;
>> m=Floor[-(1/5) Log[4,5*0.1^(numberofdigits+1)]]+1;
>> Do[a[2j]=(-1)^(j+1) Sum[Binomial[4m,2k] (-1)^k, {k,j+1,2m}];
>> a[2j-1]=(-1)^(j+1) Sum[Binomial[4m,2k+1] (-1)^k, {k,j,2m-1}],
>> {j,0,2m-1}];
>> h[m,x_]:=Sum[(-1)^(j+1) / (2j-1) x^(2j-1), {j,1,2m}] +
>> Sum[a[j]/((-1)^(m+1) 4^m (4m+j+1)) x^(4m+j+1), {j,0, 4m-2}];
>> Print["h[",m,",x] given below computes ArcTan[x] with ",
>> numberofdigits," digits of accuracy for x in [0,1]."]
>> Print["h[m,x] = ", h[m,x]]
- References:
- Arctangent approximation
- From: sidey <sidey.p.timmins@census.gov>
- Re: Arctangent approximation
- From: Murray Eisenberg <murray@math.umass.edu>
- Arctangent approximation