Skip to main content

PolyRat: Polynomial and Rational Function Library

PyPI version CI Coverage Status Documentation Status

PolyRat is a library for polynomial and rational approximation. Formally we can think of polynomials as a sum of powers of :

A rational function is a ratio of two polynomial functions

The goal of this library is to construct polynomial and rational approximations given a collection of point data consisting of pairs of inputs and outputs that minimizes (for example)

The ultimate goal of this library is to provide algorithms to construct these approximations in a variety of norms with a variety of constraints on the approximants.

The polynomial approximation problem is relatively straightfoward as it is a convex problem for any p-norm with p≥1. However, there is still a need to be careful in the construction of the polynomial basis for high-degree polynomials to avoid ill-conditioning. Here we provide access to a number of polynomial bases:

The rational approximation problem is still an open research problem. This library provides a variety of algorithms for constructing rational approximations including:

Installation

> pip install --upgrade polyrat

Documentation

Full documentation is hosted on Read the Docs.

Usage

Using PolyRat follows the general pattern of scikit-learn. For example, to construct a rational approximation of the tangent function

import numpy as np
import polyrat

x = np.linspace(-1,1, 1000).reshape(-1,1)  # Input data 🚨 must be 2-dimensional
y = np.tan(2*np.pi*x.flatten())            # Output data

num_degree, denom_degree = 10, 10          # numerator and denominator degrees 
rat = polyrat.StabilizedSKRationalApproximation(num_degree, denom_degree)
rat.fit(x, y)

After constructing this approximation, we can then evaluate the resulting approximation by calling the class-instance

y_approx = rat(x)		# Evaluate the rational approximation on X

Comparing this to training data, we note that this degree-(10,10) approximation is highly accurate

A rational approximation of the tangent function

Reproducibility

This repository contains the code to reproduce the figures in the associated papers

Metadata

Release files for polyrat 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for polyrat 0.2.2
File Size Uploaded
polyrat-0.2.2.tar.gz 32.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for polyrat 0.2.2
File Interpreter ABI Platform
polyrat-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 83.2 kB

Release files / polyrat-0.2.2.tar.gz

Download URL polyrat-0.2.2.tar.gz
Size 32.4 kB
Tags Source
SHA-256 checksum
How to use checksums
db8844edede4524c59089757bb8fcc9d313e87dad38a19ed87cfb252dc073eec
BLAKE2b-256 checksum
How to use checksums
6f4252b44a501d6e8b06b3c454a0904c097752e5db84a953991b4ce118a3d22f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

Release files / polyrat-0.2.2-py3-none-any.whl

Download URL polyrat-0.2.2-py3-none-any.whl
Size 50.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7993e21d7ef62e2f5292e03245e2064a1484131257726e72b169a9444bc32793
BLAKE2b-256 checksum
How to use checksums
1c1043584e29529684dde0b28ea7a25ebf04ecd3e355f0fac2906cad4ecaa22d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page