1
$\begingroup$

Is there are nice upper approximation of $\mathrm{atanh(x)}$? For example, $\ln(x)$ is nicely approximated by $x-1$ for $x$ around $1$.

$\endgroup$
3
  • 2
    $\begingroup$ Well, $\operatorname{atanh}(x)=\frac12\ln(\frac{1+x}{1-x})$, so any upper bound on $\ln$ gives you an upper bound on $\operatorname{atanh}$. $\endgroup$
    – user856
    Sep 2, 2014 at 22:02
  • 1
    $\begingroup$ $\ln x$ is not "nicely approximated" by $x-1$ for "small $x$." It is nicely approximated by $x-1$ for $x$ close to $1$... $\endgroup$ Sep 2, 2014 at 22:07
  • $\begingroup$ Ok. I will add the correction. $\endgroup$
    – Boby
    Sep 2, 2014 at 22:10

3 Answers 3

1
$\begingroup$

$$Atanh(x) = \sum_{k=0}^{\infty} \frac{x^{1+2 k}}{1+2 k}, |x|<1$$ And $$Atanh(x) = -\frac{\pi \sqrt{-x^2}}{2 x}+\sum_{k=0}^{\infty} \frac {x^{-1-2 k}}{1+2 k}, |x|>1$$

You can approximate it by using $$\sum_{k=0}^n$$ and decide what $n$ gives the level of approximation you need.

$\endgroup$
2
  • $\begingroup$ But this would give a lower approximation, right? I need an upper. $\endgroup$
    – Boby
    Sep 3, 2014 at 1:13
  • $\begingroup$ For very small $x$, $f(x)=x$ approximates it just fine. $\endgroup$
    – UserX
    Sep 3, 2014 at 11:58
0
$\begingroup$

As @Rahul said in the comment above we can write inverse hyperbolic functions as logarithms. With this approach we get for all $\left| x \right| < 1$: $$\operatorname{artanh}(x) = \frac{1}{2}\ln \left( \frac{1 + x}{1 - x} \right).$$

No we can use logarithmic inequalities. We have that for all $x>0$: $$1-\frac{1}{x} \leq \ln x \leq x-1.$$

Use of this we can get bounds for $\operatorname{artanh}$ for all $0<x<1$: $$\frac{1}{2}\left(1-\frac{1-x}{1+x}\right) \leq \operatorname{artanh}(x) \leq \frac{1}{2}\left(\frac{1+x}{1-x}-1\right).$$

You can have more accurate bounds with Padé approximant. For example you can get an upper bound with second order Padé approximant like this. We know that for all $x>0$:

$$\ln x \leq \frac{(x-1)(x+5)}{2+4x}.$$

Using this we get for $\operatorname{atanh}$ function for all $0<x<1$ the following.

$$\operatorname{artanh}(x) \leq \frac{x(2x-3)}{(x+3)(x-1)} = \psi_2(x).$$

I give you result using this method.

$ \begin{align} \operatorname{artanh}(0.1) = 0.1003353477 & \leq 0.1003584228 = \psi_2(0.1), \\ \operatorname{artanh}(0.3) = 0.3095196042 & \leq 0.3116883116 = \psi_2(0.3), \\ \operatorname{artanh}(0.5) = 0.5493061443 & \leq 0.5714285715 = \psi_2(0.5), \\ \operatorname{artanh}(0.7) = 0.8673005277 & \leq 1.009009010\phantom{0} = \psi_2(0.7), \\ \operatorname{artanh}(0.9) = 1.472219490\phantom{0} & \leq 2.769230769\phantom{0} = \psi_2(0.9). \end{align} $

With this approach you can get also lower bounds and of course for more precise bounds you can use higher order Padé approximants. In this really good paper you find hiher order Padé approximants for $\ln$, from them you can construct bounds for $\operatorname{artanh}$.

I have written more details about Padé approximants and approximation of the logarithm function in this answer. Feel free to read it.

$\endgroup$
0
$\begingroup$

$\displaystyle \mathrm{atanh}(x) = \mathrm{asinh}(\sqrt{y})\qquad\text{, where } x ≥ 0\;,\;y=\frac{x^2}{1-x^2}$

If y is big, we can reduce it, with "half-angle" formula

$\displaystyle \mathrm{asinh}(\sqrt{y}) = 2\;\mathrm{asinh} \left(\sqrt{\frac{y/2}{\sqrt{y+1}+1}} \right) $

asinh has taylor series of alternating signs, we can easily get both bounds.

$\displaystyle \mathrm{asinh}(\sqrt{y}) = \sqrt{y}\;\left[ 1 - \left(\frac{1^2·y}{2·3}\right) \left[ 1 - \left(\frac{3^2·y}{4·5} \right)\left[ 1 - \left(\frac{5^2·y}{6·7}\right) \left[\,...\, \right] \right]\right]\right]$

To make bounds even tighter, we flip "last" factor, $\displaystyle (1-ε) → \frac{1}{(1+ε)}$
Example, for upper bound of $\;\large \mathrm{atanh}(0.9)$

lua> x = 0.9
lua> y = x*x / (1-x*x)          --> 4.263, y too big
lua> y = y/2 / (sqrt(y+1)+1)    --> 0.647
lua> y = y/2 / (sqrt(y+1)+1)    --> 0.142
lua> y = y/2 / (sqrt(y+1)+1)    --> 0.034
lua> y = y/2 / (sqrt(y+1)+1)    --> 0.0085
lua> r = sqrt(y) * 2^4

lua> r
1.4742977995430115
lua> r * (1 - y/6 / (1 + 9/20*y))
1.4722194992970188
lua> r * (1 - y/6 * (1 - 9/20*y * (1 - 25/42*y / (1 + 49/72*y))))
1.472219489583329
lua> atanh(x)
1.4722194895832204
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.