Back to library index.
Package rcheby (in rcheby.i) -
Index of documented functions or symbols:
DOCUMENT rfit = rcheby_build(nfit, dfit)
or rfit = rcheby_build(nfit)
or rfit = rcheby_build(,dfit)
build fit suitable for input to rcheby_fit from separate numerator
and denominator fits in the format returned by cheby_fit.
You can use rcheby_build in conjunction with cheby_conv to build
an rfit given the polynomial coefficients for the numerator and
denominator: rcheby_build(cheby_conv(n), cheby_conv(d)).
SEE ALSO: rcheby_fit, rcheby_eval, rcheby_num, rcheby_den, cheby_conv
DOCUMENT fit = rcheby_den(rfit) extract denominator from rcheby_fit RFIT to a Chebyshev fit suitable for input to cheby_eval (not rcheby_eval).
SEE ALSO: cheby_fit, rcheby_fit, rcheby_num, rcheby_build
DOCUMENT y = cheby_eval(fit, x)
evaluates a rational Chebyshev FIT at points X. The FIT is a 1D
array of Chebyshev coefficients, as returned by rcheby_fit, namely:
[m,k, a,b, 2*n0,n1,...nM,d1,...,dK]
where ni are the coefficients of the Chebyshev polynomials in the
numerator and di are the coefficients for the denominator (d0=1.0
is implicit).
SEE ALSO: rcheby_fit, cheby_fit, rcheby_build, rcheby_conv
DOCUMENT fit = rcheby_fit(f, interval, m, k)
or fit = rcheby_fit(f, x, m, k)
returns a rational Chebyshev fit (for use in rcheby_eval) of
numerator degree M and denominator degree K, to the function
F on the INTERVAL (a 2 element array [a,b]). In the second form,
F and X are arrays; the function to be fit is the piecewise cubic
function of xp spline(f,x,xp), and the interval of the fit is
[min(x),max(x)]. You can pass an alternate interpolator using
the nterp= keyword; it must have the same calling sequence as
spline or interp.
The return value is the array [m,k, a,b, 2*n0,n1,...nM,d1,...,dK]
where [a,b] is the interval over which the fit applies, the ni are
the coefficients of the Chebyshev polynomials for the numerator
(note that double the zeroth coefficient is stored), while the di
are the denominator coefficients, with a zeroth coefficient of
1.0 assumed.
The fitting algorithm returns very nearly the minimax error
rational fit to F, that is, the rational function which minimizes
the maximum absolute deviation from F for the given degrees. This
function (very nearly) has M+K+1 points of maximum deviation from
F on the interval, which alternate in sign and have equal absolute
value. The algorithm is inspired by the discussion in section 5.13
of Numerical Recipes, which itself is inspired by the well-known
Remez (or Remes) algorithms. Note that it may be used with K=0
to obtain minimax polynomial fits. (Compare with cheby_fit, the
standard Chebyshev polynomial fitting algorithm.)
Problem with this algorithm:
Nothing prevents numerator and denominator from having a factor
in common. This will always happen if the function being fit really
IS a rational function of lower degree in both numerator and
denominator than (m,k); hopefully it is rare in other cases. But
if you really care about a fit, you would be wise to check.
SEE ALSO: rcheby_eval, cheby_fit, rcheby_build, rcheby_conv, rcheby_trunc
DOCUMENT fit = rcheby_num(rfit) extract numerator from rcheby_fit RFIT to a Chebyshev fit suitable for input to cheby_eval (not rcheby_eval).
SEE ALSO: cheby_fit, rcheby_fit, rcheby_den, rcheby_build
DOCUMENT tfit = rcheby_trunc(fit, err) truncate rcheby_fit FIT to relative error ERR by dropping trailing Chebyshev coefficients smaller than ERR. (Note that this destroys the minimax property of rcheby_fit -- use with caution.) If ERR is omitted, it defaults to 1.e-9.
SEE ALSO: rcheby_fit, cheby_trunc
