1 Introduction

Suppose a real function f is given and one wants to compute the integrals

$$\begin{aligned} \int _{\mathbb {R}} f(x)\, d\mu _{j}(x), {\qquad } 1 \le j \le r \end{aligned}$$

for r positive measures \(\mu _1,\ldots ,\mu _r\) with only N function evaluations. In 1994, Borges [4] suggested Gauss-like quadrature rules and showed that one gets an optimal set of quadrature rules if one takes the N quadrature nodes at the zeros of a polynomial of degree N which satisfies orthogonality conditions with respect to the measures \(\mu _1,\ldots ,\mu _r\). Borges uses the terminology quasi-orthogonality but such a polynomial is now known as a type II multiple orthogonal polynomial. The quadrature rules are of the form

$$\begin{aligned} \sum _{k=1}^N \lambda _{k,N}^{(j)} f(x_{k,N}) \approx \int _{\mathbb {R}} f(x)\, d\mu _j(x), \end{aligned}$$

so that the integral for the measure \(\mu _j\) corresponds to quadrature weights \(\lambda _{k,N}^{(j)}\). An important numerical aspect is then how to compute the quadrature nodes \(\{x_{k,N}, 1 \le k \le N \}\) and the quadrature weights \(\{ \lambda _{k,n}^{(j)}, 1 \le k \le N \}\) for \(1 \le j \le r\) in an efficient and stable way. This problem was suggested in the survey on classical multiple orthogonal polynomials ([25], §4.3). The computation of the quadrature nodes and weights was first done by Milovanović and Stanić for almost diagonal multi-indices [20] and later this was extended for general multi-indices for the case of two or three quadrature rules by Tomović and Stanić [23] and for arbitrary r by Jovanović, Stanić and Tomović [15]. The common nodes were calculated as eigenvalues of certain matrices, while the quadrature weights were calculated by solving certain systems of linear equations. Simultaneous Gaussian quadrature for multiple orthogonal polynomials for two measures \(\mu _1\) and \(\mu _2\) supported on two intervals \(\Delta _1\) and \(\Delta _2\) which are disjoint (a so-called Angelesco system) was investigated in [18], and for multiple Hermite polynomials (with \(r=3\)) in [27] but mainly from an analytical point of view, leaving out the numerical aspects.

In 1969, Golub and Welsch [12] showed that for Gaussian quadrature (the case when \(r=1\)) one can use the Jacobi matrix for the corresponding orthogonal polynomials. The eigenvalues of the \(N \times N\) Jacobi matrix are the quadrature nodes and the first components of the normalized eigenvectors are related to the quadrature weights. This approach was extended to simultaneous Gaussian quadrature (in the sense of Borges) by Coussement and Van Assche [6] but this extension seems to have gone unnoticed. The role of the Jacobi matrix is now played by a banded Hessenberg matrix for which the eigenvalues are the required quadrature nodes, and one needs the right and the left eigenvectors to find the quadrature weights. The goal of this paper is to give a simplified proof of this result for two measures \(\mu _1\) and \(\mu _2\). We will give some examples involving measures \(d\mu _1 = w_1(x)\,dx\) and \(d\mu _2(x) = w_2(x)\, dx\) for which the weight functions are related to modified Bessel functions.

The structure of the paper is as follows. In Sect. 2, we will give the necessary background about multiple orthogonal polynomial and their relation with Hermite-Padé approximation. In Sect. 3, we explain what we mean by simultaneous Gaussian quadrature. Multiple orthogonal polynomials satisfy various recurrence relations which we give in Sect. 4, and in particular the multiple orthogonal polynomials on the stepline (near the diagonal) satisfy a linear recurrence relation of order \(r+1\), which gives rise to a banded Hessenberg matrix with one diagonal above the main diagonal and r diagonals below the main diagonal. The eigenvalues of this Hessenberg matrix correspond to the zeros of the type II multiple orthogonal polynomial. The main theorem (Theorem 2) will be proved in Sect. 5. We will use the fact that the quadrature weights can be expressed in terms of the Christoffel-Darboux kernel for multiple orthogonal polynomials. One important difference is that the Christoffel-Darboux kernel for multiple orthogonal polynomials contains both the type I and the type II multiple orthogonal polynomials, and hence is not symmetric in the two variables. Two numerical examples involving modified Bessel function weights are worked out in Sect. 6.

2 Multiple orthogonal polynomials

Multiple orthogonal polynomials are polynomials in one variable with orthogonality relations with respect to r measures \((\mu _1,\mu _2,\ldots ,\mu _r)\) (on the real line in this paper). We use a multi-index \(\textbf{n}=(n_1,n_2,\ldots ,n_r) \in \mathbb {N}^r\) of size \(|\textbf{n}|=n_1+n_2+\ldots +n_r\).

Definition 1

(type II MOP) A type II multiple orthogonal polynomial \(P_{\textbf{n}}\) is a polynomial of degree \(\le |\textbf{n}|\) for which

$$\begin{aligned} \int _{\mathbb {R}} P_{\textbf{n}}(x) x^k\, d\mu _1(x)= & {} 0, \qquad 0 \le k \le n_1-1, \\&\vdots&\\ \int _{\mathbb {R}} P_{\textbf{n}}(x) x^k\, d\mu _r(x)= & {} 0, \qquad 0 \le k \le n_r-1. \end{aligned}$$

Definition 2

(type I MOP) Type I multiple orthogonal polynomials are in a vector \((A_{\textbf{n},1},\ldots ,A_{\textbf{n},r})\), with \(\deg A_{\textbf{n},j} \le n_j-1\), and they satisfy

$$\begin{aligned} \sum _{j=1}^r \int _{\mathbb {R}} A_{\textbf{n},j}(x) x^k\, d\mu _j(x) = 0, \qquad 0 \le k \le |\textbf{n}|-2. \end{aligned}$$

The orthogonality conditions for the type II multiple orthogonal polynomials give a homogeneous system of \(|\textbf{n}|\) linear equations for the \(|\textbf{n}|+1\) unknown coefficients of the polynomial \(P_{\textbf{n}}\). In a similar way, the orthogonality conditions for the type I multiple orthogonal polynomials give a homogeneous linear system of \(|\textbf{n}|-1\) equations for the \(|\textbf{n}|\) unknown coefficients of the polynomials \(A_{\textbf{n},j} (1 \le j \le r)\). When the type I and type II multiple orthogonal polynomials are unique up to a multiplicative factor, then we say that the multi-index \(\textbf{n}\) is normal. When this happens, the type II polynomial \(P_{\textbf{n}}\) has degree \(|\textbf{n}|\) and we will take the leading coefficient to be one. For a normal multi-index, we normalize the type I polynomials by setting

$$\begin{aligned} \sum _{j=1}^r \int _{\mathbb {R}} x^{|\textbf{n}|-1} A_{\textbf{n},j}(x)\, d\mu _j(x) = 1. \end{aligned}$$
(2.1)

In this paper, we assume this is the case for all multi-indices \(\textbf{n}\), in which case we deal with a perfect system. Hence, our type II multiple orthogonal polynomials are monic, and the type I multiple orthogonal polynomials satisfy (2.1).

Multiple orthogonal polynomials appear in simultaneous rational approximation of r functions \((f_1,f_2,\ldots ,f_r)\), where

$$\begin{aligned} f_j(z) = \int _{\mathbb {R}} \frac{d\mu _j(x)}{z-x} , \qquad z \in \mathbb {C} \setminus \mathbb {R}. \end{aligned}$$

Problem 1

(Type II Hermite-Padé) Find a polynomial \(P_{\textbf{n}}\) of degree \(\le |\textbf{n}|\) and polynomials \(Q_{\textbf{n},j}\) such that for \(1 \le j \le r\)

$$\begin{aligned} P_{\textbf{n}}(z) f_j(z) - Q_{\textbf{n},j}(z) = \mathcal {O}\left( \frac{1}{z^{n_j+1}} \right) , \qquad z \rightarrow \infty . \end{aligned}$$

The common denominator \(P_{\textbf{n}}\) is the type II multiple orthogonal polynomial and the numerator polynomials are given by

$$\begin{aligned} Q_{\textbf{n},j}(z) = \int _{\mathbb {R}} \frac{P_{\textbf{n}}(z)-P_{\textbf{n}}(x)}{z-x}\, d\mu _j(x). \end{aligned}$$

The error can also be expressed in terms of the type II multiple orthogonal polynomial:

$$\begin{aligned} P_{\textbf{n}}(z) f_j(z) - Q_{\textbf{n},j}(z) = \int _{\mathbb {R}} \frac{P_{\textbf{n}}(x)}{z-x}\, d\mu _j(x). \end{aligned}$$

Problem 2

(Type I Hermite-Padé) Find polynomials \(A_{\textbf{n},j}\) of degree \(\le n_j-1\) and a polynomial \(B_{\textbf{n}}\) such that

$$\begin{aligned} \sum _{j=1}^r A_{\textbf{n},j}(z) f_j(z) - B_{\textbf{n}}(z) = \mathcal {O}\left( \frac{1}{z^{|\textbf{n}|}} \right) , \qquad z \rightarrow \infty . \end{aligned}$$

The polynomials \(A_{\textbf{n},1},\ldots ,A_{\textbf{n},r}\) are the type I multiple orthogonal polynomials and the polynomial \(B_{\textbf{n}}\) is

$$\begin{aligned} B_{\textbf{n}}(z) = \sum _{j=1}^r \int _{\mathbb {R}} \frac{A_{\textbf{n},j}(z)-A_{\textbf{n},j}(x)}{z-x}\, d\mu _j(x). \end{aligned}$$

The error is given by

$$\begin{aligned} \sum _{j=1}^r A_{\textbf{n},j}(z) f_j(z) - B_{\textbf{n}}(z) = \sum _{j=1}^r \int _{\mathbb {R}} \frac{A_{\textbf{n},j}(x)}{z-x}\, d\mu _j(x). \end{aligned}$$

Here is some history indicating important progress (but very incomplete). Hermite-Padé approximation was introduced by Charles Hermite in 1873, who used them in his proof that e is transcendental [14]. The case \(r=1\) was then investigated in more detail by Hermite’s student Henri Padé (Padé approximation, Padé table) [22]. One important system for which all the multi-indices are normal (a perfect system) was described by Aurel Angelescu [2] who used r measures (weights) supported on r disjoint intervals. This is nowadays known as an Angelesco system. In 1934, Kurt Mahler [19] investigated perfect systems but his work was published much later in 1968. Another important system of measures was introduced by Evgeni Nikishin in 1979 [21]. For \(r=2\) the measures \((\mu _1,\mu _2)\) are absolutely continuous on an interval \(\Delta _0\) with weight functions \((w_1,w_2)\) for which

$$\begin{aligned} \frac{w_2(x)}{w_1(x)} = \int _{\Delta _1} \frac{d\sigma (t)}{x-t}, \end{aligned}$$

where \(\sigma \) is a positive measure on an interval \(\Delta _1\) which is disjoint from \(\Delta _0\). Such a system (and its recursive extensions to \(r >2\)) are now known as Nikishin systems and it has been shown that these are perfect systems [9]. Gonchar and Rakhmanov studied the convergence of Hermite-Padé approximants in [13] for which they used an extremal problem in logarithmic potential theory for a vector of measures. The idea of simultaneous Gaussian quadrature was introduced by Carlos F. Borges in [4]. Van Assche, Geronimo, and Kuijlaars formulated a Riemann-Hilbert problem for multiple orthogonal polynomials in 2001 [26]. This allows to obtain the asymptotic behavior of multiple orthogonal polynomials.

Nowadays multiple orthogonal polynomials are used in various applications, such as eigenvalues of products of random matrices, non-intersecting Brownian motions, combinatorial problems related to random tilings, and rational approximations in number theory. They are also used in numerical analysis for matrix function evaluation (Alqahtani and Reichel [1]).

2.1 Examples extending classical orthogonal polynomials

Many examples of multiple orthogonal polynomials are known.

  • Multiple Hermite polynomials: the weights are normal densities with non-zero mean

    $$\begin{aligned} w_j(x) = e^{-x^2+c_jx}, \quad c_i \ne c_j, \qquad x \in (-\infty ,\infty ). \end{aligned}$$
  • Multiple Laguerre polynomials: the weights

    $$\begin{aligned} w_j(x) = x^{\alpha _j} e^{-x}, \quad \alpha _i-\alpha _j \notin \mathbb {Z},\ \alpha _j >-1, \qquad x \in [0,\infty ) \end{aligned}$$

    correspond to multiple Laguerre polynomials of the first kind. The weights

    $$\begin{aligned} w_j(x) = x^\alpha e^{-c_jx}, \quad c_i \ne c_j, \ c_j> 0,\ \alpha >-1, \qquad x \in [0,\infty ), \end{aligned}$$

    correspond to multiple Laguerre polynomials of the second kind.

  • Jacobi-Piñeiro polynomials: the weights are

    $$\begin{aligned} w_j(x) = x^{\alpha _j} (1-x)^\beta , \quad \alpha _i-\alpha _j \notin \mathbb {Z},\ \alpha _j,\beta > -1, \qquad x \in [0,1]. \end{aligned}$$

For these extensions of the classical orthogonal polynomials, one knows a differential equation for the multiple orthogonal polynomials, a system of nearest neighbor recurrence relations, the asymptotic distribution of the zeros, etc. Other examples include weights in terms of special functions satisfying a second-order differential equation.

2.2 Modified Bessel functions \((K_\nu ,K_{\nu +1})\)

The modified Bessel function \(K_\nu \) is given as

$$\begin{aligned} K_\nu (x) = \frac{1}{2} \left( \frac{x}{2}\right) ^\nu \int _0^\infty \exp \left( -t-\frac{x^2}{4t} \right) t^{-\nu -1}\, dt. \end{aligned}$$

It satisfies the modified Bessel equation

$$\begin{aligned} x^2 y'' + x y' - (x^2+ \nu ^2) y = 0. \end{aligned}$$

Introduce the functions

$$\begin{aligned} \rho _\nu (x) = 2 x^{\nu /2} K_\nu (2\sqrt{x}), \qquad x >0, \end{aligned}$$

which have the moments

$$\begin{aligned} \int _0^\infty x^n \rho _\nu (x)\, dx = \Gamma (n+\nu +1) \Gamma (n+1) . \end{aligned}$$

Van Assche and Yakubovich [28] and Ben Cheikh and Douak [3] obtained the multiple orthogonal polynomials for the weights or \((w_1,w_2)=x^\alpha (\rho _\nu , \rho _{\nu +1})\), where \(\alpha > -1\) and \(\nu \ge 0\). The vector Pearson equation is

$$\begin{aligned} \left[ x \begin{pmatrix} w_1 \\ w_2 \end{pmatrix}\right] ' =\begin{pmatrix} \alpha + \nu +1 &{} -1 \\ -x &{} \alpha +1 \end{pmatrix} \begin{pmatrix} w_1 \\ w_2 \end{pmatrix} . \end{aligned}$$

One has

$$\begin{aligned} \frac{\rho _\nu (x)}{\rho _{\nu +1}(x)} = \frac{1}{\pi ^2} \int _0^\infty \frac{1}{(x+s) [J_{\nu +1}^2(2\sqrt{s})+ Y_{\nu +1}^2(2\sqrt{s})]} \frac{ds}{s}, \end{aligned}$$

so that this is a Nikishin system. Denote the type I function by

$$\begin{aligned} q_{n,m}^\alpha (x) = A_{n,m}(x) \rho _\nu (x) + B_{n,m}(x) \rho _{\nu +1}(x), \end{aligned}$$

and the type II multiple orthogonal polynomials by \(p_{n,m}^{\alpha }\).

Property 1

(Rodrigues formula) One has

$$\begin{aligned} x^\alpha q_{n,n}^\alpha = \frac{d^{2n-1}}{dx^{2n-1}} [x^{2n-1+\alpha } \rho _\nu (x)], \end{aligned}$$
$$\begin{aligned} x^\alpha q_{n,n-1}^\alpha = \frac{d^{2n-2}}{dx^{2n-2}} [x^{2n+\alpha -2} \rho _\nu (x)]. \end{aligned}$$

Property 2

(recurrence relation) Let \(P_{2n}=p_{n,n}^\alpha \) and \(P_{2n+1}=p_{n+1,n}^{\alpha }\), then

$$\begin{aligned} xP_n(x) = P_{n+1}(x) + b_nP_n(x) + c_nP_{n-1}(x) +d_nP_{n-2}(x) \end{aligned}$$

with

$$\begin{aligned} b_n= & {} (n+\alpha +1)(3n+\alpha +2\nu )-(\alpha +1)(\nu -1), \\ c_n= & {} n(n+\alpha )(n+\alpha +\nu )(3n+2\alpha +\nu ), \\ d_n= & {} n(n-1)(n+\alpha )(n+\alpha -1)(n+\alpha +\nu )(n+\alpha +\nu -1). \end{aligned}$$

Let \(Q_{2n}=q_{n,n}^\alpha \) and \(Q_{2n-1}=q_{n,n-1}^\alpha \), then

$$\begin{aligned} xQ_n(x) = Q_{n-1}(x) + b_{n-1} Q_n(x) + c_n Q_{n+1}(x) + d_{n+1} Q_{n+2}(x). \end{aligned}$$

2.3 Modified Bessel functions \((I_{\nu },I_{\nu +1})\)

Another solution of the modified Bessel equation is given by the modified Bessel function \(I_\nu (x)\). In [5], we considered

$$\begin{aligned} w_1(x) = x^{\nu /2}I_\nu (2\sqrt{x}) e^{-cx}, \quad w_2(x) = x^{(\nu +1)/2} I_{\nu +1}(2\sqrt{x}) e^{-cx}, \quad x>0, \end{aligned}$$

with \(\nu >-1\) and \(c>0\). The case \(c=1\) was first studied in [8]. These weights are related to the noncentral \(\chi ^2\)-distribution:

$$\begin{aligned} p_{\chi ^2}^{(\nu ,\lambda )}(x) = \frac{1}{2} \left( \frac{x}{\lambda } \right) ^{(\nu -2)/4} I_{(\nu -2)/2}(\sqrt{\lambda x}) e^{-(\lambda +x)/2}, \qquad x > 0, \end{aligned}$$

with \(\lambda > 0\) and \(\nu \in \mathbb {N}\). The Pearson equation is

$$\begin{aligned} \left[ x \begin{pmatrix} w_1 \\ w_2 \end{pmatrix} \right] ' = \begin{pmatrix}\nu -cx &{} 1 \\ x &{} -cx \end{pmatrix} \begin{pmatrix} w_1 \\ w_2 \end{pmatrix} . \end{aligned}$$

One has

$$\begin{aligned} \frac{w_1(x)}{w_2(x)} = \frac{\nu +1}{x} + \sum _{n=1}^\infty \frac{1}{x+j_{\nu +1,n}^2/4} \frac{J_{\nu +2}(j_{\nu +1,n})}{J_{\nu +1}'(j_{\nu +1,n})}, \end{aligned}$$

so that we again have a Nikishin system. Let

$$\begin{aligned} Q_{2n}^{\nu }(x) = q_{n,n}^{\nu }(x), \quad Q_{2n+1}^{\nu }(x)=q_{n+1,n}^{\nu }(x), \end{aligned}$$

and similarly

$$\begin{aligned} P_{2n}^{\nu }(x) = p_{n,n}^\nu (x), \quad P_{2n+1}^\nu (x)=p_{n+1,n}^\nu (x). \end{aligned}$$

Property 3

(raising-lowering). For every \(\nu >-1\) and \(c>0\) one has

$$\begin{aligned} \frac{d}{dx} Q_n^{\nu +1}(x) = Q_{n+1}^\nu (x), \quad and \quad \frac{d}{dx} P_n^\nu (x) = n P_{n-1}^{\nu +1}(x). \end{aligned}$$

Property 4

(recurrence relation). One has

$$\begin{aligned} x P_n^\nu (x) = P_{n+1}^\nu (x) + b_n P_n^\nu (x) + c_n P_{n-1}^\nu (x) + d_n P_{n-2}^\nu (x), \end{aligned}$$

with

$$\begin{aligned} b_n= & {} \frac{1}{c^2} [1+c(\nu +2n+1)], \\ c_n= & {} \frac{n}{c^3} [2+c(\nu +n)], \\ d_n= & {} \frac{n(n-1)}{c^4}. \end{aligned}$$

Furthermore

$$\begin{aligned} xQ_n^\nu (x) = Q_{n-1}^\nu (x) + b_{n-1} Q_n^\nu (x) + c_n Q_{n+1}^\nu (x) + d_{n+1} Q_{n+2}^\nu (x). \end{aligned}$$

3 Simultaneous Gaussian quadrature

Suppose we have two measures \(\mu _1,\mu _2\) and one function f. We want to approximate integrals by sums

$$\begin{aligned} \int _{\mathbb {R}} f(x) \, d\mu _1(x) \approx \sum _{k=1}^{2n} \lambda _{k,2n}^{(1)} f(x_{k,2n}), \end{aligned}$$
$$\begin{aligned} \int _{\mathbb {R}} f(x) \, d\mu _2(x) \approx \sum _{k=1}^{2n} \lambda _{k,2n}^{(2)} f(x_{k,2n}). \end{aligned}$$

Theorem 1

(Borges [4]) If we take for \(\{x_{k,2n}, 1 \le k \le 2n \}\) the zeros of the type II multiple orthogonal \(P_{n,n}\) for the two measures \((\mu _1,\mu _2)\) and use interpolatory quadrature, then the quadrature is exact for polynomials f of degree \(\le 3n-1\).

There are 2n function evaluations. If we use ordinary Gaussian quadrature with n nodes for each integral, then we also use 2n function evaluations, but the quadrature then is exact for polynomials f of degree \(\le 2n-1\). Important numerical aspects are:

  • How to compute the quadrature nodes \(x_{k,2n}\), \(1 \le k \le 2n\) (the zeros of \(P_{n,n}\))?

  • How to compute the quadrature weights

    $$\begin{aligned} \lambda _{k,2n}^{(1)} = \int _{\mathbb {R}} \frac{P_{n,n}(x)}{(x-x_{k,2n}) P_{n,n}'(x_{k,2n})} \, d\mu _1(x) , \end{aligned}$$
    (3.1)
    $$\begin{aligned} \lambda _{k,2n}^{(2)} = \int _{\mathbb {R}} \frac{P_{n,n}(x)}{(x-x_{k,2n}) P_{n,n}'(x_{k,2n})} \, d\mu _2(x) . \end{aligned}$$
    (3.2)

Some relevant analytical problems are

  • The convergence of the quadrature rules as \(n \rightarrow \infty \).

  • Are the weights \(\lambda _{k,2n}^{(1)}\) and \(\lambda _{k,2n}^{(2)}\) positive? If not, are they small?

We have investigated some of the analytical problems of simultaneous Gaussian quadrature for an Angelesco system in [18] and for multiple Hermite polynomials in [27].

We formulated the simultaneous Gaussian quadrature for 2n nodes. If the number of nodes is odd (\(2n+1\)), then one uses the zeros of the type II multiple orthogonal \(P_{n+1,n}\) and

$$\begin{aligned} \int _{\mathbb {R}} f(x) \, d\mu _1(x) = \sum _{k=1}^{2n+1} \lambda _{k,2n+1}^{(1)} f(x_{k,2n+1}) \end{aligned}$$

holds for polynomials f of degree \(\le 3n+1\), and

$$\begin{aligned} \int _{\mathbb {R}} f(x) \, d\mu _2(x) = \sum _{k=1}^{2n+1} \lambda _{k,2n+1}^{(2)} f(x_{k,2n+1}) \end{aligned}$$

holds for polynomials f of degree \(\le 3n\). For multi-indices (nm) one takes the nodes at the zeros of \(P_{n,m}\) and

$$\begin{aligned} \int _{\mathbb {R}} f(x) \, d\mu _1(x) = \sum _{k=1}^{n+m} \lambda _{k,n+m}^{(1)} f(x_{k,n+m}), \qquad \deg f \le 2n+m-1, \end{aligned}$$
$$\begin{aligned} \int _{\mathbb {R}} f(x) \, d\mu _2(x) = \sum _{k=1}^{n+m} \lambda _{k,n+m}^{(2)} f(x_{k,n+m}), \qquad \deg f \le n+2m-1. \end{aligned}$$

There is an important relation with Hermite-Padé approximation. Recall that for type II Hermite-Padé approximation one has

$$\begin{aligned} P_{\textbf{n}}(z) f_j(z) - Q_{\textbf{n},j}(z) = \mathcal {O}\left( \frac{1}{z^{n_j+1}} \right) , \qquad z \rightarrow \infty . \end{aligned}$$

For the rational approximants one then has

$$\begin{aligned} f_j(z) - \frac{Q_{\textbf{n},j}(z)}{P_{\textbf{n}}(z)} = \mathcal {O} \left( \frac{1}{z^{|\textbf{n}|^+n_j+1}} \right) , \end{aligned}$$

and if one decomposes the rational approximant into partial fractions, then

$$\begin{aligned} \frac{Q_{\textbf{n},j}(z)}{P_{\textbf{n}}(z)} = \sum _{k=1}^{|\textbf{n}|} \frac{\lambda _{k,\textbf{n}}^{(j)}}{z-x_{k,\textbf{n}}} . \end{aligned}$$

Hence, the poles of the type II Hermite-Padé approximants are the quadrature nodes and the residues are the quadrature weights. This extends the well-known connection between Gaussian quadrature and Padé approximation. If \(\mu _j\) is supported on [ab] and g is analytic in a neighborhood \(\Omega \) of [ab], then the error is given by

$$\begin{aligned} \int _a^b g(x) \, d\mu _j(x) - \sum _{k=1}^{|\textbf{n}|} \lambda _{k,\textbf{n}}^{(j)} g(x_{k,\textbf{n}}) = \frac{1}{2\pi i} \int _\Gamma g(z) \left( f_j(z) - \frac{Q_{\textbf{n},j}(z)}{P_{\textbf{n}}(z)} \right) \, dz , \end{aligned}$$

where \(\Gamma \) is a closed contour in \(\Omega \) around [ab]. Hence, results about the asymptotic behavior of Hermite-Padé approximation imply results for the convergence of the quadrature formula when the integrand g is sufficiently smooth.

4 Recurrence relations

Denote by \(\textbf{e}_j = (0,\ldots ,0,1,0,\ldots ,0)\) the standard unit vectors. Multiple orthogonal polynomials always satisfy a system of linear recurrence relations connecting \(P_{\textbf{n}}\) to its nearest neighbors \(P_{\textbf{n}+\textbf{e}_k}\) from above and \(P_{\textbf{n}-\textbf{e}_j}\) from below [24]:

$$\begin{aligned} xP_{\textbf{n}}(x) = P_{\textbf{n}+\textbf{e}_k}(x) + b_{\textbf{n},k} P_{\textbf{n}}(x) + \sum _{j=1}^r a_{\textbf{n},j} P_{\textbf{n}-\textbf{e}_j}(x), \qquad 1 \le k \le r. \end{aligned}$$
(4.1)

For the type I functions

$$\begin{aligned} Q_{\textbf{n}}(x) = \sum _{j=1}^r A_{\textbf{n},j}(x) w_j(x), \qquad w_j(x) = \frac{d\mu _j(x)}{d\mu (x)}, \end{aligned}$$

where \(\mu =\mu _1+\mu _2+\cdots +\mu _r\), the nearest neighbor recurrence relations are

$$\begin{aligned} xQ_{\textbf{n}}(x) = Q_{\textbf{n}-\textbf{e}_k}(x) + b_{\textbf{n}-\textbf{e}_k,k} Q_{\textbf{n}}(x) + \sum _{j=1}^r a_{\textbf{n},j} Q_{\textbf{n}+\textbf{e}_j}(x), \qquad 1 \le k \le r. \end{aligned}$$
(4.2)

If we combine these r recurrence relations, then one can find a \((r+2)\)-term recurrence relation on the stepline: for \(n=kr+\ell \), we take \(\textbf{n}=(\underbrace{k+1,\ldots ,k+1}_{\ell \text {times}},k,\ldots ,k)\) and we define the type II polynomials on the stepline by \(P_n(x) = P_{\textbf{n}}(x)\). This \((r+2)\)-term recurrence relation is

$$\begin{aligned} xP_n(x) = P_{n+1}(x) + \sum _{j=0}^r c_{n,j} P_{n-j}(x). \end{aligned}$$
(4.3)

There is also a \((r+2)\)-term recurrence relation for the type I functions on the stepline:

$$\begin{aligned} xQ_n(x) = Q_{n-1}(x) + \sum _{j=0}^r c_{n+j-1,j} Q_{n+j}(x). \end{aligned}$$
(4.4)

Filipuk, Haneczok, and Van Assche [10] worked out an algorithm to go from the nearest neighbor recurrence coefficients \((a_{\textbf{n},j},b_{\textbf{n},j};1 \le j \le r)_{\textbf{n}\in \mathbb {N}^r}\) to the stepline coefficients \((c_{n,0},c_{n,1},\ldots ,c_{n,r})_{n \in \mathbb {N}}\). They also gave algorithms to go from the recurrence coefficients of the orthogonal polynomials of the measures \(\mu _j\) to the nearest neighbor recurrence coefficients. We will illustrate this for the case \(r=2\). The nearest neighbor recurrence relations are

$$\begin{aligned} xP_{n,m}(x)= & {} P_{n+1,m}(x) + c_{n,m}P_{n,m}(x) + a_{n,m}P_{n-1,m}(x) + b_{n,m} P_{n,m-1}(x), \end{aligned}$$
(4.5)
$$\begin{aligned} xP_{n,m}(x)= & {} P_{n,m+1}(x) + d_{n,m}P_{n,m}(x) + a_{n,m}P_{n-1,m}(x) + b_{n,m} P_{n,m-1}(x). \end{aligned}$$
(4.6)

Subtracting both equations gives

$$\begin{aligned} P_{n+1,m}(x) - P_{n,m+1}(x) = (d_{n,m}-c_{n,m}) P_{n,m}(x). \end{aligned}$$
(4.7)

Denote the type II polynomials on the stepline by \(P_{2k}(x)=P_{k,k}(x)\), \(P_{2k+1}(x)=P_{k+1,k}(x)\). Take \(m=n\) then (4.5) is

$$\begin{aligned} x P_{n,n}(x) = P_{n+1,n}(x) + c_{n,n} P_{n,n}(x) + a_{n,n} P_{n-1,n}(x) + b_{n,n} P_{n,n-1}(x). \end{aligned}$$

Use (4.7) to replace \(P_{n-1,n}(x)\) by \(P_{n,n-1}(x) + (c_{n-1,n-1}-d_{n-1,n-1})P_{n-1,n-1}(x)\) to find

$$\begin{aligned} xP_{2n}(x) = P_{2n+1}(x) + c_{n,n} P_{2n}(x) + (a_{n,n}+b_{n,n}) P_{2n-1}(x) \\ + a_{n,n} (c_{n-1,n-1}-d_{n-1,n-1}) P_{2n-2}(x). \end{aligned}$$

In a similar way, by taking \(m=n-1\) (4.6) is

$$\begin{aligned} xP_{n,n-1}(x) = P_{n,n}(x) + d_{n,n-1}P_{n,n-1}(x) + a_{n,n-1}P_{n-1,n-1}(x) + b_{n,n-1} P_{n,n-2}(x). \end{aligned}$$

Use (4.7) to replace \(P_{n,n-2}(x)\) by \(P_{n-1,n-1}(x) + (d_{n-1,n-2}-c_{n-1,n-2}) P_{n-1,n-2}(x)\) to find

$$\begin{aligned} xP_{2n-1}(x) = P_{2n}(x) + d_{n,n-1}P_{2n-1}(x) + (a_{n,n-1}+b_{n,n-1}) P_{2n-2}(x) \\ + b_{n,n-1}(d_{n-1,n-2}-c_{n-1,n-2}) P_{2n-3}(x). \end{aligned}$$

This means that the four-term recurrence relation for the type II polynomials on the stepline is

$$\begin{aligned} xP_n(x) = P_{n+1}(x) + b_n P_n(x) + c_n P_{n-1}(x) + d_n P_{n-2}(x), \end{aligned}$$
(4.8)

with

$$\begin{aligned} b_{2k}&= c_{k,k}, \quad b_{2k+1} = d_{k+1,k} \\ c_{2k}&= a_{k,k}+b_{k,k}, \quad c_{2k+1} = a_{k+1,k}+b_{k+1,k}, \\ d_{2k}&= a_{k,k}(c_{k-1,k-1}-d_{k-1,k-1}), \quad d_{2k+1} = b_{k+1,k}(d_{k,k-1}-c_{k,k-1}). \end{aligned}$$

For the type I functions, the nearest neighbor recurrence relations are

$$\begin{aligned} xQ_{n,m}(x)= & {} Q_{n-1,m}(x) + c_{n-1,m} Q_{n,m}(x) + a_{n,m} Q_{n+1,m}(x) + b_{n,m}(x) Q_{n,m+1}(x), \\ xQ_{n,m}(x)= & {} Q_{n,m-1}(x) + d_{n,m-1} Q_{n,m}(x) + a_{n,m} Q_{n+1,m}(x) + b_{n,m}(x) Q_{n,m+1}(x). \end{aligned}$$

Subtracting both equations gives

$$\begin{aligned} Q_{n-1,m}(x)-Q_{n,m-1}(x) = (d_{n,m-1}-c_{n-1,m}) Q_{n,m}(x). \end{aligned}$$
(4.9)

In a similar way as before, one then finds for the type I functions on the stepline \(Q_{2k}(x)=Q_{k,k}(x)\), \(Q_{2k+1}(x)=Q_{k+1,k}(x)\)

$$\begin{aligned} xQ_n(x) = Q_{n-1}(x) + b_{n-1} Q_n(x) + c_n Q_{n+1}(x) + d_{n+1} Q_{n+2}(x) . \end{aligned}$$
(4.10)

Using the coefficients in this four-term recurrence relation, we can create a banded Hessenberg matrix

$$\begin{aligned} H_N = \begin{pmatrix} b_0 &{} 1 &{} 0 &{} 0 &{} 0 &{} 0 &{} \cdots &{} 0 \\ c_1 &{} b_1 &{} 1 &{} 0 &{} 0 &{} 0 &{} \cdots &{} 0 \\ d_2 &{} c_2 &{} b_2 &{} 1 &{} 0 &{} 0 &{} \cdots &{} 0 \\ 0 &{} d_3 &{} c_3 &{} b_3 &{} 1 &{} 0 &{} \cdots &{} 0 \\ 0 &{} 0 &{} d_4 &{} c_4 &{} b_4 &{} 1 &{} \cdots &{} 0 \\ \vdots &{} &{} \ddots &{} \ddots &{} \ddots &{} \ddots &{} \vdots \\ 0 &{} \cdots &{} 0 &{} 0 &{} d_{N-2} &{} c_{N-2} &{} b_{N-2} &{} 1 \\ 0 &{} \cdots &{} 0 &{} 0 &{} 0&{} d_{N-1} &{} c_{N-1} &{} b_{N-1} \end{pmatrix} . \end{aligned}$$
(4.11)

From now on, we will use N for the number of quadrature nodes. If \(N=2n\) then this corresponds to the multi-index (nn) and for \(N=2n+1\) to the multi-index \((n+1,n)\). The recurrence relation (4.8) for the type II polynomials can then be written as

$$\begin{aligned} H_N \begin{pmatrix} P_0(x) \\ P_1(x) \\ \vdots \\ P_{N-1}(x) \end{pmatrix} + \begin{pmatrix} 0 \\ \vdots \\ 0 \\ P_N(x) \end{pmatrix} = x \begin{pmatrix} P_0(x) \\ P_1(x) \\ \vdots \\ P_{N-1}(x) \end{pmatrix} . \end{aligned}$$

If we evaluate this at a zero \(x_{k,N}\) of \(P_N\), then we get the following result:

Property 5

If \(P_N(x_{k,N}) = 0\) then \(x_{k,N}\) is an eigenvalue of \(H_N\) with right eigenvector \(\bigl (P_0(x_{k,N}),P_1(x_{k,N}),\ldots ,P_{N-1}(x_{k,N})\bigr )\).

There is a similar property for the type I multiple orthogonal polynomials \((A_N,B_N)\) for which

$$\begin{aligned} A_{2k}(x) = A_{k,k}(x), \quad A_{2k+1}(x) = A_{k+1,k}(x), \end{aligned}$$
$$\begin{aligned} B_{2k}(x) = B_{k,k}(x), \quad B_{2k+1}(x) = B_{k+1,k}(x). \end{aligned}$$

Property 6

If \(P_N(x_{k,N}) = 0\) then \(x_{k,N}\) is an eigenvalue of \(H_N\) with left eigenvector \(\bigl (C_1A_1(x_{k,N})+C_2B_1(x_{k,N}),C_1A_2(x_{k,N})+C_2B_2(x_{k,N}),\ldots ,C_1A_n(x_{k,N})+C_2B_n(x_{k,N})\bigr )\), with constants \(C_1\) and \(C_2\) satisfying

$$\begin{aligned} {\left\{ \begin{array}{ll} C_1A_{N+1}(x_{k,N}) + C_2B_{N+1}(x_{k,N}) = 0, \\ C_1A_{N+2}(x_{k,N}) + C_2 B_{N+2}(x_{k,N}) = 0. \end{array}\right. } \end{aligned}$$
(4.12)

Proof

For the type I function \(Q_n(x) = A_n(x) w_1(x) + B_n(x) w_2(x)\), the four-term recurrence relation (4.10) is equivalent to

$$\begin{aligned}&\begin{pmatrix} Q_1(x)&Q_2(x)&\cdots&Q_N(x) \end{pmatrix} H_N \\&\quad + \begin{pmatrix} 0&\cdots&0&d_N Q_{N+1}(x)&\qquad 0 \qquad \ \ \ \end{pmatrix} \\&\quad + \begin{pmatrix} 0&\cdots&0&c_N Q_{N+1}(x)&d_{N+1} Q_{N+2}(x) \end{pmatrix} \\&= x \begin{pmatrix} Q_1(x)&Q_2(x)&\cdots&Q_N(x) \end{pmatrix} . \end{aligned}$$

This relation also holds for the polynomials \(A_n(x)\) and \(B_n(x)\), hence

$$\begin{aligned}&\begin{pmatrix} A_1(x)&A_2(x)&\cdots&A_N(x) \end{pmatrix} H_N \\&\quad + \begin{pmatrix} 0&\cdots&0&d_N A_{N+1}(x)&\qquad 0 \qquad \ \ \ \end{pmatrix} \\&\quad + \begin{pmatrix} 0&\cdots&0&c_N A_{N+1}(x)&d_{N+1} A_{N+2}(x) \end{pmatrix} \\&= x \begin{pmatrix} A_1(x)&A_2(x)&\cdots&A_N(x) \end{pmatrix} , \end{aligned}$$

and

$$\begin{aligned}&\begin{pmatrix} B_1(x)&B_2(x)&\cdots&B_N(x) \end{pmatrix} H_N \\&\quad + \begin{pmatrix} 0&\cdots&0&d_N B_{N+1}(x)&\qquad 0 \qquad \ \ \ \end{pmatrix} \\&\quad + \begin{pmatrix} 0&\cdots&0&c_N B_{N+1}(x)&d_{N+1} B_{N+2}(x) \end{pmatrix} \\&= x \begin{pmatrix} B_1(x)&B_2(x)&\cdots&B_N(x) \end{pmatrix} , \end{aligned}$$

and therefore also for a linear combination of \(A_n\) and \(B_n\)

$$\begin{aligned}&\begin{pmatrix}C_1 A_1(x)+C_2B_1(x)&C_1A_2(x)+C_2B_2(x)&\cdots&C_1A_N(x)+C_2B_N(x) \end{pmatrix} H_N \\&+ \begin{pmatrix} 0&\cdots&0&d_N [C_1A_{N+1}(x)+C_2B_{N+1}(x)]&\qquad \qquad \qquad \ 0 \qquad \qquad \qquad \qquad \qquad \quad \end{pmatrix} \\&+ \begin{pmatrix} 0&\cdots&0&c_N[C_1 A_{N+1}(x)+C_2B_{N+1}(x)]&d_{N+1} [C_1 A_{N+2}(x)+C_2B_{N+2}(x)] \end{pmatrix} \\&= x \begin{pmatrix} C_1A_1(x)+C_2B_1(x)&C_1A_2(x)+C_2B_2(x)&\cdots&C_1A_N(x)+C_2B_N(x) \end{pmatrix} . \end{aligned}$$

Choose \(C_1\) and \(C_2\) such that

$$\begin{aligned} {\left\{ \begin{array}{ll} C_1A_{N+1}(x) + C_2B_{N+1}(x) = 0, \\ C_1A_{N+2}(x) + C_2 B_{N+2}(x) = 0. \end{array}\right. } \end{aligned}$$

This is a homogeneous system of equations for \(C_1\) and \(C_2\), which only has a non-trivial solution if the matrix is singular. Mahler’s relation between type I and type II polynomials ([26], Eq. (4.2)) gives

$$\begin{aligned} \det \begin{pmatrix} A_{N+1}(x) &{} B_{N+1}(x) \\ A_{N+2}(x) &{} B_{N+2}(x) \end{pmatrix} = C_3 P_N(x) \end{aligned}$$

for some constant \(C_3\). Hence, if \(x_{k,N}\) is a zero of \(P_N\), then we can find \((C_1,C_2)\ne (0,0)\) so that (4.12) holds. \(\square \)

Observe that \(C_1\) and \(C_2\) may depend on the eigenvalue \(x_{k,N}\).

5 Golub-Welsch type result

We are now ready to prove the main result.

Theorem 2

The quadrature nodes \(\{x_{j,N}, 1 \le j \le N\}\) for simultaneous Gaussian quadrature are given by the eigenvalues of the banded Hessenberg matrix \(H_N\). Let \(\textbf{v}_{N,j}\) be the right eigenvector of \(H_N\) for the eigenvalue \(x_{j,N}\) with first component 1 and \(\textbf{u}_{N,j}\) be a left eigenvector for \(x_{j,N}\). Then,

$$\begin{aligned} \lambda _{j,N}^{(1)}= & {} \frac{D_{1,1} \textbf{u}_{N,j}(1)}{\langle \textbf{u}_{N,j}, \textbf{v}_{N,j} \rangle }, \\ \lambda _{j,N}^{(2)}= & {} \frac{D_{2,1} \textbf{u}_{N,j}(1) + D_{2,2} \textbf{u}_{N,j}(2)}{\langle \textbf{u}_{N,j}, \textbf{v}_{N,j} \rangle }, \end{aligned}$$

with constants \(D_{i,j}\) given by

$$\begin{aligned} \begin{pmatrix} D_{1,1} &{} 0 \\ D_{2,1} &{} D_{2,2} \end{pmatrix} = \begin{pmatrix} A_1 &{} 0 \\ A_2 &{} B_2 \end{pmatrix}^{-1}. \end{aligned}$$

This result was given for general r in Coussement-Van Assche ([6], Thm.3.2).

Proof

We first need the Christoffel-Darboux formula for multiple orthogonal polynomials (Daems-Kuijlaars [7]). Let \(N=|\textbf{n}|\) and \((\textbf{n}_k)_{0 \le k \le N}\) be a path in \(\mathbb {N}^r\) from \(\textbf{n}_0=\textbf{0}\) to \(\textbf{n}_N = \textbf{n}\) such that \(\textbf{n}_{k+1}-\textbf{n}_k=\textbf{e}_j\) for some \(1 \le j \le r\). Then,

$$\begin{aligned} (x-y) \sum _{k=0}^{N-1} P_{\textbf{n}_k}(x) Q_{\textbf{n}_{k+1}}(y) = P_{\textbf{n}}(x)Q_{\textbf{n}}(y) - \sum _{j=1}^r a_{\textbf{n},j} P_{\textbf{n}-\textbf{e}_j}(x) Q_{\textbf{n}+\textbf{e}_j}(y). \end{aligned}$$

Here, we used the version as it is given in terms of the nearest neighbor recurrence coefficients [24]. For \(r=2\) and on the stepline, it becomes

$$\begin{aligned} (x-y) \sum _{k=0}^{N-1} P_k(x)Q_{k+1}(y) = P_{N}(x)Q_{N}(y) - c_{N}P_{N-1}(x)Q_{N+1}(y) \\ - d_{N}P_{N-2}(x)Q_{N+1}(y) - d_{N+1}P_{N-1}(x)Q_{N+2}(y). \end{aligned}$$

The Christoffel-Darboux formula also holds if we replace \(Q_k(y)\) by \(C_1A_k(y) + C_2B_k(y)\):

$$\begin{aligned} (x-y) \sum _{k=0}^{N-1} P_k(x)[C_1A_{k+1}(y)+C_2B_{k+1}(y)]{} & {} \\= & {} P_{N}(x)[C_1A_{N}(y)+C_2B_{N}(y)] - c_{N}P_{N-1}(x)[C_1A_{N+1}(y)+C_2B_{N+1}(y)] \\{} & {} -\ d_{N}P_{N-2}(x)[C_1A_{N+1}(y)+C_2B_{N+1}(y)] - d_{N+1}P_{N-1}(x)[C_1A_{N+2}(y)+C_2B_{N+2}(y)]. \end{aligned}$$

Take \(y=x_{j,N}\) a zero of \(P_{N}\), then (4.12) gives

$$\begin{aligned} \sum _{k=0}^{N-1} P_k(x)[C_1A_{k+1}(x_{j,N})+C_2B_{k+1}(x_{j,N})] = \frac{P_{N}(x)}{x-x_{j,N}} [C_1A_{N}(x_{j,N})+C_2B_{N}(x_{j,N})]. \end{aligned}$$
(5.1)

Recall that the quadrature nodes are given by (3.1) and (3.2). Integrating (5.1) with measure \(\mu _1\) gives

$$\begin{aligned} \sum _{k=0}^{N-1} [C_1A_{k+1}(x_{j,N})+C_2B_{k+1}(x_{j,N})] \int _\mathbb {R} P_k(x) \, d\mu _1(x) \\ = \int _\mathbb {R} \frac{P_{N}(x)}{x-x_{j,N}} \, d\mu _1(x) \ [C_1A_{N}(x_{j,N})+C_2B_{N}(x_{j,N})], \end{aligned}$$

hence if we retain only the non-vanishing integrals

$$\begin{aligned} \lambda _{j,N}^{(1)} [C_1A_{N}(x_{j,N})+C_2B_{N}(x_{j,N})] = \frac{1}{P_{N}'(x_{j,N})} \int _{\mathbb {R}} P_0(x) \, d\mu _1(x) \ [C_1A_1 + C_2 B_1] . \end{aligned}$$
(5.2)

In a similar way, integrating (5.1) with measure \(\mu _2\) gives

$$\begin{aligned} \sum _{k=0}^{N-1} [C_1A_{k+1}(x_{j,N})+C_2B_{k+1}(x_{j,N})] \int _\mathbb {R} P_k(x) \, d\mu _2(x) \\ = \int _\mathbb {R} \frac{P_{N}(x)}{x-x_{j,N}} \, d\mu _2(x) \ [C_1A_{N}(x_{j,N})+C_2B_{N}(x_{j,N})], \end{aligned}$$

hence if we retain only the non-vanishing integrals

$$\begin{aligned} \lambda _{j,N}^{(2)} [C_1A_{N}(x_{j,N})+C_2B_{N}(x_{j,N})] \\ = \frac{1}{P_{N}'(x_{j,N})} \left( \int _{\mathbb {R}} P_0(x) \, d\mu _2(x)\ [C_1A_1 + C_2 B_1] \right. \\ \left. + \int _{\mathbb {R}} P_1(x) \, d\mu _2(x) \ [C_1A_2 + C_2B_2] \right) . \end{aligned}$$
(5.3)

If we denote

$$\begin{aligned} D_{1,1} = \int _{\mathbb {R}} P_0(x) \, d\mu _1(x), \quad D_{1,2} = \int _{\mathbb {R}} P_1(x) \, d\mu _1(x), \end{aligned}$$
$$\begin{aligned} D_{2,1} = \int _{\mathbb {R}} P_0(x) \, d\mu _2(x), \quad D_{2,2} = \int _{\mathbb {R}} P_1(x) \, d\mu _2(x), \end{aligned}$$

and use the biorthogonality

$$\begin{aligned} \int _{\mathbb {R}} P_0(x) [A_1 w_1(x) + B_1 w_2(x)]\, d\mu (x) = 1, \quad \int _{\mathbb {R}} P_0(x) [A_2 w_1(x) + B_2 w_2(x)]\, d\mu (x) = 0, \end{aligned}$$
$$\begin{aligned} \int _{\mathbb {R}} P_1(x) [A_1 w_1(x) + B_1 w_2(x)]\, d\mu (x) = 0, \quad \int _{\mathbb {R}} P_1(x) [A_2 w_1(x) + B_2 w_2(x)]\, d\mu (x) = 1, \end{aligned}$$

then we find

$$\begin{aligned} \begin{pmatrix} A_1 &{} 0 \\ A_2 &{} B_2 \end{pmatrix} \begin{pmatrix} D_{1,1} &{} D_{1,2} \\ D_{2,1} &{} D_{2,2} \end{pmatrix} = \begin{pmatrix} 1 &{} 0 \\ 0 &{} 1 \end{pmatrix}. \end{aligned}$$

Observe that \(A_1=A_{1,0}(x)\), \(A_2=A_{1,1}(x)\) and \(B_2=B_{1,1}(x)\) are polynomials of degree 0 and hence these are constants, whereas \(B_1 = B_{1,0}=0\) and by the orthogonality of type II multiple orthogonal polynomials, we also have \(D_{1,2}=0\).

In order to find a formula for \(P_N'(x_{j,N})\), we take the limit \(x \rightarrow x_{j,N}\) in (5.1) to find

$$\begin{aligned} \sum _{k=0}^{N-1} P_k(x_{j,N}) [C_1A_{k+1}(x_{j,N})+C_2B_{k+1}(x_{j,N})] = P_{N}'(x_{j,N}) [C_1A_{N}(x_{j,N})+C_2B_{N}(x_{j,N})]. \end{aligned}$$
(5.4)

The left hand side is the inner product of the left eigenvector and the right eigenvector of \(H_N\) for the eigenvalue \(x_{j,N}\). Combining (5.2), (5.3) and (5.4) and taking into account Property 5 and 6 then gives the main result.\(\square \)

6 Examples

6.1 Bessel functions \(K_\nu \)

We will consider the multiple orthogonal polynomials related to the modified Bessel functions \(K_{\nu }\) and \(K_{\nu +1}\). Let \((w_1,w_2) = x^\alpha (\rho _\nu ,\rho _{\nu +1})\) with

$$\begin{aligned} \rho _\nu (x) = 2 x^{\nu /2} K_\nu (2\sqrt{x}), \qquad x >0. \end{aligned}$$

We take \(\alpha =1\) and \(\nu =0\) and we compute the eigenvalues of \(H_N\) for \(N=10\), together with the weights \(\lambda _{j,10}^{(1)}\) and \(\lambda _{j,10}^{(2)}\) using Theorem 2. The type I polynomials \((A_{1,0},B_{1,0})\) and \((A_{1,1},B_{1,1})\) are the constants

$$\begin{aligned} A_{1,0} = 1, \quad B_{1,0}=0, \qquad A_{1,1} = \alpha +\nu +1, \quad B_{1,1} = -1, \end{aligned}$$

and if we use the normalization (2.1)

$$\begin{aligned} \int _0^\infty x^\alpha [\widehat{A}_{n,m}(x) \rho _\nu (x) + \widehat{B}_{n,m}(x) \rho _{\nu +1}(x)] x^{n+m-1}\, dx = 1, \end{aligned}$$

then we get

$$\begin{aligned} \begin{pmatrix} A_1 &{} 0 \\ A_2 &{} B_2 \end{pmatrix} = \begin{pmatrix} \frac{1}{\Gamma (\alpha +\nu +1)\Gamma (\alpha +1)} &{} 0 \\ -\frac{\alpha +\nu +1}{\Gamma (\alpha +\nu +2)\Gamma (\alpha +2)} &{} \frac{1}{\Gamma (\alpha +\nu +2)\Gamma (\alpha +2)} \end{pmatrix}, \end{aligned}$$

and hence for \(\alpha =1\) and \(\nu =0\), we have

$$\begin{aligned} \begin{pmatrix} D_{1,1} &{} 0 \\ D_{2,1} &{} D_{2,2} \end{pmatrix} = \begin{pmatrix} 1 &{} 0 \\ -1/2 &{} 1/4 \end{pmatrix}^{-1} = \begin{pmatrix} 1 &{} 0 \\ 2 &{} 4 \end{pmatrix}. \end{aligned}$$

We used Maple with Digits:=100 for our calculations and we show the 20 first digits after the decimal point in Fig. 1.

Fig. 1
figure 1

Quadrature nodes and quadrature weights for \((w_1,w_2)=x(\rho _0,\rho _1)\)

Algorithm 1
figure a

Maple.

To illustrate the quality of the quadratures, we will simultaneously compute

$$\begin{aligned} I_1= & {} \int _0^\infty e^{-x} x \rho _0(x)\, dx = 0.1926947246\ldots , \\ I_2= & {} \int _0^\infty e^{-x} x \rho _1(x)\, dx = 0.2109579130\ldots \end{aligned}$$

using \(N=10,20,30,40,50\) nodes in Maple. We show the first 10 decimals in Fig. 2.

Fig. 2
figure 2

Simultaneous quadrature to \(I_1\) and \(I_2\)

The results show that the quadrature formulas converge rather slowly to the correct value. A possible explanation is that the quadrature nodes become very large and the corresponding quadrature weights are very small, so only a small proportion of terms in the quadrature sum contribute to the result.

6.2 Bessel functions \(I_\nu \)

For the multiple orthogonal polynomials with weights \((w_1,w_2)=(\omega _{\nu ,c},\omega _{\nu +1,c})\), where

$$\begin{aligned} \omega _{\nu ,c}(x) = x^{\nu /2}I_{\nu }(2\sqrt{x})e^{-cx}, \qquad x > 0, \end{aligned}$$

we take \(c=1\) and \(\nu =0\) and compute the eigenvalues of \(H_N\) for \(N=10\), together with the weights \(\lambda _{j,10}^{(1)}\) and \(\lambda _{j,10}^{(2)}\) using Theorem 2. After normalization, we get

$$\begin{aligned} \begin{pmatrix} A_1 &{} 0 \\ A_2 &{} B_2 \end{pmatrix} = e^{-1/c} \begin{pmatrix} c^{\nu +1} &{} 0 \\ -c^{\nu +2} &{} c^{\nu +3} \end{pmatrix} , \end{aligned}$$

so that for \(c=1\) and \(\nu =0\), we have

$$\begin{aligned} \begin{pmatrix} D_{1,1} &{} 0 \\ D_{2,1} &{} D_{2,2} \end{pmatrix} = \begin{pmatrix} 1/e &{} 0 \\ -1/e &{} 1/e \end{pmatrix} ^{-1} = \begin{pmatrix} e &{} 0 \\ e &{} e \end{pmatrix}. \end{aligned}$$

We use Matlab and we show the first 10 digits after the decimal point in Fig. 3.

Fig. 3
figure 3

Quadrature nodes and quadrature weights for \((w_1,w_2)=(\omega _{0,1},\omega _{1,1})\)

Fig. 4
figure 4

Simultaneous quadrature to \(J_1\) and \(J_2\)

Algorithm 2
figure b

Matlab.

We will simultaneously compute the integrals

$$\begin{aligned} J_1= & {} \int _0^\infty \cos (x) \omega _{0,1}(x)\, dx = 0.328224976685277123104160354501976758\ldots \\ J_2= & {} \int _0^\infty \cos (x) \omega _{1,1}(x)\, dx = -0.39521954160680745592163128352397786234\ldots \end{aligned}$$

with \(N=10,20,30,40,50\) quadrature nodes in Maple (with Digits:=100). The results are in Fig. 4. The results in Matlab were comparable for \(N=10\) but for \(N=20\) and higher some of the eigenvalues and eigenvectors became complex, due to machine precision. This was avoided in Maple by choosing Digits:=100. Alternatively one could use variable precision arithmetic (vpa) in Matlab but then Algorithm 2 needs to be modified because the command eig does not give the left eigenvalues.

Clearly, the results of the quadrature are much better than for the previous example.

7 Concluding remarks

We have shown that the nodes and the quadrature weights for simultaneous Gaussian quadrature can be computed numerically using the eigenvalues and the left and right eigenvectors of a banded Hessenberg matrix, thus extending the well-known approach of Golub and Welsch for Gaussian quadrature and symmetric tridiagonal matrices. In the present paper, we investigated the case of two measures, but the approach works for any number of measures [6], however, the number of diagonals of the Hessenberg matrix increases. Algorithms for the case of three or more measures using this Golub-Welsch approach have not been implemented yet. For two and three measures Tomović and Stanić [23] published an algorithm in which the quadrature weights are computed by solving some system of equations, and this approach was extended to more measures by Jovanović et al. [15]. Their matrices are not of Hessenberg type.

One feature that we noticed is that the computation of the right eigenvectors seems to be easier and faster than that of the left eigenvectors. The software that we used (Matlab and Maple) sometimes gives the left eigenvectors in a different order than the right eigenvectors so that one needs to be careful in pairing up the left and right eigenvectors. For nonsymmetric tridiagonal matrices Van Dooren et al. [29] gave some improvements for computing the left and right eigenvectors, and a similar idea might also be valuable for Hessenberg matrices. These authors already worked on the Hessenberg case in [16] and noticed that the total positivity of the matrices allows a stable and efficient way to compute the eigenvalues. The Hessenberg matrices in our examples Sects. 6.1 and 6.2 are indeed totally positive as they can be factored using bidiagonal matrices with positive entries, see Lima [17].

The Bessel weights in our example have the remarkable property that one knows the recurrence coefficients of the multiple orthogonal polynomials on the stepline exactly with simple formulas. This is in sharp contrast with the recurrence coefficients of the corresponding orthogonal polynomials, for which no expression is known, see [11] for weight functions related to the \(K_\nu \) Bessel function. This means that we don’t need an additional step to compute the recurrence coefficients from the moments or modified moments of the measures, which is usually a badly conditioned problem. We can start right away from the known recurrence coefficients to build the Hessenberg matrix. In case one knows the nearest neighbor recurrence coefficients of the multiple orthogonal polynomials, one can compute the recurrence coefficients for the polynomials on the stepline using an algorithm of Filipuk et al. [10].