0

I'm looking to obtain order-$k$ approximation of $\exp(-z)$ for real-valued $z$. $$R_k(z)\approx \exp(-z)$$

The constraint is that I need the result in partial fraction form, ie:

$$ \begin{equation} R_k(z)=\alpha_0 + \sum_{i=1}^k \frac{\alpha_i}{z-\lambda_i} \label{1} \tag{1} \end{equation} $$

Where $\{\alpha_i\}$ and $\{\lambda_i\}$ are either complex-valued or real-valued. Restricting to real-valued allows doubling $k$ without increasing computational cost.

There's this answer for Chebychev approximation and PadeApproximant, but how do I turn those rational functions into partial fraction form $\ref{1}$?

All of the examples I tried have imaginary roots, so Apart fails to factor some terms.

Appendix B of this paper gives one such set of coefficients, but that's not easy to experiment with in Mathematica.

Here's a naive attempt at order=4 approximation with Taylor series.

enter image description here

Clear[x, t, i];
k = 4;

poly = Normal@Series[Exp[t], {t, 0, k}]; dpoly = Function @@ {{t}, D[poly, t]};

roots = t /. {ToRules@Roots[poly == 0, t]}; alpha[0] = 0; alpha[i_] := dpoly[roots[[i]]]^-1; lambda[i_] := roots[[i]]; nexp[z_] := alpha[0] + Sum[alpha[i]/(z - lambda[i]), {i, 1, k}];

LogPlot @@ {{Exp[-z], nexp[z]}, {z, 1, 10}, PlotLegends -> {"exp[-z]", "approx"}, AxesLabel -> {"z"}, PlotLabel -> StringForm["Order `` approximation", k]} Table[{alpha[i], lambda[i]} // N, {i, 0, k}] // TableForm[#, TableHeadings -> {None, {"alpha", "lambda"}}] &

Yaroslav Bulatov
  • 7,793
  • 1
  • 19
  • 44

0 Answers0