Table of Contents
Fetching ...

RationalFunctionApproximation.jl: Rational Approximation On Discrete and Continuous Domains

Tobin A. Driscoll

TL;DR

RationalFunctionApproximation.jl provides fast, high-precision rational approximation in Julia via AAA, greedy Thiele, and prescribed-poles methods. It leverages barycentric and Thiele representations, with continuum-domain adaptivity enabled by ComplexRegions to resolve nearby singularities. The package unifies core data types (DiscretizedPath, Arnoldi constructs, and abstract interpolants) and supports arbitrary-precision arithmetic, enabling compact, accurate representations on intervals, circles, and other complex domains. The work demonstrates robust performance and highlights ongoing research directions, including stability analyses and arithmetic operations on rational functions.

Abstract

Unlike polynomials, rational functions can represent functions having poles or branch cuts with root-exponential convergence and no Runge phenomenon. Recent developments of the AAA and greedy Thiele algorithms have sparked renewed interest in computational rational approximation. The \textsf{RationalFunctionApproximation} package supplies the fastest known implementations of these methods and the only arbitrary-precision ones. Combined with the \textsf{ComplexRegions} package, it can produce compact and accurate representations of a huge variety of functions over intervals, circles, or other domains in the complex plane.

RationalFunctionApproximation.jl: Rational Approximation On Discrete and Continuous Domains

TL;DR

RationalFunctionApproximation.jl provides fast, high-precision rational approximation in Julia via AAA, greedy Thiele, and prescribed-poles methods. It leverages barycentric and Thiele representations, with continuum-domain adaptivity enabled by ComplexRegions to resolve nearby singularities. The package unifies core data types (DiscretizedPath, Arnoldi constructs, and abstract interpolants) and supports arbitrary-precision arithmetic, enabling compact, accurate representations on intervals, circles, and other complex domains. The work demonstrates robust performance and highlights ongoing research directions, including stability analyses and arithmetic operations on rational functions.

Abstract

Unlike polynomials, rational functions can represent functions having poles or branch cuts with root-exponential convergence and no Runge phenomenon. Recent developments of the AAA and greedy Thiele algorithms have sparked renewed interest in computational rational approximation. The \textsf{RationalFunctionApproximation} package supplies the fastest known implementations of these methods and the only arbitrary-precision ones. Combined with the \textsf{ComplexRegions} package, it can produce compact and accurate representations of a huge variety of functions over intervals, circles, or other domains in the complex plane.

Paper Structure

This paper contains 16 sections, 7 equations, 8 figures, 2 tables.

Figures (8)

  • Figure 1: Pole plot of the AAA rational interpolant of $f(z) = \log(1 + i + 5iz)$ on the unit interval. The poles cluster near the branch point at $(i-1)/5$.
  • Figure 2: Top: In the discrete AAA iteration, accuracy close to a singularity will suffer if the nodes have insufficient resolution. Bottom: Continuum AAA adaptively chooses nodes and test points in order to resolve the singularity.
  • Figure 3: Convergence of continuum AAA to the function $|x|$ over $[-1,1]$. Top: Red dots indicate an interpolant having a pole in the interval, while blue dots indicate no disallowed poles. The gold halo shows the interpolant returned as the result, chosen when the iteration stagnated. Bottom: Using extended precision, the iteration continues successfully (without pole checking); the square-root scale on the degree axis illustrates root-exponential convergence.
  • Figure 4: Positive nodes selected by continuum AAA for the function $|x|$ over $[-1,1]$. They cluster near the singularity at $x=0$.
  • Figure 5: Convergence of continuum Thiele to the function $|x|$ over $[-1,1]$. The smallest errors are similar to those in \ref{['fig:absconverge']} for AAA, but the convergence is far less smooth.
  • ...and 3 more figures