What function smoothly interpolates between the identity and exponential (or log and identity) functions? - MathOverflow [closed] most recent 30 from http://mathoverflow.net 2013-06-20T01:13:53Z http://mathoverflow.net/feeds/question/66150 http://www.creativecommons.org/licenses/by-nc/2.5/rdf http://mathoverflow.net/questions/66150/what-function-smoothly-interpolates-between-the-identity-and-exponential-or-log What function smoothly interpolates between the identity and exponential (or log and identity) functions? DoubleJay 2011-05-27T02:58:39Z 2011-05-27T06:22:22Z <p>Or rather, what function can be parametrized with some value t in [0,1] such that f(x, t= 0) = x, f(x, t = 1) = e^x, and f(x, 0 &lt; t &lt; 1) is a principled interpolation between those two, kind of like the gamma function is a principled interpolation for the discrete factorial.</p> <p>Obviously, many functions fit the bill, like f(x,t) = x^(1 + t*(x/ln(x)-1) ), but that seems kind of arbitrary.</p> <p>What mathematically useful/elegant function exists?</p> http://mathoverflow.net/questions/66150/what-function-smoothly-interpolates-between-the-identity-and-exponential-or-log/66156#66156 Answer by Aaron Meyerowitz for What function smoothly interpolates between the identity and exponential (or log and identity) functions? Aaron Meyerowitz 2011-05-27T06:14:59Z 2011-05-27T06:22:10Z <p>Igor's answer is probably better but I'll observe that we want to interpolate between <code>$e^{\ln{x}}$</code> at <code>$t=0$</code> and <code>$e^x$</code> at <code>$t=1.$</code> Furthermore $\int x^{-1}dx=\ln(x)+C$ and $\int x^0 dx=x+C.$ </p> <p>Rearranging a bit, since <code>$\displaystyle \lim_{t \rightarrow 0^{+}}\frac{x^t-1}{t}=\ln{x},$</code> I am tempted by $$e^{\frac{x^t-1}{t}}=\sqrt[t]{e^{x^t-1}}.$$ That does not quite work at $t=1$ since it becomes $e^{x-1}.$ However it is also true that $\ \displaystyle \lim_{t \rightarrow 0^{+}}\frac{(x+t)^t-1}{t}=\ln{x}$ and that works at both ends as do $\frac{x^t-1+t^2}{t}\$ and $\frac{x^t-1+t^{2-t}}{t}.$ </p> http://mathoverflow.net/questions/66150/what-function-smoothly-interpolates-between-the-identity-and-exponential-or-log/66158#66158 Answer by Gottfried Helms for What function smoothly interpolates between the identity and exponential (or log and identity) functions? Gottfried Helms 2011-05-27T06:22:22Z 2011-05-27T06:22:22Z <p>A not-so-arbitrary solution is the following, which is in fact a polynomial approximation whose maximal possible order depends on the resources of your favorite software and computer-memory. </p> <p>The idea is to use a matrixoperator/"Carleman-matrix" <strong>B</strong> for the generation of a powerseries (in fact a truncated one, so only a polynomial) for the exponential-function and then by the zero'th power <strong>B^0</strong> have the coefficients of the ID-function $f(x)=x$ , by the first power get the coefficients for $f(x)=exp(x)$, by the second power the coefficients of $f(x)=exp(exp(x))$ and so on. One may speak of iteration and iteration-height h here, where h is in the exponent of the matrix: <strong>B^h</strong> and in the iteration-parameter $f(x,h)=exp^{[h]}(x)$ . $h=0$ gives then the id-function, $h=1$ the exponential function. </p> <p>Fractional powers of <strong>B</strong> for fractional iteration can then be approximated by fractional powers of <strong>B</strong>. Such fractional powers can be computed by matrix-diagonalization:<br> $\qquad \qquad B = W*D*W^{-1}$ and $\qquad \qquad B^h = W*D^h*W^{-1}$ where th diagonal-matrix <strong>D</strong> can raised to any power since we need only the h'th power of the scalar diagonal-entries. </p> <p>So if you define the matrix <strong>B</strong> by $B = \operatorname{matrix}_{(r=0 ... n-1),(c=0...n-1)}( c^r/r!)$ for some finite dimension <em>n</em>, say 16 or 32, then you get order 16 or -32 polynomials in two variables: $f_n(x,h)\approx \exp^{[h]}(x)$. </p> <p>An implementation in Pari/GP is simple; however the required float precision is huge already for small <em>n</em>. Using <em>n=16</em> I get away with float-precision of 200 decimal digits, for <em>n=32</em> I need already 1200 or 1600 digits, <em>n=64</em> (which is usually my default order for such problems) was unreachable so far: </p> <pre><code>n=16 B = matrix(n,n,r,c,(c-1)^(r-1)/(r-1)!) W = mateigen(B) WI = W^-1 D = diag( WI * B * W ) \\ diag extracts the diagonal into a column-vector bpow(h) = W * matdiagonal (vector(n,r,D[r]^h)) * WI f(x,h) = Bh = bpow(h); return( sum(r=1,n, x^(r-1)*Bh[r,2]) ) </code></pre> <p>Clearly, this code can/should be optimized. With <em>n=32</em> you get quite reasonable approximations for some range for, say \$-0.5