Abstract

mxpfit is a library implemented in C++ to find optimal approximations of functions by multi-exponential sums with complex-valued parameters. The library provides an interface for evaluating exponents and coefficients from sampling data on a uniform grid using the fast Estimation of Signal Parameters via Rotational Invariance Techniques (ESPRIT) algorithm originally proposed by Potts and Tasche (2015). The parameters can be estimated efficiently from a sampling data even including noise. A modified balanced truncation algorithm to find the multi-exponential sum with a smaller order is also provided. These features are useful for finding optimal exponential sum approximations of analytic functions or large-scale numerically sampled data set. Program summaryProgram Title: mxpfitProgram Files doi:http://dx.doi.org/10.17632/vjygkwpss4.1Licensing provisions: MITProgramming language: C++Nature of problem: Nonlinear curve fitting by multi-exponential function, frequency estimation of signals, and reduction of multi-exponential sumSolution method: The modified fast Estimation of Signal Parameters via Rotational Invariance Techniques (ESPRIT) algorithm originally proposed in [1] is utilized for the parameter estimation of multi-exponential sums from sampled data on a uniform grid. In this method, partial Lanczos bidiagonalization is used to find a low-rank approximation of a Hankel matrix constructed from sampled data. An overdetermined Vandermonde system is solved by the conjugate gradient least square (CGLS) method with preconditioner to obtain the coefficients of the multi-exponential sum. The truncation of the multi-exponential sum is performed by a modified balanced truncation method in [2]. The projection matrix to obtain the truncated system is determined by computing con-eigenvalues of a Gramian matrix, which can be computed efficiently with highly relative accuracy using the algorithm in [3].Additional comments: A C++ compiler supporting the C++11 standard is required to compile programs using the mxpfit library. mxpfit depends on the Eigen (http://eigen.tuxfamily.org/) and FFTW3 (http://www.fftw.org/) libraries. CMake (https://cmake.org/) is used for building example programs.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.