01.06.2013 Views

Practical Rational Interpolation of Exact and Inexact Data Theory ...

Practical Rational Interpolation of Exact and Inexact Data Theory ...

Practical Rational Interpolation of Exact and Inexact Data Theory ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Faculteit Wetenschappen<br />

Departement Wiskunde-Informatica<br />

<strong>Practical</strong> <strong>Rational</strong> <strong>Interpolation</strong><br />

<strong>of</strong> <strong>Exact</strong> <strong>and</strong> <strong>Inexact</strong> <strong>Data</strong><br />

<strong>Theory</strong> <strong>and</strong> Algorithms<br />

Proefschrift voorgelegd tot het behalen van de graad van<br />

Doctor in de Wetenschappen<br />

aan de Universiteit Antwerpen, te verdedigen door<br />

Oliver SALAZAR CELIS<br />

Promotoren<br />

Pr<strong>of</strong>. Dr. Annie Cuyt<br />

Pr<strong>of</strong>. Dr. Brigitte Verdonk Antwerpen, 2008


Contents<br />

Nederl<strong>and</strong>stalige samenvatting v<br />

Acknowledgments ix<br />

I Univariate <strong>Rational</strong> <strong>Interpolation</strong> 1<br />

1 Classical rational interpolation 5<br />

1.1 Problem statement . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

1.2 Unattainability . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />

1.3 Non-normality <strong>and</strong> block structure . . . . . . . . . . . . . . . 7<br />

1.4 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

2 Barycentric representation 15<br />

2.1 Classical rational interpolation . . . . . . . . . . . . . . . . . 15<br />

2.2 Unattainability <strong>and</strong> non-normality . . . . . . . . . . . . . . . 18<br />

2.3 Pole free rational interpolation . . . . . . . . . . . . . . . . . 19<br />

2.4 Numerical stability . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

2.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

3 Interpolating continued fractions 31<br />

3.1 Thiele continued fractions . . . . . . . . . . . . . . . . . . . . 31<br />

3.2 Werner’s algorithm . . . . . . . . . . . . . . . . . . . . . . . . 36<br />

3.3 Unattainability . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />

3.4 Non-normality . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />

3.5 <strong>Practical</strong> aspects <strong>and</strong> numerical stability . . . . . . . . . . . . 43<br />

4 Asymptotic behavior 47<br />

4.1 <strong>Interpolation</strong> at infinity . . . . . . . . . . . . . . . . . . . . . 47<br />

4.2 Unattainability <strong>and</strong> non-normality . . . . . . . . . . . . . . . 48<br />

4.3 Modification <strong>of</strong> Werner’s algorithm . . . . . . . . . . . . . . . 49<br />

4.4 Connection with Thiele continued fractions . . . . . . . . . . 52<br />

4.5 Illustrations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />

iii


iv Contents<br />

5 Related algorithms 57<br />

5.1 Staircase G-fractions . . . . . . . . . . . . . . . . . . . . . . . 57<br />

5.2 Parameterizations . . . . . . . . . . . . . . . . . . . . . . . . 60<br />

II Multivariate <strong>Rational</strong> Approximation 69<br />

6 <strong>Rational</strong> interpolation <strong>of</strong> vertical segments 73<br />

6.1 Problem statement . . . . . . . . . . . . . . . . . . . . . . . . 73<br />

6.2 Linearization . . . . . . . . . . . . . . . . . . . . . . . . . . . 75<br />

6.3 Solution <strong>of</strong> the existence <strong>and</strong> representation problem . . . . . 78<br />

6.4 Algorithmic aspects . . . . . . . . . . . . . . . . . . . . . . . 83<br />

6.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />

7 Benchmarks 87<br />

7.1 A univariate problem . . . . . . . . . . . . . . . . . . . . . . . 87<br />

7.2 Bivariate problems . . . . . . . . . . . . . . . . . . . . . . . . 89<br />

7.3 Higher dimensional problems . . . . . . . . . . . . . . . . . . 91<br />

7.4 Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />

8 Case study: multidimensional recursive filters 97<br />

8.1 Multidimensional recursive systems . . . . . . . . . . . . . . . 97<br />

8.2 <strong>Rational</strong> interpolation <strong>of</strong> uncertainty intervals . . . . . . . . . 100<br />

8.3 Design <strong>of</strong> stable IIR filters . . . . . . . . . . . . . . . . . . . . 103<br />

8.4 Guaranteeing stability in the tolerance scheme . . . . . . . . 106<br />

8.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110<br />

9 Conclusions <strong>and</strong> further research 111<br />

9.1 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111<br />

9.1.1 Conclusions <strong>of</strong> Part I . . . . . . . . . . . . . . . . . . . 111<br />

9.1.2 Conclusions <strong>of</strong> Part II . . . . . . . . . . . . . . . . . . 112<br />

9.2 Further research . . . . . . . . . . . . . . . . . . . . . . . . . 113<br />

Appendix A S<strong>of</strong>tware 115<br />

A.1 Univariate rational interpolation . . . . . . . . . . . . . . . . 115<br />

A.2 <strong>Rational</strong> interpolation <strong>of</strong> vertical segments . . . . . . . . . . . 118<br />

A.2.1 Enumerating over N d . . . . . . . . . . . . . . . . . . . 122<br />

Appendix B Filter Coefficients 129<br />

B.1 Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129


Nederl<strong>and</strong>stalige<br />

samenvatting<br />

Het centrale thema van deze thesis is rationale interpolatie van exacte en<br />

inexacte data.<br />

In het eerste deel wordt de numerieke implementatie van univariate rationale<br />

interpolatie met asymptotische informatie beschouwd. Een oneindige<br />

waarde wordt dus zowel in de onafhankelijke variabele als in de functiewaarde<br />

toegestaan. Alhoewel de theoretische aspecten van dit probleem reeds grondig<br />

bestudeerd zijn in de literatuur is er in de huidige wetenschappelijke<br />

rekenomgevingen geen robuuste numerieke implementatie beschikbaar die<br />

ook toelaat om asymptoten (zowel verticaal, schuin als horizontaal) op te<br />

leggen.<br />

In ho<strong>of</strong>dstuk 1 wordt het probleem van rationale interpolatie in één ver<strong>and</strong>erlijke<br />

geïntroduceerd, waarbij ook oneindige functiewaarden worden beschouwd,<br />

maar zonder rekening te houden met het punt op oneindig, dat<br />

in ho<strong>of</strong>dstuk 4 wordt toegevoegd. Dit eerste ho<strong>of</strong>dstuk geeft inzicht in de<br />

mogelijke ontaarde gevallen die kunnen optreden.<br />

De numerieke eigenschappen van algoritmes voor de berekening van interpolerende<br />

rationale functies hangen ondermeer af van de gebruikte voorstelling<br />

voor de rationale functie. In ho<strong>of</strong>dstuk 2 wordt een specifieke voorstelling<br />

bekeken: de barycentrische vorm. De barycentrische vorm bezit<br />

een merkwaardige eigenschap die haar bijzonder aantrekkelijk maakt voor<br />

een numerieke implementatie, namelijk exacte interpolatie zelfs wanneer de<br />

berekeningen onderhevig zijn aan afrondingsfouten. We tonen echter aan dat<br />

de numerieke evaluatie van de barycentrische vorm buiten het interpolatieinterval<br />

zeer onnauwkeurig kan zijn, te wijten aan catastr<strong>of</strong>ale cancellation.<br />

Deze vorm is dus numeriek niet geschikt voor interpolatie op oneindig.<br />

In ho<strong>of</strong>dstuk 3 stappen we daarom over naar een <strong>and</strong>ere representatie,<br />

namelijk interpolerende kettingbreuken. Eerst wordt de constructie van<br />

Thiele kettingbreuken geïntroduceerd, die de basis vormt voor het meer geavanceerde<br />

algoritme van Werner. Bij toepassing van een pivotering strategie<br />

is reeds aangetoond dat dit algoritme achterwaarts stabiel is. Daarom is het<br />

een geschikt algoritme voor een numerieke implementatie. Met deze pivote-<br />

v


vi Nederl<strong>and</strong>stalige samenvatting<br />

ring kunnen ook eenvoudig oneindige functiewaarden (verticale asymptoten<br />

<strong>of</strong> polen) toegelaten worden. In zijn oorspronkelijke vorm wordt een interpolatievoorwaarde<br />

op oneindig echter niet ondersteund. Het algoritme van<br />

Werner construeert een veralgemeende vorm van Thiele kettingbreuken. We<br />

bekijken ook de structuur van deze kettingbreuken van dichterbij.<br />

Vervolgens voegen we in ho<strong>of</strong>dstuk 4 de interpolatievoorwaarde op oneindig<br />

toe. Eerst geven we een voorwaarde die ons in staat stelt om te<br />

detecteren wanneer de interpolatievoorwaarde op oneindig niet vervuld kan<br />

worden als de interpolatiepunten zodanig geordend zijn dat de eindige data<br />

eerst en het punt op oneindig laatst is. Dan tonen we aan hoe voor deze<br />

ordening van de data het algoritme van Werner aangepast kan worden met<br />

de interpolatie voorwaarde op oneindig. Ter illustratie worden ook enkele<br />

voorbeelden gegeven.<br />

In ho<strong>of</strong>dstuk 5 tenslotte, bekijken we nog <strong>and</strong>ere algoritmes die meer<br />

<strong>of</strong> minder gerelateerd zijn aan het algoritme van Werner. De kracht van<br />

deze technieken komt echter meer tot uiting in een symbolische dan in een<br />

numerieke rekenomgeving.<br />

In het tweede deel van deze thesis laten we asymptotische informatie<br />

achterwege, maar wordt de probleemstelling van het eerste deel sterk veralgemeend<br />

door zowel meerdere ver<strong>and</strong>erlijken te beschouwen als ook onzekerheid<br />

in de functiewaarden toe te laten. In praktische applicaties zijn data<br />

uit metingen immers zelden exact. De conventionele manier om een rationale<br />

functie te vinden die data met onzekerheid benadert is door middel van<br />

een rationale kleinste-kwadraten (RLSQ) benadering.<br />

In ho<strong>of</strong>dstuk 6 wordt eerst de probleemstelling geformuleerd, meteen<br />

voor meerdere ver<strong>and</strong>erlijken. We veronderstellen dat de onzekerheid in<br />

de onafhankelijke ver<strong>and</strong>erlijken verwaarloosbaar is en dat voor elke observatie<br />

een onzekerheidsinterval kan gegeven worden dat de (onbekende)<br />

exacte waarde bevat. Om zulke data te benaderen gaan we op zoek naar<br />

rationale functies die al deze intervallen snijden. Vervolgens tonen we aan<br />

dat dit probleem kan geformuleerd worden als een kwadratisch programmeerprobleem<br />

(QP) waarvan de objectieve functie strict convex is. Indien<br />

het QP probleem een oplossing heeft, levert deze oplossing een unieke rationale<br />

functie op die alle onzekerheidsintervallen snijdt en die ook nog enkele<br />

bijkomende eigenschappen heeft. In vergelijking met een RLSQ benadering,<br />

dat inherent een niet-lineair optimalisatieprobleem is met een groot aantal<br />

lokale minima, is de QP formulatie aantrekkelijk.<br />

Om inzicht te krijgen in de mogelijkheden van de techniek zoals beschreven<br />

in ho<strong>of</strong>dstuk 6, wordt deze nieuwe methode in ho<strong>of</strong>dstuk 7 toegepast op ver-


Nederl<strong>and</strong>stalige samenvatting vii<br />

scheidene testproblemen. De verkregen resultaten illustreren de kracht van<br />

de nieuwe techniek en tonen aan dat de methode zeer goed schaalt naar<br />

hogere dimensies.<br />

Tot slot is ho<strong>of</strong>dstuk 8 een practische gevalstudie, waar het ontwerp<br />

van multidimensionale recursieve filters wordt beschouwd. Deze technologie<br />

wordt veelvuldig gebruikt in verscheidene domeinen, zoals beeldverwerking,<br />

video signaalfiltering, tomografie en verschillende rooster-gebaseerde methoden<br />

in wetenschappelijk rekenen. We tonen aan dat de herformulering van<br />

het probleem aan de h<strong>and</strong> van onzekerheidsintervallen veel van de klassieke<br />

nadelen overkomt.<br />

Ho<strong>of</strong>dstuk 9 besluit en indiceert mogelijkheden voor verder onderzoek.


Acknowledgments<br />

“ It is, at the end <strong>of</strong> the day,<br />

the individual moments <strong>of</strong> restlessness,<br />

<strong>of</strong> bleakness, <strong>of</strong> strong persuasions<br />

<strong>and</strong> maddened enthusiasms,<br />

that inform one’s life,<br />

change the nature <strong>and</strong> direction <strong>of</strong> one’s work,<br />

<strong>and</strong> give final meaning <strong>and</strong> color<br />

to one’s loves <strong>and</strong> friendships. ”<br />

I am very grateful to my advisors, Annie Cuyt <strong>and</strong> Brigitte Verdonk<br />

for their ever patient guidance during these four years. Annie’s insightful<br />

comments <strong>and</strong> her never ending source <strong>of</strong> ideas have always contributed in<br />

countless ways. Brigitte helped me tremendously to shape my, at times<br />

overly enthusiastic or unduly pessimistic, ideas. Above all, their kind encouragements<br />

gave me the necessary strength to complete this work.<br />

Special thanks go to Guido Smits (Dow Benelux), Katya Vladislavleva<br />

<strong>and</strong> Joris Van Deun for their interest in <strong>and</strong> useful comments on my work.<br />

I am also very happy to have been surrounded by my dear fellow colleagues<br />

from CANT <strong>and</strong> ECT.<br />

I owe much <strong>of</strong> what I have become to my courageous mother. Besides an<br />

indefinite number <strong>of</strong> virtues, she has learned me by example how optimism<br />

<strong>and</strong> a strong belief <strong>of</strong> hope can make the best out <strong>of</strong> any situation. I am<br />

also very grateful for the continuous support <strong>and</strong> concern over my wellbeing<br />

from my father, Bernadette <strong>and</strong> my dear sister Astrid. In addition, I will<br />

never forget the love <strong>and</strong> friendship <strong>of</strong> the family Van Coillie.<br />

Finally a warm thank you goes to my friends, among who I want to mention<br />

specifically (in lexicographical preference) Benjamin, Caroline, Fons,<br />

Katleen <strong>and</strong> Roel<strong>and</strong> for their friendship <strong>and</strong> support in a world that is<br />

more <strong>of</strong>ten not so rational.<br />

July 2008.<br />

ix


Part I<br />

A <strong>Practical</strong> Algorithm for<br />

Univariate <strong>Rational</strong><br />

<strong>Interpolation</strong> with<br />

Asymptotic Information<br />

1


Introduction<br />

In this first part the numerical implementation <strong>of</strong> univariate rational interpolation<br />

with asymptotic information is considered.<br />

Motivation<br />

The classical problem <strong>of</strong> univariate rational interpolation dates back as far<br />

as Cauchy (1821) <strong>and</strong> Jacobi (1846) <strong>and</strong> has been studied by many authors<br />

[Sta87, AA86, Ant88, Cla78a, Wuy74, Mei70, CW88]. For a more<br />

historical <strong>and</strong> complete survey, see for example [Mei70, BGM96] <strong>and</strong> the references<br />

cited therein. Due to its long history, the many theoretical aspects<br />

<strong>of</strong> the problem itself are well understood [Gut89]. Nevertheless it is striking<br />

to notice that hardly any st<strong>and</strong>ard numerical library or scientific computing<br />

environment <strong>of</strong>fers a robust implementation for rational interpolation. Even<br />

if an implementation is available, it may fail for some degenerate inputs<br />

without warning or requires to be restarted with a different ordering <strong>of</strong> the<br />

points. Also asymptotes, either vertical, horizontal or oblique, which are<br />

one <strong>of</strong> the main reasons to use rational functions are hardly ever supported.<br />

Due to such lack <strong>of</strong> support, users <strong>of</strong>ten rely on an ad hoc implementation,<br />

which is rarely the best choice.<br />

In this first part we focus on the numerical implementation <strong>of</strong> univariate<br />

rational interpolation. Since the theoretical aspects are well-known <strong>and</strong> fully<br />

unraveled in the literature, it is only natural to consider existing techniques<br />

<strong>and</strong> implementations. We have carefully selected some techniques <strong>and</strong> representations<br />

with special attention for their numerical properties. During this<br />

process it has always been the intention to keep the support for asymptotic<br />

information in mind if this was not included yet. The st<strong>and</strong>ard descriptions<br />

<strong>and</strong> most <strong>of</strong> the practical approaches do not discuss asymptotes.<br />

Overview<br />

In Chapter 1, we start by introducing univariate rational interpolation.<br />

Some well-known theoretical results are given, allowing infinite function val-<br />

3


4 Introduction<br />

ues, but excluding the point at infinity, which is added in Chapter 4. Such<br />

a treatment is crucial for underst<strong>and</strong>ing the different aspects <strong>and</strong> possible<br />

degeneracies that are connected with the classical rational interpolation<br />

problem. Except for the straightforward method, no algorithm is given.<br />

In Chapter 2 a specific representation for interpolating rational functions<br />

is considered: the barycentric form. The barycentric form has a remarkable<br />

property which makes it attractive for numerical implementation, namely<br />

exact interpolation even in the presence <strong>of</strong> rounding errors. We review how<br />

classical rational interpolation fits into this representation <strong>and</strong> also present<br />

some other common uses <strong>of</strong> the barycentric formula. Then the numerical<br />

stability <strong>of</strong> the barycentric formula is considered. It turns out that, due to<br />

catastrophic cancellation, the evaluation <strong>of</strong> the barycentric form may give<br />

very inaccurate results when evaluated outside the interpolation interval.<br />

For the incorporation <strong>of</strong> asymptotic behavior (interpolation at infinity), this<br />

is unacceptable.<br />

For that reason we ab<strong>and</strong>on the barycentric form <strong>of</strong> the rational interpolant<br />

<strong>and</strong> turn to another representation in Chapter 3 <strong>and</strong> consider interpolating<br />

continued fractions. First, the construction <strong>of</strong> a Thiele continued<br />

fraction is given. Such a continued fraction is the basis for a more advanced<br />

algorithm due to Werner. Werner’s algorithm constructs a more general<br />

form <strong>of</strong> a Thiele continued fraction <strong>and</strong> also deals with degenerate situations.<br />

It is one <strong>of</strong> the few algorithms for rational interpolation for which a<br />

stability analysis exists. If a special pivoting strategy is incorporated, then<br />

it has even been proven to be backward stable [GM80]. Therefore it is a<br />

suitable algorithm for numerical implementation. With the pivoting strategy,<br />

it also allows for poles (vertical asymptotes) to be prescribed, but in<br />

its st<strong>and</strong>ard form, interpolation at infinity (including horizontal <strong>and</strong> oblique<br />

asymptotes) is not supported.<br />

In Chapter 4 the interpolation condition at infinity is added. First a<br />

condition to detect degeneracy for the point at infinity is given if the points<br />

are ordered such that all finite data come first <strong>and</strong> the point at infinity is<br />

last. For this ordering <strong>of</strong> the data, we show how the algorithm <strong>of</strong> Werner can<br />

be modified to interpolate also at infinity. An illustration <strong>of</strong> the usefulness<br />

<strong>of</strong> interpolation at infinity is given.<br />

In the last Chapter, we review other algorithms for rational interpolation<br />

which are more or less related to Werner’s algorithm. The more practical algorithms<br />

are most useful in a symbolic environment rather than a numerical<br />

one.<br />

The results in this part have been presented partially in [SCLV05, SCV08].


Classical rational<br />

interpolation<br />

1<br />

In this first Chapter we start by introducing some well-known theoretical<br />

results on rational interpolation, excluding the point at infinity, which is<br />

added in Chapter 4, but allowing infinite function values. Such a treatment<br />

is crucial for underst<strong>and</strong>ing the different aspects that are connected with<br />

the rational interpolation problem. We do not treat the problem in the<br />

same generality as in [VBB92, Gut93a, Gut93b], where also derivatives at<br />

interpolation points are taken into account.<br />

1.1 Problem statement<br />

Let Xn = {x0,... ,xn} be a set <strong>of</strong> n + 1 distinct complex numbers <strong>and</strong> f(x)<br />

be a given function. We allow f(x) to be unbounded in some points, such<br />

that poles can be prescribed. Let p(x) <strong>and</strong> q(x) be polynomials <strong>of</strong> degree<br />

at most ℓ <strong>and</strong> m respectively, with n + 1 = ℓ + m + 1 <strong>and</strong> such that the<br />

rational function r(x) = p(x)/q(x) is irreducible. The rational interpolation<br />

problem consists in finding r(x) for which the interpolation conditions<br />

r(xi) = p(xi)<br />

q(xi) = f(xi) = fi i = 0,... ,n (1.1)<br />

are satisfied. Define the following set <strong>of</strong> polynomial couples<br />

R(ℓ,m) = {(p(x),q(x)) |∂p ≤ ℓ <strong>and</strong> ∂q ≤ m}.<br />

A non-trivial polynomial couple (p(x),q(x)) ∈ R(ℓ,m) satisfying the linearized<br />

interpolation conditions<br />

<br />

fiq(xi) − p(xi) = 0 if f(xi) is finite<br />

q(xi) = 0 if f(xi) is ∞<br />

i = 0,... ,n. (1.2)<br />

5


6 1. Classical rational interpolation<br />

always exists. Indeed, when exp<strong>and</strong>ing p(x) <strong>and</strong> q(x) in terms <strong>of</strong> basis<br />

functions, such as the monomials,<br />

p(x) =<br />

ℓ<br />

αkx k , q(x) =<br />

k=0<br />

m<br />

k=0<br />

βkx k<br />

then (1.2) reduces to a homogeneous system <strong>of</strong> linear equations in the unknown<br />

coefficients <strong>of</strong> p(x) <strong>and</strong> q(x). Since this system has one more unknown<br />

than its total number <strong>of</strong> linear equations, the linearized problem (1.2) always<br />

has a non-trivial solution. Moreover, for any two non-trivial solutions<br />

(p1(x),q1(x)) <strong>and</strong> (p2(x),q2(x)) <strong>of</strong> (1.2) in R(ℓ,m), the polynomial<br />

(p1q2 − p2q1)(x) <strong>of</strong> degree at most ℓ + m = n vanishes at n + 1 distinct<br />

points:<br />

[(fq2 − p2)q1 − (fq1 − p1)q2] (xi) = 0 if f(xi) is finite<br />

(p1q2 − p2q1)(xi) = 0 if f(xi) is ∞<br />

<br />

i = 0,... ,n.<br />

Therefore it must vanish identically <strong>and</strong> we have p1(x)q2(x) = p2(x)q1(x).<br />

Hence all solutions <strong>of</strong> (1.2) in R(ℓ,m) are equivalent <strong>and</strong>, up to a normalization,<br />

have the same irreducible form rℓ,m(x), which is called the rational<br />

interpolant <strong>of</strong> order (ℓ,m) for f(x). Let p0(x) <strong>and</strong> q0(x) denote the numerator<br />

<strong>and</strong> denominator <strong>of</strong> rℓ,m(x). For the notation not to become overloaded,<br />

the explicit dependence <strong>of</strong> ℓ <strong>and</strong> m in p0(x) <strong>and</strong> q0(x) is omitted.<br />

1.2 Unattainability<br />

It is well-known that the interpolating polynomial <strong>of</strong> degree at most n,<br />

interpolating n+1 points Xn always exists <strong>and</strong> is unique. The condition ℓ+<br />

m = n is imposed in order to obtain this exact same analogy. It is true that<br />

the linearized rational interpolation problem (1.2) maintains the analogy<br />

to some extent, because it always has a solution <strong>and</strong> delivers the unique<br />

representation rℓ,m(x). However, in contrast with polynomial interpolation,<br />

the rational interpolation problem (1.1) is not always soluble <strong>and</strong> may give<br />

rise to unattainable points. An interpolation point is called unattainable for<br />

a non-trivial solution (p(x),q(x)) ∈ R(ℓ,m) <strong>of</strong> (1.2) if <strong>and</strong> only if<br />

q(xi) = 0 = p(xi)<br />

<strong>and</strong>, after cancellation <strong>of</strong> (x − xi) in p(x)/q(x), in addition<br />

p(xi)<br />

= f(xi).<br />

q(xi)


1.3. Non-normality <strong>and</strong> block structure 7<br />

We say that a solution to the rational interpolation problem (1.1) exists if<br />

<strong>and</strong> only if p0(x) <strong>and</strong> q0(x) themselves satisfy the linearized interpolation<br />

problem (1.2) [Wuy74].<br />

Denote the exact degrees <strong>of</strong> p0(x) <strong>and</strong> q0(x) by ℓ ′ <strong>and</strong> m ′ respectively.<br />

For rℓ,m(x) ≡ 0 let ℓ ′ = −∞, m ′ = 0 <strong>and</strong> for rℓ,m(x) ≡ ∞ let ℓ ′ = 0,<br />

m ′ = −∞. Define the defect <strong>of</strong> rℓ,m(x) by<br />

δ = min{ℓ − ℓ ′ ,m − m ′ }.<br />

If p0(x) <strong>and</strong> q0(x) do not satisfy the conditions (1.2), unique polynomials<br />

p ∗ (x) <strong>and</strong> q ∗ (x) that do satisfy (1.2) exist <strong>and</strong> are given by<br />

p ∗ (x) = p0(x)sℓ,m(x), q ∗ (x) = q0(x)sℓ,m(x), (1.3)<br />

where the deficiency polynomial [Cla78a]<br />

with<br />

sℓ,m(x) =<br />

s<br />

(x − yj),<br />

j=0<br />

{y0,...,ys} = {xk ∈ Xn |p0(xk)/q0(xk) = f(xk)}<br />

is <strong>of</strong> degree s + 1, with 0 ≤ s + 1 ≤ δ. Such a solution is referred to<br />

as the minimum degree solution [SW86, Wuy74, Cla78a, Cla78b], because<br />

the degrees <strong>of</strong> p ∗ (x) <strong>and</strong> q ∗ (x) cannot be lowered simultaneously anymore,<br />

unless a linearized interpolation condition is lost. From the minimal degree<br />

solution the characterization <strong>of</strong> unattainable points is straightforward: xi is<br />

unattainable if <strong>and</strong> only if p ∗ (xi) = 0 = q ∗ (xi).<br />

Example 1.2.1. The following small example illustrates an unsolvable problem.<br />

Let xi = i <strong>and</strong> fi = 2 − (i mod 2) for i = 0,... ,4 <strong>and</strong> take ℓ = m = 2.<br />

Then a solution to the linearized problem (1.2) is p(x) = 2x 2 − 8x + 6 =<br />

2(x − 1)(x − 3) <strong>and</strong> q(x) = x 2 − 4x + 3 = (x − 1)(x − 3) <strong>and</strong> r2,2(x) = 2.<br />

Therefore x1 <strong>and</strong> x3 are unattainable. Here p(x) <strong>and</strong> q(x) correspond to the<br />

minimum degree solution with deficiency polynomial s2,2(x) = (x−1)(x−3).<br />

1.3 Non-normality <strong>and</strong> block structure<br />

While the homogeneous system resulting from (1.2) delivers an explicit solution<br />

to the linearized interpolation problem, it is not considered to be a


8 1. Classical rational interpolation<br />

valuable computational tool for three reasons. First <strong>of</strong> all, the condition<br />

number <strong>of</strong> V<strong>and</strong>ermonde-like matrices grows exponentially with n [GI87],<br />

such that the obtained coefficients <strong>of</strong> p(x) <strong>and</strong> q(x) may be very inaccurate.<br />

Changing to orthogonal basis polynomials is necessary for improving<br />

the conditioning <strong>of</strong> the problem. Second, there is the normalization. Usually,<br />

an a priori normalization is agreed upon for one <strong>of</strong> the coefficients in<br />

the numerator or denominator polynomial. Although an appropriate normalization<br />

can always be found, choosing an inappropriate normalization<br />

for the problem at h<strong>and</strong> may cause the linear system to be inconsistent.<br />

Third, if the homogeneous system is not <strong>of</strong> full rank <strong>and</strong> the nullspace is<br />

therefore multidimensional, finding a representation for the minimal degree<br />

solution from a basis for the nullspace is not obvious. If the obtained couple<br />

(p(x),q(x)) is not the minimum degree solution, then it may happen that<br />

both p(xi) = q(xi) = 0 for some xi ∈ Xn, while after cancellation <strong>of</strong> (x −xi)<br />

nonetheless p(xi)/q(xi) = fi. This complicates the practical detection <strong>of</strong><br />

unattainable points.<br />

Example 1.3.1. As an example, consider the data xi = i+1 <strong>and</strong> fi = 1/xi<br />

for i = 0,... ,4 <strong>and</strong> let ℓ = m = 2. The rational interpolant for these data<br />

is rℓ,m(x) = 1/x. Let us consider a solution <strong>of</strong> (1.2) in classical powerform.<br />

A popular normalization is β0 = 1. With this normalization, the linear<br />

system (1.2) is inconsistent, although the rational interpolation problem has<br />

a solution. Without normalization, the system (1.2) for these data is rank<br />

deficient by one, <strong>and</strong> its kernel (or nullspace) is therefore two dimensional.<br />

All solutions <strong>of</strong> (1.2) are parameterized as follows α2 = 0 = β0, α1 = β2,<br />

α0 = β1. Hence all solutions <strong>of</strong> (1.2) are polynomials <strong>of</strong> the form p(x) =<br />

α0 + α1x <strong>and</strong> q(x) = x(α0 + α1x). If we choose for example α0 = −α1 = 0,<br />

then both p(x) <strong>and</strong> q(x) contain the factor (x − 1) = (x − x0). Although x0<br />

is not unattainable, both p(x0) <strong>and</strong> q(x0) vanish.<br />

Due to such difficulties, solving (1.2) directly is not recommended. A<br />

more convenient alternative are recursive algorithms that build up consecutive<br />

interpolants along a path in the table <strong>of</strong> rational interpolants, which is<br />

defined below.<br />

In a strictly formal sense, consider the infinite, fixed sequence {xn} ∞ n=0 .<br />

For different values <strong>of</strong> ℓ + m = n, the rational interpolants <strong>of</strong> order (ℓ,m)


1.3. Non-normality <strong>and</strong> block structure 9<br />

for f(x) may be ordered in a table<br />

r0,0(x) r0,1(x) r0,2(x) ...<br />

r1,0(x) r1,1(x) r1,2(x) ...<br />

r2,0(x) r2,1(x) ...<br />

r3,0(x) r3,1(x) ...<br />

.<br />

.<br />

where rℓ,0(x) are the polynomial interpolants for f(x), <strong>and</strong> r0,m(x) are the<br />

inverse polynomial interpolants for 1/f(x). An entry <strong>of</strong> the table is called<br />

normal if it occurs only once in the table. However, a rational interpolant<br />

may appear in several locations <strong>of</strong> the table. The set <strong>of</strong> these locations is<br />

called a block. Unlike in the Padé case, where a block is always square, here<br />

the blocks are unions <strong>of</strong> squares which do not need to be interconnected.<br />

Such blocks complicate recursive computations.<br />

The basic result on the block structure <strong>of</strong> rational interpolants is essentially<br />

due to Claesens [Cla78a, Cla78b]. We follow the slightly different<br />

(but equivalent) formulation given by Gutknecht [Gut89]. In addition to the<br />

defect δ, define the eccentricity <strong>of</strong> rℓ,m(x)<br />

ǫ = max{ℓ − ℓ ′ ,m − m ′ } − δ<br />

<strong>and</strong> note that ℓ+m = ℓ ′ +m ′ +2δ +ǫ. For establishing the block structure,<br />

only the following Proposition is needed. We recall the pro<strong>of</strong> using our<br />

notation.<br />

Proposition 1.3.1 (Gutknecht [Gut89]). If the rational interpolant<br />

rℓ,m(x) ≡ 0, ∞<br />

has eccentricity ǫ > 0, then for j <strong>and</strong> k satisfying ℓ ′ + δ ≤ j ≤ ℓ ′ + δ + ǫ <strong>and</strong><br />

m ′ + δ ≤ k ≤ m ′ + δ + ǫ:<br />

rj,k(x) = p0<br />

(x).<br />

Pro<strong>of</strong>. We prove equivalence with the minimum degree solution p ∗ (x)/q ∗ (x)<br />

associated with rℓ,m(x). By definition, the minimum degree solution satisfies<br />

the linearized interpolation conditions (1.2) <strong>and</strong><br />

∂p ∗ ≤ ℓ ′ + δ<br />

∂q ∗ ≤ m ′ + δ .<br />

We also know that we can always find non-trivial polynomial couples<br />

(p(x),q(x)) ∈ R(ℓ ′ + δ + s,m ′ + δ + t), s,t = 0,... ,ǫ<br />

q0


10 1. Classical rational interpolation<br />

that solve<br />

fiq(xi) − p(xi) = 0 if f(xi) is finite<br />

q(xi) = 0 if f(xi) is ∞<br />

Now consider the polynomial<br />

<br />

i = 0,... ,ℓ ′ + m ′ + 2δ + s + t.<br />

(p ∗ q − q ∗ p)(x). (1.4)<br />

Either 0 ≤ s + t ≤ ǫ. Then (1.4) has at least ℓ ′ + m ′ + 2δ + s + t + 1 distinct<br />

zeros, but is <strong>of</strong> degree at most<br />

max{s,t} + ℓ ′ + m ′ + 2δ ≤ ℓ ′ + m ′ + 2δ + s + t.<br />

Or ǫ < s + t ≤ 2ǫ. In the latter case (1.4) has at least ℓ + m + 1 =<br />

ℓ ′ + m ′ + 2δ + ǫ + 1 distinct zeros, but is <strong>of</strong> degree at most<br />

max{s,t} + ℓ ′ + m ′ + 2δ ≤ ℓ ′ + m ′ + 2δ + ǫ.<br />

In both cases, (1.4) is a polynomial which must vanish identically. Thus<br />

p(x)/q(x) <strong>and</strong> p ∗ (x)/q ∗ (x) are equivalent.<br />

Figure 1.1: Illustration <strong>of</strong> a block.<br />

Proposition 1.3.1 is illustrated in Figure 1.1. From a sequential application<br />

<strong>of</strong> the Proposition then follows that the block consists <strong>of</strong> a series <strong>of</strong><br />

squares which do not need to be connected, but which are all symmetric<br />

around the diagonal passing through the entry (ℓ ′ ,m ′ ).<br />

As a corollary <strong>of</strong> the pro<strong>of</strong> <strong>of</strong> Proposition 1.3.1, the degree <strong>of</strong> the deficiency<br />

polynomial sℓ,m(x) is directly related to the shape <strong>of</strong> the block [Gut89].


1.3. Non-normality <strong>and</strong> block structure 11<br />

Due to the equivalence <strong>of</strong> all the minimum degree solutions inside a block,<br />

all the entries rλ,µ(x) that lie in the intersection <strong>of</strong> the antidiagonal<br />

{rλ ′ ,µ ′(x) |λ′ + µ ′ = n}<br />

belonging to xn, <strong>and</strong> the block <strong>of</strong> rℓ,m(x), have the same deficiency polynomial,<br />

say sn(x). Now if rℓ,m(x) also interpolates in xn+1, then the deficiency<br />

polynomial for the block elements on the next antidiagonal does not change,<br />

i.e. sn+1(x) = sn(x). Hence the number <strong>of</strong> block elements on the next antidiagonal<br />

grows with one. On the other h<strong>and</strong> if rℓ,m(x) does not interpolate<br />

in xn+1, then the deficiency polynomial for the block elements on the next<br />

antidiagonal becomes sn+1(x) = (x − xn+1)sn(x) <strong>and</strong> therefore the block<br />

has to become smaller by one. If there is only one single block element on<br />

the xn-antidiagonal <strong>and</strong> rℓ,m(x) does not interpolate in xn+1, then the block<br />

disappears, but it may reappear whenever the defect δ becomes larger than<br />

∂sn+1 again [Gut89].<br />

It is worth noting that the rational interpolant rℓ,m(x) itself does not depend<br />

on the ordering <strong>of</strong> the points in Xn, but the entries above the antidiagonal<br />

belonging to xn heavily do. In the special case where the points are well<br />

ordered, i.e. all attainable interpolation points come before all unattainable<br />

ones, a block can be characterized as follows.<br />

Proposition 1.3.2 (Wuytack [Wuy74]). For rℓ,m(x) ≡ 0 or ∞, let t ∈ N<br />

be such that<br />

then<br />

1. p0(xi)/q0(xi) = f(xi) i = 0... ,ℓ ′ + m ′ + t<br />

2. p0(xi)/q0(xi) = f(xi) i = ℓ ′ + m ′ + t + 1,... ,ℓ + m<br />

1. for j <strong>and</strong> k satisfying ℓ ′ ≤ j ≤ ℓ ′ + t <strong>and</strong> m ′ ≤ k ≤ m ′ + t:<br />

2. ℓ ≤ ℓ ′ + t <strong>and</strong> m ≤ m ′ + t.<br />

rj,k(x) = p0<br />

(x)<br />

The main difference with Proposition 1.3.1 is that the upper-left corner<br />

<strong>of</strong> the block <strong>of</strong> Proposition 1.3.2 lies exactly at (ℓ ′ ,m ′ ) <strong>and</strong> because all<br />

attainable points come first, the block never grows again once it starts to<br />

shrink. Hence it is a proper square <strong>of</strong> maximal size. For a different ordering<br />

<strong>of</strong> the points in Xn this need clearly not be the case.<br />

q0


12 1. Classical rational interpolation<br />

If the rational interpolant rℓ,m(x) is the constant zero or the constant<br />

infinity function, a slight modification <strong>of</strong> Proposition 1.3.1 is needed, because<br />

these blocks are unbounded in the following way. Again the pro<strong>of</strong>s are given<br />

in our notation.<br />

Proposition 1.3.3 (Gutknecht [Gut89]). If the rational interpolant<br />

rℓ,m(x) ≡ 0,<br />

then for j <strong>and</strong> k satisfying 0 ≤ j ≤ ℓ <strong>and</strong> m ≤ k:<br />

rj,k(x) ≡ 0.<br />

Pro<strong>of</strong>. For rℓ,m(x) ≡ 0, we have p0(x) ≡ 0, q0(x) ≡ 0. Consider the minimum<br />

degree denominator q∗ (x) ≡ 0 associated with rℓ,m(x), which satisfies<br />

<br />

i = 0,... ,ℓ + m<br />

fiq ∗ (xi) = 0 if f(xi) is finite<br />

q ∗ (xi) = 0 if f(xi) is ∞<br />

<strong>and</strong> is <strong>of</strong> degree ∂q∗ ≤ m. We know that we can always find a non-trivial<br />

polynomial couple (p(x),q(x)) ∈ R(j,k) for j <strong>and</strong> k satisfying 0 ≤ j ≤ ℓ<br />

<strong>and</strong> m ≤ k, such that<br />

fiq(xi) − p(xi) = 0 if f(xi) is finite<br />

q(xi) = 0 if f(xi) is ∞<br />

<br />

i = 0,... ,j + k.<br />

Consider the polynomial −q∗p(x) which has at least m + j + 1 ≤ j + k + 1<br />

distinct zeros<br />

<br />

i = 0,... ,j + k<br />

−q ∗ p(xi) = 0 if f(xi) is ∞<br />

[(fq − p)q ∗ − (fq ∗ )q] (xi) = 0 if f(xi) is finite<br />

but is <strong>of</strong> degree at most m + j. Therefore it must vanish identically. But<br />

q ∗ (x) ≡ 0, hence p(x) ≡ 0.<br />

An analogous <strong>and</strong> in fact a symmetric result holds for the constant infinity<br />

block.<br />

Proposition 1.3.4 (Gutknecht [Gut89]). If the rational interpolant<br />

rℓ,m(x) ≡ ∞,<br />

then for j <strong>and</strong> k satisfying ℓ ≤ j <strong>and</strong> 0 ≤ k ≤ m:<br />

rj,k(x) ≡ ∞.


1.4. Discussion 13<br />

Pro<strong>of</strong>. For rℓ,m(x) ≡ ∞, we have p0(x) ≡ 0, q0(x) ≡ 0. Consider the minimum<br />

degree numerator p ∗ (x) ≡ 0 associated with rℓ,m(x), which satisfies<br />

−p ∗ (xi) = 0 if f(xi) is finite<br />

p ∗ (xi) = 0 if f(xi) is ∞<br />

<br />

i = 0,... ,ℓ + m<br />

<strong>and</strong> is <strong>of</strong> degree ∂p∗ ≤ ℓ. We know that we can always find a non-trivial<br />

polynomial couple (p(x),q(x)) ∈ R(j,k) for j <strong>and</strong> k satisfying ℓ ≤ j <strong>and</strong><br />

0 ≤ k ≤ m, such that<br />

fiq(xi) − p(xi) = 0 if f(xi) is finite<br />

q(xi) = 0 if f(xi) is ∞<br />

<br />

i = 0,... ,j + k.<br />

Consider the polynomial p ∗ q(x) which has at least ℓ + k + 1 ≤ j + k + 1<br />

distinct zeros, but is <strong>of</strong> degree at most ℓ + k. Therefore it must vanish<br />

identically. But p ∗ (x) ≡ 0, hence q(x) ≡ 0.<br />

The difference in the shape <strong>of</strong> the blocks <strong>of</strong> the zero <strong>and</strong> infinity function<br />

is due to the fact that the defect δ grows differently [Gut89]. For the zero<br />

interpolant, δ is constant in the columns <strong>of</strong> the table, while for infinity, δ is<br />

constant in the rows <strong>of</strong> the table.<br />

1.4 Discussion<br />

So far we have described well-known results concerning the table <strong>of</strong> rational<br />

interpolants. Except for the direct method, which implies solving a homogeneous<br />

linear system, we have not yet given an algorithm to compute<br />

a rational interpolant. A practical algorithm should be able to deal with<br />

rational interpolation problems that are not <strong>of</strong> full degree or do not have<br />

a solution. There are several ways to achieve this. Recognizing unattainable<br />

points is essential. From Example 1.3.1 it should be clear that simply<br />

evaluating the numerator <strong>and</strong> denominator in every xi ∈ Xn <strong>and</strong> checking<br />

for common zeros is not necessarily exclusive. Another aspect is numerical<br />

stability. The numerical properties <strong>of</strong> algorithms to compute rational interpolants<br />

are heavily influenced by the chosen representation for the rational<br />

interpolant. In the next Chapters we consider several representations <strong>and</strong><br />

algorithms.


Barycentric representation<br />

2<br />

In this Chapter, we consider a specific representation for the rational interpolant:<br />

the barycentric form. This form stems from the Lagrange representation<br />

<strong>of</strong> interpolating polynomials. Several authors [BM97, SW86] praise<br />

its properties, both numerical <strong>and</strong> analytic. The barycentric form indeed<br />

possesses a remarkable property which makes it attractive for implementation,<br />

namely exact interpolation even in the presence <strong>of</strong> rounding errors<br />

during the computation <strong>of</strong> the coefficients <strong>of</strong> the barycentric form.<br />

First, we review the barycentric form in classical rational interpolation.<br />

The representation turns out to be advantageous for revealing common factors<br />

<strong>and</strong> unattainable points, although some care must be taken in correctly<br />

interpreting this result. Besides classical rational interpolation, we also review<br />

some other popular uses <strong>of</strong> the barycentric form, in particular a pole<br />

free rational interpolant in barycentric form with high approximation orders.<br />

Lastly, we examine the numerical properties <strong>of</strong> the barycentric representation<br />

more closely. A careful analysis shows that the barycentric form is not<br />

suited for use outside the interpolation interval. Basically, the evaluation <strong>of</strong><br />

the barycentric formula may suffer from catastrophic cancellation for large x.<br />

2.1 Classical rational interpolation<br />

Any rational function rn(x) <strong>of</strong> degree at most n in numerator <strong>and</strong> denominator,<br />

interpolating the n+1 points in Xn can be written in the barycentric<br />

form [BBM05]<br />

n<br />

rn(x) =<br />

i=0<br />

n<br />

i=0<br />

15<br />

ui<br />

x − xi<br />

ui<br />

x − xi<br />

fi<br />

. (2.1)


16 2. Barycentric representation<br />

The set Un = {u0,...,un} contains the barycentric weights with respect<br />

to Xn. Throughout this Section it is assumed that f(xi) = fi is always<br />

bounded. If some f(xi) are unbounded, i.e. there are prescribed poles, a<br />

straightforward modification is proposed in [Ber97].<br />

By definition <strong>of</strong> the form (2.1), the interpolation property rn(xi) = fi is<br />

automatically fulfilled for arbitrary nonzero weights. Hence with respect to<br />

interpolation <strong>of</strong> the given data, the barycentric form is immune to rounding<br />

errors in the computation <strong>of</strong> the weights, at least as long as the weights<br />

remain nonzero.<br />

A rational function <strong>of</strong> the form (2.1) does not quite match the notion <strong>of</strong><br />

a rational interpolant as introduced in Chapter 1, because the corresponding<br />

degrees <strong>of</strong> numerator <strong>and</strong> denominator exceed the prescribed degrees <strong>and</strong> do<br />

not satisfy the relation n = ℓ + m. Nevertheless, the weights can be defined<br />

such that rn(x) does satisfy these degree conditions. We adopt the space<br />

saving abbreviations<br />

ℓ(x) =<br />

n<br />

(x − xj), ℓi(x) =<br />

j=0<br />

n<br />

j=0,j=i<br />

(x − xj).<br />

Let the Lagrangian representation <strong>of</strong> the minimum degree denominator (1.3)<br />

be given by<br />

q ∗ n<br />

n<br />

ℓi(x) wi<br />

(x) ≡ qi = ℓ(x) qi (2.2)<br />

ℓi(xi) x − xi<br />

i=0<br />

where qi = q ∗ (xi) <strong>and</strong> 1/wi = ℓi(xi). Combining (2.2) with the Lagrange<br />

form <strong>of</strong> the minimum degree numerator (1.3) that interpolates p ∗ (xi) = fiqi,<br />

p ∗ (x) ≡<br />

n<br />

i=0<br />

fiqi<br />

ℓi(x)<br />

= ℓ(x)<br />

ℓi(xi)<br />

i=0<br />

n<br />

i=0<br />

wi<br />

x − xi<br />

fiqi<br />

a closed formula for the weights <strong>of</strong> the rational function (2.1) is then<br />

ui = wiqi i = 0,... ,n. (2.3)<br />

In the special case that q ∗ (x) ≡ 1, hence qi = 1 (i = 0,... ,n), then (2.1)<br />

reduces to the barycentric form <strong>of</strong> the interpolating polynomial <strong>of</strong> degree n.<br />

Several authors [BM97, SW86, ZZ02] derive homogeneous systems <strong>of</strong><br />

linear equations that express conditions to obtain the minimal degree solution<br />

(1.3) in barycentric form. Unlike in (1.2) these conditions are not interpolation<br />

conditions, which are already automatically fulfilled for nonzero<br />

values <strong>of</strong> the weights, but correspond to simple degree conditions. Because


2.1. Classical rational interpolation 17<br />

the barycentric form does not readily reflect the actual numerator <strong>and</strong> denominator<br />

degrees, these methods basically determine a denominator q(x)<br />

<strong>of</strong> degree ∂q ≤ m using a basis other than the Lagrange basis <strong>and</strong> restore<br />

the connection with the Lagrangian basis afterward. For example Schneider<br />

<strong>and</strong> Werner [SW86] first compute a denominator in a Newton basis with<br />

respect to Xm ⊆ Xn. For the resulting linear system <strong>of</strong> which the coefficient<br />

matrix is a divided-difference matrix (or Löwner matrix) a stable solver is<br />

proposed in [Gem96]. Only in a second phase the barycentric weights with<br />

respect to Xn are computed from these Newton coefficients using an algorithm<br />

from [Wer84]. A more direct approach is due to Berrut et al. [BM97].<br />

Using monomial basis functions, conditions for the weights are derived such<br />

that rn(x) = p(x)/q(x) satisfies ∂p ≤ ℓ <strong>and</strong> ∂q ≤ m. A very similar approach<br />

is due to Zhu et al. [ZZ02] who directly determine function values q0,... ,qn<br />

<strong>of</strong> a denominator <strong>of</strong> degree ∂q ≤ m from the same degree conditions, but<br />

now by considering the Newton representation.<br />

A slightly different, but related approach is due to Antoulas <strong>and</strong> Anderson<br />

[AA86]. They start from the following implicit form <strong>of</strong> (2.1)<br />

n<br />

i=0<br />

rn(x) − fi<br />

ui<br />

x − xi<br />

= 0 (2.4)<br />

<strong>and</strong> investigate the algebraic structure <strong>of</strong> the problem <strong>of</strong> parameterizing all<br />

interpolating rational functions <strong>of</strong> minimal complexity. Here, the complexity<br />

<strong>of</strong> a rational function rn(x) = p(x)/q(x) is understood as max{∂p,∂q}. This<br />

problem formulation is further considered in Section 5.2.<br />

Instead <strong>of</strong> the full barycentric form (2.4), Antoulas <strong>and</strong> Anderson [AA86]<br />

start from a lower complexity barycentric representation 1 [Ber00] rn ′(x) <strong>of</strong><br />

rn(x)<br />

<br />

n ′<br />

i=0<br />

rn ′(x) − fi<br />

ui<br />

x − xi<br />

= 0 (2.5)<br />

where n ′ < n. When specifying rn ′(x), it is implicitly assumed that Xn is<br />

ordered such that the first n ′ + 1 points are those appearing in (2.5). For<br />

rn ′(x) to interpolate also in the remaining points Xn \ Xn ′, a non-trivial<br />

weight vector u = (u0,... ,un ′)T must exist in the kernel <strong>of</strong> the (n − n ′ ) ×<br />

(n ′ + 1) Löwner matrix L with entries<br />

Lj,i = fj − fi<br />

xj − xi<br />

i = 0,... ,n ′ ;j = n ′ + 1,... ,n.<br />

1 This nomenclature is not used explicitly in [AA86].


18 2. Barycentric representation<br />

It is shown in [AA86] that the rank <strong>of</strong> such a matrix, for n ′ large enough, is<br />

related to the degree <strong>of</strong> the minimal degree interpolating rational function.<br />

Explicit conditions are stated for which this minimal degree interpolant is<br />

unique (up to a multiplicative constant). Otherwise there follows a parameterization<br />

<strong>of</strong> all minimal <strong>and</strong> nonminimal interpolating rational functions<br />

in the form (2.4). Although the approach in [AA86] is mainly <strong>of</strong> theoretical<br />

importance, it shows an alternative approach to the rational interpolation<br />

problem by relaxing the degree requirements ℓ + m = n. We come back to<br />

this way <strong>of</strong> formulation the rational interpolation problem in Section 5.2.<br />

2.2 Unattainability <strong>and</strong> non-normality<br />

An advantage <strong>of</strong> the barycentric representation (2.1) is that it exposes common<br />

factors <strong>of</strong> the form (x − xi), xi ∈ Xn directly. Multiplication <strong>of</strong> the<br />

numerator <strong>and</strong> denominator by ℓ(x) reveals that a common zero <strong>of</strong> the<br />

form (x − xi), xi ∈ Xn can only occur if <strong>and</strong> only if ui = 0. In the case<br />

where the weights are determined by the condition ℓ + m = n, even more<br />

can be said. Since the weights ui are defined following (2.3), i.e. from<br />

the Lagrangian representation <strong>of</strong> the numerator <strong>and</strong> denominator polynomials,<br />

<strong>and</strong> because wi = 0, one can immediately derive from (2.3) that<br />

ui = 0 if <strong>and</strong> only if qi = 0. Hence ui = 0 is a necessary condition for<br />

an unattainable point. However, it is not a sufficient condition, i.e. the<br />

point xi need not be unattainable unless the Lagrangian denominator (2.2)<br />

is truly the minimum degree solution. Since all <strong>of</strong> the aforementioned approaches<br />

[SW86, BM97, ZZ02] basically solve a homogeneous system <strong>of</strong> dimension<br />

ν × (ν + 1) where ν depends on n, ℓ <strong>and</strong> m, they suffer from the<br />

same difficulties as explained in Example 1.3.1. That is, they can only<br />

guarantee to deliver the minimal degree solution if <strong>and</strong> only if the corresponding<br />

coefficient matrix has full rank, hence if <strong>and</strong> only if the kernel <strong>of</strong><br />

the homogeneous system is one-dimensional. In the degenerate case <strong>of</strong> a<br />

multidimensional kernel, the denominator is not guaranteed to be minimal<br />

anymore <strong>and</strong> the obtained rational function may contain redundant common<br />

factors <strong>of</strong> the form (x − xi), without indicating unattainability.<br />

In order to find a minimal, unique solution again, Berrut et al. [BM97]<br />

propose to modify the original problem by simultaneously increasing the<br />

numerator degree <strong>and</strong> decreasing the denominator degree until the coefficient<br />

matrix has full rank again. This last approach clearly solves a problem which<br />

is different from the original one.


2.3. Pole free rational interpolation 19<br />

2.3 Pole free rational interpolation<br />

Because the interpolation property is fulfilled for arbitrary nonzero weights,<br />

other conditions [BBN99, BM00, AA86] can be imposed on an interpolant<br />

in barycentric form. As alternative for the condition ℓ + m = n, we already<br />

mentioned the approach <strong>of</strong> [AA86]. Another condition can be a pole free<br />

approximation. Real poles are both the blessing <strong>and</strong> the curse <strong>of</strong> rational<br />

interpolation. It may happen that unwanted real poles creep into the interpolation<br />

interval <strong>and</strong> ruin the approximation. The barycentric formula<br />

allows for a simple characterization <strong>of</strong> the poles. Throughout this Section,<br />

it is assumed that the elements <strong>of</strong> the set Xn are indexed such that<br />

a = x0 < x1 < ... < xn = b. (2.6)<br />

Proposition 2.3.1 ([SW86, BM97]). The barycentric weights ui <strong>of</strong> an irreducible<br />

rational function r(x) = p(x)/q(x) which interpolates in x0,...,xn<br />

<strong>and</strong> which has no poles in the interval [a,b] oscillate in sign.<br />

Pro<strong>of</strong>. From the Lagrangian representation <strong>of</strong> p(x) <strong>and</strong> q(x) follows that<br />

ui = q(xi)wi (i = 0,... ,n). Since the wi oscillate in sign for the supposed<br />

ordering <strong>of</strong> the xi (see for example [Sti63, p.218]) <strong>and</strong> q(x) does not change<br />

sign in [a,b], also the ui oscillate in sign.<br />

An attractive pole free rational interpolation scheme is proposed by<br />

Floater <strong>and</strong> Horman [FH07]. They construct an interpolant by blending<br />

polynomials in the following way. For d (0 ≤ d ≤ n) fixed, let pi(x)<br />

(i = 0,... ,n − d) be the polynomial <strong>of</strong> degree ∂pi ≤ d that interpolates<br />

in xi,... ,xi+d. The interpolant considered in [FH07] is<br />

where<br />

λi(x) =<br />

n−d <br />

λi(x)pi(x)<br />

i=0<br />

n−d<br />

<br />

λi(x)<br />

i=0<br />

(−1) i<br />

(x − xi) · · · (x − xi+d) .<br />

, (2.7)<br />

The interpolant (2.7) has some very attractive properties. It is shown<br />

in [FH07] that for every d (0 ≤ d ≤ n), the interpolant (2.7) has no real<br />

poles <strong>and</strong> for d ≥ 1 it has approximation order O(h d+1 ) as h → 0, where<br />

h = max<br />

0≤i≤n−1 (xi+1 − xi)


20 2. Barycentric representation<br />

as long as f(x) ∈ C d+2 [a,b].<br />

In its pure form, (2.7) is expensive to evaluate, but multiplying the numerator<br />

<strong>and</strong> denominator by ℓ(x) shows that (2.7) is actually a rational<br />

function <strong>of</strong> degree at most n <strong>and</strong> n−d in numerator <strong>and</strong> denominator respectively.<br />

Hence (2.7) can also be written in the more convenient barycentric<br />

form (2.1). The weights for the barycentric form rn(x) <strong>of</strong> (2.7) are defined<br />

explicitly as follows<br />

where<br />

ui = <br />

(−1) j<br />

j∈Ji<br />

I = {0,... ,n},<br />

j+d<br />

<br />

1<br />

xi − xk<br />

k=j,k=i<br />

Ji = {j ∈ I | i − d ≤ j ≤ i}.<br />

, (2.8)<br />

Because (2.7) has no real poles, the weights as defined by (2.8) oscillate in<br />

sign [FH07].<br />

The parameter d gives rise to a whole family <strong>of</strong> interpolants with no<br />

poles <strong>and</strong> high approximation orders. In theory, the approximation error<br />

decreases as d increases. In practice it is seen [FH07] that due to finite<br />

precision arithmetic, the numerically computed approximation may not behave<br />

accordingly. We explain <strong>and</strong> discuss the numerical properties <strong>of</strong> the<br />

barycentric formula in more detail in the next Section. Nevertheless, for<br />

moderate values <strong>of</strong> d, the interpolant (2.7) performs very well even for large<br />

n. Hence the method <strong>of</strong> Floater <strong>and</strong> Horman is definitely the method <strong>of</strong><br />

choice if the goal is to obtain a guaranteed polefree approximation over a<br />

closed interval.<br />

2.4 Numerical stability<br />

The main advantage <strong>of</strong> the barycentric formula is that it reconstructs the<br />

function values exactly for arbitrary nonzero weights. Hence perturbations<br />

<strong>of</strong> the weights due to finite precision computations do not influence the<br />

exact interpolation property. In this Section we are concerned with the<br />

numerical evaluation <strong>of</strong> the barycentric formula (2.1). For the polynomial<br />

case (ui = wi), Higham [Hig04] shows that the evaluation <strong>of</strong> the barycentric<br />

formula is not forward stable in general but that forward stability depends<br />

on the choice <strong>of</strong> the interpolation points.


2.4. Numerical stability 21<br />

From the bound for the forward error given in [Hig04] already becomes<br />

clear that the barycentric form <strong>of</strong> the interpolating polynomial may not be<br />

suited for extrapolation outside the interpolation interval. For polynomials<br />

this conclusion is <strong>of</strong> little importance, because extrapolation by polynomials<br />

is generally not a good idea. For rational functions, the situation is somewhat<br />

different, because they are particularly suited for extrapolation. Hence<br />

an accurate evaluation <strong>of</strong> the rational function (2.1) as x goes to infinity is<br />

m<strong>and</strong>atory. Due to the similarity to the polynomial case, it is to be expected<br />

that also the barycentric representation (2.1) <strong>of</strong> a rational function<br />

behaves in a similar way. In order to add more weight to this argument,<br />

we extend the analysis <strong>of</strong> Higham [Hig04] for the interpolating polynomial<br />

in barycentric form to arbitrary rational functions in barycentric form. The<br />

generalization is straightforward <strong>and</strong> leads to a similar forward error.<br />

The intention is to formulate an upper-bound for the forward error <strong>of</strong><br />

the barycentric formula which holds independently <strong>of</strong> the algorithm that has<br />

been used for the computation <strong>of</strong> the barycentric weights. This upper-bound<br />

allows us to identify what may cause inaccuracy in the numerical evaluation<br />

<strong>of</strong> the barycentric formula, in particular when x goes to infinity.<br />

For what follows, we assume that the weights are computed using a<br />

backward stable algorithm, which is a natural assumption. An algorithm A<br />

for a problem A is backward stable if for all inputs x from a normed vector<br />

space <strong>of</strong> data, A(x) = A(x) for some x with<br />

x − x<br />

x<br />

= O(ǫmach).<br />

Here O denotes the O-notation [GKP94, p.243] <strong>and</strong> ǫmach represents the<br />

(machine) unit round <strong>of</strong>f. If a problem is solved using a backward stable<br />

algorithm A, then the forward error is connected to the backward error by<br />

the condition number κA. Let<br />

△A = A(x) − A(x)<br />

△x = x − x,<br />

the relative condition number for A at x, is then defined as<br />

κA = κA(x) = lim<br />

ε→0<br />

sup<br />

△x<br />

x ≤ε<br />

△A<br />

A<br />

x<br />

. (2.9)<br />

△x<br />

The norm on the vector space <strong>of</strong> solutions may be different from the norm<br />

on the vector space <strong>of</strong> data, but for simplicity both are here denoted by ·.


22 2. Barycentric representation<br />

If the algorithm A is backward stable then the forward error satisfies<br />

A(x) − A(x)<br />

A(x)<br />

= O(κA(x)ǫmach).<br />

Let u = (u0,... ,un) T . Weights u computed by a backward stable algorithm<br />

U satisfy<br />

or equivalently<br />

u − u<br />

u = O(κU ǫmach)<br />

ui = ui(1 + δui ), |δui | = O(κU ǫmach).<br />

Here κU represents the condition number associated with the problem <strong>of</strong><br />

computing the barycentric weights, which could be the condition number <strong>of</strong><br />

the involved coefficient matrix or just a constant for given weights.<br />

Further we follow the st<strong>and</strong>ard model <strong>of</strong> floating point arithmetic [Hig02],<br />

fl(x op y) = (x op y)(1 + δ) ±1 , |δ| ≤ ǫmach, op ∈ {+, −, ∗,/}<br />

for any two floating point numbers x <strong>and</strong> y. Relative error counters are<br />

denoted by<br />

(1 + θk) =<br />

k<br />

(1 + δj) ρj |δj| ≤ ǫmach, ρj = ±1<br />

j=1<br />

with the corresponding upper-bound<br />

where kǫmach ≤ 1 is assumed.<br />

|θk| ≤ γk = kǫmach<br />

1 − kǫmach<br />

It is also assumed that the given x, xi <strong>and</strong> fi are exact floating-point<br />

numbers. With these considerations we have the following.


2.4. Numerical stability 23<br />

Proposition 2.4.1. The computed value rn(x) <strong>of</strong> (2.1) satisfies<br />

<br />

n<br />

ui<br />

fi(1 + θ<br />

x − xi<br />

i=0<br />

rn(x) =<br />

i <br />

3 )(1 + δui ) (1 + θ Num<br />

n )<br />

<br />

n<br />

ui<br />

(1 + θ<br />

x − xi<br />

i=0<br />

i <br />

2 )(1 + δui ) (1 + θ Den<br />

(1 + θ1)<br />

n )<br />

n ui<br />

fi(1 + θ<br />

x − xi<br />

i=0<br />

=<br />

i n+4)(1 + δui )<br />

n ui<br />

(1 + θ<br />

x − xi<br />

i n+2)(1 + δui )<br />

.<br />

i=0<br />

Pro<strong>of</strong>. The treatment <strong>of</strong> the numerator <strong>and</strong> denominator are completely<br />

analogous. Therefore we only consider the numerator. Each term in the<br />

summation in the numerator <strong>of</strong> rn(x) satisfies<br />

fl( ui<br />

fi) =<br />

x − xi<br />

ui(1 + δui )<br />

(x − xi)(1 + δ−) fi(1 + δ∗)(1 + δ /)<br />

= ui<br />

fi(1 + θ<br />

x − xi<br />

i 3 )(1 + δui )<br />

The factors (1 + θ Num<br />

n ) <strong>and</strong> (1 + θ1) account for the total summation <strong>and</strong><br />

the division respectively.<br />

Before we can give the final forward error, we also need the following.<br />

Proposition 2.4.2.<br />

1<br />

<br />

n<br />

ui<br />

(1 + θ<br />

x − xi<br />

i=0<br />

i n+2)(1 + δui )<br />

<br />

<br />

≤<br />

<br />

<br />

<br />

⎛<br />

⎜<br />

1 ⎜<br />

<br />

n<br />

⎜<br />

⎜<br />

ui ⎝<br />

<br />

x − xi<br />

1 + ǫmach<br />

n<br />

<br />

ui <br />

<br />

x<br />

− xi<br />

<br />

i=0<br />

(n + 2 + O(κU)) <br />

n<br />

<br />

<br />

ui <br />

<br />

x − xi<br />

i=0<br />

i=0<br />

+ O(ǫ 2 mach )<br />

⎞<br />

⎟<br />


24 2. Barycentric representation<br />

Pro<strong>of</strong>.<br />

From<br />

<br />

<br />

<br />

<br />

<br />

<br />

1<br />

−<br />

<br />

<br />

<br />

˛ n ˛<br />

˛i=0<br />

1<br />

<br />

n ui<br />

(1 + θ<br />

x − xi<br />

i <br />

<br />

<br />

n+2 )(1 + δui ) <br />

<br />

i=0<br />

= <br />

n<br />

ui<br />

+<br />

x − xi<br />

i=0<br />

1<br />

n ui<br />

(θ<br />

x − xi<br />

i n+2 + δui + θi n+2δui )<br />

<br />

<br />

<br />

<br />

<br />

i=0<br />

= <br />

<br />

<br />

n<br />

<br />

<br />

ui <br />

<br />

x − xi<br />

1<br />

+<br />

i=0 <br />

<br />

<br />

1<br />

≤ <br />

n <br />

<br />

ui <br />

<br />

<br />

<br />

x − xi<br />

<br />

<br />

i=0 <br />

1<br />

−<br />

<br />

<br />

<br />

1<br />

n ui<br />

(θ<br />

x − xi<br />

i n+2 + δui + θi <br />

<br />

n+2δui )<br />

<br />

<br />

<br />

n<br />

<br />

<br />

ui <br />

<br />

x − xi <br />

i=0<br />

˛ n ˛<br />

˛i=0<br />

i=0<br />

1<br />

ui<br />

(θ<br />

x − xi<br />

i n+2 + δui + θi ˛<br />

˛<br />

˛<br />

˛<br />

n+2δui ) <br />

˛<br />

˛<br />

˛<br />

˛<br />

˛ <br />

˛ n ˛<br />

˛ ui<br />

˛ <br />

˛ <br />

˛<br />

˛ <br />

˛ x − xi<br />

˛ <br />

˛i=0<br />

1<br />

ui<br />

(θ<br />

x − xi<br />

i n+2 + δui + θi ˛<br />

˛<br />

˛<br />

˛<br />

n+2δui ) <br />

˛<br />

˛<br />

˛<br />

˛<br />

˛ <br />

˛ n ˛<br />

˛ ui<br />

˛ <br />

˛ <br />

˛<br />

˛ <br />

˛ x − xi<br />

˛<br />

i=0 ˛ <br />

⎛<br />

n ui<br />

∞<br />

⎜<br />

(θ<br />

⎜<br />

x − xi<br />

= 1 + ⎜ i=0<br />

⎜<br />

j=1 ⎝<br />

i n+2 + δui + θi <br />

⎞j<br />

<br />

n+2δui ) <br />

<br />

⎟<br />

<br />

n<br />

⎟<br />

⎟ ,<br />

ui ⎠<br />

<br />

x − xi<br />

using the upper-bound<br />

<br />

θ i n+2<br />

<br />

≤ γn+2 =<br />

(n + 2)ǫmach<br />

1 − (n + 2)ǫmach<br />

=<br />

i=0<br />

˛<br />

∞<br />

(n + 2) k ǫ k mach<br />

k=1


2.4. Numerical stability 25<br />

<strong>and</strong> with slight abuse <strong>of</strong> notation |δui | = O(κU ǫmach) = ǫmach O(κU), we<br />

also have that<br />

<br />

n ui<br />

(θ<br />

x − xi<br />

i=0<br />

i n+2 + δui + θi <br />

<br />

n<br />

<br />

<br />

ui <br />

n+2δui ) <br />

<br />

<br />

x<br />

− xi<br />

<br />

i=0<br />

<br />

n<br />

<br />

<br />

≤ ǫmach (n + 2 + O(κU)) <br />

n<br />

<br />

<br />

ui <br />

ui <br />

<br />

<br />

x − xi<br />

x − xi<br />

i=0<br />

i=0<br />

+ O(ǫ 2 mach ).<br />

Collecting appropriate terms in ǫmach <strong>and</strong> O(ǫ2 mach ) finishes the pro<strong>of</strong>.<br />

The main result <strong>of</strong> this Section is the following.<br />

Proposition 2.4.3. The relative forward error for the computed value rn(x)<br />

<strong>of</strong> (2.1) satisfies<br />

n<br />

<br />

ui <br />

<br />

fi<br />

|rn(x) − rn(x)|<br />

x − xi<br />

<br />

i=0<br />

≤ ǫmach (n + 4 + O(κU)) <br />

|rn(x)|<br />

n<br />

<br />

<br />

ui <br />

fi<br />

x − xi <br />

i=0<br />

n<br />

<br />

ui <br />

<br />

x<br />

− xi<br />

<br />

i=0<br />

+ ǫmach (n + 2 + O(κU)) <br />

n <br />

+ O(ǫ<br />

ui <br />

<br />

x − xi<br />

2 mach ) (2.10)<br />

Pro<strong>of</strong>. We have<br />

rn(x)<br />

rn(x) ≤<br />

<br />

n ui<br />

fi(1 + θ<br />

x − xi<br />

i=0<br />

i <br />

n <br />

ui <br />

n+4 )(1 + δui ) <br />

x − xi<br />

i=0<br />

<br />

n ui<br />

(1 + θ<br />

x − xi<br />

i <br />

n <br />

.<br />

ui <br />

n+2 )(1 + δui ) fi<br />

x − xi <br />

i=0<br />

Since<br />

<br />

n ui<br />

fi(1 + θ<br />

x − xi<br />

i=0<br />

i <br />

<br />

<br />

n+4 )(1 + δui ) <br />

≤<br />

<br />

n <br />

ui <br />

fi<br />

x − xi <br />

i=0<br />

n<br />

<br />

ui<br />

+ ǫmach (n + 4 + O(κU)) <br />

x<br />

− xi<br />

i=0<br />

i=0<br />

i=0<br />

fi<br />

<br />

<br />

<br />

+ O(ǫ2mach )


26 2. Barycentric representation<br />

<strong>and</strong> application <strong>of</strong> Proposition 2.4.2 yields,<br />

rn(x)<br />

rn(x) ≤ 1 + ǫmach<br />

n<br />

<br />

ui <br />

<br />

fi<br />

x − xi<br />

<br />

i=0<br />

(n + 4 + O(κU)) <br />

n<br />

<br />

<br />

ui <br />

fi<br />

x − xi <br />

i=0<br />

n<br />

<br />

ui <br />

<br />

x<br />

− xi<br />

<br />

i=0<br />

+ ǫmach (n + 2 + O(κU)) <br />

n <br />

ui <br />

<br />

x − xi<br />

from which the result is immediate.<br />

i=0<br />

+ O(ǫ 2 mach )<br />

We can give an interpretation for the factors appearing in the right<br />

h<strong>and</strong> side <strong>of</strong> the inequality (2.10). Indeed, it immediately follows from the<br />

following Proposition that they are a measure for the amount <strong>of</strong> cancellation<br />

in the summation in the numerator <strong>and</strong> denominator <strong>of</strong> (2.1).<br />

Proposition 2.4.4. Let v = [v0,... ,vn] T . The condition number κΣ <strong>of</strong> the<br />

problem <strong>of</strong> computing the sum S(v) = n<br />

i=0 vi is given by<br />

κΣ =<br />

n i=0 |vi|<br />

| n .<br />

i=0 vi|<br />

Pro<strong>of</strong>. If a problem A is differentiable, then the condition number (2.9) can<br />

be evaluated at x by means <strong>of</strong> the derivative <strong>of</strong> A [TB97]. Since the Jacobian<br />

matrix <strong>of</strong> S is<br />

<br />

∂S<br />

J =<br />

∂v0<br />

· · · ∂S<br />

<br />

= [1 · · · 1]<br />

∂vn<br />

<strong>and</strong> if we take the · 1 norm, then J1 = 1 so that the condition number<br />

κΣ is given by<br />

n J1 i=0<br />

κΣ =<br />

=<br />

S(v)1/v1<br />

|vi|<br />

| n .<br />

i=0 vi|<br />

Let us denote the condition numbers <strong>of</strong> the problems <strong>of</strong> evaluating the


2.4. Numerical stability 27<br />

numerator <strong>and</strong> denominator <strong>of</strong> rn(x) at x respectively by<br />

κ Num<br />

n<br />

<br />

ui <br />

<br />

fi<br />

x − xi<br />

<br />

i=0<br />

Σ (x) = <br />

n<br />

<br />

<br />

, κ<br />

ui <br />

fi<br />

x − xi <br />

Den<br />

n<br />

<br />

ui <br />

<br />

x<br />

− xi<br />

<br />

i=0<br />

Σ (x) = <br />

n<br />

<br />

<br />

.<br />

ui <br />

<br />

x − xi<br />

i=0<br />

Then (2.10) can simply be rewritten as<br />

|rn(x) − rn(x)|<br />

|rn(x)|<br />

i=0<br />

≤ ǫmach (n + 4 + O(κU)) k Num<br />

Σ (x)<br />

+ ǫmach (n + 2 + O(κU)) k Den<br />

Σ (x) + O(ǫ 2 mach )<br />

This formula immediately gives insight into what causes inaccuracy in the<br />

numerical evaluation <strong>of</strong> the barycentric formula when x goes to infinity.<br />

For sufficiently large x ∈ [a,b], the values <strong>of</strong> x − xi for all i = 0,... ,n<br />

are positive <strong>and</strong> tend to be similar. If the weights ui are all positive (or<br />

negative), no cancellation occurs for large x. But note that it follows from<br />

Proposition 2.3.1 that the weights ui oscillate in sign when no poles occur<br />

within the interpolation interval! If n i=0 ui ≈ 0, then kDen Σ (x) may grow<br />

arbitrarily <strong>and</strong> cancellation may become catastrophic for large x. What is<br />

worse, once cancellation occurs for some z large enough it necessarily occurs<br />

also for all x > z.<br />

Example 2.4.1. To illustrate that in practice the evaluation <strong>of</strong> the barycentric<br />

formula can go terrible wrong already for moderate values <strong>of</strong> x, we have<br />

sampled the function<br />

f(x) = 5 + e −x<br />

at equidistant points xi = 0.1i for i = 0,... ,10 <strong>and</strong> constructed the barycentric<br />

form <strong>of</strong> the rational interpolant r5,5(x) for these points. The rational<br />

interpolant r5,5(x) was computed symbolically in Maple using the continued<br />

fraction algorithm <strong>of</strong> the next Section, from which the minimum degree denominator<br />

q ∗ (x) was retrieved symbolically. The weights were also computed<br />

in Maple from (2.3). From these weights, the barycentric formula has been<br />

evaluated numerically in Matlab with the code provided in Berrut [BT04].<br />

In Figure 2.1(a), the evaluation <strong>of</strong> the barycentric form <strong>of</strong> the rational interpolant<br />

r5,5(x) is shown within the interpolation interval, together with the<br />

interpolation data (dots). In Figure 2.1(b), the same rational interpolant is<br />

evaluated over the larger interval [0,12]. Outside the interpolation interval<br />

the evaluation is dominated by cancellation errors <strong>and</strong> is completely useless.


28 2. Barycentric representation<br />

6<br />

5.9<br />

5.8<br />

5.7<br />

5.6<br />

5.5<br />

5.4<br />

1.1<br />

1<br />

0.9<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1<br />

(a) Inside the interpolation interval<br />

0 1 2 3 4 5 6 7 8 9 10<br />

(c) ǫmach(n + 4)κ Num<br />

Σ (x)<br />

6<br />

5.8<br />

5.6<br />

5.4<br />

5.2<br />

5<br />

4.8<br />

4.6<br />

4.4<br />

0 2 4 6 8 10 12<br />

1.1<br />

1<br />

0.9<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

(b) Outside the interpolation interval<br />

0 1 2 3 4 5 6 7 8 9 10<br />

(d) ǫmach(n + 2)κ Den<br />

Σ (x)<br />

Figure 2.1: Illustration <strong>of</strong> catastrophic cancellation in the evaluation <strong>of</strong> the<br />

barycentric formula. Figures 2.1(a) <strong>and</strong> 2.1(b) show the numerical evaluation<br />

<strong>of</strong> the rational interpolant r5,5(x) in barycentric form inside <strong>and</strong> outside<br />

the interpolation interval respectively. Inside the interpolation interval, also<br />

the interpolation data are shown (dots). Outside the interpolation interval,<br />

catastrophic cancellation occurs. Figures 2.1(c) <strong>and</strong> 2.1(d) show the impact<br />

<strong>of</strong> the condition numbers <strong>of</strong> the numerator <strong>and</strong> the denominator for growing<br />

x. The horizontal line marks the boundary where all significant digits<br />

are lost.


2.5. Conclusion 29<br />

The explanation readily follows from the condition numbers κNum Σ (x) <strong>and</strong><br />

κDen Σ (x). Figures 2.1(c) <strong>and</strong> 2.1(d) show the impact <strong>of</strong> these condition numbers<br />

on the forward error for different x <strong>and</strong> double-precision ǫmach = 2−53 .<br />

Both condition numbers grow quickly as x becomes larger. Approximately<br />

at x ≈ 10.3 all significant digits are lost in the numerator. The denominator<br />

performs only marginally better <strong>and</strong> also here all significant digits are<br />

inevitably lost. The (normalized) barycentric weights are given below. Note<br />

that | n i=0 ui| ≈ ǫmach.<br />

2.5 Conclusion<br />

i ui<br />

0 1.799994560009356e−03<br />

1 −1.894648100213035e−02<br />

2 8.971766981319866e−02<br />

3 −2.516883287385409e−01<br />

4 4.632301940698410e−01<br />

5 −5.844578164633316e−01<br />

6 5.119485388605266e−01<br />

7 −3.074128189179774e−01<br />

8 1.211061867925419e−01<br />

8 −2.826482829236917e−02<br />

10 2.967689318231945e−03<br />

In conclusion, constructing a rational interpolant in its barycentric form<br />

has some practical advantages. Most notably is the exact interpolation<br />

property, which is not affected by changes in the weights as long as the<br />

weights remain nonzero. Therefore it is a very powerful representation which<br />

easily allows one to impose other conditions besides interpolation conditions.<br />

The polefree rational approximant as described in Section 2.3 is just one<br />

example.<br />

However, as we have shown in Section 2.4, the evaluation <strong>of</strong> the barycentric<br />

formula may suffer from catastrophic cancellation outside the interpolation<br />

interval. Therefore its use is basically limited to a closed interval <strong>and</strong><br />

should not be used for extrapolation over a large interval. Hence it is also<br />

not suited for numerical interpolation at infinity. Therefore we turn to a<br />

different representation in the next Chapter.


Interpolating continued<br />

fractions<br />

3<br />

In this Chapter we focus on a continued fraction representation <strong>of</strong> the rational<br />

interpolant.<br />

First Thiele continued fractions are introduced. If the data are ordered<br />

such that such a continued fraction can be constructed, then it allows<br />

for a simple characterization <strong>of</strong> unattainable points. Next Werner’s<br />

algorithm [Wer79] is considered. This algorithm constructs a more general<br />

form <strong>of</strong> Thiele continued fractions <strong>and</strong> reorders the points in such a way<br />

that larger blocks can be h<strong>and</strong>led. The degree structure <strong>of</strong> the convergents<br />

<strong>of</strong> these continued fractions is unraveled. Since the reordering also causes<br />

intermediate values to be bounded, the construction can be combined with<br />

a pivoting strategy which makes it a suitable technique for a numerical implementation<br />

[GM80].<br />

3.1 Thiele continued fractions<br />

Let us start by introducing Thiele continued fractions, which form the basis<br />

for the more advanced algorithms that produce Thiele-type continued fractions.<br />

Without loss <strong>of</strong> generality, we assume that ℓ = m or ℓ = m + 1, that<br />

is we only consider interpolants on the main staircase<br />

{r0,0(x),r1,0(x),r1,1(x),r2,1(x),r2,2(x),r3,2(x),...} . (3.1)<br />

If the order <strong>of</strong> Xn is such that every two consecutive elements on this main<br />

staircase are different (see also Proposition 5.2.1), then a Thiele continued<br />

fraction can be constructed which is <strong>of</strong> the form<br />

x − x0<br />

R0(x) = b0 + + x − x1 x − xn−1<br />

+ · · · + . (3.2)<br />

b1<br />

31<br />

b2<br />

bn


32 3. Interpolating continued fractions<br />

If the bi = ∞ are given by (3.5) then this continued fraction has the property<br />

that its i-th convergent is equivalent with the i-th element on the staircase<br />

(3.1) (i = 0,... ,n) [CW88]. The quantities bi = ∞ are called inverse<br />

differences <strong>and</strong> are defined recursively. First, denote the tails <strong>of</strong> (3.2) by<br />

⎧<br />

⎨<br />

x − xj<br />

Rj(x) = bj + , j = 0,... ,n − 1<br />

Rj+1(x) (3.3)<br />

⎩<br />

Rn(x) ≡ bn.<br />

If Rj+1(xj) = 0 then it is allowed to set bj = Rj(xj), which motivates the<br />

following recurrence<br />

⎧<br />

⎨R0(xk)<br />

= f(xk) xk ∈ Xn<br />

⎩Rj+1(xk)<br />

= xk − xj<br />

(3.4)<br />

xk ∈ Xn \ Xj<br />

Rj(xk) − bj<br />

from which the inverse differences are obtained<br />

⎧<br />

⎨R0(x0)<br />

bi = Ri(xi) = xi − xi−1<br />

⎩<br />

if i = 0<br />

.<br />

if i > 0<br />

(3.5)<br />

Ri−1(xi) − Ri−1(xi−1)<br />

Here we have introduced the inverse differences in a less conventional way.<br />

But doing so allows for a simple interpretation. In each step, bi is the<br />

r0,0(x) interpolant for the first point <strong>of</strong> the reduced set Xn \ Xi−1 with<br />

function values Ri(xk), xk ∈ Xn \ Xi−1. The block structure in the table<br />

<strong>of</strong> rational interpolants for such a r0,0(x) interpolant is easy to analyze:<br />

whenever bi equals Ri(xi+1), then r0,0(x) ≡ bi is the upper-left corner <strong>of</strong> a<br />

growing block. Note that in such a case bi+1 = ∞. But bi = ∞ is clearly<br />

a necessary condition for (3.2) to be interpolating. Therefore it is assumed<br />

that each subproblem may not lie in the upper-left corner <strong>of</strong> a growing block.<br />

This is equivalent to the assumption that Xn is ordered such that every two<br />

consecutive elements on the main staircase are different, i.e. consecutive<br />

elements should not lie in the same block. Hence, when each subproblem<br />

does not lie in a growing block, two consecutive convergents <strong>of</strong> (3.2) are<br />

always different. Obviously this does not mean that all convergents <strong>of</strong> (3.2)<br />

are different. The special block structure in the table <strong>of</strong> rational interpolants<br />

required for the construction <strong>of</strong> Thiele continued fractions is illustrated in<br />

Figure 3.1.<br />

This discussion immediately motivates a dynamical ordering when confronted<br />

with blocks. For example the modified Thatcher-Tukey algorithm<br />

by Graves-Morris <strong>and</strong> Hopkins [GMH81] does exactly this. For i > 0 the


3.1. Thiele continued fractions 33<br />

Figure 3.1: Illustration <strong>of</strong> the required block structure in the table <strong>of</strong> rational<br />

interpolants for the construction <strong>of</strong> Thiele continued fractions. The<br />

stars represent the entries on the main staircase. Two blocks are shown<br />

which represent different rational interpolants. Some entries on the diagonal<br />

staircase lie in the same block, but two consecutive entries are always<br />

different.<br />

data are reordered so that Ri−1(xi) = Ri−1(xi−1) <strong>and</strong> Ri−1(xi) = ∞. In the<br />

next Section we discuss the more general algorithm <strong>of</strong> Werner, which also<br />

automatically reorders the points, but in such a way that all intermediate<br />

values remain bounded.<br />

Note that we allow bi = 0 such that also infinite function values are<br />

supported. However, the choice f(x0) = b0 = ∞ is not allowed. This follows<br />

immediately from the condition bi = ∞, but it is worth noting that it is also<br />

consistent with the assumed ordering <strong>of</strong> Xn. If f(x0) = ∞ ≡ r0,0(x), then<br />

it follows from the shape <strong>of</strong> the constant infinity block (Proposition 1.3.4)<br />

that also r1,0(x) ≡ ∞, which contradicts the assumption that consecutive<br />

elements should lie in different blocks.<br />

Even when an appropriate ordering is used for Xn, hence every bi = ∞,<br />

then the interpolation property R0(xi) = f(xi) for xi ∈ Xn need not hold.<br />

In other words, the inverse differences may be computed from (3.5) <strong>and</strong><br />

turn out to be finite, but the implicit assumption Rj+1(xj) = 0 may not be<br />

satisfied. The next Proposition says that whenever such a situation occurs,<br />

then the rational interpolation problem itself does not have a solution.<br />

Proposition 3.1.1. If the interpolating continued fraction (3.2) is constructed<br />

from (3.5) <strong>and</strong> is such that bi = ∞ (i = 0,... ,n), then the n-th


34 3. Interpolating continued fractions<br />

convergent <strong>of</strong> R0(x) = U0(x)/V0(x) is irreducible except for factors <strong>of</strong> the<br />

form (x − xj) with xj ∈ Xn−1 unattainable. These factors are characterized<br />

by<br />

Rj+1(xj) = 0 ⇔ xj is unattainable .<br />

Pro<strong>of</strong>. We denote by<br />

Ri(x) =<br />

<br />

Ui(x)<br />

, i = 0,... ,n<br />

Vi(x)<br />

the tails Ri(x) in vector form. Then (3.3) readily becomes<br />

<br />

bj<br />

Rj(x) =<br />

1<br />

<br />

x − xj Uj+1(x)<br />

= Tj(x)Rj+1(x),<br />

0 Vj+1(x)<br />

j = 0,... ,n − 1.<br />

Assuming that bi = ∞ (i = 0,... ,n), we first show that the only common<br />

factors <strong>of</strong> R0(x) are <strong>of</strong> the form (x − xj), with xj ∈ Xn−1.<br />

Assume that R0(x) has a common factor (x − α) with α /∈ Xn−1. For<br />

α /∈ Xn−1, every Tj(α) is not singular, so that we may write<br />

Rn(α) =<br />

bn<br />

1<br />

<br />

= T −1<br />

n−1 · · ·T−1 0 R0(α) =<br />

which is a contradiction. Hence α ∈ Xn−1. This means that R0(x) is<br />

irreducible up to common factors <strong>of</strong> the form (x − xj) <strong>and</strong> by construction<br />

interpolates every xj for which Rj+1(xj) = 0.<br />

If R0(x) contains the factor (x−xj) in numerator <strong>and</strong> denominator, then<br />

<strong>and</strong> also<br />

Rj(xj) = T −1<br />

j−1 · · ·T−1 0 R0(xj) =<br />

Rj(xj) = TjRj+1(xj) =<br />

0<br />

0<br />

0<br />

0<br />

<br />

<br />

bjUj+1(xj)<br />

=<br />

Uj+1(xj)<br />

<br />

,<br />

<br />

0<br />

.<br />

0<br />

Hence the numerator Uj+1(x) <strong>of</strong> Rj+1(x) vanishes at xj. Because<br />

<br />

bn<br />

Rn(xj) = = T<br />

1<br />

−1<br />

n−1 · · ·T−1<br />

j+1Rj+1(xj) <br />

0<br />

= ,<br />

0<br />

it cannot be the case that also Vj+1(xj) = 0, such that Rj+1(xj) = 0.<br />

Analogously, if Rj+1(xj) = 0 then<br />

R0(x) = T0 · · ·Tj−1Rj(xj) =<br />

<br />

0<br />

.<br />

0


3.1. Thiele continued fractions 35<br />

Hence, we have<br />

R0(xj) =<br />

<br />

0<br />

⇔ Rj+1(xj) = 0, j = 0,... ,n − 1.<br />

0<br />

What remains to be shown is that, if R0(x) contains the factor (x − xj)<br />

in numerator <strong>and</strong> denominator, then xj is indeed unattainable. Again by<br />

contradiction, let Rj+1(xj) = 0 <strong>and</strong> assume that the following limit exists<br />

bjUj+1(x)<br />

lim R0(x) = f(xj) ⇔ lim Rj(x) = lim = bj<br />

x→xj<br />

x→xj x→xj Uj+1(x)<br />

For the first limit to exist, also the last limit must exist. In addition<br />

<br />

<br />

(x − xj)Vj+1(x)<br />

lim Rj(x) = bj ⇔ lim bj + = bj<br />

x→xj<br />

x→xj Uj+1(x)<br />

<br />

(x − xj)Vj+1(x)<br />

⇔ lim<br />

= 0.<br />

x→xj Uj+1(x)<br />

x − xj<br />

but Vj+1(xj) = 0 <strong>and</strong> lim<br />

x→xj Uj(x)<br />

= 0, so that we have a contradiction.<br />

In contrast to solving a homogeneous system, this property makes the<br />

continued fraction representation attractive, because it allows for a simple<br />

characterization <strong>of</strong> unattainable points. However, a special ordering is still<br />

assumed for the points Xn. In the next Section, we consider a more general<br />

form <strong>of</strong> Thiele continued fractions combined with a dynamical ordering <strong>of</strong> the<br />

points. The gain is both mathematical <strong>and</strong> numerical. On the one h<strong>and</strong>,<br />

the reordering allows to navigate through a table with more complicated<br />

blocks. On the other h<strong>and</strong>, the computation <strong>of</strong> (3.4) becomes numerically<br />

more robust.<br />

Example 3.1.1. To illustrate Proposition 3.1.1, consider again the data<br />

xi = i for i = 0,... ,4 <strong>and</strong> fi = 2 − (i mod 2). With this ordering, the<br />

Thiele continued fraction is<br />

2 +<br />

x − 0<br />

−1<br />

+ x − 1<br />

0<br />

+ x − 2<br />

−1<br />

Clearly x3 = 3 is unattainable. Because the tail<br />

R2(x) = 0 +<br />

x − 2<br />

−1<br />

+ x − 3<br />

0<br />

+ x − 3<br />

0<br />

evaluated at x1 gives R2(x1) = 0, also x1 = 1 is unattainable.<br />

Note that R2(2) = 0, but x2 = 2 is not unattainable. For the ordering<br />

x0,x2,x4,x1,x3, no Thiele continued fraction can be constructed.<br />

.


36 3. Interpolating continued fractions<br />

3.2 Werner’s algorithm<br />

Werner [Wer79] suggests a recursive method, based on successive continued<br />

fraction reductions <strong>and</strong> reordering <strong>of</strong> the data, such that the intermediate<br />

computations always remain bounded <strong>and</strong> such that insolubility <strong>of</strong> the problem<br />

can be detected. For the description <strong>of</strong> the algorithm it is assumed that<br />

1. ℓ ≥ m. If ℓ ≤ m, then we may swap the roles <strong>of</strong> ℓ <strong>and</strong> m <strong>and</strong> consider<br />

rm,ℓ(x) which interpolates 1/f(xi), xi ∈ Xn.<br />

2. f(xi) = 0, ∞ for xi ∈ Xn. We come back to the case f(xi) = 0, ∞ in<br />

Section 3.5.<br />

The algorithm recursively constructs a continued fraction representation <strong>of</strong><br />

a rational function R0(x)<br />

R0(x) = b0(x) + a0(x)<br />

b1(x)<br />

a1(x)<br />

+<br />

b2(x) + ... + an ′ −1(x)<br />

bn ′(x)<br />

, n ′ ≤ n (3.6)<br />

by applying continued fraction reductions <strong>of</strong> the form<br />

Rj(x) = bj(x) + aj(x)<br />

Rj+1(x)<br />

j = 0... ,n ′ − 1,<br />

where the polynomials aj(x) <strong>and</strong> bj(x) are determined by the interpolation<br />

conditions. Algorithm 3.2.1 clarifies the roles <strong>of</strong> bj(x) <strong>and</strong> aj(x).<br />

The algorithm has two different stopping criteria: in step 3a when all<br />

interpolation data have been processed, or in step 3(b)i in which case there<br />

are unattainable points. The second stopping criterion is motivated by the<br />

following Proposition.<br />

Proposition 3.2.1 (Werner [Wer79]). Let b(x) be the polynomial <strong>of</strong> degree<br />

∂b ≤ γ = ℓ − m that interpolates x0,...,xγ. If there exists an integer<br />

k ≥ ℓ + 1 such that<br />

b(xi) = 0 for i = γ + 1,... ,k − 1<br />

b(xi) = 0 for i = k,... ,ℓ + m,<br />

then the polynomials p ∗ (x) <strong>and</strong> q ∗ (x) given by<br />

q ∗ (x) =<br />

(x − xk)... (x − xℓ+m) if k − 1 < ℓ + m<br />

1 if k − 1 = ℓ + m<br />

p ∗ (x) = q ∗ (x) · b(x)<br />

solve the linearized rational interpolation problem (1.2).<br />

We remark that if the algorithm starts with f(xi) = 0, ∞, then by<br />

construction <strong>and</strong> (3.7), also Rj(xi) = 0, ∞ for xi ∈ Sj.


3.2. Werner’s algorithm 37<br />

Algorithm 3.2.1 Werner’s algorithm [Wer79]<br />

0. (Initialization) Let the set S0 = Xn containing ℓ + m + 1 points <strong>and</strong><br />

function values R0(xi) = f(xi) (xi ∈ S0) be given. Set j = 0, ℓj = ℓ,<br />

mj = m.<br />

1. Set γj = ℓj − mj − rj (with rj ∈ {0,1} but always such that γj ≥ 0 ).<br />

2. Choose γj + 1 points out <strong>of</strong> Sj <strong>and</strong> call them x0,...,xγj . Compute<br />

bj(x), the polynomial <strong>of</strong> degree ∂bj ≤ γj such that bj(xi) = Rj(xi) for<br />

0 ≤ i ≤ γj.<br />

3. Determine additional points (possibly none) in Sj \ {x0,... ,xγj } that<br />

are also interpolated by bj(x) <strong>and</strong> call them xγj+1,... ,xkj−1. Hence<br />

kj ≥ γj + 1 corresponds to the total number <strong>of</strong> points out <strong>of</strong> Sj where<br />

bj(x) interpolates. Let<br />

Sj+1 = Sj \ {x0,... ,xkj−1}.<br />

(a) If kj = ℓj + mj + 1 then Sj+1 = ∅, so that no more data remain<br />

<strong>and</strong> the recursion stops with Rj(x) = bj(x).<br />

(b) Else kj ≤ ℓj + mj <strong>and</strong> Sj+1 = ∅<br />

i. If kj ≥ ℓj + 1, then the recursion stops with Rj(x) = bj(x)<br />

<strong>and</strong> the points in Sj+1 are unattainable.<br />

ii. Else kj < ℓj + 1. Then set<br />

<strong>and</strong><br />

aj(x) = (x − x0)... (x − xkj−1)<br />

Rj+1(xi) =<br />

aj(xi)<br />

Rj(xi) − bj(xi) , xi ∈ Sj+1 (3.7)<br />

ℓj+1 = mj<br />

Set j ← j + 1 <strong>and</strong> go to step 1.<br />

(3.8a)<br />

mj+1 = ℓj − kj. (3.8b)


38 3. Interpolating continued fractions<br />

3.3 Unattainability<br />

In the description <strong>of</strong> the algorithm unattainable points are identified in<br />

step 3(b)i. However, there are possibly more unattainable points than detected<br />

by the algorithm described so far. Similarly as in the Thiele case<br />

(cf. Proposition 3.1.1), these remaining unattainable points are common<br />

zeros <strong>of</strong> the continued fraction (3.6) [Wer79]. The following Proposition<br />

characterizes these common zeros.<br />

Proposition 3.3.1. The common zeros <strong>of</strong> the numerator An ′(x) <strong>and</strong> the<br />

denominator Bn ′(x) <strong>of</strong> the n′ -th convergent <strong>of</strong> the continued fraction (3.6)<br />

constructed from Algorithm 3.2.1 are zeros <strong>of</strong> aj(x) (j = 0,... ,n ′ − 1). If<br />

xk is a zero <strong>of</strong> aj(x) for some j ∈ {0,... ,n ′ − 1} then<br />

Rj+1(xk) = 0 ⇔ An ′(xk) = 0 = Bn ′(xk)<br />

The pro<strong>of</strong> follows the one <strong>of</strong> Proposition 3.1.1 closely.<br />

Hence, including a final check to detect whether the tail Rj+1(x) vanishes<br />

at a zero <strong>of</strong> aj(x) for j = 0,... ,n ′ − 1, guarantees the detection <strong>of</strong> all<br />

unattainable points.<br />

3.4 Non-normality<br />

In order to underst<strong>and</strong> how the algorithm <strong>of</strong> Werner navigates through the<br />

table <strong>of</strong> rational interpolants, the role <strong>of</strong> the parameter rj is crucial.<br />

Werner [Wer79] imposes rj ∈ {0,1}. Since in each step ℓj ≥ mj, clearly<br />

the choice rj = 0 is always possible. Let us assume that no extra points are<br />

interpolated in step 3, so that kj = γj + 1 = ℓj − mj − rj + 1. If ℓj > mj<br />

then rj = 1 is possible. However, the choice rj = 1 then forces rj+1 = 0,<br />

because rj = 1 implies ℓj+1 − mj+1 = mj − ℓj + kj = 0. On the other h<strong>and</strong>,<br />

if ℓj = mj then necessarily rj = 0 so that kj = ℓj − mj + 1 = 1. Because<br />

now ℓj+1 − mj+1 = mj − ℓj + kj = 1, the choice rj+1 = 1 is possible. Hence<br />

subsequent values rj <strong>and</strong> rj+1 may in fact be restricted to 0 ≤ rj +rj+1 ≤ 1.<br />

This was also pointed out by Gutknecht [Gut89].<br />

The value <strong>of</strong> rj also affects the position in the table <strong>of</strong> rational interpolants<br />

<strong>of</strong> the irreducible form <strong>of</strong> the j-th convergent <strong>of</strong> the resulting continued<br />

fraction. It is not difficult to check (in analogy to Proposition 3.4.4)<br />

that with rj = 0 for all j, the irreducible form <strong>of</strong> the convergents <strong>of</strong> the continued<br />

fraction generated by Algorithm 3.2.1 occupy an entry in the table <strong>of</strong><br />

rational interpolants on the diagonal passing through (ℓ −m,0). The resulting<br />

continued fraction is appropriately called a diagonal fraction. Whenever


3.4. Non-normality 39<br />

rj = 1, then the j-th convergent deviates from this diagonal. Hence, allowing<br />

0 ≤ rj + rj+1 ≤ 1 introduces an undesirable freedom which may lead to<br />

awkward degenerate situations [Gut89]. In order to avoid such r<strong>and</strong>omness<br />

<strong>and</strong> to connect easily with Thiele continued fractions, we restrict ourselves<br />

here to continued fractions <strong>of</strong> the form (3.6) generated by Algorithm 3.2.1,<br />

such that subsequent values rj <strong>and</strong> rj+1 satisfy<br />

rj + rj+1 = 1. (3.9)<br />

It follows from Proposition 3.4.4 that with this choice, the irreducible form<br />

<strong>of</strong> subsequent convergents <strong>of</strong> the resulting continued fraction occupy entries<br />

in the table <strong>of</strong> rational interpolants on two neighboring diagonals. The<br />

only possible freedom left is the choice <strong>of</strong> which two diagonals, but this is<br />

fully determined once r0 is chosen. The resulting continued fractions are<br />

staircase fractions. Nevertheless, we refer to such continued fractions as<br />

Thiele-Werner continued fractions, because in case ℓ = m or ℓ = m + 1 <strong>and</strong><br />

no extra points are interpolated in step 3 (hence always kj = γj + 1), these<br />

continued fractions reduce to a Thiele continued fraction. It is worth noting<br />

that Werner [Wer79] originally claimed that rj = 0 should be fixed for the<br />

continued fraction (3.6) to be a classical Thiele continued fraction.<br />

Let us examine some properties <strong>of</strong> convergents <strong>of</strong> Thiele-Werner continued<br />

fractions. This knowledge provides more insight into the particular<br />

structure <strong>of</strong> these continued fractions.<br />

First we introduce some notation. Let R0(x) be a continued fraction<br />

<strong>of</strong> the form (3.6). Denote for every polynomial bi(x) (i = 0,... ,n ′ ), its<br />

exact degree by ∂bi ≤ γi = ℓi − mi − ri <strong>and</strong> for every polynomial aj(x)<br />

(j = 0,... ,n ′ − 1) its exact degree by ∂aj = kj. Furthermore, let ci denote<br />

the coefficient <strong>of</strong> x γi in the polynomial bi(x). For convenience, we introduce<br />

an alternative but equivalent characterization <strong>of</strong> Thiele-Werner continued<br />

fractions.<br />

Proposition 3.4.1. R0(x) is a Thiele-Werner continued fraction if <strong>and</strong><br />

only if<br />

kj = γj + γj+1 + 1, j = 0,... ,n ′ − 1.<br />

Pro<strong>of</strong>. It follows from (3.8) <strong>and</strong> the definition <strong>of</strong> γj (j = 0,... ,n ′ − 1) that<br />

kj = ℓj − mj+1<br />

= γj + mj + rj − ℓj+1 + γj+1 + rj+1<br />

= γj + γj+1 + rj+1 + rj<br />

Hence kj = γj+1 + γj + 1 if <strong>and</strong> only if rj + rj+1 = 1.


40 3. Interpolating continued fractions<br />

Let us denote the convergents <strong>of</strong> a Thiele-Werner continued fraction in<br />

vector form by<br />

<br />

Ai(x)<br />

,<br />

Bi(x)<br />

i = 0,... ,n ′ .<br />

The following Propositions describe the exact degrees ∂Ai <strong>and</strong> ∂Bi <strong>of</strong> Ai(x)<br />

<strong>and</strong> Bi(x).<br />

Proposition 3.4.2. The exact degree ∂Ai <strong>of</strong> the numerator Ai(x) <strong>of</strong> the<br />

i-th convergent <strong>of</strong> a Thiele-Werner continued fraction satisfies<br />

⎧<br />

⎪⎨<br />

≤<br />

∂Ai<br />

⎪⎩ =<br />

i<br />

h=0<br />

γh + i<br />

2<br />

i<br />

γh +<br />

h=0<br />

i + 1<br />

2<br />

if i even<br />

if i odd<br />

(3.10)<br />

<strong>and</strong> Ai(x) is monic if i is odd. If i is even, equality is attained in (3.10) if<br />

<strong>and</strong> only if i/2 h=0 c2h = 0, in which case this is the highest degree coefficient<br />

<strong>of</strong> Ai(x).<br />

Pro<strong>of</strong>. The pro<strong>of</strong> is by induction. For i = 0, it is trivial that A0(x) = b0(x)<br />

has degree ∂A0 ≤ γ0 <strong>and</strong> equality is achieved if the highest degree coefficient<br />

c0 = 0. For i = 1, A1(x) = b0(x)b1(x) + a0(x). Because b0(x)b1(x) is a<br />

polynomial <strong>of</strong> degree at most ∂b0 + ∂b1 < ∂a0 = k0 = γ0 + γ1 + 1, A1(x) is<br />

monic <strong>of</strong> degree ∂A1 = γ0 + γ1 + 1. Assume that the hypothesis holds for<br />

j = 0,... ,i − 1. It follows from the three-term recurrence that<br />

Ai(x) = bi(x)Ai−1(x) + ai−1(x)Ai−2(x),<br />

where A−1(x) = 1 <strong>and</strong> A0(x) = b0(x).<br />

For i even, we have<br />

∂(bi(x)Ai−1(x)) = ∂bi + i−1<br />

h=0 γh + (i−1)+1<br />

2<br />

≤ i<br />

h=0 γh + i<br />

2<br />

∂(ai−1(x)Ai−2(x)) ≤ γi + γi−1 + 1 + i−2<br />

h=0 γh + i−2<br />

2<br />

= i<br />

h=0 γh + i<br />

2 .<br />

Hence ∂Ai ≤ i h=0 γh + i<br />

2 , <strong>and</strong> equality is attained if <strong>and</strong> only if the highest<br />

degree coefficient <strong>of</strong> Ai(x) satisfies i/2 h=0 c2h = 0.


3.4. Non-normality 41<br />

For i odd, we have<br />

∂(bi(x)Ai−1(x)) ≤ ∂bi + i−1<br />

h=0 γh + i−1<br />

2<br />

≤ i<br />

h=0 γh + i−1<br />

2<br />

∂(ai−1(x)Ai−2(x)) = γi + γi−1 + 1 + i−2<br />

h=0 γh + i−1<br />

2<br />

= i<br />

h=0 γh + i−1<br />

2<br />

Thus ∂Ai = i<br />

h=0 γh + i+1<br />

2 <strong>and</strong> Ai(x) is monic.<br />

+ 1.<br />

Proposition 3.4.3. The exact degree ∂Bi <strong>of</strong> the denominator Bi(x) <strong>of</strong> the<br />

i-th convergent <strong>of</strong> a Thiele-Werner continued fraction satisfies<br />

⎧<br />

= 0 if i = 0<br />

i ⎪⎨ = γh +<br />

∂Bi h=1<br />

⎪⎩<br />

i<br />

if i > 0 even<br />

2<br />

(3.11)<br />

i i − 1<br />

≤ γh + if i odd<br />

2<br />

h=1<br />

<strong>and</strong> Bi(x) is monic if i is even. If i is odd, equality is attained in (3.11)<br />

if <strong>and</strong> only if (i+1)/2<br />

h=1<br />

c2h−1 = 0, in which case this is the highest degree<br />

coefficient <strong>of</strong> Bi(x).<br />

Pro<strong>of</strong>. The pro<strong>of</strong> is by induction on i. The case i = 0 where B0(x) =<br />

1 is trivial. For i = 1, it is also trivial that B1(x) = b1(x) which is <strong>of</strong><br />

degree ∂B1 ≤ γ1 <strong>and</strong> equality is achieved if c1 = 0. For i = 2, B2(x) =<br />

b1(x)b2(x) + a2(x). Because b1(x)b2(x) is a polynomial <strong>of</strong> degree at most<br />

∂b1 + ∂b2 < ∂a2 = γ2 + γ1 + 1, B2(x) is a monic polynomial <strong>of</strong> degree<br />

∂B2 = γ2 + γ1 + 1. Assume that the hypothesis holds for j = 0,... ,i − 1.<br />

It follows from the three-term recurrence, that<br />

where B−1(x) = 0 <strong>and</strong> B1(x) = 1.<br />

For i even,<br />

Bi(x) = bi(x)Bi−1(x) + ai−1(x)Bi−2(x),<br />

∂(bi(x)Bi−1(x)) ≤ ∂bi + i−1<br />

h=1 γh + (i−1)−1<br />

≤ i<br />

h=1 γh + i<br />

2<br />

− 1<br />

∂(ai−1(x)Bi−2(x)) = γi + γi−1 + 1 + i−2<br />

h=1 γh + i−2<br />

2<br />

= i<br />

h=1 γh + i<br />

2 .<br />

Hence ∂Bi = i<br />

h=1 γh + i<br />

2 <strong>and</strong> Bi(x) is monic.<br />

2


42 3. Interpolating continued fractions<br />

For i odd, we have<br />

∂(bi(x)Bi−1(x)) = ∂bi + i−1<br />

h=1 γh + i−1<br />

2<br />

≤ i<br />

h=1 γh + i−1<br />

2<br />

∂(ai−1(x)Bi−2(x)) ≤ γi + γi−1 + 1 + i−2<br />

h=1 γh + (i−2)−1<br />

2<br />

= i<br />

h=1 γh + i−1<br />

2 .<br />

Hence ∂Bi ≤ i h=1 γh + i−1<br />

2 , <strong>and</strong> equality is attained if <strong>and</strong> only if the<br />

highest degree coefficient <strong>of</strong> Bi(x) satisfies (i+1)/2<br />

h=1<br />

c2h−1 = 0.<br />

An almost immediate consequence <strong>of</strong> Propositions 3.4.2 <strong>and</strong> 3.4.3 is the<br />

following.<br />

Proposition 3.4.4. The irreducible form <strong>of</strong> the i-th convergent <strong>of</strong> a Thiele-<br />

Werner continued fraction occupies an entry in the table <strong>of</strong> rational interpolants<br />

• on the diagonal starting at (γ0,0) if i is even.<br />

• on the diagonal, starting at (γ0 + 1,0) if i is odd.<br />

Pro<strong>of</strong>. Let<br />

(k,l) =<br />

<br />

( i h=0 γh + i<br />

2 , i<br />

( i h=0 γh + i+1<br />

2 , i<br />

h=1 γh + i<br />

2<br />

h=1 γh + i−1<br />

2<br />

) i even<br />

) i odd<br />

By construction (Ai(x),Bi(x)) ∈ R(k,l) <strong>and</strong> satisfies the linearized interpolation<br />

conditions for at least<br />

k0 + ... + ki−1 + γi + 1 = (γ0 + 2<br />

i<br />

γh + i) + 1 = k + l + 1<br />

points out <strong>of</strong> Xn. Hence it is necessarily equivalent with the minimum degree<br />

solution (p ∗ (x),q ∗ (x)) in R(k,l) for these data.<br />

The particular block structure after reordering the points for the construction<br />

<strong>of</strong> Thiele-Werner continued fractions, is illustrated in Figure 3.2.<br />

Another aspect is the connection between the degrees <strong>of</strong> the tails<br />

<br />

Ui(x)<br />

Ri(x) = ∈ R(ℓi,mi),<br />

Vi(x)<br />

h=1<br />

<strong>and</strong> the degrees <strong>of</strong> the convergents. They are related as follows.


3.5. <strong>Practical</strong> aspects <strong>and</strong> numerical stability 43<br />

Figure 3.2: Illustration <strong>of</strong> the block structure in the table <strong>of</strong> rational interpolants<br />

after reordering the points for the construction <strong>of</strong> Thiele-Werner<br />

continued fractions. The stars represent the entries on a block staircase.<br />

Two blocks are shown which represent different rational interpolants.<br />

Proposition 3.4.5. ℓ0 = ℓ, m0 = m <strong>and</strong> for i > 0<br />

ℓi = ℓ − ∂Ai−1, mi = m − ∂Bi, if i = even<br />

ℓi = m − ∂Bi−1, mi = ℓ − ∂Ai, if i = odd<br />

Pro<strong>of</strong>. Clearly ℓ0 = ℓ, m0 = m <strong>and</strong> from (3.8) for i > 0<br />

ℓi = mi−1 =<br />

ℓ − k0 − k2 − ... − ki−2 if i = even<br />

m − k1 − k3 − ... − ki−2 if i = odd.<br />

After substitution <strong>of</strong> kj = γj+1 + γj + 1 (j = 0,... ,i − 1), the result is<br />

immediate.<br />

3.5 <strong>Practical</strong> aspects <strong>and</strong> numerical stability<br />

The main computational steps <strong>of</strong> the algorithm involve value transformations<br />

<strong>of</strong> the form<br />

Rj+1(xi) =<br />

aj(xi)<br />

Rj(xi) − bj(xi) , xi ∈ Sj+1


44 3. Interpolating continued fractions<br />

<strong>and</strong> checking for additional points that are interpolated by bj(x). Both steps<br />

are realized efficiently by considering the Newton form <strong>of</strong> the interpolating<br />

polynomial with its remainder term. Let<br />

Rj(x) = bj(x) + Rj[x0 · · · xγj x](x − x0) · · · (x − xγj ),<br />

then bj(x) also interpolates in some xi ∈ Sj\{x0,... ,xγj } (step 3) if <strong>and</strong> only<br />

if the divided difference Rj[x0 · · · xγjxi] = 0. If bj(x) does not interpolate<br />

any additional points, hence kj = γj + 1, then aj(x) = (x − x0) · · · (x − xγj )<br />

<strong>and</strong> we have<br />

which implies<br />

Rj[x0 · · · xγjxi] = Rj(xi) − bj(xi)<br />

, xi ∈ Sj+1<br />

aj(xi)<br />

Rj+1(xi) =<br />

1<br />

Rj[x0 · · · xγj xi] , xi ∈ Sj+1.<br />

When additional points xγj+1 ,...,xkj−1 are interpolated, then<br />

Rj+1(xi) = (xi − xγj+1 ) · · · (xi − xkj−1)<br />

Rj[x0 · · · xγjxi] , xi ∈ Sj+1. (3.12)<br />

Hence both the reductions in step 3(b)ii <strong>and</strong> checking for additional interpolated<br />

points are based on the same quantities <strong>and</strong> therefore do not require<br />

any extra calculations.<br />

Algorithm 3.2.1 is one <strong>of</strong> the few algorithms for rational interpolation <strong>of</strong><br />

which a stability analysis exists. It is clear that the algorithm relies heavily<br />

on the computation <strong>of</strong> divided differences. It is also well-known that the<br />

accuracy <strong>of</strong> computing divided differences is influenced by the ordering <strong>of</strong><br />

the points [Hig02, p.111]. It is therefore natural to exploit the remaining<br />

freedom in the choice for the points x0,... ,xγj<br />

(step 2 in the description<br />

<strong>of</strong> the algorithm) to avoid error build up as much as possible. Graves-<br />

Morris [GM80] argues to choose the interpolation points xk for 0 ≤ k ≤ γj<br />

in each step such that the divided differences satisfy<br />

Rj[x0 · · · xk] = min<br />

xi∈Sj\{x0,...,xk−1} |Rj[x0 · · · xk−1xi]| . (3.13)<br />

Denote by R f j (xi) with xi ∈ Sj, the value actually obtained for R f j (xi)<br />

when computed from (3.12). The superscript f emphasizes the dependence<br />

<strong>of</strong> (3.12) on the function values f(xi) = fi. With the ordering (3.13), which


3.5. <strong>Practical</strong> aspects <strong>and</strong> numerical stability 45<br />

has some similarities to pivoting in Gaussian elimination, it has been shown<br />

by Graves-Morris [GM80] that<br />

R f 0(xi) = R e f 0(xi), xi ∈ S0 (3.14a)<br />

with f a perturbed version <strong>of</strong> f where<br />

<br />

<br />

<br />

<br />

fi − fi<br />

≤ (6 · 2 n − 5)ǫmach |fi| . (3.14b)<br />

Although somewhat pessimistic, (3.14) indeed shows that the algorithm is<br />

backward stable. Without pivoting, formula (3.12) has not been proven<br />

backward stable. The strategy (3.13) basically avoids division by small<br />

numbers in (3.12) as much as possible. Since division by a small number<br />

is <strong>of</strong>ten a source <strong>of</strong> large round<strong>of</strong>f errors, the strategy (3.13) makes perfect<br />

sense. In addition, recall that Algorithm 3.2.1 also removes the zero (or<br />

almost zero) divided differences in each iteration.<br />

Note that a backward error bound says something about which problem<br />

actually has been solved. It is not a forward error, which says how accurate<br />

the continued fraction evaluation is. It is well-known that the backward<br />

evaluation <strong>of</strong> a continued fraction is numerically stable in a lot <strong>of</strong> cases [JT74,<br />

CVdC85, VDC81].<br />

Comparing (3.4) with (3.12) suggests that the construction <strong>of</strong> Thiele<br />

continued fractions can also be combined with the pivoting strategy. However,<br />

if the minimal divided difference is zero, then an inverse difference becomes<br />

infinite, which is not allowed. For the same reason, also the modified<br />

Thatcher-Tukey algorithm by Graves-Morris <strong>and</strong> Hopkins [GMH81] cannot<br />

be combined with (3.13). The numerical merit <strong>of</strong> Werner’s algorithm exactly<br />

lies in the fact that (3.13) cannot be zero.<br />

Besides numerical advantages, the pivoting strategy (3.13) also allows us<br />

to h<strong>and</strong>le infinite (poles) <strong>and</strong> zero function values in a straightforward way.<br />

Note that the possibility f(xi) = 0, ∞ for xi ∈ Xn was originally excluded.<br />

However, with the ordering (3.13), zero function values will always be treated<br />

first, i.e. they will be interpolated by b0(x). In addition, infinite function<br />

values will never be treated first, but due to the value transformation (3.12),<br />

they will be treated second, i.e. they are interpolated by b1(x). Hence, with<br />

this ordering the polynomials bj(x) ≡ ∞ are always well defined, even when<br />

f(xi) = 0, ∞ for some xi ∈ Xn. Only in these points can it be the case that<br />

R0(xi) = 0, ∞ for xi ∈ S0 <strong>and</strong> possibly also R1(xi) = 0 for xi ∈ S1, but<br />

thereafter always Rj(xi) = 0, ∞ for xi ∈ Sj (j > 1). Therefore the impact<br />

<strong>of</strong> such values on the entire recursion is minimal. One can think <strong>of</strong> their<br />

treatment as an automatic preprocessing step.


Asymptotic behavior<br />

4<br />

In the previous Chapter a numerical algorithm for rational interpolation is<br />

given that can deal with vertical asymptotes (poles). In this Chapter, we<br />

add the possibility to interpolate at infinity <strong>and</strong> show how the algorithm <strong>of</strong><br />

Werner can be extended in a natural way to h<strong>and</strong>le this data. If a special<br />

ordering is imposed, i.e. the point at infinity is considered the last interpolation<br />

point, then the structure <strong>of</strong> a Thiele-Werner continued fraction can<br />

be exploited in a straightforward way to interpolate also at infinity.<br />

4.1 <strong>Interpolation</strong> at infinity<br />

By an interpolation condition at infinity we mean that the first nonzero<br />

term in the Laurent expansion at infinity <strong>of</strong> the rational interpolant rℓ,m(x)<br />

matches the first nonzero term <strong>of</strong> the Laurent expansion at infinity <strong>of</strong> f(x).<br />

For a rational interpolant in classical power form<br />

rℓ,m(x) = α0 + α1x + ... + αℓx ℓ<br />

β0 + β1x + ... + βmx m<br />

the first (nonzero) term <strong>of</strong> the Laurent expansion at infinity is<br />

αℓ ′<br />

βm ′<br />

<br />

x ℓ′ −m ′<br />

where αℓ ′ <strong>and</strong> βm ′ (ℓ′ ≤ ℓ <strong>and</strong> m ′ ≤ m) denote the nonzero highest degree<br />

coefficients <strong>of</strong> the numerator <strong>and</strong> denominator <strong>of</strong> rℓ,m(x) respectively.<br />

Let the first (nonzero) term <strong>of</strong> the Laurent expansion at infinity <strong>of</strong> f(x)<br />

be given by ξx k (k ∈ Z,ξ = 0). Then<br />

rℓ,m(∞) = f(∞) ⇔<br />

αℓ ′<br />

βm ′<br />

= ξ = 0 <strong>and</strong> ℓ ′ − m ′ = k. (4.1)<br />

47


48 4. Asymptotic behavior<br />

In the sequel, we let ℓ −m = k <strong>and</strong> consider rational interpolants rm+k,m(x)<br />

with m + k ≥ 0. Hence, we are interested in determining an irreducible<br />

rational function rm+k,m(x) for which an interpolation condition (4.1) at<br />

infinity <strong>and</strong> interpolation conditions (1.1) at finite points X2m+k−1 are given.<br />

It may be assumed that m > 0, i.e. rm+k,m(x) is truly rational. Otherwise<br />

rk,0(x) is a polynomial <strong>and</strong> the problem is trivial. Note that if m > 0 <strong>and</strong><br />

m + k ≥ 0, then X2m+k−1 = ∅, i.e. there is at least one finite interpolation<br />

point. For practical considerations, as before, we may also assume that<br />

m + k ≥ m, hence k ∈ N. If m + k < m then we consider rm,m+k(x) =<br />

1/rm+k,m(x) which interpolates<br />

rm,m+k(xi) = 1<br />

f(xi) , xi ∈ X2m+k−1 ∪ {∞}.<br />

4.2 Unattainability <strong>and</strong> non-normality<br />

A non-trivial polynomial couple (p(x),q(x)) ∈ R(m+k,m) that satisfies the<br />

linearized finite interpolation conditions (1.2) for X2m+k−1 <strong>and</strong> also<br />

αm+k − ξβm = 0 (4.2)<br />

always exists, because there are only 2m+k+1 conditions for the 2m+k+2<br />

unknowns α0,... ,αm+k <strong>and</strong> β0,...,βm. In addition, for any two non-trivial<br />

polynomial couples (p1(x),q1(x)) <strong>and</strong> (p2(x),q2(x)) in R(m + k,m) that<br />

satisfy (4.2)–(1.2), the polynomial (p1q2 − p2q1)(x) is <strong>of</strong> degree at most<br />

2m + k − 1 — due to (4.2), the coefficient <strong>of</strong> the term x 2m+k is zero — <strong>and</strong><br />

vanishes at 2m + k points X2m+k−1. Therefore it must vanish identically<br />

<strong>and</strong> we have p1(x)q2(x) = p2(x)q1(x). Hence all solutions <strong>of</strong> (4.2)–(1.2) are<br />

equivalent <strong>and</strong> have the same irreducible form rm+k,m(x). As in the case<br />

<strong>of</strong> rational interpolation involving only finite data, the original non-linear<br />

problem (4.1)–(1.1) need not have a solution. We say that the point at<br />

infinity is unattainable if <strong>and</strong> only if rm+k,m(∞) = f(∞). Because there<br />

is no such thing as a deficiency polynomial including the point at infinity,<br />

the complete block structure for rational interpolation problems involving<br />

conditions at infinity is more complex than the one given in Chapter 1 <strong>and</strong><br />

is fully described by Gutknecht [Gut93a]. Here we assume that the ordering<br />

<strong>of</strong> the data is such that all finite interpolation data X2m+k−1 come first <strong>and</strong><br />

that the point at infinity is always last. With this consideration we can say<br />

the following concerning two subsequent entries on a staircase in the table <strong>of</strong><br />

rational interpolants through the diagonals starting at (k,0) <strong>and</strong> (k + 1,0).


4.3. Modification <strong>of</strong> Werner’s algorithm 49<br />

Proposition 4.2.1. For m + k > 0 <strong>and</strong> k ≥ 0, let (p(x),q(x)) ≡ (0,0) ∈<br />

R(m+k,m) satisfy the linearized interpolation conditions (1.2) for X2m+k−1<br />

<strong>and</strong> let (p ∗ (x),q ∗ (x)) ∈ R(m+k,m−1) be the minimum degree solution for<br />

X2m+k−1. Then<br />

∂p ∗ < m + k ⇒ p ∗ (x)q(x) = q ∗ (x)p(x).<br />

Pro<strong>of</strong>. If ∂p ∗ < m + k then the polynomial (p ∗ q − q ∗ p)(x) is <strong>of</strong> degree<br />

∂(p ∗ q − q ∗ p) ≤ 2m + k − 1.<br />

Hence it must vanish identically for it has more than 2m + k − 1 distinct<br />

zeros X2m+k−1.<br />

Proposition 4.2.1 says that if the minimum degree solution for the finite<br />

data X2m+k−1 in R(m + k,m − 1) is not <strong>of</strong> full numerator degree, then any<br />

non-trivial polynomial couple in R(m+k,m) that also satisfies (1.2) for the<br />

data X2m+k−1 is equivalent with this minimum degree solution. This implies<br />

that the sought polynomial couple in R(m + k,m) which also satisfies the<br />

interpolation condition at infinity exists if <strong>and</strong> only if the minimum degree<br />

solution in R(m + k,m − 1) for X2m+k−1, when not <strong>of</strong> maximal numerator<br />

degree, already behaves asymptotically as required.<br />

4.3 Modification <strong>of</strong> Werner’s algorithm<br />

In this Section, a modification <strong>of</strong> the algorithm <strong>of</strong> Werner is given that<br />

determines the existence <strong>of</strong> <strong>and</strong> constructs a rational function R0(x) that<br />

satisfies the interpolation conditions for X2m+k−1 ∪ {∞} with k ≥ 0. The<br />

recursion itself remains the same. The only essential change we make to the<br />

algorithm <strong>of</strong> Werner, is to modify the termination steps 3a <strong>and</strong> 3(b)i <strong>and</strong><br />

fix the initialization.<br />

The main idea is to apply the recursion <strong>of</strong> Algorithm 3.2.1 to the finite<br />

data X2m+k−1 first <strong>and</strong> treat the point at infinity last. In this way a rational<br />

function in R(m + k,m) results that also satisfies the interpolation<br />

condition at infinity. From Proposition 4.2.1 it can be detected when the<br />

point at infinity cannot be interpolated. Crucial are <strong>of</strong> course also Propositions<br />

3.4.2 <strong>and</strong> 3.4.3 which express the exact degree properties <strong>of</strong> convergents<br />

<strong>of</strong> a Thiele-Werner continued fraction. The highest degree coefficient in the<br />

numerator (respectively in the denominator) <strong>of</strong> an odd (respectively even)<br />

convergent is normalized to 1. In case the convergent is <strong>of</strong> full degree, a formula<br />

is given for the highest degree coefficient in the numerator (respectively


50 4. Asymptotic behavior<br />

the denominator) <strong>of</strong> an even (respectively odd) convergent. This knowledge<br />

is exploited to ensure interpolation at infinity.<br />

Proposition 4.3.1 (k ≥ 0). Algorithm 4.3.1 constructs a Thiele-Werner<br />

continued fraction which interpolates at infinity or detects that infinity is<br />

unattainable.<br />

Pro<strong>of</strong>. The recursion is clearly analogous to the one <strong>of</strong> Algorithm 3.2.1. The<br />

only steps that need explanation are the initialization <strong>and</strong> the termination<br />

steps.<br />

Consider the initialization first. The notation ˆ S0 <strong>and</strong> S0 merely serves<br />

to distinguish between finite interpolation points <strong>and</strong> the point at infinity,<br />

which is treated last. The choice ℓ0 = m + k <strong>and</strong> m0 = m indicates the<br />

target degrees. Clearly r0 = 0 is always possible <strong>and</strong> γ0 = ℓ0 − m0 − r0 = k,<br />

so that the algorithm constructs approximants <strong>of</strong> which the irreducible form<br />

are entries in the table <strong>of</strong> rational interpolants on the diagonals (k,0) <strong>and</strong><br />

(k + 1,0) respectively. Recall from Propositions 3.4.2–3.4.3 <strong>and</strong> 3.4.5, that<br />

the exact degrees <strong>of</strong> the numerator <strong>and</strong> denominator <strong>of</strong> an even convergent<br />

<strong>of</strong> a Thiele-Werner continued fraction with γ0 = k satisfy,<br />

∂Aj ≤ ∂Bj + k (4.4a)<br />

∂Bj = m − mj<br />

(4.4b)<br />

where equality holds if <strong>and</strong> only if c0 + c2 + · · · + cj = 0. For an odd<br />

convergent we have<br />

∂Aj ≥ ∂Bj + k + 1 (4.5a)<br />

∂Aj = m + k − mj<br />

(4.5b)<br />

where equality holds if <strong>and</strong> only if c1 + c3 + · · · + cj = 0.<br />

Due to the recursion it is almost trivial that in each step γj+1 ≤ # ˆ Sj <strong>and</strong><br />

clearly γj +1 (interpolation) conditions are necessary for the construction <strong>of</strong><br />

the polynomial bj(x). In step 2a these are obtained from the finite data. In<br />

step 2b however, there are only γj = ℓj + mj finite data left. The remaining<br />

interpolation condition is at infinity. If bj(x) is constructed following (4.3)<br />

then R0(x) with Rj(x) = bj(x) interpolates at infinity according to (4.1).<br />

Indeed, γj = ℓj − mj − rj = ℓj + mj implies that both mj = 0 <strong>and</strong> rj = 0.<br />

Hence due to the initialization r0 = 0 <strong>and</strong> from (3.9) follows that j is even.<br />

So that c0 + c2 + · · · + cj = ξ = 0 is the highest degree coefficient <strong>of</strong> Aj(x)<br />

by construction, <strong>and</strong> from (4.4) we know that<br />

∂Aj = m − mj + k = m + k<br />

∂Bj = m − mj = m.


4.3. Modification <strong>of</strong> Werner’s algorithm 51<br />

Algorithm 4.3.1 Werner’s algorithm with interpolation at infinity (k ≥ 0)<br />

0. (Initialization) Let the set ˆ S0 = S0∪{∞} = X2m+k−1∪{∞} containing<br />

2m + k + 1 points <strong>and</strong> function values R0(xi) = f(xi) (xi ∈ ˆ S0) be<br />

given. Set j = 0, ℓj = m + k, mj = m <strong>and</strong> r0 = 0.<br />

1. Set γj = ℓj − mj − rj (with rj + rj+1 = 1)<br />

2. (a) If #Sj ≥ γj +1 then choose γj +1 points out <strong>of</strong> Sj <strong>and</strong> call them<br />

x0,... ,xγj . Compute bj(x), the polynomial <strong>of</strong> ∂bj ≤ γj such that<br />

bj(xi) = Rj(xi) for 0 ≤ i ≤ γj.<br />

(b) Else #Sj = γj (# ˆ Sj = γj + 1). Compute bj(x), the polynomial<br />

<strong>of</strong> ∂bj ≤ γj such that<br />

bj(xi) = Rj(xi), xi ∈ Sj (4.3a)<br />

cj = ξ − (c0 + c2 + ... + cj−2). (4.3b)<br />

The recursion stops with kj = γj + 1 <strong>and</strong> Rj(x) = bj(x).<br />

3. Determine additional points (possibly none) in Sj \ {x0,... ,xγj } that<br />

are also interpolated by bj(x) <strong>and</strong> call them xγj+1,... ,xkj−1. Hence<br />

kj ≥ γj + 1 corresponds to the total number <strong>of</strong> points out <strong>of</strong> Sj where<br />

bj(x) interpolates. Let<br />

Sj+1 = Sj \ {x0,...,xkj−1}, ˆ Sj+1 = Sj+1 ∪ {∞}.<br />

(a) If kj ≥ ℓj + 1 then the recursion stops with Rj(x) = bj(x) <strong>and</strong><br />

the points in Sj+1 are unattainable.<br />

i. For j even, if c0 + c2 + ... + cj = ξ then also the point at<br />

infinity is unattainable.<br />

ii. For j odd, also the point at infinity is unattainable.<br />

(b) Else kj < ℓj + 1. Then set<br />

aj(x) = (x − x0)... (x − xkj−1)<br />

Rj+1(xi) =<br />

aj(xi)<br />

Rj(xi) − bj(xi) , xi ∈ Sj+1<br />

<strong>and</strong> ℓj+1 = mj, mj+1 = ℓj − kj. Set j ← j + 1 <strong>and</strong> go to step 1.


52 4. Asymptotic behavior<br />

Since Bj(x) is monic, the point at infinity is properly interpolated.<br />

In case <strong>of</strong> termination in step 3a, then kj ≥ ℓj +1 <strong>and</strong> ℓj +mj −kj points<br />

remain in Sj+1. Let<br />

s(x) = <br />

(x − xi)<br />

xi∈Sj+1<br />

<strong>and</strong> consider the polynomials p ∗ (x) = Aj(x)s(x) <strong>and</strong> q ∗ (x) = Bj(x)s(x)<br />

which solve (1.2) for X2m+k−1. If j is even then from (4.4) we have<br />

∂p ∗ = ∂Aj + ∂s ≤ m + k − mj + ℓj + mj − kj = m + k − (kj − ℓj)<br />

∂q ∗ = ∂Bj + ∂s = m − mj + ℓj + mj − kj = m − (kj − ℓj)<br />

If j is odd then from (4.5) we have<br />

∂p ∗ = ∂Aj + ∂s = m + k − mj + ℓj + mj − kj = m + k − (kj − ℓj)<br />

∂q ∗ = ∂Bj + ∂s ≤ m − 1 − mj + ℓj + mj − kj = m − 1 − (kj − ℓj)<br />

In both cases (p ∗ (x),q ∗ (x)) ∈ R(m+k,m−1) <strong>and</strong> solves (1.2) for X2m+k−1.<br />

Hence by construction it is the minimum degree solution <strong>of</strong> the rational<br />

interpolant rm+k,m−1(x) for X2m+k−1. Since kj ≥ ℓj + 1, also ∂p ∗ < m + k<br />

so that Proposition 4.2.1 applies. For j odd, ∂p ∗ − ∂q ∗ ≥ k + 1, hence the<br />

point at infinity cannot be interpolated. For j even, the point at infinity is<br />

interpolated if <strong>and</strong> only if c0 + c2 + · · · + cj = ξ.<br />

Note that the resulting Thiele-Werner continued fraction R0(x) does<br />

not need to be irreducible, unless it passes the last denominator check <strong>of</strong><br />

Werner.<br />

4.4 Connection with Thiele continued fractions<br />

Algorithm 4.3.1 is valid for arbitrary k ≥ 0. For k = 0, it delivers a Thiele<br />

continued fraction if <strong>and</strong> only if in each step no extra points are interpolated.<br />

For k = 1 however, the resulting fraction R0(x) is not a Thiele continued<br />

fraction even if in each step no extra points are interpolated. The subsequent<br />

convergents <strong>of</strong> R0(x) are constructed such that their irreducible form are<br />

entries in the table <strong>of</strong> rational interpolants on the diagonals (k,0) <strong>and</strong> (k +<br />

1,0) respectively, whereas the irreducible form <strong>of</strong> subsequent convergents <strong>of</strong><br />

a Thiele continued fraction lie on the main staircase, hence on the diagonals<br />

(0,0) <strong>and</strong> (1,0).<br />

By a slight modification <strong>of</strong> the algorithm, convergents <strong>of</strong> R0(x) can be<br />

constructed to lie on the diagonals (k − 1,0) <strong>and</strong> (k,0) respectively. In view


4.4. Connection with Thiele continued fractions 53<br />

Algorithm 4.4.1 Werner’s algorithm with interpolation at infinity (k > 0)<br />

0. (Initialization) Let the set ˆ S0 = S0∪{∞} = X2m+k−1∪{∞} containing<br />

2m + k + 1 points <strong>and</strong> function values R0(xi) = f(xi) (xi ∈ ˆ S0) be<br />

given. Set j = 0, ℓj = m + k, mj = m <strong>and</strong> r0 = 1.<br />

1. Set γj = ℓj − mj − rj (with rj + rj+1 = 1)<br />

2. (a) If #Sj ≥ γj +1 then choose γj +1 points out <strong>of</strong> Sj <strong>and</strong> call them<br />

x0,... ,xγj . Compute bj(x), the polynomial <strong>of</strong> ∂bj ≤ γj such that<br />

bj(xi) = Rj(xi) for 0 ≤ i ≤ γj.<br />

(b) Else #Sj = γj (# ˆ Sj = γj + 1). Compute bj(x), the polynomial<br />

<strong>of</strong> ∂bj ≤ γj such that<br />

bj(xi) = Rj(xi), xi ∈ Sj<br />

cj = 1<br />

ξ − (c1 + c3 + ... + cj−2).<br />

The recursion stops with kj = γj + 1 <strong>and</strong> Rj(x) = bj(x).<br />

3. Determine additional points (possibly none) in Sj \ {x0,... ,xγj } that<br />

are also interpolated by bj(x) <strong>and</strong> call them xγj+1,... ,xkj−1. Hence<br />

kj ≥ γj + 1 corresponds to the total number <strong>of</strong> points out <strong>of</strong> Sj where<br />

bj(x) interpolates. Let<br />

Sj+1 = Sj \ {x0,...,xkj−1}, ˆ Sj+1 = Sj+1 ∪ {∞}.<br />

(a) If kj ≥ ℓj + 1 then the recursion stops with Rj(x) = bj(x) <strong>and</strong><br />

the points in Sj+1 are unattainable.<br />

i. For j odd, if c1 + c3 + ... + cj = 1<br />

then also the point at<br />

infinity is unattainable.<br />

ii. For j even, also the point at infinity is unattainable.<br />

(b) Else kj < ℓj + 1. Then set<br />

aj(x) = (x − x0)... (x − xkj−1)<br />

Rj+1(xi) =<br />

aj(xi)<br />

Rj(xi) − bj(xi) , xi ∈ Sj+1<br />

<strong>and</strong> ℓj+1 = mj, mj+1 = ℓj − kj. Set j ← j + 1 <strong>and</strong> go to step 1.<br />

ξ


54 4. Asymptotic behavior<br />

<strong>of</strong> Proposition 3.4.4 it is not difficult to see that we need to choose γ0 =<br />

m+k −m−r0 = k −1 for k > 0, hence r0 = 1. But it is interesting to notice<br />

how this affects the interpolation condition at infinity. The recursion remains<br />

basically the same, only the roles <strong>of</strong> numerator <strong>and</strong> denominator <strong>and</strong> <strong>of</strong> odd<br />

<strong>and</strong> even swap. This is made explicit by the analogue <strong>of</strong> Proposition 4.2.1<br />

for two subsequent entries on a staircase in the table <strong>of</strong> rational interpolants<br />

through the diagonals starting at (k − 1,0) <strong>and</strong> (k,0).<br />

Proposition 4.4.1. For m,k > 0, let (p(x),q(x)) ≡ (0,0) ∈ R(m +<br />

k,m) satisfy the linearized interpolation conditions (1.2) for X2m+k−1 <strong>and</strong><br />

let (p ∗ (x),q ∗ (x)) ∈ R(m + k − 1,m) be the minimum degree solution for<br />

X2m+k−1. Then<br />

∂q ∗ < m ⇒ p ∗ (x)q(x) = q ∗ (x)p(x).<br />

Pro<strong>of</strong>. If ∂q ∗ < m then the polynomial (p ∗ q − q ∗ p)(x) is <strong>of</strong> degree<br />

∂(p ∗ q − q ∗ p) ≤ 2m + k − 1.<br />

Hence it must vanish identically for it has more than 2m + k − 1 distinct<br />

zeros X2m+k−1.<br />

For completeness the description for constructing entries on the diagonals<br />

(k − 1,0) <strong>and</strong> (k,0) is given in Algorithm 4.4.1. Compared to Algorithm<br />

4.3.1, only the initialization (r0 = 1) <strong>and</strong> the termination steps 3a<br />

<strong>and</strong> 2b are different. The pro<strong>of</strong> for the correctness is almost identical to<br />

Proposition 4.3.1 <strong>and</strong> is therefore omitted. Remark that Proposition 4.4.1<br />

should be used instead <strong>of</strong> Proposition 4.2.1.<br />

4.5 Illustrations<br />

In this Section an example <strong>of</strong> a solvable <strong>and</strong> an unsolvable problem is given.<br />

Example 4.5.1. To illustrate a nontrivial unsolvable problem, consider the<br />

function f(x) = xarctan( 1<br />

x ) which has a Laurent expansion at x = ∞ <strong>of</strong> the<br />

form<br />

f(x) = 1 − 1 1 1 1<br />

+ − + + ...<br />

3x2 5x4 7x4 9x6 Hence we may want to approximate f(x) by a rational function <strong>of</strong> the form<br />

rm,m(x) including interpolation at infinity. For m = 3 <strong>and</strong> the linearly<br />

spaced data<br />

X5 = {−0.5, −0.3, −0.1,0.1,0.3,0.5},


4.5. Illustrations 55<br />

the point at infinity is unattainable. This can be seen from a solution <strong>of</strong> the<br />

linearized problem (4.2)–(1.2). The coefficient matrix is <strong>of</strong> full rank, hence<br />

the kernel is one dimensional. From (4.2)–(1.2) we find α1 = α3 = β1 =<br />

β3 = 0 <strong>and</strong> polynomials satisfying the linearized conditions (4.2)–(1.2) are<br />

for instance given by<br />

p(x) = 0.00936 + 0.61249x 2 + 0x 3<br />

q(x) = 0.09742 + 0.78439x 2 + 0x 3 .<br />

The ratio <strong>of</strong> the (nonzero) highest degree coefficients <strong>of</strong> p(x) <strong>and</strong> q(x) is<br />

0.78086 = 1, hence the point at infinity is not properly interpolated. Another<br />

way to see this is in view <strong>of</strong> Proposition 4.2.1. The rational interpolant<br />

rm,m−1(x) for X2m−1 in Thiele-Werner continued fraction form (r0 = 1) is<br />

r3,2(x) = 0.14711 +<br />

(x + 0.1)(x − 0.1)<br />

0.3380<br />

+ (x + 0.3)(x − 0.3)<br />

0.63375<br />

It is not necessary to exp<strong>and</strong> r3,2(x) in powerform to decide that the numerator<br />

<strong>of</strong> r3,2(x) is not <strong>of</strong> full degree. This follows directly from the fact<br />

that the last convergent <strong>of</strong> the continued fraction is even <strong>and</strong> from Propositions<br />

3.4.2-3.4.3 <strong>and</strong> 4.4.1. Since 0.14711 + 0.63375 = 0.78086 = 0 = 1 is<br />

the highest degree coefficient <strong>of</strong> A2(x) <strong>and</strong> noting that<br />

leads to the same conclusion.<br />

∂A2 = ∂B2 + k = m − 1 − mi + k < m + k<br />

Example 4.5.2. Now consider the function f(x) = x2 arctan( 1<br />

x<br />

) sampled<br />

at equidistant points in [−0.5,0.5]. The rational interpolant r3,2(x) constructed<br />

from the finite data X5 = {−0.5, −0.3, −0.1,0.1,0.3,0.5} is shown<br />

in Figure 4.1(a) (dashed line). Clearly, r3,2(x) does not extrapolate very<br />

well. But knowing that f(x) has a Laurent expansion at x = ∞ <strong>of</strong> the form<br />

f(x) = x − 1<br />

3x<br />

+ 1<br />

5x<br />

1 1<br />

− + + ... ,<br />

3 7x5 9x7 let us construct a r3,2(x) = rm+k,m(x) rational interpolant which also interpolates<br />

at infinity. Hence m = 2 <strong>and</strong> k = 1. The r3,2(x) rational interpolant<br />

for the data X5 = {−0.5, −0.25,0,0.25,0.5} ∪ {∞} is shown in<br />

Figure 4.1(b) (dashed line), which is now almost indistinguishable from f(x)<br />

(full line). The Thiele-Werner continued fraction representation <strong>of</strong> r3,2(x)<br />

obtained from Algorithm 4.4.1 is<br />

r3,2(x) = 0 +<br />

(x − 0)<br />

1.80644<br />

+ (x + 0.5)(x − 0.5)<br />

−0.15489<br />

+ (x − 0.25)(x + 0.25)<br />

−0.80644<br />

.<br />

.


56 4. Asymptotic behavior<br />

Note that the second convergent is the r2,2(x) rational interpolant for the<br />

finite data X4 = {−0.5, −0.25,0,0.25, 0.5}. The third convergent is obtained<br />

−1.80644 = −0.80644.<br />

by interpolation at infinity, hence from the relation 1<br />

1<br />

4<br />

3<br />

2<br />

1<br />

0<br />

−1<br />

−2<br />

−3<br />

−4<br />

−4 −3 −2 −1 0 1 2 3 4<br />

(a) Without asymptotic information<br />

4<br />

3<br />

2<br />

1<br />

0<br />

−1<br />

−2<br />

−3<br />

−4<br />

−4 −3 −2 −1 0 1 2 3 4<br />

(b) With asymptotic information<br />

Figure 4.1: <strong>Rational</strong> interpolants with <strong>and</strong> without interpolation at infinity<br />

for f(x) = x2 arctan( 1<br />

x ) (full line). The dots represent the chosen interpolation<br />

data. In Figure 4.1(a) the r3,2(x) rational interpolant is shown (dashed<br />

line) without imposing interpolation at infinity. Figure 4.1(b) shows the<br />

r3,2(x) rational interpolant (dashed line) with interpolation at infinity.


Related algorithms<br />

5<br />

There are many other algorithms for rational interpolation, some <strong>of</strong> which do<br />

not rely on reordering <strong>of</strong> the points. Without the intent <strong>of</strong> being exhaustive,<br />

we elaborate on the continued fraction algorithm <strong>of</strong> Gutknecht [Gut93a] <strong>and</strong><br />

the recursions given by Van Barel <strong>and</strong> Bultheel [VBB92], which are both to<br />

some extent related to the algorithm <strong>of</strong> Werner.<br />

5.1 Staircase G-fractions<br />

Gutknecht [Gut89] describes an algorithm that builds a continued fraction<br />

representation, similar to the one obtained by the algorithm <strong>of</strong> Werner, but<br />

keeping the order <strong>of</strong> the data fixed at all times. The partial numerators <strong>and</strong><br />

partial denominators <strong>of</strong> this so called staircase G-fraction, are polynomials<br />

which are determined in a completely analogous way by continued fraction<br />

reductions. But, whereas Werner reorganizes the points such that, locally,<br />

the block is square <strong>and</strong> <strong>of</strong> maximal size, Gutknecht gives conditions which<br />

are based on the block structure to jump over blocks that are not necessarily<br />

square. For sake <strong>of</strong> comparison, we describe the algorithm <strong>of</strong> Gutknecht in a<br />

similar way as the algorithm <strong>of</strong> Werner in Section 3.2. The original algorithm<br />

also deals with infinite sequences, such that the recursion can be continued<br />

at infinitum, but here we are only interested in a particular interpolant.<br />

Hence we restrict the description to finite sequences. We redefine the sets<br />

Sj as (finite) sequences <strong>of</strong> which the order is now fixed <strong>and</strong> let the points in<br />

in each recursion step. For rj + rj+1 = 1, the<br />

Sj be indexed by {xi} ℓj+mj<br />

i=0<br />

description is given in Algorithm 5.1.1.<br />

Clearly, the polynomials bj(x) <strong>and</strong> aj(x) have the same roles as in the<br />

algorithm <strong>of</strong> Werner. Only kj is defined more implicitly to deal with local<br />

non-square blocks, but it has an analogous meaning, i.e. kj represents the<br />

57


58 5. Related algorithms<br />

Algorithm 5.1.1 Construction <strong>of</strong> staircase G-fractions [Gut89]<br />

0. (Initialization) Let the sequence S0 = {xi} ℓ+m<br />

i=0 containing ℓ + m + 1<br />

points <strong>and</strong> function values R0(xi) = f(xi) (xi ∈ S0) be given. Set<br />

j = 0, ℓj = ℓ, mj = m.<br />

1. Set γj = ℓj − mj − rj (with rj + rj+1 = 1).<br />

2. Let x0,...,xγj be the first γj +1 points out <strong>of</strong> Sj. Compute bj(x), the<br />

polynomial <strong>of</strong> degree ∂bj ≤ γj such that bj(xi) = Rj(xi) for 0 ≤ i ≤ γj.<br />

3. (a) If bj(xγj+1 ) = Rj(xγj+1 ) then set kj = γj + 1.<br />

(b) Else bj(xγj+1 ) = Rj(xγj+1 ). Determine the largest kj such that<br />

the rk,k−γj−1(x) rational interpolant <strong>of</strong> Rj(x) on<br />

x0,... ,x2k−γj−1, 2k − γj − 1 ≤ ℓj + mj<br />

is equal to bj(x) for all k with γj < k ≤ kj − 1.<br />

(c) If 2kj − γj − 1 ≥ ℓj + mj + 1 then the recursion stops with<br />

Rj(x) = bj(x).<br />

(d) Else<br />

Sj+1 = Sj \ {xi ∈ Sj : bj(xi) = Rj(xi), 0 ≤ i ≤ 2kj − γj − 2}<br />

aj(x) = <br />

(x − xi)<br />

Rj+1(xi) =<br />

xi∈Sj\Sj+1<br />

aj(xi)<br />

Rj(xi) − bj(xi) , xi ∈ Sj+1.<br />

<strong>and</strong> ℓj+1 = mj, mj+1 = ℓj − kj. Set j ← j + 1 <strong>and</strong> go to step 1.


5.1. Staircase G-fractions 59<br />

total number <strong>of</strong> points among x0,... ,x2kj−γj−2 that are truly interpolated<br />

by bj(x).<br />

Example 5.1.1. Let bj(x) be the upper-left corner <strong>of</strong> a block <strong>of</strong> the shape<br />

as shown in Figure 5.1(a). Hence bj(x) already interpolates in x0,...,xγj<br />

<strong>and</strong> because the block is growing, also in xγj+1. According to Figure 5.1(a),<br />

the rk,k−γj−1(x) rational interpolant <strong>of</strong> Rj(x) in x0,... ,x2k−γj−1 is equal to<br />

bj(x) for γj < k ≤ kj − 1 = γj + 2. Hence kj = γj + 3 is the total number <strong>of</strong><br />

points among x0,...,xγj+4 that are interpolated by bj(x). In Figure 5.1(a)<br />

besides x0,...,xγj only xγj+1 <strong>and</strong> xγj+3 are truly interpolated by bj(x).<br />

For the purpose <strong>of</strong> illustration only, we note that once a block is determined<br />

<strong>of</strong> which the upper left corner is known, then one can always reorder<br />

the data a posteriori such that the block becomes square (cf. Proposition<br />

1.3.2). If x0,...,xγj+4 are for instance reordered as follows<br />

x0,... ,xγj ,xγj+1,xγj+3,xγj+2,xγj+4<br />

then the points become well ordered <strong>and</strong> the block becomes square as shown<br />

in Figure 5.1(b). Algorithm 5.1.1 does not reorder the data.<br />

(a) Unordered data (b) Ordered data<br />

Figure 5.1: Illustration <strong>of</strong> the effect <strong>of</strong> reordering <strong>of</strong> the data on the block<br />

emanating from bj(x). On the left, a non-square block is shown. The stars<br />

represent the rk,k−γj−1(x) rational interpolants <strong>of</strong> Rj(x) on x0,...,x2k−γj−1<br />

with γj < k. On the right, the points are reordered such that the block<br />

becomes square.


60 5. Related algorithms<br />

In comparison to Algorithm 3.2.1 there is only one stopping criterion in<br />

step 3c. There is more to say about the condition<br />

2kj − γj − 1 ≥ ℓj + mj + 1 (5.1)<br />

than meets the eye. Actually, (5.1) implicitly combines both termination<br />

steps <strong>of</strong> Werner’s algorithm. First <strong>of</strong> all, if the sequence Sj is ordered such<br />

that no block emanates from bj(x) (step 3a <strong>of</strong> Algorithm 5.1.1) <strong>and</strong> no more<br />

data remain, i.e. kj = γj + 1 = ℓj + mj + 1 then equality holds in (5.1). On<br />

the other h<strong>and</strong>, for the recursion to be continued, kj < ℓj + 1 is necessary.<br />

If 2kj − γj − 1 < ℓj + mj + 1 then by the definition <strong>of</strong> γj holds kj < ℓj + 1.<br />

Analogously, if too many points are interpolated, i.e. kj ≥ ℓj +1, then again<br />

by the definition <strong>of</strong> γj holds 2kj − γj − 1 ≥ ℓj + mj + 1. Hence (5.1) is an<br />

appropriate stopping condition.<br />

Also unattainable points are characterized more implicitly than in Algorithm<br />

3.2.1. This clarifies the difference in objectives <strong>of</strong> both algorithms: in<br />

its current form Algorithm 5.1.1 is only concerned with the construction <strong>of</strong><br />

a staircase G- fraction.<br />

In conclusion, the recursion without reordering is mainly <strong>of</strong> theoretical<br />

importance. A practical numerical implementation could for instance be<br />

based on the transformation (3.12). But then it should include a pivoting<br />

strategy as in Section 3.5. Since Algorithm 5.1.1 yields exactly the same<br />

intermediate <strong>and</strong> final results if the order <strong>of</strong> the sequence S0 results from<br />

an application <strong>of</strong> Werner’s algorithm, Algorithm 3.2.1 can be seen as a<br />

practical, numerical version <strong>of</strong> Algorithm 5.1.1. <strong>Interpolation</strong> at infinity<br />

is not considered in [Gut89].<br />

5.2 Parameterizations<br />

There is a whole other class <strong>of</strong> very general recursive methods, which we<br />

briefly discuss here. Without going in too much detail into the theory underlying<br />

the approaches, the idea is to look for polynomial couples (n(x),d(x))<br />

<strong>of</strong> minimal degree that satisfy a number <strong>of</strong> (linearized) interpolation conditions.<br />

For the most general concept <strong>of</strong> minimal degree we follow Van Barel <strong>and</strong><br />

Bultheel [VBB92]. Define the shift parameters (s1,s2) ∈ N×N with s1s2 = 0<br />

<strong>and</strong> the (s1,s2)-degree α <strong>of</strong> (n(x),d(x)) as α = max{∂n + s1,∂d + s2}. For<br />

given shift parameters (s1,s2) , a given sequence {xi} j<br />

i=0 <strong>and</strong> a function<br />

f(x), the problem is to find a polynomial couple (n(x),d(x)) <strong>of</strong> minimal


5.2. Parameterizations 61<br />

(s1,s2)-degree ≥ 0 such that the linearized rational interpolation conditions<br />

f(xi)d(xi) − n(xi) = 0, i = 0,... ,j (5.2)<br />

are satisfied.<br />

We already briefly touched this kind <strong>of</strong> problem setting in Section 2.1,<br />

where the barycentric form was used by Antoulas <strong>and</strong> Anderson [AA86] for<br />

obtaining a solution for (5.2) <strong>of</strong> minimal (0,0)-degree. In the discussion here<br />

we restrict ourselves to one particular, so-called single step method, where<br />

one is interested to compute a sequence <strong>of</strong> neighboring entries in the table <strong>of</strong><br />

rational interpolants (or in case <strong>of</strong> blocks, a maximal subsequence) [BL97].<br />

In each step one more interpolation condition is added, hence each time 0 ≤ j<br />

is increased by one. It is shown in [VBB92, VBB90] that all polynomial<br />

couples (n(x),d(x)) <strong>of</strong> a certain (s1,s2)-degree ≤ α that satisfy (5.2) can<br />

be parameterized by two polynomial couples vj(x) = (nj,v(x),dj,v(x)) <strong>and</strong><br />

wj(x) = (nj,w(x),dj,w(x)). Therefore (vj(x),wj(x)) is called a basic pair.<br />

Denote by Rivj <strong>and</strong> Riwj the linearized residual at xi <strong>of</strong> the polynomial<br />

couple vj(x) <strong>and</strong> wj(x) respectively<br />

Rivj = f(xi)dj,v(xi) − nj,v(xi)<br />

Riwj = f(xi)dj,w(xi) − nj,w(xi).<br />

The steps to obtain a possible choice for such a basic pair are given in<br />

Algorithm 5.2.1. For each 0 ≤ j, a basic pair (vj(x),wj(x)) is constructed<br />

from a basic pair (vj−1(x),wj−1(x)) <strong>of</strong> the previous level. In each step,<br />

both vj(x) <strong>and</strong> wj(x) solve the linearized rational interpolation problem for<br />

or equivalently<br />

{xi} j<br />

i=0<br />

Rivj = 0, i = 0,... ,j<br />

Riwj = 0, i = 0,... ,j.<br />

The algorithm is such that the polynomial couple vj(x) is always <strong>of</strong> minimal<br />

(s1,s2)-degree ≥ 0. In fact vj(x) is a minimal degree solution for some<br />

rational interpolant in the table <strong>of</strong> rational interpolants. Hence, vj(x) need<br />

not be irreducible, but if vj(x) contains common factors, they are unattainable<br />

points. It is also shown in [VBB92, VBB90] that all solutions <strong>of</strong> the<br />

(non-linear) rational interpolation problem <strong>of</strong> minimal (s1,s2)-degree are<br />

also parameterized by a linear combination <strong>of</strong> vj(x) <strong>and</strong> wj(x).<br />

Example 5.2.1. Let us consider (s1,s2) = (0,0) <strong>and</strong> the case <strong>of</strong> a normal<br />

table <strong>of</strong> rational interpolants, i.e. without blocks. Figure 5.2 illustrates


62 5. Related algorithms<br />

Algorithm 5.2.1 Single step parameterization algorithm [VBB92]<br />

Input: a sequence {xi} ∞ i=0 , a function f(x) <strong>and</strong> shift parameters (s1,s2).<br />

Output : In each step j = −1,0,1,..., a basic pair (vj+1(x),wj+1(x)) that<br />

parameterizes all solutions <strong>of</strong> minimal (s1,s2)-degree ≥ 0.<br />

(Initialization)<br />

Set j = −1 <strong>and</strong><br />

<br />

vj(x) wj(x) <br />

nj,v(x) nj,w(x) 1 0<br />

=<br />

=<br />

dj,v(x) dj,w(x) 0 1<br />

if s1 ≤ s2 then <br />

δj,v δj,w = s1 s2<br />

else <br />

δj,v δj,w = s2 s1 .<br />

(Main loop)<br />

for j = −1,0,1,2, · · ·<br />

if Rj+1vj = 0 then<br />

⎛<br />

1 0<br />

⎞<br />

Vj+1(x) = ⎝ ⎠<br />

<br />

=<br />

0 x − xj+1 <br />

δj,v δj,w + 1 <br />

δj+1,v δj+1,w<br />

else let hj+1 = Rj+1wj<br />

Rj+1vj<br />

δj+1,v δj+1,w<br />

<strong>and</strong><br />

<br />

−hj+1 x − xj+1<br />

Vj+1(x) =<br />

<br />

1 0<br />

= δj,w δj,v + 1 <br />

if δj+1,v > δj+1,w then<br />

⎛ ⎞<br />

0 1<br />

Vj+1(x) = Vj+1(x) ⎝ ⎠<br />

<br />

δj+1,v<br />

<br />

δj+1,w = δj+1,v<br />

1 0<br />

⎛ ⎞<br />

<br />

0 1<br />

δj+1,w ⎝ ⎠<br />

1 0<br />

<br />

else Vj+1(x) = Vj+1(x).<br />

vj+1(x) wj+1(x) = vj(x) wj(x) Vj+1(x)


5.2. Parameterizations 63<br />

Algorithm 5.2.1. Each time that a new (linearized) interpolation condition is<br />

added, all rational interpolants on the next antidiagonal solve the linearized<br />

rational interpolation problem for {xi} j+1<br />

i=0 . The solutions <strong>of</strong> minimal (s1,s2)degree<br />

α are those rational functions <strong>of</strong> (s1,s2)-degree α that intersect this<br />

antidiagonal <strong>and</strong> for which α is minimal.<br />

(a) (0,0)-degree ≤ 2 (b) (0,0)-degree ≤ 3<br />

Figure 5.2: Illustration <strong>of</strong> (s1,s2)-degree with (s1,s2) = (0,0) if there are<br />

no blocks in the table <strong>of</strong> rational interpolants. The rational interpolants<br />

that satisfy (5.2) for {xi} 4 i=0 lie on the antidiagonal shown in Figure 5.2(a).<br />

The rational interpolants <strong>of</strong> (0,0)-degree = 2 are marked with bold dashed<br />

lines. The rational interpolant <strong>of</strong> minimal (0,0)-degree ≤ 2 that also satisfies<br />

(5.2) for {xi} 4 i=0 is indicated with a star. In Figure 5.2(b) the rational<br />

interpolants <strong>of</strong> minimal (0,0)-degree ≤ 3 that satisfy (5.2) for {xi} 5 i=0 are<br />

shown (stars). Algorithm 5.2.1 constructs the rational interpolant below the<br />

diagonal (dashed line).<br />

For the data {xi = i + 1} 5 i=0 <strong>and</strong> function values<br />

{f(xi)} 5 i=0<br />

= {4,8,7,5,1,6}<br />

Algorithm 5.2.1 returns<br />

<br />

v6(x) w6(x) <br />

2108<br />

1173<br />

55<br />

−<br />

= 16951 x − 6 155 x − 5 −92 x − 4<br />

1 0 1 0 1 0<br />

<br />

12 1<br />

5 x − 3 4 x − 2 4 x − 1<br />

1 0 1 0 1 0


64 5. Related algorithms<br />

or in full<br />

v6(x) = (23874 − 36493x + 9996x 2 − 737x 3 ,894 − 2082x + 348x 2 )<br />

w6(x) = ((x − 6)(2114 − 2643x + 433x 2 ),(x − 6)(194 − 249x + 31x 2 ).<br />

Hence, v6(x) is <strong>of</strong> minimal (s1,s2)-degree 3. Compared to Figure 5.2(b)<br />

v6(x) is the rational interpolant marked with a star below the diagonal. The<br />

other rational interpolant <strong>of</strong> minimal (s1,s2)-degree 3 above the diagonal,<br />

which is also shown in Figure 5.2(b), is for instance obtained from the linear<br />

combination (n(x),d(x)) = 433<br />

737 v6(x) + w6(x) where<br />

n(x) = 1<br />

737 (989334 − 2556105x + 465651x2 )<br />

d(x) = 1<br />

737 (−470766 + 342550x − 169911x2 + 22847x 3 ).<br />

For the remainder <strong>of</strong> this Section we let (s1,s2) = (0,0), which limits<br />

the construction <strong>of</strong> vj(x) to entries on the main staircase. At first sight,<br />

Algorithm 5.2.1 may seem very different from the continued fraction algorithms<br />

discussed in the previous Chapters. Nevertheless, it need not be too<br />

surprising that there is a close connection between these algorithms due to<br />

the uniqueness <strong>of</strong> the rational interpolant. We elaborate further on the connection<br />

with the construction <strong>of</strong> Thiele continued fractions. To this end,<br />

the recurrence (3.4) is extended to deal with an infinite sequence {xi} ∞ i=0 as<br />

follows ⎧<br />

⎨R0(xk)<br />

= f(xk) k ≥ 0<br />

xk − xi . (5.3)<br />

⎩Ri+1(xk)<br />

=<br />

k ≥ i<br />

Ri(xk) − Ri(xi)<br />

To avoid any notational confusion between Rj(xi) <strong>and</strong> the residuals Rivj<br />

<strong>and</strong> Riwj, we introduce a new notation <strong>and</strong> write instead <strong>of</strong> (5.3)<br />

⎧<br />

⎨ϕ0(xk)<br />

= f(xk) k ≥ 0<br />

xk − xi . (5.4)<br />

⎩ϕi+1(xk)<br />

=<br />

k ≥ i<br />

ϕi(xk) − ϕi(xi)<br />

The interpolating Thiele continued fraction for {xi} j+1<br />

i=0 is then the (j+1)-th<br />

convergent <strong>of</strong><br />

ϕ0(x0) +<br />

x − x0<br />

ϕ1(x1)<br />

+ x − x1<br />

ϕ2(x2)<br />

+ x − x2<br />

ϕ3(x3)<br />

+ · · · (5.5)<br />

where it is assumed that the inverse differences ϕi(xi) = ∞. This is for<br />

instance satisfied if every two consecutive rational interpolants on the main<br />

staircase are different.


5.2. Parameterizations 65<br />

Proposition 5.2.1 says that, if two consecutive rational interpolants on<br />

the main staircase are different, then their minimum degree solutions cannot<br />

satisfy any extra linearized interpolation conditions simultaneously anymore.<br />

Proposition 5.2.1. Let {xi} ∞ i=0<br />

minimal degree solutions vj(x) ∈ R(⌈ j<br />

2<br />

for {xi} j<br />

i=0<br />

<strong>and</strong> {xi} j+1<br />

i=0<br />

Then for any i > j<br />

be a sequence <strong>of</strong> distinct points. If the<br />

⌉, ⌊j<br />

2 ⌋) <strong>and</strong> vj+1(x) ∈ R(⌈ j+1<br />

2 ⌉, ⌊j+1<br />

2 ⌋)<br />

respectively, are such that<br />

nj,v(x)dj+1,v(x) − nj+1,v(x)dj,v(x) ≡ 0.<br />

Rivj+1 = 0 ⇒ Rivj = 0.<br />

Pro<strong>of</strong>. Since the polynomial nj,v(x)dj+1,v(x)−nj+1,v(x)dj,v(x) ≡ 0 <strong>of</strong> degree<br />

at most max{⌈ j<br />

2⌉ + ⌊j+1<br />

2 ⌋, ⌊j<br />

2 ⌋ + ⌈j+1<br />

2 ⌉} ≤ j + 1 already vanishes at j + 1<br />

points xk (0 ≤ k ≤ j)<br />

Rkvj+1dj,v(xk) − Rkvjdj+1,v(xk) = 0,<br />

it cannot be that both Rivj+1 <strong>and</strong> Rivj simultaneously vanish at other points<br />

xi (i > j).<br />

Hence if the sequence {xi} ∞ i=0 is ordered such that every two consecutive<br />

rational interpolants on the main staircase are different, then we have<br />

from Proposition 5.2.1 that for each j, Rj+1vj = 0. So that the combined<br />

recursion for the basic pairs simplifies to<br />

⎧<br />

⎪⎨<br />

<br />

v−1(x) w−1(x)<br />

⎪⎩<br />

<br />

1 0<br />

=<br />

0 1<br />

<br />

vj+1(x) wj+1(x) = (5.6)<br />

.<br />

−hj+1vj(x) + wj(x) (x − xj+1)vj(x)<br />

In this case, the inverse differences (5.4) <strong>and</strong> the residuals are Rivj <strong>and</strong> Rivj<br />

are related as follows.<br />

Proposition 5.2.2. If the sequence {xi} ∞ i=0 is ordered such that every two<br />

consecutive rational interpolants on the main staircase are different, then<br />

for i > j<br />

ϕj+1(xi) = − Riwj<br />

j = −1,0,1,... .<br />

Rivj<br />

Pro<strong>of</strong>. The pro<strong>of</strong> is by induction on j. In the trivial case (j = −1,i > j),<br />

− Riw−1<br />

Riv−1<br />

= − f(xi)<br />

−1 = f(xi) = ϕ0(xi).


66 5. Related algorithms<br />

In the general case, for i > j > −1, application <strong>of</strong> (5.6) gives<br />

− Riwj<br />

Rivj<br />

= − f(xi)dj,w(xi) − nj,w(xi)<br />

f(xi)dj,v(xi) − nj,v(xi)<br />

f(xi)(xi − xj)dj−1,v(xi) − (xi − xj)nj−1,v(xi)<br />

= −<br />

f(xi)(−hjdj−1,v(xi) + dj−1,w(xi)) − (−hjnj−1,v(xi) + nj−1,w(xi)) .<br />

Since<br />

hj = Rjwj−1<br />

,<br />

Rjvj−1<br />

from the induction hypothesis, we have −hj = ϕj(xj). Hence<br />

If Rivj−1 = 0 then<br />

− Riwj<br />

Rivj<br />

− Riwj<br />

Rivj<br />

=<br />

=<br />

= −<br />

(xi − xj)Rivj−1<br />

Riwj−1 + ϕj(xj)Rivj−1<br />

− Riwj−1<br />

Rivj−1<br />

(xi − xj)<br />

− ϕj(xj)<br />

(xi − xj)<br />

= ϕj+1(xi).<br />

ϕj(xi) − ϕj(xj)<br />

In case that Rivj−1 = 0, first note that −Riwj/Rivj is well defined. After<br />

all, from contraposition <strong>of</strong> Proposition 5.2.1 follows Rivj−1 = 0 ⇒ Rivj = 0.<br />

From the induction hypothesis we may write<br />

ϕj+1(xi) =<br />

=<br />

(xi − xj)<br />

ϕj(xi) − ϕj(xj)<br />

(xi − xj)<br />

− Riwj−1<br />

Rivj−1<br />

= − Riwj<br />

.<br />

Rivj<br />

= 0<br />

− ϕj(xj)<br />

Here also −Riwj−1/Rivj−1 is well defined. Since Riwj−1 = (xi−xj−1)Rivj−2<br />

<strong>and</strong> from Proposition 5.2.1 follows Rivj−1 = 0 ⇒ Rivj−2 = 0.<br />

When restricting the recursion (5.6) to the polynomial couple vj+1(x)<br />

which solves the linearized rational interpolation problem for {xi} j+1<br />

i=0 , one<br />

obtains<br />

.


5.2. Parameterizations 67<br />

Proposition 5.2.3. If the sequence {xi} ∞ i=0 is ordered such that every two<br />

consecutive rational interpolants on the main staircase are different, then<br />

vj+1(x) is equal to the (j + 1)-th convergent <strong>of</strong> (5.5) for j = −1,0,1,....<br />

Pro<strong>of</strong>. We show that both vj+1(x) <strong>and</strong> the (j + 1)-th convergent <strong>of</strong> (5.5),<br />

satisfy the same recursion relation. From the three term recurrence relation<br />

<strong>of</strong> continued fractions, the (j + 1)-th convergent <strong>of</strong> (5.5) satisfies<br />

<br />

Aj+1,v(x)<br />

=<br />

Bj+1,v(x)<br />

<br />

ϕj+1(xj+1)Aj,v(x) + (x − xj)Aj−1,v(x)<br />

ϕj+1(xj+1)Bj,v(x) + (x − xj)Bj−1,v(x)<br />

with <br />

A−1,v(x) = 1, B−1,v(x) = 0<br />

A0,v(x) = ϕ0(x0) = f(x0), B0,v(x) = 1.<br />

The polynomial couple vj+1(x) satisfies (5.6), which can also be written as<br />

<br />

nj+1,v(x)<br />

=<br />

dj+1,v(x)<br />

<br />

−hj+1nj,v(x) + (x − xj)nj−1,v(x)<br />

−hj+1dj,v(x) + (x − xj)dj−1,v(x)<br />

with <br />

n−1,v(x) = 1, d−1,v(x) = 0<br />

From Proposition 5.2.2, we have<br />

n0,v(x) = f(x0), d0,v(x) = 1.<br />

−hj+1 = − Rj+1wj<br />

Rj+1vj<br />

which shows that both recursions are identical.<br />

= ϕj+1(xj+1),<br />

Hence the recursion (5.6) is nothing less than the classical three term<br />

recurrence relation applied to a Thiele continued fraction. Of course if the<br />

points are ordered differently, then such a representation need not exist.<br />

It is shown in [VBB92] that also derivatives, poles <strong>and</strong> conditions at<br />

infinity can be incorporated by defining appropriate residuals. Also an<br />

alternative is given to deal with unattainable points: if some points are<br />

unattainable a parameterization <strong>of</strong> all solutions <strong>of</strong> minimal (s1,s2)-degree<br />

for the nonlinear interpolation problem is also given by linear combinations<br />

<strong>of</strong> the elements <strong>of</strong> the obtained basic pair. Therefore the approach is very<br />

attractive. However the entire parameterization is more useful in a symbolic<br />

environment than in a numerical implementation. For instance, extra<br />

conditions are needed to decide on a c<strong>and</strong>idate out <strong>of</strong> all solutions.


68 5. Related algorithms<br />

Example 5.2.2. Let us reconsider Example 3.1.1 where xi = i <strong>and</strong> fi =<br />

2 − (i mod 2) for i = 0,... ,4. Algorithm 5.2.1 returns<br />

<br />

v5(x) w5(x) <br />

0 x − 4 −1 x − 3 0 x − 2<br />

=<br />

1 0 1 0 1 0<br />

<br />

−1 x − 1 2 x<br />

1 0 1 0<br />

or in full<br />

v5(x) = (2(x − 1)(x − 3),(x − 1)(x − 3))<br />

w5(x) = ((6 − 6x + x 2 )(x − 4),(3 − 2x)(x − 4)).<br />

The polynomial couple v5(x) <strong>of</strong> minimal (0,0)-degree 2 satisfies the linearized<br />

conditions (5.2), but is not irreducible. If we take for instance the<br />

linear combination v5(x) + w5(x), then the polynomial couple<br />

(−18 + 22x − 8x 2 + x 3 , −9 + 7x − x 2 )<br />

<strong>of</strong> minimal (0,0)-degree 3 is obtained, which also satisfies the linearized<br />

conditions (5.2) but is now irreducible. Hence by increasing the maximum<br />

allowed degree, the problem <strong>of</strong> unattainability disappears. However, also<br />

uniqueness is lost: we can take any linear combination <strong>of</strong> v5(x) <strong>and</strong> w5(x)<br />

as long as no extra common factors are introduced.<br />

Besides single step methods, there exist more general recurrences which<br />

can follow arbitrary paths in the table <strong>of</strong> rational interpolants <strong>of</strong> arbitrary<br />

stepsizes. See for example [BL00, BL97, Gut93a, Gut93b] <strong>and</strong> the references<br />

cited therein. These methods have not been considered here. The idea is<br />

to jump over singular or nearly singular blocks by using a heuristic look<br />

ahead strategy so that only well-conditioned subproblems are solved. The<br />

success <strong>of</strong> these so-called weakly stable algorithms depends mainly on how<br />

well the condition number <strong>of</strong> the coefficient matrices can be estimated without<br />

explicitly constructing the matrices. In the Padé case effective estimates<br />

are found [CM93], because the coefficient matrices involved are particularly<br />

structured, i.e. they are either Hankel or Toeplitz matrices <strong>of</strong> which good<br />

estimates for their condition numbers exist. In the context <strong>of</strong> rational interpolation,<br />

it is still an open question how to find sharp estimates for the<br />

condition number <strong>of</strong> the coefficient matrices.


Part II<br />

Multivariate <strong>Rational</strong><br />

Approximation<br />

69


Introduction<br />

In this second part, we disregard asymptotic behavior, but generalize the<br />

setting <strong>of</strong> the first part considerably by considering the multivariate case<br />

<strong>and</strong> allowing uncertainty in the function values.<br />

Motivation<br />

In many applications, observations are prone to imprecise measurements.<br />

When constructing a model based on such data, an approximation rather<br />

than an interpolation approach is needed. The conventional way to find a<br />

rational function approximating such data is by means <strong>of</strong> a rational least<br />

squares approximation. Here a new approach is proposed.<br />

Overview<br />

In Chapter 6 the new problem is formulated, immediately for the multivariate<br />

case. It is assumed that the uncertainty in the independent variables<br />

is negligible <strong>and</strong> that for each observation an uncertainty interval can be<br />

given which contains the (unknown) exact value. To approximate such data<br />

we look for rational functions which intersect all uncertainty intervals. We<br />

show that this problem can be solved by a quadratic programming problem<br />

with a strictly convex objective function, yielding a unique rational<br />

function which intersects all uncertainty intervals <strong>and</strong> satisfies some additional<br />

properties. Compared to rational least squares approximation which<br />

is inherently a nonlinear optimization problem where the objective function<br />

may have many local minima, this makes the new approach attractive. The<br />

problem statement is independent <strong>of</strong> the number <strong>of</strong> variables, hence truly<br />

multidimensional.<br />

To illustrate the applicability <strong>of</strong> the technique developed in Chapter 6,<br />

this new method is applied to several benchmark problems in Chapter 7.<br />

The obtained results indicate that the method scales very well to higher<br />

dimensional problems.<br />

71


72 Related algorithms<br />

Chapter 8 is a case study, where the design <strong>of</strong> multidimensional recursive<br />

filters is considered. A technology which is required in many diverse areas,<br />

including image processing, video signal filtering, tomography <strong>and</strong> different<br />

grid-based methods in scientific computing. It is shown that reformulation<br />

<strong>of</strong> the problem using uncertainty intervals overcomes many <strong>of</strong> the classical<br />

drawbacks.<br />

Chapters 6 <strong>and</strong> 7 are based on [SCV07]. Chapter 8 is based on [SCL08].


<strong>Rational</strong> interpolation <strong>of</strong><br />

vertical segments<br />

6<br />

In many applications, observations are prone to imprecise measurements.<br />

When constructing a model based on such data, an approximation rather<br />

than an interpolation approach is needed. Very <strong>of</strong>ten a least squares approximation<br />

is used. Here we follow a different approach. A natural way<br />

for dealing with uncertainty in the data is by means <strong>of</strong> an uncertainty interval.<br />

We assume that the uncertainty in the independent variables is<br />

negligible <strong>and</strong> that for each observation an uncertainty interval can be given<br />

which contains the (unknown) exact value. To approximate such data we<br />

look for functions which intersect all uncertainty intervals. In the literature<br />

[Mar91, MPSS96, MB82] this problem is studied for polynomials, or<br />

more generally for functions which are linear in the unknown coefficients.<br />

Here we study the problem for a particular class <strong>of</strong> functions which are<br />

nonlinear in the unknown coefficients, namely rational functions. We show<br />

how to reduce the problem to a quadratic programming problem with a<br />

strictly convex objective function, yielding a unique rational function which<br />

intersects all uncertainty intervals <strong>and</strong> satisfies some additional properties.<br />

Compared to rational least squares approximation which reduces to a nonlinear<br />

optimization problem where the objective function may have many<br />

local minima, this makes the new approach attractive.<br />

6.1 Problem statement<br />

To approximate noisy or imprecise data, very <strong>of</strong>ten a least squares approach<br />

is used. The idea here is to deal with uncertainty in another, very natural<br />

way: by means <strong>of</strong> an uncertainty interval. We assume that the uncertainty<br />

73


74 6. <strong>Rational</strong> interpolation <strong>of</strong> vertical segments<br />

in the independent variables is negligible <strong>and</strong> that for each observation, an<br />

uncertainty interval can be given which contains the (unknown) exact value.<br />

We study the problem <strong>of</strong> approximating these data with a rational function<br />

which intersects the given uncertainty intervals.<br />

Both the problem statement <strong>and</strong> the algorithm that we develop to solve<br />

it can be written down for any number <strong>of</strong> independent variables. For ease <strong>of</strong><br />

notation, we consider the bivariate instead <strong>of</strong> the general high dimensional<br />

case. Consider the set <strong>of</strong> n + 1 vertical segments<br />

Sn = {(x0,y0,F0),(x1,y1,F1),... ,(xn,yn,Fn)}, (6.1)<br />

where Fi = [f i ,f i] are real finite intervals with f i < f i (i = 0,... ,n) <strong>and</strong><br />

none <strong>of</strong> the points (xi,yi) ∈ R 2 coincide. Let Nℓ <strong>and</strong> Dm be two finite<br />

subsets <strong>of</strong> N 2 <strong>of</strong> the form<br />

Nℓ = {(i0,j0),... ,(iℓ,jℓ)}, (6.2)<br />

Dm = {(d0,e0),... ,(dm,em)}, (6.3)<br />

with which we associate the bivariate polynomials<br />

p(x,y) =<br />

q(x,y) =<br />

ℓ<br />

akx ik jk y ,<br />

k=0<br />

m<br />

bkx dk ek y .<br />

k=0<br />

(6.4)<br />

Further, denote the irreducible form <strong>of</strong> p(x,y)/q(x,y) by rℓ,m(x,y) <strong>and</strong> let<br />

Rℓ,m(Sn) = {rℓ,m(x,y) | rℓ,m(xi,yi) ∈ Fi, q(xi,yi) > 0,i = 0,... ,n}. (6.5)<br />

As we see in the next Section, changing the conditions on the sign <strong>of</strong> q(xi,yi)<br />

does not change the nature <strong>of</strong> the problem. Therefore there is no loss <strong>of</strong><br />

generality in describing the problem with the conditions q(xi,yi) > 0.<br />

For given segments Sn <strong>and</strong> given sets Nℓ <strong>and</strong> Dm, we are concerned with<br />

the problem <strong>of</strong> determining whether<br />

Rℓ,m(Sn) = ∅. (6.6)<br />

We call this the existence problem. In addition to the existence problem,<br />

finding a representation for Rℓ,m(Sn) is referred to as the representation<br />

problem. Whereas in classical rational interpolation ℓ <strong>and</strong> m are chosen so<br />

that ℓ + m + 1 = n + 1, here we pursue ℓ + m ≪ n.


6.2. Linearization 75<br />

A problem similar to (6.5)-(6.6) has already been studied in [MB82]. Instead<br />

<strong>of</strong> considering rational models rℓ,m(x,y) in (6.5), the authors consider<br />

models which are linear in the unknown coefficients. Although we solve a<br />

linearized version <strong>of</strong> (6.5)-(6.6), our problem does not reduce to the one described<br />

in [MB82] since our solution set is unbounded while the solution set<br />

in [MB82] is bounded. We discuss the connection <strong>of</strong> [MB82] with our work<br />

in more detail in Section 6.3.<br />

Without the intent <strong>of</strong> being exhaustive, we also mention the interval<br />

approach <strong>of</strong> Markov [Mar91, MPSS96]. This approach applies only to a special<br />

case <strong>of</strong> the problem (6.5)-(6.6), where instead <strong>of</strong> multivariate rational<br />

functions rℓ,m(x,y), univariate polynomials are considered to approximate<br />

univariate data. The method is based on the interval Lagrange representation<br />

<strong>of</strong> the interpolating polynomial. An algorithm is given that reliably<br />

solves the existence problem after performing a number <strong>of</strong> interval intersections<br />

which is combinatorial in the number <strong>of</strong> data points. With respect to<br />

the representation problem, piecewise upper <strong>and</strong> lowerbounds are provided<br />

for the univariate polynomials which satisfy the special case <strong>of</strong> (6.5)-(6.6).<br />

These are found after yet another combinatorial number <strong>of</strong> interval intersections.<br />

Due to its computational complexity, this approach is limited to<br />

low degree polynomials <strong>and</strong> small datasets.<br />

Least squares approximation is the conventional way to model noisy or<br />

uncertain data. For non-linear models in general <strong>and</strong> rational models in<br />

particular, the least squares problem may have many local minima <strong>and</strong> the<br />

quality <strong>of</strong> the computed model therefore highly depends on the provided<br />

starting value. This is illustrated numerically in Section 6.4. In contrast, we<br />

prove in Section 6.3 that the existence <strong>and</strong> representation problem (6.5)-(6.6)<br />

reduce to solving a quadratic programming problem <strong>of</strong> which the objective<br />

function is strictly convex. Hence our problem has a unique solution, if it<br />

exists.<br />

6.2 Linearization<br />

The interpolation conditions<br />

in (6.5) amount to<br />

rℓ,m(xi,yi) ∈ Fi i = 0,... ,n, (6.7)<br />

f i ≤ p(xi,yi)<br />

q(xi,yi) ≤ f i, i = 0,... ,n.


76 6. <strong>Rational</strong> interpolation <strong>of</strong> vertical segments<br />

Under the assumption that q(xi,yi) > 0, i = 0,... ,n, we obtain the following<br />

homogeneous system <strong>of</strong> linear inequalities after linearization<br />

<br />

−p(xi,yi) + fiq(xi,yi) ≥ 0<br />

, i = 0,... ,n. (6.8)<br />

p(xi,yi) − f q(xi,yi) ≥ 0<br />

i<br />

There is no loss <strong>of</strong> generality in assuming that q(x,y) is positive in the<br />

interpolation points: the interpolation conditions (6.7) can be linearized for<br />

arbitrary non-zero q(xi,yi), without changing the nature <strong>of</strong> the problem.<br />

For ease <strong>of</strong> notation, let λ = (a0,...,aℓ,b0,...,bm) T <strong>and</strong> k = ℓ + m + 2.<br />

We denote by U the (2n + 2) × k matrix<br />

⎛<br />

⎜<br />

U = ⎜<br />

⎝<br />

−x i0<br />

0 yj0 0 ... −x iℓ<br />

0 yjℓ 0<br />

.<br />

−xi0 n y j0<br />

n ... −xiℓ ny jℓ<br />

n<br />

x i0<br />

0 yj0 0 ... x iℓ<br />

0 yjℓ 0<br />

. .<br />

xi0 n y j0<br />

n ... xiℓ n y jℓ<br />

n<br />

.<br />

f0x d0<br />

0 ye0 0 ... f0x dm<br />

0 yem 0<br />

.<br />

fnxd0 n ye0 n ... fnxdm n yem 0<br />

−f x<br />

0 d0<br />

0 ye0 0 ... −f x<br />

0 dm<br />

0 yem 0<br />

.<br />

−f n x d0<br />

n y e0<br />

n ... −f n x dm<br />

n yem<br />

0<br />

In the sequel, we abbreviate (6.8) to Uλ ≥ 0 <strong>and</strong> denote<br />

.<br />

.<br />

⎞<br />

⎟ .<br />

⎟<br />

⎠<br />

Lℓ,m(Sn) = { λ ∈ R k | Uλ ≥ 0 }. (6.9)<br />

Geometrically, the set (6.9) is the intersection <strong>of</strong> a finite number <strong>of</strong> closed<br />

half spaces, whose boundary hyperplanes pass through the origin in R k . We<br />

assume that U has full column rank k, such that Lℓ,m(Sn) is a pointed polyhedral<br />

convex cone with apex in the origin [Gru67, GT56]. A property <strong>of</strong><br />

polyhedra that is important for the sequel is full-dimensionality. A polyhedron<br />

P ⊆ R k is said to be full-dimensional if it contains k + 1 points<br />

x0,... ,xk such that the vectors x1 − x0,x2 − x0,... ,xk − x0 are linearly<br />

independent. A polyhedron P ⊆ R k determined by the linear inequalities<br />

Uλ ≥ 0 is full-dimensional if <strong>and</strong> only if it contains a point λ for which<br />

Uλ > 0. Such a point is called an interior point. It follows immediately that<br />

if the linear inequalities determining the polyhedron do not contain any (implicit)<br />

equality constraints, then the polyhedron is full-dimensional [NW88].<br />

Hence, if any <strong>of</strong> the vertical segments Fi is such that f i = f i, the polyhedron<br />

Lℓ,m(Sn) is not full-dimensional. But assuming that all Fi are such<br />

that f i < f i, as we have done, is not enough to guarantee that Lℓ,m(Sn) is<br />

full-dimensional.<br />

The linearized version <strong>of</strong> the existence problem (6.6) consists in determining<br />

whether


6.2. Linearization 77<br />

Lℓ,m(Sn) = {0}. (6.10)<br />

Accordingly, the linearized representation problem is concerned with finding<br />

a non-zero element λ in Lℓ,m(Sn).<br />

Two important remarks need to be made before solving the linearized<br />

existence <strong>and</strong> representation problem. First, observe that if λ ∈ Lℓ,m(Sn),<br />

then also tλ ∈ Lℓ,m(Sn) for any t > 0 <strong>and</strong> all points on the ray tλ =<br />

t(a0,... ,aℓ,b0,... ,bm) T lead to the same rational function. Hence finding<br />

a rational function satisfying (6.8) corresponds to finding a ray tλ with<br />

λ ∈ Lℓ,m(Sn). It is clear that when solving the linearized problem, no<br />

normalization can be imposed a priori on the coefficients <strong>of</strong> the rational<br />

function. Imposing such a normalization, say b0 = 1, adds an additional<br />

constraint to the system (6.9) which potentially causes loss <strong>of</strong> solutions. For<br />

example, if the unnormalized cone (6.9) lies in an orthant where b0 < 0, the<br />

intersection with the hyperplane b0 = 1 is empty, so that the normalized<br />

problem has no solution. Such dependence on the chosen normalization is<br />

undesirable.<br />

Second, it is well-known from the theory <strong>of</strong> rational interpolation that<br />

solutions <strong>of</strong> the linearized problem (6.8) not necessarily solve the original<br />

problem (6.7) due to the possibility that, for some i ∈ {0,... ,n},<br />

p(xi,yi) = 0 = q(xi,yi). (6.11)<br />

Such points (xi,yi) are called unattainable [AC93]. If we assume that the<br />

cone Lℓ,m(Sn) is full-dimensional, then (6.10) <strong>and</strong> (6.6) are equivalent, in<br />

other words<br />

Lℓ,m(Sn) = {0} ⇔ Rℓ,m(Sn) = ∅.<br />

Indeed, in this case, a point in the interior <strong>of</strong> Lℓ,m(Sn) exists for which the<br />

inequalities (6.8) are strict <strong>and</strong> hence the coefficients <strong>of</strong> the corresponding<br />

rational function are such that for none <strong>of</strong> the interpolation points (6.11) is<br />

satisfied. Therefore (6.10) implies (6.6). Observe that Rℓ,m(Sn) = ∅ always<br />

implies Lℓ,m(Sn) = {0}, even if Lℓ,m(Sn) is not full-dimensional.<br />

In the next Section, we investigate the linearized representation problem<br />

<strong>and</strong> provide an algorithm to compute a ray tλ = 0 with λ ∈ Lℓ,m(Sn), if<br />

such a λ exists. The computed ray is such that the corresponding rational<br />

function contains no unattainable points <strong>and</strong> satisfies certain properties that<br />

are important from the point <strong>of</strong> view <strong>of</strong> numerical stability. We assume that<br />

the cone Lℓ,m(Sn) is full-dimensional, so that (6.6) <strong>and</strong> (6.10) are equivalent.


78 6. <strong>Rational</strong> interpolation <strong>of</strong> vertical segments<br />

6.3 Solution <strong>of</strong> the existence <strong>and</strong> representation<br />

problem<br />

Throughout this Section, we denote by uj the j-th row (j = 1,... ,2n + 2)<br />

<strong>of</strong> U. Unless specifically mentioned otherwise, the norm · is Euclidean.<br />

The algorithm we develop, simultaneously solves the linearized existence<br />

problem (6.10) <strong>and</strong>, if a solution exists, computes a non-zero λ ∈ Lℓ,m(Sn)<br />

in such a way that λ satisfies certain essential properties, which we discuss<br />

next.<br />

From the point <strong>of</strong> view <strong>of</strong> numerical stability, a rational function passing<br />

closely through the centers <strong>of</strong> the intervals Fi is more appropriate. Computing<br />

rational functions with this property is also consistent with the maximum<br />

likelihood assumption <strong>of</strong> st<strong>and</strong>ard regression techniques that the noise is normally<br />

distributed with zero mean (see for example Chapter 13 <strong>of</strong> [MC04] <strong>and</strong><br />

Section 15.1 <strong>of</strong> [PTVF92]). Adopting this view, we need to avoid points λ<br />

which are not interior points <strong>of</strong> Lℓ,m(Sn). Indeed, for any non-interior point<br />

λ, the corresponding rational function exactly fits at least one <strong>of</strong> the bounds<br />

<strong>of</strong> the interval data.<br />

Another consideration are unattainable points. Because unattainable<br />

points necessarily imply that the corresponding inequalities in (6.8) are<br />

equalities, they must occur on a boundary hyperplane <strong>of</strong> the polyhedral<br />

cone. In order to avoid solutions λ yielding unattainable points, we again<br />

look for rays that lie strictly in the interior <strong>of</strong> the polyhedral cone. The ray<br />

(or direction) that we aim for has maximal depth. Such a ray is called a<br />

Chebyshev direction. In what follows, we state precisely what that means<br />

<strong>and</strong> show how such a ray can be computed.<br />

Denote the Euclidean ball <strong>of</strong> radius r <strong>and</strong> center λ by<br />

B(λ,r) = {λ + h | h ≤ r}.<br />

Let P ⊂ R k be a bounded polyhedron (a polytope) <strong>and</strong> let λ ∈ P. We recall<br />

from [BV04] that the depth <strong>of</strong> λ with respect to P is defined by<br />

depth(λ,P) = dist(λ, R k \ P)<br />

= inf<br />

z∈Rk \P<br />

λ − z<br />

= max r, (6.12)<br />

B(λ,r)⊂P<br />

<strong>and</strong> that a Chebyshev center [BV04] <strong>of</strong> a polytope P ⊂ R k is given by<br />

λc = argmax depth(λ,P) (6.13)<br />

λ∈P


6.3. Solution <strong>of</strong> the existence <strong>and</strong> representation problem 79<br />

In words, a Chebyshev center <strong>of</strong> a polytope P is every point λc ∈ P for<br />

which the distance to the exterior <strong>of</strong> P is maximal. It is also the center<br />

<strong>of</strong> a largest inscribed ball. In analogy, let C ⊂ Rk be a pointed polyhedral<br />

convex cone with apex in the origin. We define the depth <strong>of</strong> a non-zero point<br />

λ ∈ C with respect to C as follows<br />

<br />

λ<br />

depth(λ,C) = dist<br />

λ , Rk <br />

\ C<br />

<br />

<br />

= inf <br />

λ <br />

− z<br />

λ . (6.14)<br />

z∈R k \C<br />

The depth(λ,C) is the distance <strong>of</strong> the normalized vector λ/λ to the exterior<br />

<strong>of</strong> C. Due to the normalization, depth(λ,C) is bounded. We then call<br />

λc a Chebyshev direction <strong>of</strong> C ⊂ R k if <strong>and</strong> only if<br />

λc = argmax depth(λ,C).<br />

λ∈C<br />

(6.15)<br />

Since depth(λ,C) is equal for all λ that make up the same direction, (6.15)<br />

can be reformulated as<br />

λc = t argmax depth(λ,C)<br />

λ∈C,λ=γ<br />

t,γ > 0,<br />

dist(λ, R<br />

= t argmax<br />

λ∈C,λ=γ<br />

k \ C)<br />

γ<br />

t,γ > 0. (6.16)<br />

In words, among all vectors λ with λ = γ, a Chebyshev direction <strong>of</strong> C<br />

maximizes the distance from λ to the exterior <strong>of</strong> the polyhedral cone C.<br />

Since depth(λ,C) = dist(λ, R k \ C)/λ, a Chebyshev direction is also a<br />

direction that, among all vectors λ with distance δ to the exterior <strong>of</strong> C,<br />

minimizes the norm <strong>of</strong> λ:<br />

λc = t argmax<br />

λ∈C,dist(λ,Rk \C)=δ<br />

depth(λ,C) t,δ > 0,<br />

= t argmax<br />

λ∈C,dist(λ,Rk δ<br />

\C)=δ λ<br />

t,δ > 0. (6.17)<br />

Analogous to a Chebyshev center, a Chebyshev direction corresponds to<br />

the axis <strong>of</strong> a largest cone inscribed in the pointed polyhedral cone C.<br />

The main result <strong>of</strong> this Section is the following.


80 6. <strong>Rational</strong> interpolation <strong>of</strong> vertical segments<br />

Proposition 6.3.1. Let Lℓ,m(Sn) be the polyhedral cone (6.9). Then Lℓ,m(Sn)<br />

is full-dimensional <strong>and</strong> Rℓ,m(Sn) = ∅ if <strong>and</strong> only if, for some δ > 0, the<br />

quadratic programming problem<br />

argmin<br />

λ∈Rℓ+m+2 λ 2<br />

s.t. ujλ − δuj ≥ 0, j = 1,... ,2n + 2<br />

(6.18)<br />

has a solution. If (6.18) has a solution for some δ > 0, then this solution<br />

λmin is unique <strong>and</strong> the ray tλmin, t > 0, is the unique Chebyshev direction <strong>of</strong><br />

Lℓ,m(Sn). The corresponding rational function is an element <strong>of</strong> Rℓ,m(Sn).<br />

Pro<strong>of</strong>. We start by characterizing balls inscribed in C = Lℓ,m(Sn). For a<br />

single half space ujλ ≥ 0, the ball B(λ,r) lies in the correct half space if<br />

<strong>and</strong> only if<br />

inf<br />

h≤r uj(λ + h) ≥ 0.<br />

We express this into a form independent <strong>of</strong> h, by noting that<br />

<strong>and</strong> also<br />

inf<br />

h≤r uj(λ + h) ≥ 0 ⇔ inf<br />

h≤r ujλ − |uj · h| ≥ 0<br />

inf<br />

h≤r ujλ − |uj · h| = ujλ − sup |uj · h|<br />

h≤r<br />

= ujλ − ruj.<br />

Hence, balls B(λ,r) inscribed in the polyhedral cone C = Lℓ,m(Sn) satisfy<br />

ujλ − ruj ≥ 0, j = 1,... ,2n + 2. (6.19)<br />

If we set r = dist(λ, R k \ C) in (6.19), then λ ∈ C = Lℓ,m(Sn), if <strong>and</strong> only if<br />

ujλ − dist(λ, R k \ C)uj ≥ 0, j = 1,... ,2n + 2. (6.20)<br />

It follows from (6.20) that there exists an interior point λ in Lℓ,m(Sn) if <strong>and</strong><br />

only if the quadratic programming problem (6.18) has a solution. Hence<br />

Lℓ,m(Sn) is full-dimensional <strong>and</strong> Rℓ,m(Sn) = ∅ if <strong>and</strong> only if the quadratic<br />

programming problem has a solution.<br />

We now assume that there exists a λ = 0 in Lℓ,m(Sn). By combining<br />

(6.20) with (6.17), we find that λ is a Chebyshev direction <strong>of</strong> the polyhedral


6.3. Solution <strong>of</strong> the existence <strong>and</strong> representation problem 81<br />

cone C = Lℓ,m(Sn) if <strong>and</strong> only if for some fixed δ > 0,<br />

or equivalently<br />

λc = t argmax<br />

λ∈R k<br />

δ<br />

λ<br />

t > 0<br />

s.t. ujλ − δuj ≥ 0, j = 1,... ,2n + 2,<br />

λc = t argmin<br />

λ∈Rk λ 2<br />

t > 0<br />

s.t. ujλ − δuj ≥ 0, j = 1,... ,2n + 2.<br />

(6.21)<br />

(6.22)<br />

Since λ 2 is a strictly convex function, the minimizer λmin <strong>of</strong> (6.18) is<br />

unique <strong>and</strong> hence the corresponding direction tλmin is the unique Chebyshev<br />

direction <strong>of</strong> C = Lℓ,m(Sn). This concludes the pro<strong>of</strong>.<br />

Observe that the Chebyshev direction obtained by solving (6.18) is independent<br />

<strong>of</strong> the choice <strong>of</strong> δ > 0. How to best choose δ is discussed in<br />

Section 6.4.<br />

Let us briefly come back to the relation between the results presented<br />

here <strong>and</strong> in [MB82]. Considering the representation problem for models<br />

which are linear in the unknown coefficients as in [MB82], rather than for<br />

rational models rℓ,m(x,y) as in (6.5), changes the nature <strong>of</strong> the problem.<br />

Indeed, for the former the problem can be reduced to the computation <strong>of</strong> a<br />

Chebyshev center <strong>of</strong> a bounded polyhedron [MB82]. This amounts to solving<br />

a linear programming problem. For the latter, we have shown that the<br />

problem can be reduced to the computation <strong>of</strong> a Chebyshev direction <strong>of</strong> an<br />

unbounded polyhedral set, resulting in a quadratic programming problem.<br />

Only if we add additional linear constraints to bound Lℓ,m(Sn), can we<br />

reduce the problem to the one discussed in [MB82]. A possible way to<br />

bound Lℓ,m(Sn) is by imposing conditions on the coefficients <strong>of</strong> the rational<br />

function. We have already indicated that a normalization where one <strong>of</strong><br />

the coefficients is chosen a priori, e.g. b0 = 1, potentially causes loss <strong>of</strong><br />

solutions. But what happens to the solution set if we add the conditions<br />

|λj| ≤ 1,j = 1,... ,k, where λj denotes the j th element <strong>of</strong> the vector λ =<br />

(a0,...,aℓ,b0,... ,bm) T ? For L > 0, let<br />

BLℓ,m(Sn,L) = {λ ∈ R k | Uλ ≥ 0, |λi| ≤ L,i = 1,... ,k}. (6.23)


82 6. <strong>Rational</strong> interpolation <strong>of</strong> vertical segments<br />

A Chebyshev center <strong>of</strong> this bounded polyhedron is found by solving the<br />

linear programming problem [BV04]<br />

maxr<br />

s.t. ujλ − ruj ≥ 0, j = 1,... ,2n + 2,<br />

λj − r ≥ −L, j = 1,... ,k,<br />

−λj − r ≥ −L, j = 1,... ,k,<br />

r ≥ 0.<br />

(6.24)<br />

Since (6.24) is a linear programming problem, <strong>and</strong> (6.18) is a quadratic<br />

programming problem, it seems natural to solve (6.24) <strong>and</strong> not (6.18). We<br />

have reformulated the problem as a quadratic programming problem for the<br />

following important reasons. First, as is clear from Figure 6.1, a Chebyshev<br />

center <strong>of</strong> the bounded polyhedron is not necessarily the Chebyshev direction<br />

<strong>of</strong> the corresponding unbounded polyhedral cone. Second, in case the<br />

bounded polyhedron BLℓ,m(Sn,L) has different Chebyshev centers, as is the<br />

case in Figure 1, the solution <strong>of</strong> the linear programming problem (6.24) is<br />

not unique. In contrast, the polyhedral cone Lℓ,m(Sn) has a unique Chebyshev<br />

direction, which is the solution <strong>of</strong> the quadratic programming problem<br />

(6.18). Third, as noted in [Gas79], for linear programming problems<br />

that are highly homogeneous, such as is the case in (6.24), computer cycling<br />

<strong>of</strong> the simplex method is the rule rather than the exception. We have found<br />

in practice that solving the quadratic programming problem is far more accurate<br />

<strong>and</strong> faster than solving the corresponding LP problem, either by the<br />

simplex method or by an interior point method.<br />

Figure 6.1: The boldface lines denote the boundary <strong>of</strong> the polyhedral cone<br />

Lℓ,m(Sn), <strong>and</strong> λc denotes its Chebyshev direction. The center <strong>of</strong> the disk is<br />

a Chebyshev center <strong>of</strong> BLℓ,m(Sn,1).


6.4. Algorithmic aspects 83<br />

The following Proposition summarizes the relation between the linear<br />

programming problem (6.24) <strong>and</strong> the quadratic programming problem (6.18).<br />

Proposition 6.3.2. Let Lℓ,m(Sn) be the polyhedral cone (6.9) with apex at<br />

the origin <strong>and</strong> let BLℓ,m(Sn,L1) be the corresponding polytope (6.23). Then<br />

Lℓ,m(Sn) = {0} if <strong>and</strong> only if BLℓ,m(Sn,L) = {0} for any L > 0. Moreover,<br />

If λ1 is a Chebyshev center <strong>of</strong> BLℓ,m(Sn,L1) with radius r1, then there exists<br />

a t > 0 such that tλ1 is a Chebyshev center <strong>of</strong> BLℓ,m(Sn,L2) for any L2 > 0.<br />

Pro<strong>of</strong>. If Lℓ,m(Sn) = {0} then for any non-zero vector λ ∈ Lℓ,m(Sn) also<br />

tλ ∈ Lℓ,m(Sn) for all t > 0. Therefore BLℓ,m(Sn,L) = {0} for any L > 0.<br />

Conversely, if there exists a vector λ ∈ BLℓ,m(Sn,L) with λ = 0, then<br />

Uλ ≥ 0, hence λ ∈ Lℓ,m(Sn).<br />

If λ1 is a Chebyshev center <strong>of</strong> BLℓ,m(Sn,L1) with radius r1, it satisfies<br />

(6.24) with L = L1 <strong>and</strong> r = r1. It follows immediately that for any L2 > 0,<br />

L2λ/L1 is a Chebyshev center <strong>of</strong> BLℓ,m(Sn,L2) with radius L2r1/L1. This<br />

concludes the pro<strong>of</strong>.<br />

It follows from Proposition 6.3.2 that if the bounded polyhedron has<br />

a unique Chebyshev center, the rational function that corresponds to the<br />

solution λ <strong>of</strong> (6.24) is independent <strong>of</strong> the constant L. If the Chebyshev<br />

center <strong>of</strong> the bounded polyhedron is not unique, solving (6.24) for different<br />

values <strong>of</strong> L may yield Chebyshev centra which are not on the same ray<br />

through the origin <strong>and</strong> hence different rational functions.<br />

6.4 Algorithmic aspects<br />

In this Section we discuss a number <strong>of</strong> aspects related to the solution <strong>of</strong> the<br />

representation problem for (6.5):<br />

• given n+1 vertical segments, how do we determine the numerator <strong>and</strong><br />

denominator degrees <strong>of</strong> the rational function to fit these data?<br />

• how do we choose δ in (6.18)?<br />

First, the complexity <strong>of</strong> a rational function is determined by its degree<br />

sets Nℓ <strong>and</strong> Dm. As ℓ <strong>and</strong> m increase, so does the complexity <strong>of</strong> the rational<br />

function rℓ,m(x,y). For ℓ = 0,1,... <strong>and</strong> m = 0,1,... , we organize<br />

the rational functions rℓ,m(x,y) in a two-dimensional table as indicated in<br />

Table 6.1. In order to determine the rational model <strong>of</strong> lowest complexity for<br />

which Rℓ,m(Sn) = ∅, we enumerate over the sloping diagonals <strong>of</strong> Table 6.1,


84 6. <strong>Rational</strong> interpolation <strong>of</strong> vertical segments<br />

r0,0(x,y) r0,1(x,y) r0,2(x,y) · · ·<br />

r1,0(x,y) r1,1(x,y) r1,2(x,y) · · ·<br />

r2,0(x,y)<br />

.<br />

r2,1(x,y)<br />

.<br />

r2,2(x,y)<br />

.<br />

· · ·<br />

. ..<br />

Table 6.1: Table <strong>of</strong> multivariate rational interpolants.<br />

each time solving the quadratic programming problem (6.18). The following<br />

pseudocode summarizes the algorithm.<br />

solution= ∅<br />

for d = 0,1,2,...<br />

for ℓ = d,...,0<br />

solve (6.18) for numerator degree set Nℓ<br />

<strong>and</strong> denominator degree set Dd−ℓ<br />

if (6.18) has the unique solution λmin<br />

let rℓ,d−ℓ(x,y) be the irreducible rational function<br />

derived from the coefficients in λmin<br />

solution:= solution ∪{rℓ,d−ℓ(x,y)}<br />

endif<br />

endfor<br />

if solution= ∅ return solution<br />

endfor<br />

We call the rational functions rℓ,m(x,y) in solution the rational functions<br />

<strong>of</strong> minimal complexity satisfying the interpolation conditions (6.7). We<br />

remark that there may exist a rational function rν,µ(x,y) with ν +µ < ℓ+m<br />

<strong>and</strong> such that rν,µ(xi,yi) ∈ Fi, i = 0,... ,n. Indeed, we recall from Proposition<br />

6.3.1 that the quadratic programming problem has a solution if <strong>and</strong><br />

only if Lν,µ(Sn) is full-dimensional. If this is not the case, this does not<br />

imply Lν,µ(Sn) = {0}. However, for any non-zero element in Lν,µ(Sn), the<br />

corresponding rational function then exactly fits at least one <strong>of</strong> the bounds <strong>of</strong><br />

the interval data <strong>and</strong> may have unattainable points, which is not desirable.<br />

Second, it follows from Proposition 6.3.1 that solving the representation<br />

problem for (6.5), amounts to computing the solution <strong>of</strong> the quadratic programming<br />

problem (6.18) for some δ > 0. It seems natural to set δ = 1.<br />

Instead <strong>of</strong> this obvious choice, it is better, from a numerical point <strong>of</strong> view,<br />

to determine δ differently <strong>and</strong> take into account the condition number <strong>of</strong> the<br />

matrix U in (6.9). If the matrix U in (6.9) is almost rank deficient, then<br />

the depth <strong>of</strong> any point λ strictly in the interior <strong>of</strong> the cone determined by


6.5. Conclusion 85<br />

Uλ ≥ 0 is small. Since<br />

depth(λ,C) = dist(λ,C)<br />

λ<br />

= δ<br />

λ<br />

the choice δ = 1 implies that the norm <strong>of</strong> λ obtained from (6.18) is large.<br />

In order to avoid explosive growth <strong>of</strong> the elements <strong>of</strong> λ, we need to choose<br />

δ much smaller when U is ill-conditioned. Therefore, we set δ = 1/κ(U),<br />

where κ(U) is the condition number <strong>of</strong> the matrix U defined by<br />

κ(U) = σmax(U)<br />

, (6.25)<br />

σmin(U)<br />

<strong>and</strong> σmax(U) <strong>and</strong> σmin(U) are, respectively, the largest <strong>and</strong> the smallest<br />

singular value <strong>of</strong> U.<br />

6.5 Conclusion<br />

A very natural way to deal with uncertainty in data is by means <strong>of</strong> an<br />

uncertainty interval. Here, we have assumed that the uncertainty in the<br />

independent variable is negligible <strong>and</strong> that for each observation, an uncertainty<br />

interval can be given which contains the (unknown) exact value. We<br />

have presented an approach to compute rational functions intersecting the<br />

interval data <strong>and</strong> shown that the problem reduces to a quadratic programming<br />

problem, which has a unique solution <strong>and</strong> which is easy to solve by<br />

st<strong>and</strong>ard methods. The practical applicability <strong>of</strong> the technique is illustrated<br />

in the next Chapter.


Benchmarks<br />

7<br />

In this Chapter we apply the technique developed in the previous Chapter to<br />

several benchmark problems. The obtained results indicate that the method<br />

scales very well to higher dimensional problems.<br />

To improve the numerical conditioning <strong>of</strong> the problem, each independent<br />

variable is rescaled to the interval [−1,1] <strong>and</strong> products <strong>of</strong> Chebyshev polynomials<br />

<strong>of</strong> the first kind are used as basis functions. The coefficients <strong>of</strong> the numerator<br />

<strong>and</strong> denominator polynomials with respect to these basis functions<br />

are denoted by ˜ λ = (ã0,... ,ãℓ, ˜ b0,... , ˜ bm) T . The quadratic programming<br />

problem (6.18) is solved using the MOSEK 1 Optimization Toolbox 5.0.0.84<br />

for Matlab.<br />

7.1 A univariate problem<br />

A first univariate illustration is the Kirby2 dataset, part <strong>of</strong> the NIST Statistical<br />

Reference <strong>Data</strong>sets 2 . There are 151 observations (xi,fi). From the<br />

NIST Statistical Reference <strong>Data</strong>sets website we find an indication that an<br />

error margin on the fi values is <strong>of</strong> the order <strong>of</strong> Fi = [fi − 2σ,fi + 2σ] with<br />

σ = 0.16354535131 2 . For the vertical segments<br />

S150 = {(xi,Fi)|i = 0,... ,150},<br />

our algorithm returns solution= {r2,2(x)}. The rational function r2,2(x)<br />

has coefficients ã0 = 31.82,ã1 = 43.55,ã2 = 11.83, ˜ b0 = 0.53, ˜ b1 = 0.32, ˜ b2 =<br />

0.11 <strong>and</strong> is plotted in Figure 7.1(a).<br />

r rls<br />

2,2<br />

For the same data set, we also compute the rational least squares model<br />

(x) <strong>of</strong> degree 2 in numerator <strong>and</strong> denominator with thenlinfit function<br />

1 http://www.mosek.com<br />

2 http://www.itl.nist.gov/div898/strd/index.html<br />

87


88 7. Benchmarks<br />

80<br />

60<br />

40<br />

20<br />

0<br />

−1 −0.5 0 0.5 1<br />

(a)<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

−0.2<br />

−0.4<br />

−0.6<br />

rational least squares<br />

r l,m (x)<br />

−0.8<br />

−1 −0.5 0 0.5 1<br />

Figure 7.1: Kirby2 dataset. Figure 7.1(a) shows the vertical data segments<br />

<strong>and</strong> r2,2(x), which is the rational model <strong>of</strong> minimal complexity satisfying the<br />

interpolation conditions. Figure 7.1(b) shows the absolute error <strong>of</strong> r2,2(x)<br />

(plus) <strong>and</strong> <strong>of</strong> the rational least squares model <strong>of</strong> degree 2 in numerator <strong>and</strong><br />

denominator (star). The two lines represent the boundaries ±2σ.<br />

<strong>of</strong> the Statistics Toolbox <strong>of</strong> Matlab. In rational least squares, the coefficients<br />

<strong>of</strong> the regression model r(x) are estimated by minimizing the least squares<br />

criterion<br />

n<br />

(fi − r(xi)) 2<br />

i=0<br />

(b)<br />

(7.1)<br />

over all rational functions r(x) <strong>of</strong> fixed numerator <strong>and</strong> denominator degree.<br />

As already pointed out, the solution <strong>of</strong> non-linear least squares approximation<br />

problems depends on the starting values, since the objective<br />

function (7.1) may have many local minima. With the starting values<br />

ã0 = ã1 = ã2 = ˜ b0 = ˜ b1 = ˜ b2 = 1, the procedure to minimize (7.1) over<br />

all rational functions <strong>of</strong> degree 2 in numerator <strong>and</strong> denominator stops with<br />

an objective function value <strong>of</strong> 1.333∗10 5 , while the global minimum is 3.905!<br />

If we choose as starting values the coefficients <strong>of</strong> r2,2(x), normalized such<br />

that b0 = 1, then the optimization procedure does converge to the global<br />

minimum. This is not surprising: evaluating (7.1) for r(x) = r2,2(x) gives<br />

(x) is 3.905.<br />

the value 7.418, while the optimal value obtained for r(x) = r rls<br />

2,2<br />

In Figure 7.1(b) the absolute error <strong>of</strong> r2,2(x) is compared with that <strong>of</strong><br />

r rls<br />

2,2 (x). From this plot one can see that r2,2(x) stays within the required<br />

bound 2σ ≈ 0.32709 <strong>of</strong> the point data.


7.2. Bivariate problems 89<br />

7.2 Bivariate problems<br />

The second example is the bivariate Kotancheck function<br />

f(x,y) =<br />

e−(y−1)2 . (7.2)<br />

1.2 + (x − 2.5) 2<br />

There are 100 scattered samples (xi,yi,fi), with (xi,yi) selected from the interval<br />

[0,4]×[0,4]. Each observation fi has been corrupted by r<strong>and</strong>om noise<br />

within the interval [−0.0252,0.0252] \ {0}, to generate vertical segments <strong>of</strong><br />

different width enclosing the function value. If we enumerate N 2 along downward<br />

sloping diagonals to construct the numerator <strong>and</strong> denominator index<br />

sets Nℓ <strong>and</strong> Dm for increasing values <strong>of</strong> ℓ <strong>and</strong> m, then the algorithm returns<br />

solution= {r6,12(x,y)}, where the numerator <strong>and</strong> denominator degree sets<br />

are respectively given by<br />

N6 = {(0,0),(0,1),(1, 0),(0,2),(1, 1), (2,0),(0,3)}<br />

D12 = {(0,0),(0,1),(1, 0),(0,2),(1, 1), (2,0),(0, 3), (1,2),<br />

(2,1),(3,0),(0, 4), (1,3),(2,2)}<br />

<strong>and</strong> where r6,12(x,y) is plotted in Figure 7.2(c). To evaluate the goodness<br />

<strong>of</strong> fit <strong>of</strong> r6,12(x,y), we also plot the absolute error |r6,12(x,y) − f(x,y)| in<br />

Figure 7.2(e), <strong>and</strong> observe that it is smaller than the maximum width <strong>of</strong> the<br />

vertical segments over the entire interval.<br />

Another typical benchmark problem from optimization is the Six-Hump<br />

Camelback function (or simply Camelback function). It is a bivariate polynomial,<br />

given by<br />

f(x,y) = (4 − 2.1x 2 + 1<br />

3 x4 )x 2 + xy + (−4 + 4y 2 )y 2<br />

= 4x 2 − 2.1x 4 + 1<br />

3 x6 + xy − 4y 2 + 4y 4 .<br />

We consider a small 7×7 rectangular grid (xi,yi) equally spaced in [−2,2]×<br />

[−1,1] <strong>and</strong> construct the segments Fi = [fi − r,fi + r] with r = 10 −5 for<br />

a somewhat accurate approximation. If we enumerate N 2 along upward<br />

sloping diagonals to construct the numerator <strong>and</strong> denominator index sets<br />

Nℓ <strong>and</strong> Dm for increasing values <strong>of</strong> ℓ <strong>and</strong> m, then the algorithm returns<br />

solution= {r21,0(x)}, a polynomial <strong>of</strong> which the numerator <strong>and</strong> denominator<br />

degree sets are respectively given by<br />

N21 = {(k1,k2) ∈ N 2 | 0 ≤ k1 + k2 ≤ 5} ∪ {(6,0)}, D0 = {(0,0)}.


90 7. Benchmarks<br />

| f(x,y) − r l,m (x,y)|<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

4 0<br />

4<br />

0.03<br />

0.02<br />

0.01<br />

4<br />

3<br />

2<br />

y<br />

1<br />

0<br />

(a) Kotancheck function<br />

2<br />

y<br />

0<br />

0<br />

0<br />

1<br />

(c) r6,12(x, y)<br />

max. abs. err.: 0.035128, mean abs. err.: 0.0062891<br />

2<br />

y<br />

0<br />

(e) Absolute error<br />

0<br />

x<br />

x<br />

x<br />

2<br />

2<br />

2<br />

3<br />

4<br />

4<br />

4<br />

| f(x,y) − r l,m (x,y)|<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

−1<br />

1<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

−1<br />

1<br />

2<br />

1.5<br />

1<br />

0.5<br />

1<br />

0.5<br />

0.5<br />

0<br />

−0.5<br />

y<br />

−1<br />

−2<br />

−1<br />

(b) Camelback function<br />

0<br />

−0.5<br />

y<br />

−1<br />

−2<br />

−1<br />

(d) r21,0(x,y)<br />

max. abs. err.: 2.0185e−05, mean abs. err.: 6.4248e−06<br />

x 10 −5<br />

0<br />

y<br />

−1<br />

−2<br />

−1<br />

(f) Absolute error<br />

Figure 7.2: The Kotancheck <strong>and</strong> Camelback function are shown in Figures<br />

7.2(a) <strong>and</strong> 7.2(b). Figures 7.2(c) <strong>and</strong> 7.2(d) show r6,12(x,y) <strong>and</strong><br />

r21,0(x,y) which are the rational models <strong>of</strong> minimal complexity satisfying<br />

the interpolation conditions. Figure 7.2(e) <strong>and</strong> 7.2(f) show the absolute error<br />

over the entire interval. Also the location <strong>of</strong> the data points is indicated.<br />

x<br />

x<br />

x<br />

0<br />

0<br />

0<br />

1<br />

1<br />

1<br />

2<br />

2<br />

2


7.3. Higher dimensional problems 91<br />

The Camelback function, its approximation r21,0(x,y) <strong>and</strong> the absolute error<br />

over the entire interval is shown in Figures 7.2(b), 7.2(d) <strong>and</strong> 7.2(f)<br />

respectively. Again it is observed that the maximum absolute error over the<br />

entire interval is about the width <strong>of</strong> the vertical segments.<br />

Although our goal is never exact interpolation, but merely the construction<br />

<strong>of</strong> an acceptable approximation, the coefficients <strong>of</strong> the obtained model<br />

are worth a closer inspection. Some <strong>of</strong> the coefficients in ˜ λ are very small<br />

compared to the norm <strong>of</strong> ˜ λ, which is ˜ λ2 = 2.866185751786245. If we<br />

discard the contribution <strong>of</strong> the coefficients <strong>of</strong> which the absolute value is<br />

smaller than 10 −5 , then the remaining degree sets are given by<br />

N = {(0,0),(2,0),(1,1),(4,0), (0, 4),(6,0)}, D = {(0,0)}.<br />

After normalization <strong>of</strong> the denominator, i.e. q(x,y) ≡ 1 <strong>and</strong> exp<strong>and</strong>ing the<br />

Chebyshev polynomials with x substituted by x/2 (due to the rescaling from<br />

[−2,2] to [−1,1] for the variable x), we obtain<br />

p(x,y) = 1.5667 + 1.2(2( x<br />

2 )2 − 1) + 2 x<br />

y − 0.2 − 0.2(8(x<br />

2 2 )4 − 8( x<br />

2 )2 + 1)<br />

+0.5(8y 4 − 8y 2 + 1) + 0.6667(32( x<br />

2 )6 − 48( x<br />

2 )4 + 18( x<br />

2 )2 − 1).<br />

When fully exp<strong>and</strong>ed, this simplifies to<br />

p(x,y) = 4.00015x 2 − 2.1001x 4 + 0.33335x 6 + xy − 4y 2 + 4y 4 ,<br />

which is almost exactly the original Camelback function.<br />

7.3 Higher dimensional problems<br />

To illustrate the scalability <strong>of</strong> the technique to higher dimensions, we consider<br />

the simple d-dimensional unwrapped balls<br />

f(x) =<br />

d +<br />

2d<br />

d<br />

(xi − 3) 2<br />

, x ∈ [0,6] d .<br />

i=1<br />

One <strong>of</strong> the motivations for choosing these functions is that they appear to<br />

be quite difficult for Symbolic Regression through Genetic Programming<br />

techniques [Vla08]. Of course, simple comparison would not be fair, because<br />

it is to be expected that a rational approximation technique performs best<br />

when the underlying model is also rational.<br />

The experimental setup is as follows.


92 7. Benchmarks<br />

• In the previous sections we have always chosen an absolute error for<br />

the vertical segments. Here we construct segments <strong>of</strong> which the width<br />

is defined in a relative way<br />

Fk = [f(xk) − |f(xk)|r,f(xk) + |f(xk)|r] (7.3)<br />

with r = 10 −4 . Hence a relative error <strong>of</strong> at most 0.01 % is imposed.<br />

• For different values <strong>of</strong> d, we take 10d data xk from a Latin Hypercube<br />

design [MCB79] ∈ [0,6] d for constructing the vertical segments. To<br />

evaluate the goodness <strong>of</strong> fit over the entire domain [0,6] d , the obtained<br />

rational model rℓ,m(x) is compared a posteriori with f(x) on another<br />

100d data from a Latin Hypercube design ∈ [0,6] d . Note that only the<br />

10d data are used for constructing rℓ,m(x).<br />

• There are many different ways to enumerate over the elements <strong>of</strong> N d .<br />

The particular ordering used here to construct the numerator <strong>and</strong><br />

denominator index sets Nℓ <strong>and</strong> Dm for increasing values <strong>of</strong> ℓ <strong>and</strong> m<br />

is described in Section A.2.1 <strong>of</strong> Appendix A. It is a straightforward<br />

generalization <strong>of</strong> the enumeration over N 2 along sloping diagonals.<br />

The results for increasing d ≥ 2 are reported in Table 7.3. The rational<br />

function <strong>of</strong> minimal complexity solution= {rℓ,m(x)} is shown in the third<br />

column. For each d, the denominator degree set is given by the full triangle<br />

Dm = {(k1,...,kd) ∈ N d | 0 ≤<br />

d<br />

ki ≤ 2}.<br />

The mean <strong>and</strong> maximum relative errors over the more dense Latin Hypercube<br />

design are shown in the last two columns. Clearly rℓ,m(x) performs<br />

very well over the entire domain although only a small number <strong>of</strong> points are<br />

used for the approximation itself. This small simple example demonstrates<br />

that, if the underlying function is rational, the technique is able to construct<br />

a good approximation from a low number <strong>of</strong> samples, even in high dimensions.<br />

In the next Chapter more complex rational functions are considered.<br />

As the next example illustrates, the underlying function does not need to<br />

be a quotient <strong>of</strong> polynomials for the technique to yield good approximations.<br />

A more challenging <strong>and</strong> more typical high dimensional problem is the 8dimensional<br />

borehole model by [MMY93] for the flow rate <strong>of</strong> water through<br />

a borehole that is drilled from the ground surface through two aquifers. This<br />

i=1


7.3. Higher dimensional problems 93<br />

dim. d #segments rℓ,m(x) mean rel. err. max. rel. err.<br />

2 20 r0,5(x) 3.9319e − 05 6.1450e − 05<br />

3 30 r0,9(x) 4.0797e − 05 5.7548e − 05<br />

4 40 r0,14(x) 4.0804e − 05 1.4161e − 04<br />

5 50 r0,20(x) 2.5462e − 05 8.6450e − 05<br />

6 60 r0,27(x) 3.0695e − 05 1.1937e − 04<br />

7 70 r0,35(x) 5.4336e − 05 2.6863e − 04<br />

8 80 r0,44(x) 5.4929e − 05 2.4269e − 04<br />

9 90 r0,54(x) 6.2346e − 05 2.8374e − 04<br />

10 100 r0,65(x) 6.0726e − 05 2.3201e − 04<br />

11 110 r0,77(x) 7.3928e − 05 3.7486e − 04<br />

12 120 r0,90(x) 8.2092e − 05 4.3828e − 04<br />

13 130 r0,104(x) 9.4496e − 05 4.6142e − 04<br />

14 140 r0,119(x) 1.6180e − 04 6.9907e − 04<br />

15 150 r0,135(x) 1.5971e − 04 7.6827e − 04<br />

Table 7.1: Results for the d-dimensional unwrapped balls for increasing d.<br />

The second column shows the number <strong>of</strong> data ∈ [0,6] d used to construct the<br />

rational model. Column rℓ,m(x) shows the obtained rational model. The<br />

last two columns are the relative errors over 100d Latin Hypercube samples<br />

in [0,6] d .<br />

flow rate can be expressed explicitly as<br />

2πTu(Hu − Hl)<br />

F = <br />

2LTu<br />

ln(r/rw) 1 +<br />

ln(r/rw)r 2 wKw<br />

+ Tu<br />

<br />

Tl<br />

where r,rw are the radii <strong>of</strong> the borehole <strong>and</strong> the surrounding basin, Tu,Tl<br />

are the transmissivities <strong>of</strong> the aquifers, Hu,Hl are the potentiometric heads<br />

<strong>of</strong> the aquifers, L is the length <strong>of</strong> the borehole <strong>and</strong> Kw is the conductivity.<br />

The ranges <strong>of</strong> interest <strong>of</strong> each <strong>of</strong> the inputs are given by rw ∈ [0.05,0.015],<br />

r ∈ [100,50000], Tu ∈ [63070,115600], Tl ∈ [63.1,116], Hu ∈ [990,1110],<br />

Hl ∈ [700,820], L ∈ [1120,1680] <strong>and</strong> Kw ∈ [9855,12045].<br />

We take 200 Latin Hypercube samples within the domain <strong>and</strong> define<br />

segments as in (7.3) with a 0.1 % error (hence r = 0.001). Then solution=<br />

{r52,65(x)} is obtained where the numerator <strong>and</strong> denominator degree sets


94 7. Benchmarks<br />

are respectively given by<br />

N52 = {(k1,...,k8) ∈ N 8 | 0 ≤ k1 + ... + k8 ≤ 2}∪<br />

{(3,0,0,0,0,0,0, 0),(2,1,0,0, 0, 0, 0,0), (1, 2, 0, 0,0,0,0,0),<br />

(0,3,0,0,0,0,0,0),(2,0,1,0,0,0, 0, 0), (1,1,1, 0, 0, 0,0,0),<br />

D65 = {(k1,... ,k8) ∈ N 8 | 0 ≤ k1 + ... + k8 ≤ 2}∪<br />

(0,2,1,0,0,0,0,0),(1,0,2,0,0, 0, 0, 0)}<br />

{(k1,... ,k5,0,0,0) ∈ N 8 | k1 + ... + k5 = 3} ∪ (2,0,0,0,1,0,0,0)<br />

To illustrate the goodness <strong>of</strong> fit over the entire domain, r52,65(x) is plotted<br />

against F in Figure 7.3 for 100 r<strong>and</strong>omly generated points within the<br />

domain. The relative error <strong>of</strong> r52,65(x) in 4000 r<strong>and</strong>om points within the<br />

domain is shown in Figure 7.4. Clearly r52,65(x) is a good approximation<br />

over the entire domain.<br />

r l,m (x)<br />

160<br />

140<br />

120<br />

100<br />

80<br />

60<br />

40<br />

20<br />

20 40 60 80 100 120 140 160<br />

F<br />

Figure 7.3: The evaluation <strong>of</strong> r52,65(x) against F for 100 r<strong>and</strong>om points.<br />

7.4 Guidelines<br />

From our experiments, some guidelines can be given on the use <strong>of</strong> the technique.<br />

Much depends <strong>of</strong> course on the quality <strong>of</strong> the QP solver.


7.4. Guidelines 95<br />

0.022<br />

0.02<br />

0.018<br />

0.016<br />

0.014<br />

0.012<br />

0.01<br />

0.008<br />

0.006<br />

0.004<br />

0.002<br />

max. rel. err.: 2.2652e−02 , mean rel. err.: 1.6232e−03<br />

0 500 1000 1500 2000 2500 3000 3500 4000<br />

Figure 7.4: Relative error <strong>of</strong> r52,65(x) over 4000 r<strong>and</strong>om points (sorted).<br />

It is noted that the segment width should not be too conservative. Although<br />

in theory, any nonzero width for the segments is allowed, in practice,<br />

segment widths near machine precision are not recommended. For the QP<br />

solvers to find a Chebyshev direction numerically, some freedom is needed.<br />

Nevertheless good approximations are obtained even with larger segment<br />

widths.<br />

The curse <strong>of</strong> dimensionality is fairly moderate. Although the exact timecomplexity<br />

<strong>of</strong> QP solvers is <strong>of</strong>ten not available [PV92], as a rule <strong>of</strong> the<br />

thumb we can take quadratic growth in the number <strong>of</strong> unknowns <strong>and</strong> linear<br />

growth in the number <strong>of</strong> constraints. Hence complex rational models with<br />

little constraints are more time consuming to solve than simple rational<br />

models with many constraints. Inevitably, for high dimensional problems,<br />

the number <strong>of</strong> constraints must be larger to have a suitable coverage <strong>of</strong> the<br />

domain. But from the examples we have shown in the previous Section it is<br />

clear that an acceptable approximation is <strong>of</strong>ten already obtained with only<br />

a small number <strong>of</strong> samples. The most time is in fact spent in looking for<br />

the appropriate degree sets for numerator <strong>and</strong> denominator, enumerating<br />

over several possibilities. But for a state <strong>of</strong> the art QP solver it takes at<br />

most some seconds to decide whether or not a certain choice <strong>of</strong> degree sets<br />

is admissible. It is a great advantage to have such an automated process.<br />

Especially for high dimensional problems it is <strong>of</strong>ten not a trivial task to<br />

decide on a proper choice for the degree sets. When using other rational<br />

approximation techniques, such as rational least squares, one needs to decide<br />

on the model complexity first. Only after an expensive <strong>and</strong> local-minimum


96 7. Benchmarks<br />

prone optimization can one decided upon the adequacy <strong>of</strong> the model. In<br />

conclusion, a considerable amount <strong>of</strong> time is spent to find a solution, only in<br />

case that a lot <strong>of</strong> high degree terms are necessary. However, an advantage<br />

<strong>of</strong> rational functions is exactly that good approximations are <strong>of</strong>ten already<br />

obtained with fairly low degree models.<br />

Concerning the behavior <strong>of</strong> the poles <strong>of</strong> the approximating rational function<br />

we can say the following. The implicit condition q(xi,yi) > 0 imposed<br />

on sufficiently many points that lie close enough within the domain <strong>of</strong> interest<br />

causes the approximation to be free <strong>of</strong> poles. What is meant by sufficiently<br />

many <strong>and</strong> close enough is made more concrete in Proposition 8.4.1<br />

in the next Chapter. In none <strong>of</strong> the examples we have run, did the approximating<br />

rational function have poles in the domain <strong>of</strong> interest.


Case study:<br />

multidimensional recursive<br />

filters<br />

8<br />

The design <strong>of</strong> multidimensional recursive filters is <strong>of</strong> considerable interest,<br />

but it is inherently a nonlinear complex approximation problem. The numerical<br />

optimization problem that is usually involved in the computation <strong>of</strong><br />

the rational model may have many local minima <strong>and</strong> the quality <strong>of</strong> the computed<br />

model can therefore depend highly on the provided starting values.<br />

The stability <strong>of</strong> the computed rational model for the transfer function may<br />

be hard to guarantee or check in case <strong>of</strong> a general unseparable denominator.<br />

In this Chapter we apply the technique developed in Chapter 6 <strong>and</strong> show<br />

how it can be used to overcome all these drawbacks. To this end the approximation<br />

problem is first reformulated using uncertainty intervals instead <strong>of</strong><br />

an error function. An additional advantage <strong>of</strong> the technique is the fact that<br />

the filter’s performance specifications <strong>and</strong> stability constraint can be incorporated<br />

directly in the characterization. The algorithm also automatically<br />

returns the IIR filter <strong>of</strong> lowest order <strong>and</strong> ensures maximal robustness <strong>of</strong> the<br />

stability, meaning that the computed model remains stable under the largest<br />

possible perturbations with respect to the filter’s performance specifications.<br />

8.1 Multidimensional recursive systems<br />

For ease <strong>of</strong> notation <strong>and</strong> entirely without loss <strong>of</strong> generality, we restrict the<br />

presentation to the 2-dimensional case. For indices we use the notations N =<br />

{0,1,2,...}, Z = {... , −2, −1,0,1,2,...} <strong>and</strong> N0, Z0 when the number zero<br />

is removed. In addition −N0 = {−1, −2,...}. We consider multidimensional<br />

97


98 8. Case study: multidimensional recursive filters<br />

Linear Shift-Invariant (LSI) recursive systems or systems with infinite-extent<br />

impulse response, which transform an input signal x(n1,n2) into an output<br />

signal y(n1,n2) such that y(n1,n2) can be described by a difference equation<br />

<strong>of</strong> the form<br />

y(n1,n2) = <br />

(k1,k2)∈N<br />

N⊂Z 2<br />

a(k1,k2)x(n1 − k1,n2 − k2)<br />

−<br />

<br />

(k1,k2)∈D0<br />

D0⊂Z 2 \{(0,0)}<br />

b(k1,k2)y(n1 − k1,n2 − k2) (8.1)<br />

where D0 = φ. The sets N <strong>and</strong> D = D0 ∪ {(0,0)} are the regions <strong>of</strong><br />

support <strong>of</strong> the arrays a(n1,n2) <strong>and</strong> b(n1,n2) respectively <strong>and</strong> b(0,0) = 1.<br />

The transfer function <strong>of</strong> a LSI recursive system is the ratio<br />

H(z1,z2) =<br />

1 +<br />

<br />

(k1,k2)∈N<br />

N⊂Z2 = A(z1,z2)<br />

B(z1,z2)<br />

<br />

(k1,k2)∈D0<br />

D0⊂Z 2 \{(0,0)}<br />

a(k1,k2)z −k1<br />

1 z −k2<br />

2<br />

b(k1,k2)z −k1<br />

1 z −k2<br />

2<br />

(8.2)<br />

The output signal y(n1,n2) <strong>of</strong> such a system applied to an input which is a<br />

complex sinusoid <strong>of</strong> the form x(n1,n2) = expi(t1n1+t2n2), is characterized<br />

by the system’s frequency response<br />

<br />

a(k1,k2)exp (−i(k1t1 + k2t2))<br />

H e it1 ,e it2 =<br />

(k1,k2)∈N<br />

1 + <br />

(k1,k2)∈D0<br />

b(k1,k2)exp (−i(k1t1 + k2t2)) .<br />

Usual filtering in one dimension is causal (implying N,D ⊂ N), but for most<br />

multidimensional signals there is no preferred direction for the coordinates<br />

because they are <strong>of</strong>ten spatial <strong>and</strong> not time (hence in general N,D ⊂ Z 2 ).<br />

Let a(n1,n2) <strong>and</strong> b(n1,n2) be real arrays. When presupposing the centro<br />

symmetry<br />

A(e it1 ,e it2 ) = A(e −it1 ,e −it2 )<br />

B(e it1 ,e it2 ) = B(e −it1 ,e −it2 ),


8.1. Multidimensional recursive systems 99<br />

then the polynomials A(e it1 ,e it2 ) <strong>and</strong> B(e it1 ,e it2 ) simplify to the real-<br />

valued<br />

A(e it1 ,e it2 ) =<br />

<br />

(k1,k2)∈N<br />

N⊂N×N∪N0×(−N0)<br />

ã(k1,k2)cos(k1t1 + k2t2),<br />

ã(0,0) = a(0,0), ã(k1,k2) = a(k1,k2) + a(−k1, −k2),<br />

<br />

˜b(k1,k2)cos(k1t1 + k2t2),<br />

B(e it1 ,e it2 ) =<br />

(k1,k2)∈D<br />

D⊂N×N∪N0×(−N0)<br />

˜ b(0,0) = b(0,0), ˜ b(k1,k2) = b(k1,k2) + b(−k1, −k2).<br />

When adding the reflection symmetry conditions<br />

A(e it1 ,e it2 ) = A(e it1 ,e −it2 )<br />

B(e it1 ,e it2 ) = B(e it1 ,e −it2 )<br />

(8.3)<br />

the polynomials A(eit1 it2 it1 it2 ,e ) <strong>and</strong> B(e ,e ) further simplify to the quadrantally<br />

symmetric<br />

A(e it1<br />

<br />

it2 ,e ) = ă(k1,k2)cos(k1t1)cos(k2t2),<br />

(k1,k2)∈N<br />

N⊂N 2<br />

ă(k1,0) = ã(k1,0), ă(k1,k2) = ã(k1,k2) + ã(k1, −k2),<br />

B(e it1 ,e it2 ) = <br />

(k1,k2)∈D<br />

D⊂N 2<br />

˘ b(k1,k2)cos(k1t1)cos(k2t2),<br />

˘ b(k1,0) = ˜ b(k1,0), ˘ b(k1,k2) = ˜ b(k1,k2) + ˜ b(k1, −k2).<br />

(8.4)<br />

An important issue is stability. If a system is unstable, any input, including<br />

computational noise, can cause the output to grow without bound. Thus the<br />

condition referred to as bounded-input-bounded-output or BIBO stability, is<br />

generally imposed. For the transfer function A(z1,z2)/B(z1,z2) it is required<br />

that it is analytic in a poly-annulus [GB06]<br />

r1 ≤ |z1| ≤ 1/r1, r2 ≤ |z2| ≤ 1/r2, 0 < r1,r2 < 1, (8.5)<br />

which is for instance guaranteed [CJ82], if the real-valued A(z1,z2) <strong>and</strong><br />

B(z1,z2) are normalized such that<br />

B(e it1 ,e it2 ) > 0, −π ≤ t1,t2 ≤ π.


100 8. Case study: multidimensional recursive filters<br />

8.2 <strong>Rational</strong> interpolation <strong>of</strong> uncertainty intervals<br />

To model some filter frequency response requirements, very <strong>of</strong>ten a least<br />

squares approach is used [LPT98, Dum05]. Our novel approach is to deal<br />

with data that represent uncertainty, such as the passb<strong>and</strong> <strong>and</strong> stopb<strong>and</strong><br />

ripple <strong>and</strong> the transition b<strong>and</strong> width in another very natural way, namely by<br />

means <strong>of</strong> an uncertainty interval. For notational clarity, let us briefly recall<br />

the technique presented in Chapter 6. We assume that the uncertainty in the<br />

independent variables t1 <strong>and</strong> t2 (the frequencies) is zero or at least negligible,<br />

<strong>and</strong> that for the frequency response magnitude an uncertainty interval is<br />

given which contains the prescribed exact value. We study the problem <strong>of</strong><br />

approximating these data with a rational function that intersects the given<br />

uncertainty intervals. Both the problem statement <strong>and</strong> the algorithm that<br />

we develop can be written down for any number <strong>of</strong> independent variables.<br />

For ease <strong>of</strong> notation <strong>and</strong> illustration, we again describe the 2-dimensional<br />

instead <strong>of</strong> the general high dimensional case. Let the following set <strong>of</strong> n + 1<br />

vertical segments Fi be given at the sample points (t (i)<br />

1 ,t(i)<br />

2 ):<br />

Sn = {(t (0)<br />

1 ,t(0)<br />

(1)<br />

2 ,F0),(t 1 ,t(1) 2 ,F1),... ,(t (n)<br />

1 ,t(n) 2 ,Fn)}.<br />

Here Fi = [f i ,f i] are real finite intervals with f i < f i <strong>and</strong> H(e it(i)<br />

1 ,e it(i)<br />

2 ) ∈<br />

Fi for i = 0,... ,n <strong>and</strong> none <strong>of</strong> the points (t (i)<br />

the bivariate generalized polynomials<br />

p(t1,t2) = <br />

(k1,k2)∈N<br />

q(t1,t2) = <br />

(k1,k2)∈D<br />

1 ,t(i) 2<br />

α(k1,k2)Bk1k2 (t1,t2),<br />

β(k1,k2)Bk1k2 (t1,t2).<br />

) coincide. Let us consider<br />

The functions Bk1k2 (t1,t2) can for instance be Bk1k2 (t1,t2) = t −k1<br />

1 t −k2<br />

2 ,<br />

Bk1k2 (t1,t2) = cos(k1t1 + k2t2) or Bk1k2 (t1,t2) = cos(k1t1)cos(k2t2). Further,<br />

if the cardinality <strong>of</strong> the sets N <strong>and</strong> D is respectively given by ℓ + 1<br />

<strong>and</strong> m + 1, let us denote<br />

N = {(k (0)<br />

D = {(k (0)<br />

1 ,k(0) 2 ),... ,(k(ℓ) 1 ,k(ℓ) 2 )},<br />

1 ,k(0) 2 ),... ,(k(m) 1 ,k (m)<br />

2 )}, (k (0)<br />

1 ,k(0) 2<br />

) = (0,0)<br />

(8.6)


8.2. <strong>Rational</strong> interpolation <strong>of</strong> uncertainty intervals 101<br />

<strong>and</strong> the irreducible form <strong>of</strong> the generalized rational function (p/q)(t1,t2) by<br />

rℓ,m(t1,t2). Let<br />

Rℓ,m(Sn) = {rℓ,m(t1,t2) | rℓ,m(t (i)<br />

1 ,t(i) 2<br />

) ∈ Fi,q(t (i)<br />

1 ,t(i) 2<br />

) > 0,i = 0,... ,n}.<br />

(8.7)<br />

So the rational frequency response providing the data is denoted by<br />

H(e it(i)<br />

1 ,e it(i)<br />

2 ) = A<br />

B (eit(i) 1 ,e it(i)<br />

2 )<br />

<strong>and</strong> its rational approximant is denoted by<br />

rℓ,m(t1,t2) = p<br />

q (t1,t2).<br />

Whereas in traditional rational interpolation one has ℓ + m = n, here we<br />

envisage ℓ + m ≪ n just as in least squares approximation. For given<br />

segments Sn <strong>and</strong> given sets N <strong>and</strong> D <strong>of</strong> respective cardinality ℓ + 1 <strong>and</strong><br />

m + 1, we are concerned with the problem <strong>of</strong> determining whether<br />

The interpolation conditions<br />

in (8.7) amount to<br />

Rℓ,m(Sn) = ∅.<br />

rℓ,m(t (i)<br />

1 ,t(i)<br />

2 ) ∈ Fi, i = 0,... ,n (8.8)<br />

f ≤<br />

i p(t(i) 1 ,t(i) 2 )<br />

q(t (i)<br />

1 ,t(i)<br />

2 ) ≤ f i, i = 0,... ,n.<br />

Under the assumption that q(t (i)<br />

1 ,t(i) 2 ) > 0 for i = 0,... ,n, we obtain the<br />

following homogeneous system <strong>of</strong> linear inequalities after linearization<br />

−p(t (i)<br />

1 ,t(i)<br />

2 ) + f iq(t (i)<br />

1 ,t(i) 2<br />

p(t (i)<br />

1 ,t(i) 2 ) − f i q(t(i) 1 ,t(i) 2<br />

) ≥ 0<br />

) ≥ 0 , i = 0,... ,n. (8.9)<br />

As explained in Chapter 6, there is no loss <strong>of</strong> generality in assuming that<br />

q(t1,t2) is positive in the interpolation points: the interpolation conditions<br />

(6.7) can be linearized for arbitrary non-zero q(t (i)<br />

1 ,t(i) 2 ), positive or negative,<br />

without changing the nature <strong>of</strong> the problem.


102 8. Case study: multidimensional recursive filters<br />

For ease <strong>of</strong> notation, let B (i)<br />

N,j = B k (j)<br />

B (i)<br />

D,j = B k (j)<br />

1 k(j)<br />

(t<br />

2<br />

(i)<br />

1 ,t(i) 2 ) for (k(j)<br />

by U the (2n + 2) × ν matrix<br />

⎛<br />

−B<br />

⎜<br />

U = ⎜<br />

⎝<br />

(0)<br />

.<br />

−B (n)<br />

.<br />

1 ,k(j) 2<br />

1 k(j)<br />

2<br />

(t (i)<br />

1 ,t(i) 2<br />

) for (k(j)<br />

1 ,k(j) 2<br />

) in N,<br />

) in D <strong>and</strong> ν = ℓ + m + 2. We denote<br />

N,0 ... −B (0)<br />

N,ℓ f0B (0)<br />

D,0 ... f0B (0)<br />

D,m<br />

.<br />

N,0 ... −B (n)<br />

N,ℓ fnB (n)<br />

D,0 ... fnB (n)<br />

D,m<br />

B (0)<br />

N,0 ... B (0)<br />

N,ℓ −f 0 B(0)<br />

D,0 ... −f B<br />

0 (0)<br />

D,m<br />

.<br />

B (n)<br />

N,0 ... B (n)<br />

N,ℓ −f n B(n)<br />

D,0 ... −f n B (n)<br />

D,m<br />

.<br />

.<br />

.<br />

.<br />

⎞<br />

⎟<br />

⎟.<br />

⎟<br />

⎠<br />

In the sequel, we abbreviate (8.9) to Uc ≥ 0 with c = (α0,...,αℓ,β0,... ,βm) T<br />

<strong>and</strong> denote<br />

Lℓ,m(Sn) = {c ∈ R ν | Uc ≥ 0}. (8.10)<br />

The linearized version <strong>of</strong> the problem Rℓ,m(Sn) = ∅ now consists in determining<br />

whether<br />

Lℓ,m(Sn) = {0}.<br />

It is proved in Chapter 6 that if a non-zero element c exists in Lℓ,m(Sn) then<br />

the coefficient vector c <strong>of</strong> the rational function rℓ,m(t1,t2) that passes closest<br />

to the midpoint <strong>of</strong> the intervals Fi is the unique solution <strong>of</strong> a quadratic<br />

programming problem. The algorithm in Chapter 6 is implemented such<br />

that it automatically returns the smallest ℓ + m once an order <strong>of</strong> the index<br />

sets N <strong>and</strong> D as in (8.6) is determined. Hence it returns the IIR filter<br />

<strong>of</strong> lowest order, for which Lℓ,m(Sn) = {0}. The order one decides upon in<br />

(8.6) can be varied. One can add terms to N <strong>and</strong> D in a diagonal fashion<br />

(increasing the total degree), or along squares (bounding the partial degree<br />

in each variable) or in another way. Different illustrations can be found in<br />

the Sections 8.3 <strong>and</strong> 8.4.<br />

If the width <strong>of</strong> the intervals Fi is nonzero, then it can be shown that<br />

the solution vector c is such that the rational function rℓ,m(t1,t2) passes<br />

through the open interior <strong>of</strong> Fi <strong>and</strong> the denominator polynomial q(t1,t2)<br />

does not become zero in any <strong>of</strong> the sampled frequencies (t (i)<br />

1 ,t(i) 2 ). A multivariate<br />

generalization in Section 8.4 <strong>of</strong> a little known result from rational<br />

approximation theory [Pom68] allows to even guarantee the stability <strong>of</strong> the<br />

filter approximation (p/q)(t1,t2).


8.3. Design <strong>of</strong> stable IIR filters 103<br />

8.3 Design <strong>of</strong> stable IIR filters<br />

A given set <strong>of</strong> frequency response characteristics typically may be met by<br />

an IIR filter <strong>of</strong> considerably lower order than a corresponding FIR design.<br />

The design specifications are usually given in terms <strong>of</strong> the magnitude which<br />

possesses certain symmetries, while the phase characteristic is either not<br />

know or unimportant. An ideal lowpass filter can for instance be specified<br />

by the frequency response<br />

H e it1 ,e it2 =<br />

<br />

1, (t1,t2) ∈ P ⊂ [−π,π] × [−π,π],<br />

0, (t1,t2) ∈ P,<br />

(8.11)<br />

where the domain P can be as simple as a square, disk or diamond (which<br />

are all mere 2-dimensional balls in the ℓ∞,ℓ2 or ℓ1-norm respectively). We<br />

illustrate the technique for the computation <strong>of</strong> the centro symmetric filter<br />

[RKR03] with<br />

P = {π/4 ≤ t1 ≤ 3π/4, −3π/4 ≤ t2 ≤ −π/4}<br />

∪ {−3π/4 ≤ t1 ≤ −π/4,π/4 ≤ t2 ≤ 3π/4}<br />

<strong>and</strong> the more difficult 90 degree quadrantally symmetric fan filter [Har81]<br />

where<br />

P = {|t1| ≤ t2} ∪ {−|t1| ≥ t2} .<br />

The practical specifications <strong>of</strong> such a filter take the form <strong>of</strong> a tolerance<br />

scheme, graphically illustrated in Figure 8.1, in which:<br />

• there is a passb<strong>and</strong> wherein the frequency response must approximate<br />

1 with an error <strong>of</strong> ±δ1 (indicated with plus signs),<br />

rℓ,m(t1,t2) ∈ [1 − δ1,1 + δ1], (t1,t2) ∈ P, (8.12a)<br />

• there is a stopb<strong>and</strong> in which the response must approximate zero with<br />

an error less than ±δ2 (indicated with crosses),<br />

rℓ,m(t1,t2) ∈ [−δ2,δ2], (t1,t2) ∈ P ∪ T, (8.12b)<br />

• there is a transition b<strong>and</strong> <strong>of</strong> a certain width in which the response<br />

drops smoothly from the passb<strong>and</strong> to the stopb<strong>and</strong> (indicated with<br />

circles),<br />

rℓ,m(t1,t2) ∈ [−δ2,1 + δ1], (t1,t2) ∈ T. (8.12c)


104 8. Case study: multidimensional recursive filters<br />

(a) Centro symmetric filter (b) Fan filter<br />

Figure 8.1: Graphical illustration <strong>of</strong> tolerance schemes.<br />

In Figure 8.1(a) <strong>and</strong> Figure 8.1(b) the transition b<strong>and</strong> is respectively<br />

given by<br />

T = ({π/8 ≤ t1 ≤ 7π/8, −7π/8 ≤ t2 ≤ −π/8}<br />

∪ {−7π/8 ≤ t1 ≤ −π/8,π/8 ≤ t2 ≤ 7π/8}) \ P,<br />

T ={−|t2| − π/8 ≤ t1 ≤ −|t2|} ∪ {|t2| ≤ t1 ≤ |t2| + π/8} .<br />

Furthermore we may impose the stability conditions q(t1,t2) > 0 to guarantee<br />

(8.5) (see [GB06] for a similar approach). This is explained in detail<br />

in the next Section. The frequency domain [−π,π] × [−π,π] is covered by<br />

a grid <strong>of</strong> n + 1 = 1089 points by sampling in both directions equidistantly<br />

with distance π/16. For the choice δ1 = 0.01 the passb<strong>and</strong> ripple<br />

20log 10<br />

1 + δ1<br />

1 − δ1<br />

= 0.17 dB<br />

<strong>and</strong> for δ2 = 0.02 the stopb<strong>and</strong> attenuation is<br />

−20log 10 δ2 = 34 dB.<br />

With these parameters we obtain for the centrosymmetric filter a model<br />

with the sets N <strong>and</strong> D in (8.3) given by<br />

N =D \ {(1, −3)}<br />

D ={(k1,k2) ∈ N 2 | 0 ≤ k1 + k2 ≤ 4}<br />

∪ {(k1,k2) ∈ N0 × (−N0) | 2 ≤ k1 − k2 ≤ 4}.


8.3. Design <strong>of</strong> stable IIR filters 105<br />

The resulting rational function rℓ,m(t1,t2) = r19,20(t1,t2) is plotted in Figure<br />

8.2(a). As envisaged ℓ + m = 39 ≪ n = 1088. With the same parameters,<br />

the model obtained for the fanfilter using the quadratic programming<br />

technique is <strong>of</strong> much less complexity than the one presented in [Har81]: its<br />

numerator <strong>and</strong> denominator only contain 13 <strong>and</strong> 15 terms respectively with<br />

the sets N <strong>and</strong> D in (8.4) given by<br />

N = {(k1,k2) ∈ N 2 | 0 ≤ k1,k2 ≤ 3} \ {(3,2),(2,3),(3,3)}<br />

D = {(k1,k2) ∈ N 2 | 0 ≤ k1,k2 ≤ 3} \ {(3,3)}.<br />

The rational function r12,14(t1,t2) is shown in Figure 8.2(b). Here again<br />

ℓ + m = 26 ≪ n = 1088.<br />

When the parameters are relaxed to δ1 = 0.05 <strong>and</strong> δ2 = 0.1 then, as<br />

expected, the obtained model has even lower complexity:<br />

N = {(k1,k2) ∈ N 2 | 0 ≤ k1 + k2 ≤ 3} ∪ {(2,2)} (8.13)<br />

D = {(k1,k2) ∈ N 2 | 0 ≤ k1 + k2 ≤ 2}. (8.14)<br />

The passb<strong>and</strong> ripple becomes 0.87 dB while the stopb<strong>and</strong> attenuation now<br />

equals 20 dB. This approximation rℓ,m(t1,t2) = r10,5(t1,t2) is illustrated in<br />

Figure 8.3.<br />

Instead <strong>of</strong> relaxing the tolerances δ1 <strong>and</strong> δ2, the dataset in Figure 8.1(b)<br />

can be reduced to about one quarter because <strong>of</strong> the symmetric nature <strong>of</strong> the<br />

basis functions. We have<br />

q(t1,t2) = q(−t1,t2) = q(t1, −t2) = q(−t1, −t2)<br />

(a) rℓ,m(t1, t2) = r19,20(t1, t2) (b) rℓ,m(t1, t2) = r12,14(t1, t2)<br />

Figure 8.2: <strong>Rational</strong> models for the parameters δ1 = 0.01 <strong>and</strong> δ2 = 0.02 .


106 8. Case study: multidimensional recursive filters<br />

<strong>and</strong> similarly for p(t1,t2). This may lead to a subtle difference in the neighbourhood<br />

<strong>of</strong> the axes t1 = 0 <strong>and</strong> t2 = 0 as can be seen in Figure 8.4 compared<br />

to Figure 8.2(b).<br />

Similar experiments were made for the circularly symmetric <strong>and</strong> diamondshaped<br />

lowpass filters given in [GB06].<br />

Note that the equiripple behaviour around 1 <strong>and</strong> 0 in the pass- <strong>and</strong><br />

stopb<strong>and</strong> respectively, is typical for the obtained models.<br />

8.4 Guaranteeing stability in the tolerance scheme<br />

Let us first discuss a result on the a posteriori verification <strong>of</strong> the stability<br />

<strong>of</strong> the filter (p/q)(t1,t2). We reconsider the denominator q(t1,t2) <strong>of</strong> the<br />

rational approximant. As before, at the data points q(t (i)<br />

) > 0. Take a<br />

finite set S ⊂ [−π,π] 2 <strong>of</strong> points (t (k)<br />

1 ,t(k) 2<br />

1 ,t(i) 2<br />

) in the independent variable space,<br />

containing at least the n + 1 given points (t (i)<br />

1 ,t(i) 2 ) <strong>and</strong> the corner points<br />

(±π, ±π). Let<br />

<br />

d (t (i)<br />

1 ,t(i) 2 ),(t(j) 1 ,t(j) 2 )<br />

<br />

= max |t (i)<br />

1<br />

denote the usual ℓ∞ distance <strong>and</strong> let<br />

∆ = max<br />

S d<br />

<br />

(t (i)<br />

1 ,t(i) 2 ),(t(j) 1 ,t(j) 2 )<br />

<br />

µ = min<br />

S q(t (k)<br />

1 ,t(k)<br />

2 ).<br />

− t(j) 1 |, |t(i) 2 − t(j) 2 |<br />

<br />

Figure 8.3: <strong>Rational</strong> model rℓ,m(t1,t2) = r10,5(t1,t2) for the relaxed parameters<br />

δ1 = 0.05 <strong>and</strong> δ2 = 0.1.


8.4. Guaranteeing stability in the tolerance scheme 107<br />

Figure 8.4: <strong>Rational</strong> model rℓ,m(t1,t2) = r12,12(t1,t2) for the data in [0,π] ×<br />

[0,π] <strong>and</strong> parameters δ1 = 0.01 <strong>and</strong> δ2 = 0.02.<br />

We know from Chapter 6 that if mini=0,...,n(f i − f i ) > 0, then<br />

min<br />

i=0,...,n q(t(i) 1 ,t(i) 2<br />

) > 0.<br />

The following more general result can be proved.<br />

Proposition 8.4.1 (Cuyt, 2008). If S exists with ∆M < µ where<br />

<br />

M = max max<br />

[−π,π] 2<br />

<br />

<br />

<br />

∂q(t1,t2) <br />

<br />

∂t1<br />

, max<br />

[−π,π] 2<br />

<br />

<br />

<br />

∂q(t1,t2) <br />

<br />

∂t2<br />

,<br />

then the rational approximant rℓ,m(t1,t2) satisfying the tolerance scheme<br />

(8.12) has no poles in [−π,π] 2 .<br />

Pro<strong>of</strong>. Assume that the denominator has a zero q(˜t1, ˜t2) = 0 with (˜t1, ˜t2) ∈<br />

[−π,π] 2 (such a zero is not isolated). Then find its nearest neighbour<br />

(t (k)<br />

1 ,t(k)<br />

2 ) among the points in S, according to the ℓ∞ distance (this may be<br />

non-unique). To this end (˜t1, ˜t2) is taken as the center <strong>of</strong> an ℓ∞-ball emanating<br />

from it. Hence for the nearest neighbour we find |t (k)<br />

1 − ˜t1| ≤ ∆/2<br />

<strong>and</strong> |t (k)<br />

2 − ˜t2| ≤ ∆/2. Using Taylor’s theorem we have<br />

q(t (k)<br />

1 ,t(k)<br />

2 ) = q(˜t1, ˜t2) + ∂q(t1,t2)<br />

<br />

(ˆt1, ˆt2) t<br />

∂t1<br />

(k)<br />

1 − <br />

˜t1<br />

+ ∂q(t1,t2)<br />

<br />

(ˆt1, ˆt2) t<br />

∂t2<br />

(k)<br />

2 − <br />

˜t2<br />

with (ˆt1, ˆt2) somewhere on the segment connecting (t (k)<br />

Hence <br />

q(t (k)<br />

1 ,t(k) 2 )<br />

<br />

<br />

≤ M∆<br />

1 ,t(k)<br />

2 ) <strong>and</strong> (˜t1, ˜t2).


108 8. Case study: multidimensional recursive filters<br />

with M < ∞. Since q(t (k)<br />

1 ,t(k) 2<br />

) ≥ µ, we have a contradiction.<br />

Note that the values <strong>of</strong> M <strong>and</strong> µ are both determined up to the same<br />

multiplicative constant which depends on the normalization <strong>of</strong> p(t1,t2) <strong>and</strong><br />

q(t1,t2) which is free. In practice this result is not very useful though,<br />

because it may imply a rather large set S due to the need for a sufficiently<br />

small ∆.<br />

In order to guarantee the stability <strong>of</strong> the filter (p/q)(t1,t2) a priori, we<br />

complement the system <strong>of</strong> homogeneous inequalities (8.9) with<br />

⎧<br />

⎪⎨ β(0,0) ≥ 0<br />

⎪⎩<br />

β(0,0) + <br />

±β(k1,k2) ≥ 0<br />

(k1,k2)∈D0<br />

where each possible sign combination in the sum attributes an inequality.<br />

These conditions guarantee, when the basis functions are cosines, that the<br />

denominator q(t1,t2) does not change sign. Since the quadratic programming<br />

technique delivers a solution for the β(k1,k2) in the interior <strong>of</strong> the set,<br />

automatically the strict inequalities<br />

⎧<br />

⎪⎨ β(0,0) > 0<br />

⎪⎩<br />

β(0,0) + <br />

±β(k1,k2) > 0<br />

(k1,k2)∈D0<br />

are satisfied. Of course it is to be expected that adding constraints to<br />

guarantee stability a priori will tighten the conditions on the coefficients<br />

α(k1,k2) <strong>and</strong> β(k1,k2) <strong>and</strong> hence increase the complexity <strong>of</strong> the rational<br />

model that satisfies all inequalities. When adding the stability constraint to<br />

the so-called relaxed centrosymmetric filter <strong>and</strong> fan filter (δ1 = 0.05,δ2 =<br />

0.1), then the algorithm respectively returns the models r41,16(t1,t2) <strong>and</strong><br />

r45,3(t1,t2) displayed in Figure 8.5(a) <strong>and</strong> Figure 8.5(b) . Here respectively<br />

<strong>and</strong><br />

N ={(k1,k2) ∈ N 2 | 0 ≤ k1 + k2 ≤ 6}<br />

∪ {(k1,k2) ∈ N0 × (−N0) | 2 ≤ k1 − k2 ≤ 6} \ {(1, −5)}<br />

D ={(k1,k2) ∈ N 2 | 0 ≤ k1 + k2 ≤ 4}<br />

∪ {(k1,k2) ∈ N0 × (−N0) | 2 ≤ k1 − k2 ≤ 3}<br />

N = {(k1,k2) ∈ N 2 | 0 ≤ k1,k2 ≤ 6} \ {(6,5),(5,6),(6,6)}<br />

D = {(k1,k2) ∈ N 2 | 0 ≤ k1,k2 ≤ 1}.


8.4. Guaranteeing stability in the tolerance scheme 109<br />

(a) rℓ,m(t1, t2) = r41,16(t1, t2) (b) rℓ,m(t1, t2) = r45,3(t1, t2)<br />

Figure 8.5: Relaxed filters with stability conditions.<br />

The filter now displays a typical equiripple behaviour in both directions.<br />

The number <strong>of</strong> additional inequalities to guarantee stability a priori increases<br />

exponentially with the denominator degree though, since it is given<br />

by 1 + 2m with m = #D0. This drawback for higher degree denominators<br />

can be overcome by computing a denominator <strong>of</strong> the form q(t1,t2) =<br />

(q1q2)(t1,t2) where each factor is <strong>of</strong> sufficiently low degree <strong>and</strong> where for<br />

separately obtained q1, for instance<br />

˜p<br />

<br />

∈ f − ˜ δi,f + ˜ <br />

δi , δ1, ˜ ˜ δ2 > 0,<br />

it holds that<br />

q1<br />

p<br />

∈ [(f − δi)q1,(f + δi)q1]<br />

q2<br />

in pass- <strong>and</strong> stopb<strong>and</strong> (<strong>and</strong> similarly for the transition b<strong>and</strong>). This idea<br />

can be repeated to obtain more factors in the denominator polynomial.<br />

For the stricter fan filter (δ1 = 0.01,δ2 = 0.02) we obtain with q(t1,t2) =<br />

(q1q2q3)(t1,t2) the rational model displayed in Figure 8.6(a). Here we have<br />

chosen each factor qj <strong>of</strong> total degree 3 with for j = 1,2,3 in the pass- <strong>and</strong><br />

stopb<strong>and</strong> ˜ δ1 = 23−jδ1, ˜ δ2 = 23−jδ2 respectively. The numerator polynomial<br />

p(t1,t2) is <strong>of</strong> total degree 15.<br />

When taking denominator factors <strong>of</strong> partial degree 2 in each <strong>of</strong> the variables,<br />

a simpler model can be found. With q(t1,t2) = (q1q2)(t1,t2) <strong>and</strong><br />

˜δ1 = 2δ1, ˜ δ2 = 2δ2 the degree <strong>of</strong> the numerator is indexed by<br />

N = {(k1,k2) ∈ N 2 | 0 ≤ k1,k2 ≤ 9} \ {(9,9)}<br />

<strong>and</strong> the rational function is illustrated in Figure 8.6(b).


110 8. Case study: multidimensional recursive filters<br />

(a) (b)<br />

Figure 8.6: Fan filters with stability conditions added to a separable denominator.<br />

The coefficients <strong>of</strong> all rational models used in this Section can be found<br />

in Appendix B. Note the expected symmetry patterns among related coefficients.<br />

8.5 Conclusion<br />

The reformulation <strong>of</strong> the rational approximation problem using uncertainty<br />

intervals leads to a quadratic programming problem with a unique global<br />

minimum. The problem statement is independent <strong>of</strong> the number <strong>of</strong> variables<br />

<strong>and</strong> hence truly multidimensional. Its solution is the rational interpolant <strong>of</strong><br />

minimal order that passes through the uncertainty intervals as closely to<br />

their midpoint as possible, hence guaranteeing robustness in stability. Because<br />

<strong>of</strong> the use <strong>of</strong> uncertainty intervals, this rational function automatically<br />

<strong>and</strong> strictly obeys prescribed error tolerances. On the whole the technique<br />

<strong>of</strong>fers several advantages compared to least squares techniques. We have<br />

illustrated its use for the development <strong>of</strong> stable symmetric multidimensional<br />

recursive filters, a technology which is required in many diverse areas, including<br />

image processing, video signal filtering, tomography <strong>and</strong> different<br />

grid-based methods in scientific computing.


Conclusions <strong>and</strong> further<br />

research<br />

9.1 Conclusions<br />

9<br />

The central topic <strong>of</strong> this thesis is rational interpolation <strong>of</strong> exact <strong>and</strong> inexact<br />

data.<br />

9.1.1 Conclusions <strong>of</strong> Part I<br />

In the first part the numerical implementation <strong>of</strong> univariate rational interpolation<br />

with asymptotic information is considered. Hence infinity is admitted<br />

in both the independent variable as well as in the function value. Before deciding<br />

upon an implementation we have carefully selected some techniques<br />

<strong>and</strong> representations for univariate rational interpolation with special attention<br />

for their numerical properties <strong>and</strong> their support for asymptotic information.<br />

First the problem <strong>of</strong> univariate rational interpolation including infinite<br />

function values, but without the point at infinity is studied in Chapter 1 in<br />

order to underst<strong>and</strong> the possible degeneracies that are connected with the<br />

classical rational interpolation problem.<br />

In Chapter 2 a specific representation for interpolating rational functions<br />

is considered: the barycentric form. Although the barycentric form has a<br />

remarkable property which makes it attractive for numerical implementation,<br />

namely exact interpolation even in the presence <strong>of</strong> rounding errors,<br />

we have shown that, due to catastrophic cancellation, the evaluation <strong>of</strong> the<br />

barycentric form may give very inaccurate results when evaluated outside<br />

the interpolation interval. Hence the barycentric form is not suitable for<br />

interpolation at infinity.<br />

111


112 9. Conclusions <strong>and</strong> further research<br />

For that reason interpolating continued fractions are considered in Chapter<br />

3. First Thiele continued fractions are introduced, which form the basis<br />

for the more advanced algorithm due to Werner. This algorithm is one <strong>of</strong><br />

the few algorithms for rational interpolation for which a stability analysis<br />

exists. If a special pivoting strategy is incorporated, then it has been proven<br />

to be backward stable [GM80]. With this pivoting strategy, it also allows<br />

for poles (vertical asymptotes) to be prescribed, but in its st<strong>and</strong>ard form,<br />

interpolation at infinity (including horizontal <strong>and</strong> oblique asymptotes) is not<br />

supported.<br />

In Chapter 4 the interpolation condition at infinity is added. First a<br />

condition to detect degeneracy for the point at infinity is given if the points<br />

are ordered such that all finite data come first <strong>and</strong> the point at infinity is<br />

last. For this ordering <strong>of</strong> the data, we have shown how the algorithm <strong>of</strong><br />

Werner can be modified to interpolate also at infinity.<br />

In the last Chapter <strong>of</strong> the first part, other algorithms for rational interpolation<br />

which are more or less related to Werner’s algorithm have been<br />

reviewed. These techniques are more suitable in a symbolic environment<br />

rather than a numerical one.<br />

9.1.2 Conclusions <strong>of</strong> Part II<br />

In the second part, asymptotic behavior is discarded, but the problem setting<br />

<strong>of</strong> the first part is generalized considerably by considering the multivariate<br />

case <strong>and</strong> allowing uncertainty in the function values. After all, in<br />

many applications observations are <strong>of</strong>ten prone to imprecise measurements.<br />

The conventional way to find a rational function approximating such data<br />

with noise is by means <strong>of</strong> a rational least squares approximation. We have<br />

proposed a new approach.<br />

In Chapter 6 the new problem is formulated, immediately for the multivariate<br />

case. It is assumed that the uncertainty in the independent variables<br />

is negligible <strong>and</strong> that for each observation an uncertainty interval can<br />

be given which contains the (unknown) exact value. To approximate such<br />

data we look for functions which intersect all uncertainty intervals. We<br />

have shown that this problem can be solved by a quadratic programming<br />

problem with a strictly convex objective function, yielding a unique rational<br />

function which intersects all uncertainty intervals <strong>and</strong> satisfies some additional<br />

properties. Compared to rational least squares approximation which<br />

is inherently a nonlinear optimization problem where the objective function<br />

may have many local minima, this makes the new approach attractive. Since<br />

the problem statement is independent <strong>of</strong> the number <strong>of</strong> variables, it is truly


9.2. Further research 113<br />

multivariate.<br />

In Chapter 7, the technique developed in Chapter 6 is applied to several<br />

benchmark problems. The obtained results indicate that the method scales<br />

very well to higher dimensional problems.<br />

Chapter 8 is a case study, where the design <strong>of</strong> multidimensional recursive<br />

filters is considered, a technology which is required in many diverse areas,<br />

including image processing, video signal filtering, tomography <strong>and</strong> different<br />

grid-based methods in scientific computing. It is shown that reformulation<br />

<strong>of</strong> the problem using uncertainty intervals overcomes many <strong>of</strong> the classical<br />

drawbacks.<br />

9.2 Further research<br />

In the context <strong>of</strong> this thesis we mention some problems which were not<br />

considered in this work <strong>and</strong> questions which are still open for investigation.<br />

A natural extension <strong>of</strong> the rational interpolation problem also takes<br />

derivatives at points into account. Depending on the context, rational functions<br />

that interpolate such data are called Multi-point Padé approximants,<br />

N-point Padé approximants or Newton-Padé approximants [BGM81]. If all<br />

interpolation data is at x = 0 then the problem indeed reduces to the Padé<br />

approximation problem. Clearly, the classical rational interpolation problem<br />

as discussed in Part I is only one specific instance <strong>of</strong> the more general Multipoint<br />

Padé problem. Unlike for the Padé approximation problem (<strong>and</strong> much<br />

like the classical rational interpolation problem), no st<strong>and</strong>ard numerical implementation<br />

is available for the problem in its full generality, including<br />

multiple interpolation conditions at infinity. A generalization <strong>of</strong> the algorithm<br />

<strong>of</strong> Werner to the confluent case is due to Arndt [Arn80]. As pointed<br />

out at the end <strong>of</strong> Chapter 5 more general recursions exists [Gut93a, Gut93b]<br />

which are also valid for the confluent case. It seems challenging to prove any<br />

stability results for the implementation <strong>of</strong> so-called weakly stable algorithms<br />

for the general Multi-point Padé problem.<br />

Another natural extension is the generalization <strong>of</strong> the rational interpolation<br />

problem to more than one variable. The situation for more than one<br />

variable is substantially different, but a similar problem <strong>of</strong> unattainability<br />

occurs [AC93]. Robust implementations for multivariate rational interpolation<br />

are even more rare.<br />

The problem setting <strong>and</strong> the technique developed in Chapter 6 are extremely<br />

useful in practice. In the univariate case, allowing an uncertainty<br />

interval for information at infinity is easy. The resulting additional con-


114 9. Conclusions <strong>and</strong> further research<br />

straint does not substantially change the solution space, i.e. it remains a<br />

polyhedral convex cone. More challenging is the generalization <strong>of</strong> the problem<br />

to function values in the complex plane. The problem itself can easily<br />

be formulated by considering boxes in the complex plane instead <strong>of</strong> intervals.<br />

More challenging seems the effective computation <strong>of</strong> a rational function<br />

intersecting these boxes.


S<strong>of</strong>tware<br />

A<br />

The techniques developed in this thesis are implemented as a set <strong>of</strong> reliable<br />

<strong>and</strong> user-friendly Matlab functions.<br />

A.1 Univariate rational interpolation<br />

The Matlab code belonging to Part I is based on the original implementation<br />

in FORTRAN IV by Werner [Wer83]. The modification for allowing interpolation<br />

at infinity, as discussed in Chapter 4, is included. The reference<br />

documentation for the function cfracratint.m is given below.<br />

CFRACRATINT univariate rational interpolation<br />

with poles <strong>and</strong> asymptotic behavior.<br />

[Cfrac,Err] = cfracratint(X,F,L,M, EPS) computes a<br />

rational interpolant R[L,M] from the data<br />

X = x1,...,xn+1<br />

F = f1,...,fn+1<br />

such that R[L,M](xi) = fi (i=1,...,n+1)<br />

- X x-values x1 ,..., xn+1<br />

(for interpolation at infinity put xi to Inf)<br />

- F function values f1 ,..., fn+1<br />

(for a prescribed pole at xi set fi to Inf)<br />

- L numerator degree<br />

- M denominator degree (L+M must equal n)<br />

- EPS (optional, default is 10^-6) tollerance.<br />

output parameters<br />

115


116 A. S<strong>of</strong>tware<br />

Cfrac Continued fraction struct that contains<br />

X the original X-values<br />

F the original function values<br />

Xpiv the pivoted X-values<br />

Coef the continued fraction coefficients<br />

Horner the operations for the Horner scheme evaluation<br />

<strong>of</strong> the continued fraction<br />

Horner(j) = +/- indicates that the j-th operation<br />

is a multiplication/division<br />

Horner(j) = 2 /-2 indicates the highest degree<br />

coef. <strong>of</strong> the newton polynomial at j<br />

Horner(j) = 3 indicates extra interpolated points<br />

Numdeg numerator degree L<br />

Denomdeg denominator degree M<br />

Unatt possible unattainable points<br />

Err Description <strong>of</strong> algorithm success<br />

Err = 0 -> no unattainable points detected<br />

Err = 1 -> iteration failure<br />

Err = 2 -> final check failure: unattainable points<br />

Err = 3 -> inf is unattainable<br />

See also EVALCFRAC.<br />

Together with this function comes the function evalcfrac.m for evaluation<br />

<strong>of</strong> the obtained continued fraction.<br />

EVALCFRAC evaluate a continued fraction<br />

F = evalcfrac(Cfrac,X) returns the backwards evaluation<br />

<strong>of</strong> a continued fraction in X using the Cfrac structure<br />

created by CFRACRATINT.<br />

See also CFRACRATINT<br />

Example A.1.1. For a typical illustration <strong>of</strong> the use <strong>of</strong> these functions,<br />

example 4.5.2 is reconsidered. First (finite) data is prepared.<br />

>> x = linspace(-0.5,0.5,5);<br />

>> f = x.^2*atan(1./x);<br />

We also add the interpolation condition at infinity.


A.1. Univariate rational interpolation 117<br />

>> x = [infty x]<br />

>> f = [1 f];<br />

Then the routine cfracratint is called for constructing the r3,2(x) rational<br />

interpolant.<br />

>> [cfrac,err] = cfracratint(x,f,3,2)<br />

cfrac =<br />

X: [Inf -0.5000 -0.2500 0 0.2500 0.5000]<br />

F: [1 -0.2768 -0.0829 0 0.0829 0.2768]<br />

Xpiv: [Inf -0.2500 0.2500 0.5000 -0.5000 0]<br />

Coef: [-0.8064 0 -0.1549 0 1.8064 0]<br />

Horner: [-2 3 -2 3 -2 2]<br />

Numdeg: 3<br />

Denomdeg: 2<br />

Unatt: []<br />

err =<br />

0<br />

Since err =0 we may want to plot the obtained r5,4(x) rational interpolant.<br />

>> xx = linspace(-pi,pi,100);<br />

>> ff = evalcfrac(cfrac,xx);<br />

>> plot(x,f,’o’,xx,ff);<br />

4<br />

3<br />

2<br />

1<br />

0<br />

−1<br />

−2<br />

−3<br />

−4<br />

−4 −3 −2 −1 0 1 2 3 4


118 A. S<strong>of</strong>tware<br />

A.2 <strong>Rational</strong> interpolation <strong>of</strong> vertical segments<br />

For the technique presented in Part II, in particular Chapter 6, a dimension<br />

free Matlab implementation is given. The reference documentation for the<br />

function vertsegmapprox.m is given below.<br />

VERTSEGMAPPROX Finds rational function(s)<br />

that intersect vertical segments.<br />

[N, M, Lambda, Exitflag, Output]=vertsegmapprox(X,Fl,Fh,Opts)<br />

returns the simplest rational function from R^n ro R<br />

with numerator degree set N, denominator degree set M <strong>and</strong><br />

coefficients Lambda such that it intersects the vertical<br />

segments (X,[Fl, Fh]).<br />

- X must be a [k x n] matrix containing data<br />

[ x11,x12, ...,x1n<br />

x21,x22, ...,x2n<br />

x31,x32, ...,x3n<br />

. . ... .<br />

. . ... .<br />

. . ... .<br />

xk1,xk2,...,xkn]<br />

- Fl (resp. Fh) must be a [n x 1] column vector corresponding<br />

to the lower (resp. upper) bounds <strong>of</strong> the segments [Fl, Fh]<br />

such that Fl < Fh<br />

Opts is an optional structure that defines algorithm<br />

behavior. If Opts is empty or not given, default<br />

Options are used.<br />

Opts = vertsegmapprox(’Name’,Value,...) set values in<br />

Options structure based on the Name/Value pairs:<br />

Name Values{default} Description<br />

’Display’ {’<strong>of</strong>f’} No Display <strong>of</strong> Iteration Info<br />

’iter’ Display each Iteration<br />

’MaxDiag’ {100} Maximum Diagonal to explore<br />

’StartDiag’ {0} Starting Diagonal<br />

’Basisfun’ {’monom’} Monomial basisfunctions


A.2. <strong>Rational</strong> interpolation <strong>of</strong> vertical segments 119<br />

function_h<strong>and</strong>le function h<strong>and</strong>le to custom<br />

basisfunction <strong>of</strong> the form<br />

mybasefunc = @(n1,x1)<br />

n1 must be an integer,<br />

x1 must be a real column<br />

vector (not a row vector)<br />

e.g. monom = @(n1,x1) x1.^n1;<br />

’Polefree’ {’<strong>of</strong>f’} Free poles.<br />

’on’ Incorporates extra constraints<br />

for a guaranteed polefree<br />

approximation. Make sure that<br />

the domain <strong>of</strong> the basisfunctions<br />

is the interval[-1,1].<br />

Opts = vertsegmapprox(Opts,’Name’,Value,...) updates<br />

the Options structure with new parameter values.<br />

N = Final Numerator Degrees Found<br />

D = Final Denominator Degrees Found<br />

Lambda = Final Coefficients Found<br />

ExitFlag = Description <strong>of</strong> algorithm success<br />

1 normal return<br />

-1 no solution found up until MaxDiag (incr.MaxDiag)<br />

-2 no solution found<br />

There Must Not be a Unique <strong>Rational</strong> Function that intersects<br />

The Given Segments. In Case There Are More Solution,<br />

All Solutions are Returned in Output<br />

Output = Structure containing extra algorithm information<br />

Output.N Container with all Numerator Degrees<br />

Output.D Container with all Denominator Degrees<br />

Output.lambda Container with all Coefficients<br />

Output.rad Container with all radii<br />

IMPORTANT NOTE: vertsegmapprox uses the function QUADPROG to<br />

solve the quadratic programming problem. Make sure that<br />

QUADPROG can be found.<br />

See also RATEVAL.


120 A. S<strong>of</strong>tware<br />

As before, together with this function comes the function rateval.m for<br />

evaluation <strong>of</strong> the obtained rational function(s).<br />

RATEVAL evaluates a rational function.<br />

FF = rateval(N,D,Lambda, X, BasisFun) evaluates a<br />

rational function in X with numerator degreeset N,<br />

denominator degreeset D <strong>and</strong> coefficients Lambda.<br />

N must a matrix where each row corresponds to a degree-tuple<br />

D must a matrix where each row corresponds to a degree-tuple<br />

Lambda must be a coefficient vector.<br />

X must be a [k x n] matrix containing evaluation data<br />

[ x11,x12, ...,x1n<br />

x21,x22, ...,x2n<br />

x31,x32, ...,x3n<br />

. . ... .<br />

. . ... .<br />

. . ... .<br />

xk1,xk2,...,xkn]<br />

Optionally Basisfun a function_h<strong>and</strong>le to customize the<br />

basisfunction <strong>of</strong> the form mybasefunc = @(n1,x1).<br />

n1 must be an integer, x1 must be a column vector<br />

(hence no vectorization for tuples)<br />

e.g. monom = @(n1,x1) x1.^n1;<br />

By default, the monomials are used as basisfunctions.<br />

See also VERTSEGMAPPROX.<br />

Example A.2.1. We illustrate the code with an example.<br />

First data is prepared. The idea is to use Chebyshev polynomials <strong>of</strong> the<br />

first kind as basis functions. Therefore the data is rescaled to the interval<br />

[−1,1].<br />

>> x = linspace(-1,1,60)’;<br />

>> f = atan(x*pi);<br />

>> r = r<strong>and</strong>(60,1)*0.05;<br />

Here r contains r<strong>and</strong>om noise within the interval [0,0.05].<br />

Next the basisfunctions are defined <strong>and</strong> custom options are set.


A.2. <strong>Rational</strong> interpolation <strong>of</strong> vertical segments 121<br />

>> T=@(n,x) cos(n .* acos(x));<br />

>> opts = vertsegmapprox(’display’, ’iter’, ’basisfun’,T)<br />

opts =<br />

Display: ’iter’<br />

Basisfun: @(n,x)cos(n.*acos(x))<br />

MaxDiag: 100<br />

StartDiag: 0<br />

Polefree: ’<strong>of</strong>f’<br />

And then the function vertsegmapprox is called.<br />

>>[N,M,Lambda,Exitflag,Output]=vertsegmapprox(x,f-r,f+r,opts);<br />

Model [ 0 / 0 ] unfeasible.<br />

Model [ 1 / 0 ] unfeasible.<br />

Model [ 0 / 1 ] unfeasible.<br />

Model [ 2 / 0 ] unfeasible.<br />

Model [ 1 / 1 ] unfeasible.<br />

Model [ 0 / 2 ] unfeasible.<br />

Model [ 3 / 0 ] unfeasible.<br />

Model [ 2 / 1 ] unfeasible.<br />

Model [ 1 / 2 ] unfeasible.<br />

Model [ 0 / 3 ] unfeasible.<br />

Model [ 4 / 0 ] unfeasible.<br />

Model [ 3 / 1 ] unfeasible.<br />

Model [ 2 / 2 ] unfeasible.<br />

Model [ 1 / 3 ] unfeasible.<br />

Model [ 0 / 4 ] unfeasible.<br />

Model [ 5 / 0 ] unfeasible.<br />

Model [ 4 / 1 ] unfeasible.<br />

Model [ 3 / 2 ] feasible.<br />

Model [ 2 / 3 ] unfeasible.<br />

Model [ 1 / 4 ] unfeasible.<br />

Model [ 0 / 5 ] unfeasible.<br />

A plot <strong>of</strong> the obtained rational model r3,2(x) together with the vertical<br />

segments can be made as follows.<br />

>> xx = linspace(-1,1,100)’;<br />

>> ff = rateval(N,M,Lambda,xx,T);<br />

>> plot(xx,ff);<br />

>> for k=1:numel(x) hold on;<br />

plot([x(k) x(k)],[f(k)-r(k),f(k)+r(k)], ’linewidth’,2); end;


122 A. S<strong>of</strong>tware<br />

1.5<br />

1<br />

0.5<br />

0<br />

−0.5<br />

−1<br />

−1.5<br />

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1<br />

A.2.1 Enumerating over N d<br />

The function vertsegmapprox.m uses a particular enumeration over the<br />

elements <strong>of</strong> N d (d ∈ N0). Of course there are a lot <strong>of</strong> different ways to<br />

enumerate over the elements <strong>of</strong> N d (d ∈ N0). Without going into too much<br />

detail into the connection with the framework <strong>of</strong> abstract Category theory,<br />

we present in a somewhat informal way which ordering is chosen for the<br />

construction <strong>of</strong> consecutive degree sets. For d = 1, the problem is trivial.<br />

Also for d = 2 several strategies exist. The most common ones are to<br />

enumerate the elements <strong>of</strong> squares<br />

or triangles<br />

{(k1,k2) ∈ N 2 | 0 ≤ k1,k2 ≤ n}<br />

{(k1,k2) ∈ N 2 | 0 ≤ k1 + k2 ≤ n}<br />

emanating from the origin. We have chosen an efficient realization <strong>of</strong> the<br />

triangular strategy.<br />

For two elements (k1 ...,kd),(k ′ 1 ...,k′ d ) ∈ Nd , a partial order on N d is<br />

obtained immediately by defining<br />

(k1 ...,kd) ≤ (k ′ 1 ... ,k′ d ) ⇔<br />

d<br />

i=1<br />

ki ≤<br />

Clearly the origin is always the smallest element. But only for d = 1 this is<br />

a total order. If we want elements to be mutually comparable for d > 1 we<br />

d<br />

i=1<br />

k ′ i .


A.2. <strong>Rational</strong> interpolation <strong>of</strong> vertical segments 123<br />

need to define a rule for the case that<br />

d<br />

ki =<br />

i=1<br />

We restrict ourselves to lexicographical orderings. We have chosen the backwards<br />

lexicographical ordering (i.e. ordering by kd first) by default, but this<br />

is merely a matter <strong>of</strong> taste. Priority can be assigned to any ki. In fact, any<br />

lexicographical ordering can be described in a simple inductive way once a<br />

preference is fixed upon the ki. Let<br />

⎧<br />

⎨<br />

Vn =<br />

⎩ (k1,... ,kd) ∈ N d ⎫<br />

d ⎬<br />

| kj = n<br />

⎭ .<br />

A lexicographical preference fixes the order <strong>of</strong> the elements <strong>of</strong> Vn.<br />

Example A.2.2. For d = 3, the lexicographical preference (1,2,3) means<br />

that first is sorted on k1, then on k2 <strong>and</strong> finally on k3. Hence the ordering<br />

<strong>of</strong> V1 is (0,0,1) < (0,1,0) < (1,0,0). The preference (1,3,2) means that<br />

first is sorted on k1, then on k3 <strong>and</strong> finally on k2. The ordering <strong>of</strong> V1 is then<br />

(0,1,0) < (0,0,1) < (1,0,0).<br />

Recall that it is our goal to enumerate over N d , not simply sorting elements.<br />

A first idea is to use the fact that for each n > 0, the elements<br />

<strong>of</strong> Vn can be decomposed in a unique way as the sum <strong>of</strong> n elements out <strong>of</strong><br />

V1. Here addition is understood component wise. This gives rise to a d-ary<br />

tree, which can be traversed efficiently in a breadth-first fashion. Provided<br />

that the tree is composed in the right way, breadth-first traversal <strong>of</strong> the tree<br />

corresponds exactly to the discussed enumeration <strong>of</strong> N d . For a lexicographical<br />

ordering at each level (Vn), its construction is as follows. The origin is<br />

always the root element, <strong>and</strong> has d children: the elements <strong>of</strong> V1. For ease <strong>of</strong><br />

notation, denote the elements <strong>of</strong> V1 by<br />

d<br />

i=1<br />

k ′ i .<br />

j=1<br />

ei = (0,... ,0,1,0,... ,0)<br />

where the position <strong>of</strong> 1 is on the i-th location. Each arrow connects a node<br />

(k1,...,kd) ∈ Vn−1 to a node (k ′ 1 ,...,k′ d ) ∈ Vn <strong>and</strong> has a label 1 ≤ i ≤ d. A<br />

label i means that<br />

(k ′ 1 ,...,k′ d ) = (k1,... ,kd) + ei<br />

The way that children are generated depends on the chosen lexicographical<br />

preference. If an arrow with label i enters a node, then arrows with


124 A. S<strong>of</strong>tware<br />

preference labels equal <strong>and</strong> higher than i leave that node, sorted top down<br />

on ei.<br />

Example A.2.3. Trees for d = 3 are illustrated in Figures A.1 <strong>and</strong> A.2.<br />

Figure A.1 shows the backward lexicographical preference (3,2,1). The<br />

st<strong>and</strong>ard lexicographical preference (1,2,3) is shown in Figure A.2.<br />

The advantage <strong>of</strong> a tree representation is that its traversal <strong>and</strong> construction<br />

can be done at runtime using backtracking. The backward lexicographical<br />

ordering at each level for arbitrary d has been implemented in C++.<br />

Thanks go to Walter Schreppers for excellent coding.<br />

For large d > 0 the tree representation is very useful because the number<br />

<strong>of</strong> children at each level grows fast (see below). Hence the depth <strong>of</strong> the tree<br />

grows slowly, so that little time is spent in backtracking. For small d, the<br />

representation is somewhat superfluous.<br />

Since Matlab is used for implementing the vertical segments approach, a<br />

Matlab implementation has also been pursued. Unfortunately, Matlab does<br />

not support graphs efficiently. Therefore another approach has been taken:<br />

simply constructing the sequence {Vn} ∞ n=0 , where each Vn is sorted lexicographically<br />

according to some preference. Clearly, only an implementation<br />

for computing the Vn is needed. This can be done in a straightforward recursive<br />

fashion as follows. For simplicity let us consider the lexicographical<br />

preference (1,... ,d) for V d n (here the dependence <strong>of</strong> d in Vn is shown explicitly).<br />

Let d > 1. The lexicographical ordering <strong>of</strong> V d n means that first come<br />

all tuples (k1,... ,kd) ∈ V d n for which k1 = 0 <strong>and</strong> (k2,... ,kd) ∈ V d−1<br />

n . Then<br />

come all tuples (k1,... ,kd) ∈ V d n for which k1 = 1 <strong>and</strong> (k2,... ,kd) ∈ V d−1<br />

n−1 .<br />

And so on until the last tuple (k1,... ,kd) ∈ V d n for which k1 = n <strong>and</strong><br />

(k2,... ,kd) ∈ V d−1<br />

0 . So for each 0 ≤ l ≤ n, the problem reduces to the com-<br />

putation <strong>of</strong> a lower dimensional problem. We can proceed in the same way<br />

until the problem is trivial, i.e. we arrive at some V 1<br />

k = {k} with 0 ≤ k ≤ n.<br />

Another way to see this is by noting that the number <strong>of</strong> elements in V d n<br />

exactly equals<br />

<br />

n + d − 1<br />

=<br />

d − 1<br />

(n + d − 1)!<br />

. (A.1)<br />

(d − 1)! n!<br />

By applying a well know result <strong>of</strong> binomial coefficients [GKP94, Table 147],<br />

for d ≥ 2, we may rewrite (A.1) into<br />

<br />

n + d − 1<br />

=<br />

d − 1<br />

n+d−2 <br />

k=0<br />

<br />

k<br />

=<br />

d − 2<br />

n<br />

<br />

n + d − 2 − l<br />

. (A.2)<br />

d − 2<br />

l=0


A.2. <strong>Rational</strong> interpolation <strong>of</strong> vertical segments 125<br />

000<br />

1<br />

2<br />

3<br />

100<br />

010<br />

001<br />

1<br />

1<br />

2<br />

1<br />

2<br />

3<br />

200<br />

110<br />

020<br />

101<br />

011<br />

002<br />

Figure A.1: The backwards lexicographical ordering for each Vn <strong>of</strong> N 3 is<br />

equivalent to the breadth-first traversal <strong>of</strong> the tree (top down at each level).<br />

1<br />

1<br />

1<br />

2<br />

1<br />

1<br />

2<br />

1<br />

2<br />

3<br />

300<br />

210<br />

120<br />

030<br />

201<br />

111<br />

021<br />

102<br />

012<br />

003<br />

1<br />

1<br />

1<br />

1<br />

2<br />

1<br />

1<br />

1<br />

2<br />

1<br />

1<br />

2<br />

1<br />

2<br />

3<br />

400<br />

310<br />

220<br />

130<br />

040<br />

301<br />

211<br />

121<br />

031<br />

202<br />

112<br />

022<br />

103<br />

013<br />

004


126 A. S<strong>of</strong>tware<br />

000<br />

3<br />

2<br />

1<br />

001<br />

010<br />

100<br />

3<br />

3<br />

2<br />

3<br />

2<br />

1<br />

002<br />

011<br />

020<br />

101<br />

110<br />

200<br />

Figure A.2: The lexicographical ordering for each Vn <strong>of</strong> N 3 is equivalent to<br />

the breadth-first traversal <strong>of</strong> the tree (top down at each level).<br />

3<br />

3<br />

3<br />

2<br />

3<br />

3<br />

2<br />

3<br />

2<br />

1<br />

003<br />

012<br />

021<br />

030<br />

102<br />

111<br />

120<br />

201<br />

210<br />

300<br />

3<br />

3<br />

3<br />

3<br />

2<br />

3<br />

3<br />

3<br />

2<br />

3<br />

3<br />

2<br />

3<br />

2<br />

1<br />

004<br />

013<br />

022<br />

031<br />

040<br />

103<br />

112<br />

121<br />

130<br />

202<br />

211<br />

220<br />

301<br />

310<br />

400


A.2. <strong>Rational</strong> interpolation <strong>of</strong> vertical segments 127<br />

This last form makes explicit again that the problem decomposes into the<br />

computation <strong>of</strong> n + 1 sets V d−1<br />

n−l (0 ≤ l ≤ n) <strong>of</strong> lower dimensions. The same<br />

decomposition can be applied recursively to the problems V d−1<br />

l (0 ≤ l ≤ n)<br />

until the problem is trivial, i.e. d − 2 = 0.<br />

The Matlab implementation for constructing V d n (here called diagonal<br />

indexing) is so short that we give it below. For d > 1, the function returns<br />

a matrix <strong>of</strong> dimensions n+d−1 d−1 × d where each row represents an element<br />

<strong>of</strong> V d n . The rows are sorted by backward lexicographical preference. Other<br />

preferences can be obtained by appropriate indexing <strong>of</strong> the columns. For<br />

simplicity this is omitted in the description here, as well as the code for<br />

checking valid input.<br />

function diags = diagindx(n, d)<br />

%DIAGINDX compute diagonal indexing.<br />

%<br />

% diags = diagindx(n,d) returns the lattice <strong>of</strong><br />

% all postive integer d-tuples (k1,k2,...,kd)<br />

% for which k1 + k2 +...+ kd = n<br />

% in backward lexicographical ordering<br />

% (priority first on kd)<br />

if d==1 %trivial 1D-case (recursion stop)<br />

diags = n;<br />

else %general multidimensional case.<br />

diags = [];<br />

for l=0:n<br />

tmp = [];<br />

d2 = d-1; %break up into smaller problems<br />

n2 = n-l;<br />

nd = prod(n2+1:n2+d2-1)/prod(1:d2-1);<br />

tmp = [diagindx(n2,d2) ones(nd,1)*(l)]; %do recursion<br />

diags =[diags; tmp]; %append<br />

end %end for<br />

end %end if<br />

end %end function<br />

Example A.2.4. The elements <strong>of</strong> V 4<br />

3<br />

>> V_3 = diagindx(3,4)<br />

V_3 =<br />

3 0 0 0<br />

are for instance obtained as follows.


128 A. S<strong>of</strong>tware<br />

2 1 0 0<br />

1 2 0 0<br />

0 3 0 0<br />

2 0 1 0<br />

1 1 1 0<br />

0 2 1 0<br />

1 0 2 0<br />

0 1 2 0<br />

0 0 3 0<br />

2 0 0 1<br />

1 1 0 1<br />

0 2 0 1<br />

1 0 1 1<br />

0 1 1 1<br />

0 0 2 1<br />

1 0 0 2<br />

0 1 0 2<br />

0 0 1 2<br />

0 0 0 3<br />

In conclusion <strong>and</strong> unrelated to the implementation, we note that for<br />

d > 2 , exp<strong>and</strong>ing the binomial coefficient in the right h<strong>and</strong> side <strong>of</strong> (A.2)<br />

another d − 3 times, we obtain the following identity<br />

<br />

n + d − 1<br />

=<br />

d − 1<br />

n<br />

n−l1 <br />

l1=0 l2=0<br />

n−l1−l2 <br />

l3=0<br />

n−l1−l2−···−ld−3 <br />

· · ·<br />

ld−2=0<br />

where for the last step we have used that<br />

<br />

n ′ n<br />

+ 2<br />

=<br />

2<br />

′<br />

<br />

l ′ =0<br />

n ′ + 1 − l ′<br />

1<br />

n<br />

=<br />

′<br />

<br />

l ′ =0<br />

(n+1−l1 −l2 − · · · −ld−2),<br />

n ′ + 1 − l ′ .


Filter Coefficients<br />

B.1 Tables<br />

B<br />

The coefficients <strong>of</strong> the rational models in Chapter 8 are tabulated below.<br />

Table B.1<br />

Coefficients belonging to Fig. 8.2(a)<br />

(k1, k2) α(k1, k2) (k1, k2) β1(k1, k2)<br />

(0, 0) 1.651324158846769e+01 (0, 0) 4.639787058234575e+02<br />

(1, 0) 6.365957184641155e−12 (1, 0) −5.078040292326658e−10<br />

(0, 1) 1.911024862632245e−12 (0, 1) 5.126174903356194e−10<br />

(2, 0) −1.783814442760839e+01 (2, 0) −3.881786452646074e+02<br />

(1, 1) 3.480534414387040e+00 (1, 1) −5.755363975681557e+02<br />

(0, 2) −1.769115478011714e+01 (0, 2) −3.907891835918771e+02<br />

(1, −1) −3.479180079768970e+00 (1, −1) 5.755326813847495e+02<br />

(3, 0) −3.367033546455229e−12 (3, 0) 2.423417572427720e−10<br />

(2, 1) −1.615303121247842e−11 (2, 1) 2.075139860673522e−10<br />

(1, 2) 4.967415890641323e−12 (1, 2) −2.153692315623192e−10<br />

(0, 3) −6.463240642452745e−12 (0, 3) −2.512248804280807e−10<br />

(2, −1) 1.979918484643810e−11 (2, −1) −5.168997053202553e−10<br />

(1, −2) −7.003432084187437e−12 (1, −2) 5.283329717227284e−10<br />

(4, 0) −2.409709667326543e−01 (4, 0) 1.651351153356798e+01<br />

(3, 1) −1.729764820649716e+00 (3, 1) 8.059003157291744e+01<br />

(2, 2) 9.904853514226945e+00 (2, 2) 1.430283826244234e+02<br />

(1, 3) −1.098097422716069e−03 (1, 3) 8.436372891206345e+01<br />

(0, 4) −5.086598397343498e−01 (0, 4) 1.773365756981746e+01<br />

(3, −1) 1.729848499168839e+00 (3, −1) −8.057721964717290e+01<br />

(2, −2) 9.908133830363790e+00 (2, −2) 1.430175975626173e+02<br />

(1, −3) −8.435582886925751e+01<br />

Table B.2<br />

Coefficients belonging to Fig. 8.2(b)<br />

(k1, k2) α(k1, k2) (k1, k2) β1(k1, k2)<br />

(0, 0) 6.381754129963678e+02 (0, 0) 8.531810862137290e+02<br />

(1, 0) 9.074944502138662e+02 (1, 0) 5.662255233620328e+02<br />

(0, 1) −9.074944501745391e+02 (0, 1) −5.662255233046639e+02<br />

(1, 1) −1.243241928578952e+03 (1, 1) −1.736533781887765e+03<br />

(2, 0) 2.968051980733823e+02 (2, 0) 4.358851995707559e+02<br />

(0, 2) 2.968051980184051e+02 (0, 2) 4.358851995223264e+02<br />

129


130 B. Filter Coefficients<br />

Table B.2 continued<br />

(k1, k2) α(k1, k2) (k1, k2) β1(k1, k2)<br />

(2, 1) −3.842954042670931e+02 (2, 1) −1.747670039033167e+02<br />

(1, 2) 3.842954042094776e+02 (1, 2) 1.747670038089761e+02<br />

(2, 2) 7.496497839352641e+01 (2, 2) 1.393070974039180e+02<br />

(3, 0) 3.633830202013743e+01 (3, 0) 4.942849837850705e+00<br />

(0, 3) −3.633830200011637e+01 (0, 3) −4.942849799739452e+00<br />

(3, 1) −3.076422417863555e+01 (3, 1) −6.287214209483753e+01<br />

(1, 3) −3.076422416295730e+01 (1, 3) −6.287214207053407e+01<br />

(3, 2) −1.383212008481558e+00<br />

(2, 3) 1.383212009072552e+00<br />

Table B.3<br />

Coefficients belonging to Fig. 8.3<br />

(k1, k2) α(k1, k2) (k1, k2) β1(k1, k2)<br />

(0, 0) 1.199990098544420e+02 (0, 0) 1.931244585945764e+02<br />

(0, 1) −1.682548600651715e+02 (0, 1) −6.052774624890729e+01<br />

(1, 0) 1.682548600651715e+02 (1, 0) 6.052774624890731e+01<br />

(1, 1) −1.963929648926201e+02 (1, 1) −3.423309403923468e+02<br />

(2, 0) 4.061172916517052e+01 (2, 0) 7.664103839770986e+01<br />

(0, 2) 4.061172916517052e+01 (0, 2) 7.664103839770998e+01<br />

(0, 3) −6.107104253940785e+00<br />

(3, 0) 6.107104253940819e+00<br />

(1, 2) 5.235905237126963e+01<br />

(2, 1) −5.235905237126880e+01<br />

(2, 2) −8.678812623055843e−01<br />

Table B.4<br />

Coefficients belonging to Fig. 8.4<br />

(k1, k2) α(k1, k2) (k1, k2) β1(k1, k2)<br />

(0, 0) 6.628329186491410e+02 (0, 0) 8.671760373832705e+02<br />

(1, 0) 9.423231759616856e+02 (1, 0) 6.182004066718139e+02<br />

(0, 1) −9.429926972237510e+02 (0, 1) −6.193976685341664e+02<br />

(1, 1) −1.294693625069721e+03 (1, 1) −1.759347467574567e+03<br />

(2, 0) 3.097348037055071e+02 (2, 0) 4.399859686978245e+02<br />

(0, 2) 3.106853507544964e+02 (0, 2) 4.406185244684142e+02<br />

(2, 1) −4.010433231086274e+02 (2, 1) −2.047678144395121e+02<br />

(1, 2) 4.020468397991291e+02 (1, 2) 2.068239089136406e+02<br />

(2, 2) 7.940271803571203e+01 (2, 2) 1.364546424841361e+02<br />

(3, 0) 3.825999707317656e+01 (3, 0) 8.866022605658740e+00<br />

(0, 3) −3.861827671733029e+01 (0, 3) −9.748898995373230e+00<br />

(3, 1) −3.284462993253570e+01 (3, 1) −6.138752402438668e+01<br />

(1, 3) −3.313056926800742e+01 (1, 3) −6.151335686129232e+01<br />

Table B.5<br />

Coefficients belonging to Fig. 8.5(a)<br />

(k1, k2) α(k1, k2) (k1, k2) β1(k1, k2)<br />

(0, 0) 3.316059063225431e+01 (0, 0) 1.560193405541942e+02<br />

(1, 0) 2.827194670879147e−10 (1, 0) −3.950593364232784e−11<br />

(0, 1) 4.473554818689851e−10 (0, 1) −2.911437746055384e−09<br />

(2, 0) −3.250751814159970e+01 (2, 0) −5.852598525306075e+00<br />

(1, 1) 4.615059338707415e+01 (1, 1) −2.898042987123809e+01<br />

(0, 2) −2.793438982441199e+01 (0, 2) 4.598118358115006e−08<br />

(1, −1) −3.974602636496758e+01 (1, −1) 1.332740059830540e−01<br />

(3, 0) 4.292401466031529e−11 (3, 0) −7.469760286762462e−10<br />

(2, 1) 9.505976272137319e−10 (2, 1) −3.916347729681059e−10<br />

(1, 2) 1.383433836835346e−09 (1, 2) −1.999565838270551e−09<br />

(0, 3) 5.311658340722555e−10 (0, 3) 8.592250734420980e−10<br />

(2, −1) −4.855918785221173e−10 (2, −1) 2.364115766477167e−09


B.1. Tables 131<br />

Table B.5 continued<br />

(k1, k2) α(k1, k2) (k1, k2) β1(k1, k2)<br />

(1, −2) −7.323251802884898e−10 (1, −2) −2.459657055672917e−09<br />

(4, 0) −5.074137979137787e+00 (4, 0) 1.709813038161260e+01<br />

(3, 1) −1.254890409285706e+01 (3, 1) −4.673325394918729e+01<br />

(2, 2) 2.071098719146597e+01 (2, 2) −7.201225944823976e+00<br />

(1, 3) −8.192397209485527e+00 (1, 3) −4.951287561086198e+01<br />

(0, 4) −8.111019716278742e+00<br />

(3, −1) 4.739576072802652e+00<br />

(2, −2) 1.017511309770704e+01<br />

(1, −3) 4.721523728273553e−01<br />

(5, 0) −9.910733066859427e−10<br />

(4, 1) 4.513832639434310e−10<br />

(3, 2) −4.736353222011735e−10<br />

(2, 3) −4.938015411677864e−10<br />

(1, 4) −1.486729261634895e−10<br />

(0, 5) −5.159018472858196e−10<br />

(4, −1) 3.761570675729092e−10<br />

(3, −2) 1.303723156592340e−09<br />

(2, −3) 5.248176894263027e−10<br />

(1, −4) 5.339549915733015e−10<br />

(6, 0) −3.897989926191942e+00<br />

(5, 1) 4.475869914455196e+00<br />

(4, 2) −2.390084839259809e+00<br />

(3, 3) 5.807375988971365e+00<br />

(2, 4) 6.925200032700233e−01<br />

(1, 5) 9.071724380453116e−01<br />

(0, 6) −4.899701671071803e+00<br />

(5, −1) −1.779900362940602e+00<br />

(4, −2) 4.474973810897193e+00<br />

(3, −3) 5.127146019612504e+00<br />

(2, −4) 7.490351866543907e+00<br />

Table B.6<br />

Coefficients belonging to Fig. 8.5(b)<br />

(k1, k2) α(k1, k2) (k1, k2) β1(k1, k2)<br />

(0, 0) 3.736172378317067e+02 (0, 0) 6.769106064365624e+02<br />

(1, 0) 3.624062487101197e+02 (1, 0) 4.678457435219729e+00<br />

(0, 1) −3.624062487100840e+02 (0, 1) −4.678457435178398e+00<br />

(1, 1) −3.019332904638772e+02 (1, 1) −6.674682228721139e+02<br />

(2, 0) −3.237360519774465e+01<br />

(0, 2) −3.237360519773400e+01<br />

(2, 1) 3.534798389365433e+01<br />

(1, 2) −3.534798389368139e+01<br />

(2, 2) 6.194057429900786e+01<br />

(3, 0) −2.049574557837724e+01<br />

(0, 3) 2.049574557841158e+01<br />

(3, 1) −2.961208096033837e+01<br />

(1, 3) −2.961208096040617e+01<br />

(3, 2) 3.516579076762741e+01<br />

(2, 3) −3.516579076759066e+01<br />

(3, 3) 4.384190967691313e+01<br />

(4, 0) −1.837951020015194e+00<br />

(0, 4) −1.837951019980902e+00<br />

(4, 1) −1.554503066613432e+01<br />

(1, 4) 1.554503066606798e+01<br />

(4, 2) −2.466092332634530e+01<br />

(2, 4) −2.466092332629933e+01<br />

(4, 3) 2.790408351793911e+01<br />

(3, 4) −2.790408351796146e+01<br />

(4, 4) 6.221743966979296e+01<br />

(5, 0) 1.841617337979359e+00<br />

(0, 5) −1.841617337952468e+00<br />

(5, 1) 5.922286011926203e+00<br />

(1, 5) 5.922286011872261e+00


132 B. Filter Coefficients<br />

Table B.6 continued<br />

(k1, k2) α(k1, k2) (k1, k2) β1(k1, k2)<br />

(5, 2) −1.332835540758634e+00<br />

(2, 5) 1.332835540806822e+00<br />

(5, 3) −2.749470488344321e+01<br />

(3, 5) −2.749470488348308e+01<br />

(5, 4) −1.760753985100208e+01<br />

(4, 5) 1.760753985102446e+01<br />

(5, 5) 3.910888886682526e+01<br />

(6, 0) −1.580716282043982e+00<br />

(0, 6) −1.580716282033275e+00<br />

(6, 1) −3.994295900046221e+00<br />

(1, 6) 3.994295900023601e+00<br />

(6, 2) −3.585113750558630e+00<br />

(2, 6) −3.585113750536241e+00<br />

(6, 3) −9.230597079571752e−01<br />

(3, 6) 9.230597079362570e−01<br />

(6, 4) −1.953794000524621e+01<br />

(4, 6) −1.953794000523334e+01<br />

Table B.7<br />

Coefficients belonging to Fig. 8.6(a)<br />

(k1, k2) α(k1, k2) (k1, k2) β1(k1, k2)<br />

(0, 0) 8.469089732089978e+01 (0, 0) 1.796421047633581e+03<br />

(0, 1) −1.157236346712771e+02 (0, 1) −3.341052216475141e−11<br />

(1, 0) 1.157236343034689e+02 (1, 0) 3.240804091459014e−11<br />

(1, 1) −1.651570828454372e+02 (1, 1) −1.599598270945978e+03<br />

(2, 0) 3.611293659225733e+01 (2, 0) −5.913716346350414e−10<br />

(0, 2) 3.611293747084370e+01 (0, 2) −5.904631433344395e−10<br />

(0, 3) −7.734132813657423e+00 (0, 3) −9.796145204653948e+01<br />

(3, 0) 7.734132399353046e+00 (3, 0) 9.796145204654452e+01<br />

(1, 2) 6.326319108389590e+01 (1, 2) −9.074101787750276e−10<br />

(2, 1) −6.326319025104787e+01 (2, 1) 9.068632195841379e−10<br />

(2, 2) 3.990283772952442e+01 (k1, k2) β2(k1, k2)<br />

(4, 0) 3.939479140806489e+00 (0, 0) 5.258307392056687e−02<br />

(0, 4) 3.939479325265189e+00 (0, 1) 5.610744066876251e−12<br />

(3, 1) −1.905923364178958e+01 (1, 0) −3.141193456941425e−12<br />

(1, 3) −1.905923448609409e+01 (1, 1) −4.062315648109036e−02<br />

(0, 5) −2.461600973036756e−01 (2, 0) 5.970624366143740e−03<br />

(5, 0) 2.461601943243279e−01 (0, 2) 5.970625587468837e−03<br />

(1, 4) 4.075554216768530e+00 (0, 3) −1.276513862702011e−11<br />

(4, 1) −4.075554265304498e+00 (3, 0) 2.679755078330446e−12<br />

(2, 3) −1.119584516125997e+01 (1, 2) −1.029622623054946e−11<br />

(3, 2) 1.119584507381882e+01 (2, 1) −1.504763841166207e−12<br />

(3, 3) 2.022977708720793e+00 (k1, k2) β3(k1, k2)<br />

(6, 0) 1.741067211845264e−01 (0, 0) 1.075749702052532e+00<br />

(0, 6) 1.741068074499769e−01 (0, 1) −1.732633215890307e−10<br />

(5, 1) −3.706821398285720e−01 (1, 0) 3.971525133838591e−10<br />

(1, 5) −3.706822991634831e−01 (1, 1) −1.068682310185149e+00<br />

(4, 2) −1.465379012835172e+00 (2, 0) 3.478501316182089e−03<br />

(2, 4) −1.465378853562072e+00 (0, 2) 3.478492121308063e−03<br />

(0, 7) 3.217508252961519e−01 (0, 3) 4.210323184373265e−10<br />

(7, 0) −3.217507662870586e−01 (3, 0) −4.309299030093476e−10<br />

(1, 6) −8.244920908264222e−01 (1, 2) −1.372786488974350e−08<br />

(6, 1) 8.244920284389139e−01 (2, 1) 1.229627363148403e−08<br />

(2, 5) 8.895849926973295e−01<br />

(5, 2) −8.895849937155715e−01<br />

(3, 4) −1.256263647150319e+00<br />

(4, 3) 1.256263650251759e+00<br />

(4, 4) 3.860162999401985e+00<br />

(8, 0) 4.603445869053960e−02<br />

(0, 8) 4.603451445953313e−02<br />

(7, 1) −3.936111254124656e−01


B.1. Tables 133<br />

(k1, k2) α(k1, k2) (k1, k2)<br />

(1, 7) −3.936112510981863e−01<br />

(6, 2) 1.212472514407823e+00<br />

(2, 6) 1.212472556297577e+00<br />

(5, 3) −2.851711207822016e+00<br />

(3, 5) −2.851711183582002e+00<br />

(0, 9) −1.886892003723736e−01<br />

(9, 0) 1.886892189057709e−01<br />

(1, 8) −2.066012432553423e−01<br />

(8, 1) 2.066011407324324e−01<br />

(2, 7) 6.529325106179837e−01<br />

(7, 2) −6.529324494677279e−01<br />

(3, 6) −7.369928270417756e−01<br />

(6, 3) 7.369928439365954e−01<br />

(4, 5) 6.098045550500720e−01<br />

(5, 4) −6.098045761602933e−01<br />

(5, 5) 2.323414176710885e+00<br />

(10, 0) −1.250390977177981e−01<br />

(0, 10) −1.250391587623128e−01<br />

(9, 1) 6.994898656485085e−02<br />

(1, 9) 6.994898011127475e−02<br />

(8, 2) 1.267946670628435e−01<br />

(2, 8) 1.267947545395793e−01<br />

(7, 3) 2.716633727090701e−01<br />

(3, 7) 2.716633244763975e−01<br />

(6, 4) −1.497877636853258e+00<br />

(4, 6) −1.497877640699451e+00<br />

(0, 11) −3.206726857875420e−01<br />

(11, 0) 3.206726195863052e−01<br />

(1, 10) 6.183208597602813e−01<br />

(10, 1) −6.183207963198536e−01<br />

(2, 9) −2.160040628556896e−01<br />

(9, 2) 2.160040976823973e−01<br />

(3, 8) −1.592235323155309e−01<br />

(8, 3) 1.592234866686290e−01<br />

(4, 7) 2.364556897109658e−01<br />

(7, 4) −2.364557099099172e−01<br />

(5, 6) −8.325674795976534e−02<br />

(6, 5) 8.325677480319484e−02<br />

(6, 6) 2.002126116233022e+00<br />

(12, 0) −1.196545817776470e−01<br />

(0, 12) −1.196546440740202e−01<br />

(11, 1) 2.887924697895161e−01<br />

(1, 11) 2.887926109213027e−01<br />

(10, 2) −8.431336015783888e−02<br />

(2, 10) −8.431342882210725e−02<br />

(9, 3) −2.826631160430215e−01<br />

(3, 9) −2.826631349508720e−01<br />

(8, 4) 7.378567926751568e−01<br />

(4, 8) 7.378568321809232e−01<br />

(7, 5) −1.512828008521664e+00<br />

(5, 7) −1.512828024753956e+00<br />

(0, 13) −1.120607617221355e−01<br />

(13, 0) 1.120607299831924e−01<br />

(1, 12) 4.224441301149029e−01<br />

(12, 1) −4.224440314662920e−01<br />

(2, 11) −4.517070519858217e−01<br />

(11, 2) 4.517069820434019e−01<br />

(3, 10) 2.505568056772829e−01<br />

(10, 3) −2.505568122039620e−01<br />

(4, 9) −1.090657523448959e−02<br />

(9, 4) 1.090664481083639e−02<br />

(5, 8) −1.144278395443393e−01<br />

(8, 5) 1.144277672355987e−01<br />

(6, 7) 2.565481673829056e−01<br />

(7, 6) −2.565481386314332e−01<br />

(7, 7) 1.566209577149418e+00<br />

Table B.7 continued


134 B. Filter Coefficients<br />

(k1, k2) α(k1, k2) (k1, k2)<br />

(14, 0) 6.795691029354550e−03<br />

(0, 14) 6.795682762832452e−03<br />

(13, 1) 9.142077830259862e−02<br />

(1, 13) 9.142082273321496e−02<br />

(12, 2) −1.709245431222977e−01<br />

(2, 12) −1.709245947972156e−01<br />

(11, 3) 2.490489920602853e−02<br />

(3, 11) 2.490493336988972e−02<br />

(10, 4) 1.522083989072622e−01<br />

(4, 10) 1.522084066007957e−01<br />

(9, 5) 8.766233101714385e−02<br />

(5, 9) 8.766227816829043e−02<br />

(8, 6) −9.819465159525839e−01<br />

(6, 8) −9.819464622612951e−01<br />

(0, 15) −2.395094710223234e−03<br />

(15, 0) 2.395093653010287e−03<br />

(1, 14) 5.507299539982150e−02<br />

(14, 1) −5.507298138007446e−02<br />

(2, 13) −1.343011529208195e−01<br />

(13, 2) 1.343011281732314e−01<br />

(3, 12) 1.372859601782090e−01<br />

(12, 3) −1.372859437146590e−01<br />

(4, 11) −9.900076816414249e−02<br />

(11, 4) 9.900077757630149e−02<br />

(5, 10) 3.356439071687140e−01<br />

(10, 5) −3.356439512537950e−01<br />

(6, 9) −1.493136044754118e+00<br />

(9, 6) 1.493136109695435e+00<br />

(7, 8) 3.025396315841480e+00<br />

(8, 7) −3.025396349309753e+00<br />

Table B.8<br />

Coefficients belonging to Fig. 8.6(b)<br />

Table B.7 continued<br />

(k1, k2) α(k1, k2) (k1, k2) β1(k1, k2)<br />

(0, 0) 1.944877908203831e+01 (0, 0) 2.633764931003522e+03<br />

(1, 0) 2.218142685675664e+01 (1, 0) −2.937924079770487e−11<br />

(0, 1) −2.218142685647408e+01 (0, 1) 3.857707531357830e−11<br />

(1, 1) −2.396222308035551e+01 (1, 1) −2.321158025019969e+03<br />

(2, 0) 2.850717669983482e+00 (2, 0) −5.448820861430599e−10<br />

(0, 2) 2.850717669667875e+00 (0, 2) −4.262423134163868e−10<br />

(2, 1) −2.659389898322998e+00 (2, 1) 6.321873998446662e+01<br />

(1, 2) 2.659389898055924e+00 (1, 2) −6.321873998458624e+01<br />

(2, 2) 7.443562139261313e−01 (2, 2) −1.853601529952025e+02<br />

(3, 0) 2.461284976915254e−02 (k1, k2) β2(k1, k2)<br />

(0, 3) −2.461284975795432e−02 (0, 0) 1.210009072671117e−02<br />

(3, 1) −1.010984953698465e+00 (1, 0) 2.576576617320667e−13<br />

(1, 3) −1.010984953666688e+00 (0, 1) 9.515906546998465e−15<br />

(3, 2) −1.506586511766102e−02 (1, 1) −7.966848526971463e−03<br />

(2, 3) 1.506586512553965e−02 (2, 0) 1.338856963063041e−03<br />

(3, 3) 2.406201800272446e+00 (0, 2) 1.338856962978238e−03<br />

(4, 0) −4.371950603635969e−02 (2, 1) −2.324421881135792e−14<br />

(0, 4) −4.371950602966369e−02 (1, 2) 1.755951318920714e−15<br />

(4, 1) −3.089214481619190e−01 (2, 2) −1.449104637649834e−03<br />

(1, 4) 3.089214481560866e−01<br />

(4, 2) −8.281510203475669e−01<br />

(2, 4) −8.281510203716866e−01<br />

(4, 3) 5.024773738467837e−01<br />

(3, 4) −5.024773738183894e−01<br />

(4, 4) 1.391073109778080e+00<br />

(5, 0) −1.003944577994073e−01<br />

(0, 5) 1.003944577957896e−01<br />

(5, 1) −3.089526840322641e−02<br />

(1, 5) −3.089526838991598e−02


B.1. Tables 135<br />

(k1, k2) α(k1, k2) (k1, k2)<br />

(5, 2) −1.028204883858354e−01<br />

(2, 5) 1.028204883811935e−01<br />

(5, 3) −5.992329820576513e−01<br />

(3, 5) −5.992329820744852e−01<br />

(5, 4) 2.800848399824792e−02<br />

(4, 5) −2.800848398521759e−02<br />

(5, 5) 1.015801103632452e+00<br />

(6, 0) 3.812408513398009e−02<br />

(0, 6) 3.812408513456082e−02<br />

(6, 1) −1.721681990904223e−02<br />

(1, 6) 1.721681989520925e−02<br />

(6, 2) −8.253168698706596e−02<br />

(2, 6) −8.253168697696288e−02<br />

(6, 3) 1.863375271397620e−02<br />

(3, 6) −1.863375274582161e−02<br />

(6, 4) −4.909624809633435e−01<br />

(4, 6) −4.909624809593242e−01<br />

(6, 5) −2.197979017261854e−01<br />

(5, 6) 2.197979017337340e−01<br />

(6, 6) 6.315082020415009e−01<br />

(7, 0) −4.070156187235936e−04<br />

(0, 7) 4.070156330570882e−04<br />

(7, 1) −1.550551121044997e−02<br />

(1, 7) −1.550551120287156e−02<br />

(7, 2) −3.082259758398134e−02<br />

(2, 7) 3.082259756993801e−02<br />

(7, 3) −4.438551862203208e−02<br />

(3, 7) −4.438551864003468e−02<br />

(7, 4) 8.007249824733581e−02<br />

(4, 7) −8.007249823360361e−02<br />

(7, 5) −2.644033581987892e−01<br />

(5, 7) −2.644033581817832e−01<br />

(7, 6) −3.270661436517789e−02<br />

(6, 7) 3.270661436628375e−02<br />

(7, 7) 5.891786029136298e−01<br />

(8, 0) 4.956507336916979e−02<br />

(0, 8) 4.956507335673031e−02<br />

(8, 1) 8.521516521264528e−04<br />

(1, 8) −8.521516412734176e−04<br />

(8, 2) 8.658693185713486e−02<br />

(2, 8) 8.658693189308481e−02<br />

(8, 3) −2.926347649480631e−02<br />

(3, 8) 2.926347650498035e−02<br />

(8, 4) −4.310150421156841e−02<br />

(4, 8) −4.310150424323096e−02<br />

(8, 5) −2.064871635556232e−01<br />

(5, 8) 2.064871635271779e−01<br />

(8, 6) −2.950254776587476e−01<br />

(6, 8) −2.950254776429926e−01<br />

(8, 7) −5.706821336192940e−01<br />

(7, 8) 5.706821336451177e−01<br />

(8, 8) 8.339800104668572e−02<br />

(9, 0) 2.514014649964506e−03<br />

(0, 9) −2.514014654462727e−03<br />

(9, 1) −5.493035937279511e−02<br />

(1, 9) −5.493035937847541e−02<br />

(9, 2) −1.774711220533731e−03<br />

(2, 9) 1.774711197937876e−03<br />

(9, 3) −1.487860639332973e−02<br />

(3, 9) −1.487860639484312e−02<br />

(9, 4) 1.095214493221580e−01<br />

(4, 9) −1.095214493114009e−01<br />

(9, 5) 1.629969690103796e−04<br />

(5, 9) 1.629969834326749e−04<br />

(9, 6) 2.562477273846552e−01<br />

(6, 9) −2.562477273968600e−01<br />

Table B.8 continued


136 B. Filter Coefficients<br />

(k1, k2) α(k1, k2) (k1, k2)<br />

(9, 7) −3.634747153259665e−02<br />

(7, 9) −3.634747153876455e−02<br />

(9, 8) −4.079110503749314e−01<br />

(8, 9) 4.079110503747073e−01<br />

Table B.8 continued


Bibliography<br />

[AA86] A. Antoulas <strong>and</strong> B. Anderson, On the scalar rational interpolation<br />

problem, IMA Journal <strong>of</strong> Mathematical Control <strong>and</strong> Information<br />

3 (1986), 61–88.<br />

[AC93] H. Allouche <strong>and</strong> A. Cuyt, Unattainable points in multivariate rational<br />

interpolation, Journal <strong>of</strong> Approximation <strong>Theory</strong> 72 (1993),<br />

159–173.<br />

[Ant88] A. Antoulas, <strong>Rational</strong> interpolation <strong>and</strong> the Euclidean algorithm,<br />

Linear Algebra <strong>and</strong> Its Applications 108 (1988), 157–171.<br />

[Arn80] H. Arndt, Ein verallgemeinerter kettenbruch-algorithmus zur<br />

rationalen Hermite-interpolation, Numerische Mathematik 36<br />

(1980), no. 1, 99–107 (German).<br />

[BBM05] J.P. Berrut, R. Baltensperger, <strong>and</strong> H.D. Mittelmann, Recent developments<br />

in barycentric rational interpolation, Trends <strong>and</strong> Applications<br />

in Constructive Approximation (D.H. Mache, J. Szabados,<br />

<strong>and</strong> M.G. de Bruin, eds.), International Series <strong>of</strong> Numerical<br />

Mathematics, vol. 151, Birkhäuser Basel, 2005, pp. 27–51.<br />

[BBN99] R. Baltensperger, J.P. Berrut, <strong>and</strong> B. Noël, Exponential convergence<br />

<strong>of</strong> a linear rational interpolant between transformed Chebyshev<br />

points, Mathematics <strong>of</strong> Computation 68 (1999), no. 227,<br />

1109–1120.<br />

[Ber97] J.P. Berrut, The barycentric weights <strong>of</strong> rational interpolation with<br />

prescribed poles, Journal <strong>of</strong> Computational <strong>and</strong> Applied Mathematics<br />

86 (1997), 45–52.<br />

[Ber00] , A matrix for determining lower complexity barycentric<br />

representations <strong>of</strong> rational interpolants, Numerical Algorithms<br />

24 (2000), 17–29.<br />

[BGM81] G.A. Baker <strong>and</strong> P.R. Graves-Morris, Padé approximants. Part II:<br />

Extensions <strong>and</strong> applications, Encyclopedia <strong>of</strong> Mathematics <strong>and</strong><br />

its Applications, vol. 14, Addison-Wesley, 1981.<br />

137


138 Bibliography<br />

[BGM96] , Padé approximants, 2nd ed., Encyclopedia <strong>of</strong> Mathematics<br />

<strong>and</strong> its Applications, vol. 59, Cambridge University Press,<br />

New York, 1996.<br />

[BL97] B. Beckermann <strong>and</strong> G. Labahn, Recursiveness in matrix rational<br />

interpolation problems, Journal <strong>of</strong> Computational <strong>and</strong> Applied<br />

Mathematics 77 (1997), no. 1-2, 5–34.<br />

[BL00] , Effective computation <strong>of</strong> rational approximants <strong>and</strong> interpolants,<br />

Reliable Computing 6 (2000), no. 26, 365–390.<br />

[BM97] J.P. Berrut <strong>and</strong> H.D. Mittelmann, Matrices for the direct determination<br />

<strong>of</strong> the barycentric weights <strong>of</strong> rational interpolation,<br />

Journal <strong>of</strong> Computational an Applied Mathematics 78 (1997),<br />

355–370.<br />

[BM00] , <strong>Rational</strong> interpolation through the optimal attachment<br />

<strong>of</strong> poles to the interpolating polynomial, Numerical Algorithms<br />

23 (2000), no. 4, 315–328.<br />

[BT04] J.P. Berrut <strong>and</strong> L.N. Trefethen, Barycentric Lagrange interpolation,<br />

SIAM Review 46 (2004), no. 3, 501–517.<br />

[BV04] S. Boyd <strong>and</strong> L. V<strong>and</strong>enberghe, Convex optimization, Cambridge<br />

University Press, 2004.<br />

[CJ82] A. Chottera <strong>and</strong> G. Julien, A linear programming approach to recursive<br />

digital filter design with linear phase, IEEE Transactions<br />

on Circuits <strong>and</strong> Systems 29 (1982), no. 3, 139–149.<br />

[Cla78a] G. Claessens, On the Newton-Padé approximation problem, Journal<br />

<strong>of</strong> Approximation <strong>Theory</strong> 22 (1978), no. 2, 150–160.<br />

[Cla78b] , On the structure <strong>of</strong> the Newton-Padé table, Journal <strong>of</strong><br />

Approximation <strong>Theory</strong> 22 (1978), no. 4, 304–319.<br />

[CM93] S. Cabay <strong>and</strong> R. Meleshko, A weakly stable algorithm for Padé<br />

approximants <strong>and</strong> the inversion <strong>of</strong> Hankel matrices, SIAM Journal<br />

on Matrix Analysis <strong>and</strong> Applications 14 (1993), no. 3, 735–<br />

765.<br />

[CVdC85] A. Cuyt <strong>and</strong> P. Van der Cruyssen, Rounding error analysis for<br />

forward continued fraction algorithms, Computers & Mathematics<br />

with Applications 11 (1985), 541–564.


Bibliography 139<br />

[CW88] A. Cuyt <strong>and</strong> L. Wuytack, Non-linear methods in numerical analysis,<br />

North-Holl<strong>and</strong>, Amsterdam, 1988.<br />

[Dum05] B. Dumitrescu, Optimization <strong>of</strong> two-dimensional IIR filters with<br />

nonseparable <strong>and</strong> separable denominator, IEEE Transactions on<br />

Signal Processing 53 (2005), no. 5, 1768–1777.<br />

[FH07] M. Floater <strong>and</strong> K. Hormann, Barycentric rational interpolation<br />

with no poles <strong>and</strong> high rates <strong>of</strong> approximation, Numerische Mathematik<br />

107 (2007), no. 17, 315–331.<br />

[Gas79] S.I. Gass, Comments on the possibility <strong>of</strong> cycling with the simplex<br />

method, Operations Research 27 (1979), no. 4, 848–852.<br />

[GB06] D. Gorinevsky <strong>and</strong> S. Boyd, Optimization-based design <strong>and</strong> implementation<br />

<strong>of</strong> multi-dimensional zero-phase IIR filters, IEEE<br />

Transactions on Circuits <strong>and</strong> Systems I 53 (2006), no. 2, 372–<br />

383.<br />

[Gem96] L. Gemignani, Fast <strong>and</strong> stable computation <strong>of</strong> the barycentric<br />

representation <strong>of</strong> rational interpolants, Calcolo 33 (1996), no. 3-<br />

4, 371–388.<br />

[GI87] W. Gautschi <strong>and</strong> G. Inglese, Lower bounds for the condition<br />

number <strong>of</strong> V<strong>and</strong>ermonde matrices, Numerische Mathematik 52<br />

(1987), no. 3, 241–250.<br />

[GKP94] R. Graham, D. Knuth, <strong>and</strong> O. Patashnik, Concrete mathematics:<br />

A foundation for computer science, Addison-Wesley Longman<br />

Publishing Co., Inc., Boston, MA, USA, 1994.<br />

[GM80] P.R. Graves-Morris, <strong>Practical</strong>, reliable, rational interpolation,<br />

Journal <strong>of</strong> the Institute <strong>of</strong> Mathematics <strong>and</strong> its Applications 25<br />

(1980), 267 –286.<br />

[GMH81] P.R. Graves-Morris <strong>and</strong> T.R. Hopkins, Reliable rational interpolation,<br />

Numerische Mathematik 36 (1981), no. 1, 111–128.<br />

[Gru67] B. Grünbaum, Convex polytopes, Pure <strong>and</strong> Applied mathematics,<br />

vol. XVI, John Wiley & Sons, Ltd., 1967.<br />

[GT56] A.J. Goldman <strong>and</strong> A.W. Tucker, Polyhedral convex cones, Linear<br />

inequalities <strong>and</strong> related systems (H. W. Kuhn <strong>and</strong> A. W.


140 Bibliography<br />

Tucker, eds.), Annals <strong>of</strong> Mathematics Studies, vol. 38, Princeton<br />

University Press, 1956.<br />

[Gut89] M.H. Gutknecht, Continued fractions associated with the<br />

Newton-Padé table, Numerische Mathematik 56 (1989), no. 6,<br />

547–589.<br />

[Gut93a] , Block structure <strong>and</strong> recursiveness in rational interpolation,<br />

Approximation <strong>Theory</strong> VII (E.W. Cheney, C.K. Chui, <strong>and</strong><br />

L.L. Schumaker, eds.), Academic Press, 1993, pp. 93–130.<br />

[Gut93b] , The multipoint Padé table <strong>and</strong> general recurrences<br />

for rational interpolation, Acta Applic<strong>and</strong>ae Mathematicae 33<br />

(1993), no. 2, 165–194.<br />

[Har81] D. Harris, Design <strong>of</strong> 2-D rational digital filters, Acoustics,<br />

Speech, <strong>and</strong> Signal Processing 6 (1981), 696–699.<br />

[Hig02] N. Higham, Accuracy <strong>and</strong> stability <strong>of</strong> numerical algorithms, 2nd<br />

ed., Society for Industrial <strong>and</strong> Applied Mathematics, Philadelphia,<br />

2002.<br />

[Hig04] , The numerical stability <strong>of</strong> barycentric Lagrange interpolation,<br />

IMA Journal <strong>of</strong> Numerical Analysis 24 (2004), no. 4,<br />

547–556.<br />

[JT74] W.B. Jones <strong>and</strong> W.J. Thron, Numerical stability in evaluating<br />

continued fractions, Mathematics <strong>of</strong> Computation 28 (1974),<br />

no. 127, 795–810.<br />

[LPT98] W.-S. Lu, S.-C. Pei, <strong>and</strong> C.-C. Tseng, A weighted least-squares<br />

method for the design <strong>of</strong> stable 1-D <strong>and</strong> 2-D IIR digital filters,<br />

IEEE Transactions on Signal Processing 46 (1998), no. 1, 1–10.<br />

[Mar91] S. Markov, Polynomial interpolation <strong>of</strong> vertical segments in the<br />

plane, Computer arithmetic, scientific computation <strong>and</strong> mathematical<br />

modelling (E. Kaucher, S. Markov, <strong>and</strong> G. Mayer,<br />

eds.), IMACS, J.C. Baltzer AG, Scientific Publishing Co., 1991,<br />

pp. 251–262.<br />

[MB82] M. Milanese <strong>and</strong> G. Belforte, Estimations theory <strong>and</strong> uncertainty<br />

intervals evaluation in the presence <strong>of</strong> unknown but bounded errors:linear<br />

families <strong>of</strong> models <strong>and</strong> estimators, IEEE Transactions<br />

on Automatic Control 27 (1982), no. 2, 408–414.


Bibliography 141<br />

[MC04] H. Motulsky <strong>and</strong> A. Christopoulos, Fitting models to biological<br />

data using linear <strong>and</strong> nonlinear regression: A practical guide to<br />

curve fitting, Oxford University Press, 2004.<br />

[MCB79] M.D. McKay, W.J. Conover, <strong>and</strong> R.J. Beckman, A comparison <strong>of</strong><br />

three methods for selecting values <strong>of</strong> input variables in the analysis<br />

<strong>of</strong> output from a computer code, Technometrics 21 (1979),<br />

no. 1, 239–245.<br />

[Mei70] J. Meinguet, On the solubility <strong>of</strong> the Cauchy interpolation problem,<br />

Approximation <strong>Theory</strong> (A. Talbot, ed.), Academic Press,<br />

London/NewYork, 1970, pp. 137–163.<br />

[MMY93] M.D. Morris, T.J. Mitchell, <strong>and</strong> D. Ylvisaker, Bayesian design<br />

<strong>and</strong> analysis <strong>of</strong> computer experiments: Use <strong>of</strong> derivatives in surface<br />

prediction, Technometrics 35 (1993), no. 3, 243–255.<br />

[MPSS96] S. Markov, E. Popova, U. Schneider, <strong>and</strong> J. Schulze, On linear<br />

interpolation under interval data, Mathematics <strong>and</strong> Computers<br />

in Simulation 42 (1996), 35–45.<br />

[NW88] G.L. Nemhauser <strong>and</strong> L.A. Wolsey, Integer <strong>and</strong> combinatorial optimization,<br />

John Wiley & Sons, 1988.<br />

[Pom68] T. Pomentale, On discrete rational least squares approximation,<br />

Numerische Mathematik 12 (1968), no. 1, 40–46.<br />

[PTVF92] W. Press, S. Teukolsky, W. Vetterling, <strong>and</strong> B. Flannery, Numerical<br />

recipes in C, 2nd ed., Cambridge University Press, Cambridge,<br />

UK, 1992.<br />

[PV92] P.M. Pardalos <strong>and</strong> S.A. Vavasis, Open questions in complexity<br />

theory for numerical optimization, Mathematical Programming<br />

57 (1992), no. 2, 337–339.<br />

[RKR03] H. Reddy, I. Khoo, <strong>and</strong> P. Rajan, 2-D symmetry: theory <strong>and</strong><br />

filter design applications, IEEE Circuits <strong>and</strong> Systems Magazine<br />

3 (2003), no. 3, 4–33.<br />

[SCL08] O. Salazar Celis, A. Cuyt, <strong>and</strong> M. Lukach, Stable multidimensional<br />

recursive filters via quadratic programming, Tech. Report<br />

2008-02, University <strong>of</strong> Antwerp, Department <strong>of</strong> Mathematics <strong>and</strong><br />

Computer Science, May 2008, (submitted to Digital Signal Processing).


142 Bibliography<br />

[SCLV05] O. Salazar Celis, A. Cuyt, R.B. Lenin, <strong>and</strong> B. Verdonk, Univariate<br />

rational interpolation in practical applications, Proceedings<br />

<strong>of</strong> the International Conference on Numerical Analysis <strong>and</strong> Applied<br />

Mathematics (T.E. Simos, G. Psihoyios, <strong>and</strong> C. Tsitouras,<br />

eds.), 2005, pp. 689–692.<br />

[SCV07] O. Salazar Celis, A. Cuyt, <strong>and</strong> B. Verdonk, <strong>Rational</strong> approximation<br />

<strong>of</strong> vertical segments, Numerical Algorithms 45 (2007),<br />

no. 1-4, 375–388.<br />

[SCV08] , A practical algorithm for univariate rational interpolation<br />

with asymptotic information, Tech. Report 2008-08, University<br />

<strong>of</strong> Antwerp, Department <strong>of</strong> Mathematics <strong>and</strong> Computer<br />

Science, July 2008, (abstract to appear in Communications in<br />

the Analytic <strong>Theory</strong> <strong>of</strong> Continued Fractions).<br />

[Sta87] H. Stahl, Existence <strong>and</strong> uniqueness <strong>of</strong> rational interpolants with<br />

free <strong>and</strong> prescribed poles, Approximation <strong>Theory</strong> (E.B. Saff, ed.),<br />

Lecture Notes in Mathematics, vol. 1287, Springer-Verlag, 1987,<br />

pp. 180–208.<br />

[Sti63] E.L. Stiefel, An introduction to numerical mathematics, Academic<br />

Press Inc., London, UK, 1963.<br />

[SW86] C. Schneider <strong>and</strong> W. Werner, Some new aspects <strong>of</strong> rational interpolation,<br />

Mathematics <strong>of</strong> Computation 47 (1986), no. 175,<br />

285–299.<br />

[TB97] L.N. Trefethen <strong>and</strong> D. Bau, III, Numerical linear algebra, Siam,<br />

1997.<br />

[VBB90] M. Van Barel <strong>and</strong> A. Bultheel, A new approach to the rational<br />

interpolation problem, Journal <strong>of</strong> Computational <strong>and</strong> Applied<br />

Mathematics 32 (1990), no. 1-2, 281–289.<br />

[VBB92] , A new formal approach to the rational interpolation<br />

problem, Numerische Mathematik 62 (1992), no. 1, 87–122.<br />

[VDC81] P. Van Der Cruyssen, Stable evaluation <strong>of</strong> generalized continued<br />

fractions, SIAM Journal on Numerical Analysis 18 (1981), no. 5,<br />

871–881.


Bibliography 143<br />

[Vla08] E. Y. Vladislavleva, Model-based problem solving through symbolic<br />

regression via pareto genetic programming, Ph.D. thesis,<br />

University <strong>of</strong> Tilburg, Department <strong>of</strong> Econometrics <strong>and</strong> Operations<br />

Research, 2008.<br />

[Wer79] H. Werner, A reliable method for rational interpolation, Padé<br />

Approximation <strong>and</strong> its Applications (1979), 257–277.<br />

[Wer83] , Algorithm 51: A reliable <strong>and</strong> numerically stable program<br />

for rational interpolation <strong>of</strong> Lagrange data, Computing 31<br />

(1983), 269–286.<br />

[Wer84] W. Werner, Polynomial interpolation: Lagrange versus Newton,<br />

Mathematics <strong>of</strong> Computation (1984), 205–217.<br />

[Wuy74] L. Wuytack, On some aspects <strong>of</strong> the rational interpolation problem,<br />

SIAM Journal on Numerical Analysis 11 (1974), no. 1, 52–<br />

60.<br />

[ZZ02] X. Zhu <strong>and</strong> G. Zhu, A method for directly finding the denominator<br />

values <strong>of</strong> rational interpolants, Journal <strong>of</strong> Computational <strong>and</strong><br />

Applied Mathematics 148 (2002), 341–348.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!