Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Gaussian quadrature
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Approximation of the definite integral of a function}} {{Redirect|Gaussian integration|the integral of a Gaussian function|Gaussian integral}} {{more footnotes|date=September 2018}} [[File:Comparison Gaussquad trapezoidal.svg|thumb|upright=1.5|alt=Comparison between 2-point Gaussian and trapezoidal quadrature.|Comparison between 2-point Gaussian and trapezoidal quadrature.<br /> The blue curve shows the function whose definite integral on the interval {{math|[−1, 1]}} is to be calculated (the integrand). The [[trapezoidal rule]] approximates the function with a linear function that coincides with the integrand at the endpoints of the interval and is represented by an orange dashed line. The approximation is apparently not good, so the error is large (the [[trapezoidal rule]] gives an approximation of the integral equal to {{math|1=''y''(−1) + ''y''(1) = −10}}, while the correct value is {{math|{{frac|2|3}}}}). To obtain a more accurate result, the interval must be partitioned into many subintervals and then the ''composite'' trapezoidal rule must be used, which requires many more calculations.<br /> The Gaussian quadrature chooses more suitable points instead, so even a linear function approximates the function better (the black dashed line). As the integrand is the third-degree polynomial {{math|1=''y''(''x'') = 7''x''{{sup|3}} − 8''x''{{sup|2}} − 3''x'' + 3}}, the 2-point Gaussian quadrature rule even returns an exact result.]] In [[numerical analysis]], an {{mvar|n}}-point '''Gaussian quadrature rule''', named after [[Carl Friedrich Gauss]],<ref>{{harvnb|Gauss|1815}}</ref> is a [[quadrature rule]] constructed to yield an exact result for [[polynomial]]s of degree {{math|2''n'' − 1}} or less by a suitable choice of the nodes {{mvar|x{{sub|i}}}} and weights {{mvar|w{{sub|i}}}} for {{math|1=''i'' = 1, ..., ''n''}}. The modern formulation using [[orthogonal polynomial]]s was developed by [[Carl Gustav Jacobi]] in 1826.<ref>{{harvnb|Jacobi|1826}}</ref> The most common domain of integration for such a rule is taken as {{math|[−1, 1]}}, so the rule is stated as <math display="block">\int_{-1}^1 f(x)\,dx \approx \sum_{i=1}^n w_i f(x_i),</math> which is exact for polynomials of degree {{math|2''n'' − 1}} or less. This exact rule is known as the [[Gauss–Legendre quadrature]] rule. The quadrature rule will only be an accurate approximation to the integral above if {{math|''f'' (''x'')}} is well-approximated by a polynomial of degree {{math|2''n'' − 1}} or less on {{math|[−1, 1]}}. The Gauss–[[Adrien-Marie Legendre|Legendre]] quadrature rule is not typically used for integrable functions with endpoint [[singularity (math)|singularities]]. Instead, if the integrand can be written as <math display="block">f(x) = \left(1 - x\right)^\alpha \left(1 + x\right)^\beta g(x),\quad \alpha,\beta > -1,</math> where {{math|''g''(''x'')}} is well-approximated by a low-degree polynomial, then alternative nodes {{mvar|x{{sub|i}}'}} and weights {{mvar|w{{sub|i}}'}} will usually give more accurate quadrature rules. These are known as [[Gauss–Jacobi quadrature]] rules, i.e., <math display="block">\int_{-1}^1 f(x)\,dx = \int_{-1}^1 \left(1 - x\right)^\alpha \left(1 + x\right)^\beta g(x)\,dx \approx \sum_{i=1}^n w_i' g\left(x_i'\right).</math> Common weights include <math display="inline">\frac{1}{\sqrt{1 - x^2}}</math> ([[Chebyshev–Gauss quadrature|Chebyshev–Gauss]]) and <math display="inline">\sqrt{1 - x^2}</math>. One may also want to integrate over semi-infinite ([[Gauss–Laguerre quadrature]]) and infinite intervals ([[Gauss–Hermite quadrature]]). It can be shown (see Press et al., or Stoer and Bulirsch) that the quadrature nodes {{mvar|x{{sub|i}}}} are the [[Root of a function|roots]] of a polynomial belonging to a class of [[orthogonal polynomials]] (the class orthogonal with respect to a weighted inner-product). This is a key observation for computing Gauss quadrature nodes and weights. == Gauss–Legendre quadrature == <!-- The section "Other forms of Gaussian quadrature" below links to this section --> {{Further|Gauss–Legendre quadrature}} [[File:Legendrepolynomials6.svg|thumb|Graphs of Legendre polynomials (up to {{math|1=''n'' = 5)}}]] For the simplest integration problem stated above, i.e., {{math|''f''(''x'')}} is well-approximated by polynomials on <math>[-1, 1]</math>, the associated orthogonal polynomials are [[Legendre polynomials]], denoted by {{math|''P''<sub>''n''</sub>(''x'')}}. With the {{mvar|n}}-th polynomial normalized to give {{math|1=''P''<sub>''n''</sub>(1) = 1}}, the {{mvar|i}}-th Gauss node, {{mvar|x<sub>i</sub>}}, is the {{mvar|i}}-th root of {{mvar|P<sub>n</sub>}} and the weights are given by the formula<ref>{{harvnb|Abramowitz|Stegun|1983|p=887}}</ref> <math display="block"> w_i = \frac{2}{\left( 1 - x_i^2 \right) \left[P'_n(x_i)\right]^2}.</math> Some low-order quadrature rules are tabulated below (over interval {{math|[−1, 1]}}, see the section below for other intervals). {| class="wikitable" style="margin:auto; background:white; text-align:center;" ! Number of points, {{mvar|n}} ! colspan="2" | Points, {{mvar|x<sub>i</sub>}} ! colspan="2" | Weights, {{mvar|w<sub>i</sub>}} |- | 1 | colspan="2" | 0 | colspan="2" | 2 |- | 2 | <math>\pm\frac{1}{\sqrt{3}}</math> || ±0.57735... | colspan="2" | 1 |- | rowspan="2" | 3 | colspan="2" | 0 | <math>\frac{8}{9}</math> || 0.888889... |- | <math>\pm\sqrt{\frac{3}{5}}</math> || ±0.774597... | <math>\frac{5}{9}</math> || 0.555556... |- | rowspan="2" | 4 | <math>\pm\sqrt{\frac{3}{7} - \frac{2}{7}\sqrt{\frac{6}{5}}}</math> || ±0.339981... | <math>\frac{18 + \sqrt{30}}{36}</math> || 0.652145... |- | <math>\pm\sqrt{\frac{3}{7} + \frac{2}{7}\sqrt{\frac{6}{5}}}</math> || ±0.861136... | <math>\frac{18 - \sqrt{30}}{36}</math> || 0.347855... |- | rowspan="3" | 5 | colspan="2" | 0 | <math>\frac{128}{225}</math> || 0.568889... |- | <math>\pm\frac{1}{3}\sqrt{5 - 2\sqrt{\frac{10}{7}}}</math> || ±0.538469... | <math>\frac{322 + 13\sqrt{70}}{900}</math> || 0.478629... |- | <math>\pm\frac{1}{3}\sqrt{5 + 2\sqrt{\frac{10}{7}}}</math> || ±0.90618... | <math>\frac{322 - 13\sqrt{70}}{900}</math> || 0.236927... |} == Change of interval == An integral over {{math|[''a'', ''b'']}} must be changed into an integral over {{math|[−1, 1]}} before applying the Gaussian quadrature rule. This change of interval can be done in the following way: <math display="block">\int_a^b f(x)\,dx = \int_{ -1}^1 f\left(\frac{b-a}{2}\xi + \frac{a+b}{2}\right)\,\frac{dx}{d\xi}d\xi</math> with <math>\frac{dx}{d\xi} = \frac{b-a}{2}</math> Applying the <math>n</math> point Gaussian quadrature <math>(\xi, w)</math> rule then results in the following approximation: <math display="block">\int_a^b f(x)\,dx \approx \frac{b-a}{2} \sum_{i=1}^n w_i f\left(\frac{b-a}{2}\xi_i + \frac{a+b}{2}\right).</math> == Example of two-point Gauss quadrature rule == Use the two-point Gauss quadrature rule to approximate the distance in meters covered by a rocket from <math>t = 8\mathrm{s} </math> to <math>t = 30\mathrm{s},</math> as given by <math display="block">s = \int_{8}^{30}{\left( 2000\ln\left[ \frac{140000}{140000 - 2100t} \right] - 9.8t \right){dt}}</math> Change the limits so that one can use the weights and abscissae given in Table 1. Also, find the absolute relative true error. The true value is given as 11061.34 m. Solution First, changing the limits of integration from <math>\left[ 8,30 \right]</math> to <math>\left[ - 1,1 \right]</math> gives <math display="block"> \begin{align} \int_{8}^{30} {f(t) dt} &= \frac{30 - 8}{2} \int_{- 1}^{1}{f\left( \frac{30 - 8}{2}x + \frac{30 + 8}{2} \right){dx}} \\ &= 11\int_{- 1}^{1}{f\left( 11x + 19 \right){dx}} \end{align} </math> Next, get the weighting factors and function argument values from Table 1 for the two-point rule, *<math>c_1 = 1.000000000 </math> *<math>x_1 = - 0.577350269 </math> *<math>c_2 = 1.000000000 </math> *<math>x_2 = 0.577350269 </math> Now we can use the Gauss quadrature formula <math display="block"> \begin{align} 11\int_{-1}^{1}{f\left( 11x + 19 \right){dx}} & \approx 11\left[ c_1 f\left( 11 x_1 + 19 \right) + c_2 f\left( 11 x_2 + 19 \right) \right] \\ &= 11\left[ f\left( 11( - 0.5773503) + 19 \right) + f\left( 11(0.5773503) + 19 \right) \right] \\ &= 11\left[ f(12.64915) + f(25.35085) \right] \\ &= 11\left[ (296.8317) + (708.4811) \right] \\ &= 11058.44 \end{align}</math> since <math display="block"> \begin{align} f(12.64915) & = 2000\ln\left[ \frac{140000}{140000 - 2100(12.64915)} \right] - 9.8(12.64915) \\ &= 296.8317 \end{align}</math> <math display="block"> \begin{align} f(25.35085) & = 2000\ln\left[ \frac{140000}{140000 - 2100(25.35085)} \right] - 9.8(25.35085) \\ &= 708.4811 \end{align}</math> Given that the true value is 11061.34 m, the absolute relative true error, <math>\left| \varepsilon_{t} \right|</math> is <math display="block"> \left| \varepsilon_{t} \right| = \left| \frac{11061.34 - 11058.44}{11061.34} \right| \times 100\% = 0.0262\% </math> == Other forms == The integration problem can be expressed in a slightly more general way by introducing a positive [[weight function]] {{mvar|ω}} into the integrand, and allowing an interval other than {{math|[−1, 1]}}. That is, the problem is to calculate <math display="block"> \int_a^b \omega(x)\,f(x)\,dx </math> for some choices of {{mvar|a}}, {{mvar|b}}, and {{mvar|ω}}. For {{math|1=''a'' = −1}}, {{math|1=''b'' = 1}}, and {{math|1=''ω''(''x'') = 1}}, the problem is the same as that considered above. Other choices lead to other integration rules. Some of these are tabulated below. Equation numbers are given for [[Abramowitz and Stegun]] (A & S). {| class="wikitable" style="margin:auto; background:white; text-align:center;" ! Interval ! {{math|''ω''(''x'')}} ! Orthogonal polynomials ! A & S ! For more information, see ... |- | {{closed-closed|−1, 1}} || {{math|1}} || [[Legendre polynomials]] || 25.4.29 || {{section link||Gauss–Legendre quadrature}} |- | {{open-open|−1, 1}} || <math>\left(1 - x\right)^\alpha \left(1 + x\right)^\beta,\quad \alpha, \beta > -1</math> || [[Jacobi polynomials]] || 25.4.33 ({{math|1=''β'' = 0}}) || [[Gauss–Jacobi quadrature]] |- | {{open-open|−1, 1}} || <math>\frac{1}{\sqrt{1 - x^2}}</math> || [[Chebyshev polynomials]] (first kind) || 25.4.38 || [[Chebyshev–Gauss quadrature]] |- | {{closed-closed|−1, 1}} || <math>\sqrt{1 - x^2}</math> || Chebyshev polynomials (second kind) || 25.4.40 || [[Chebyshev–Gauss quadrature]] |- | {{closed-open|0, ∞}} || <math> e^{-x}\, </math> || [[Laguerre polynomials]] || 25.4.45 || [[Gauss–Laguerre quadrature]] |- | {{closed-open|0, ∞}} || <math> x^\alpha e^{-x},\quad \alpha>-1 </math> || Generalized [[Laguerre polynomials]] || || [[Gauss–Laguerre quadrature]] |- | {{open-open|−∞, ∞}} || <math> e^{-x^2} </math> || [[Hermite polynomials]] || 25.4.46 || [[Gauss–Hermite quadrature]] |} === Fundamental theorem === Let {{mvar|p<sub>n</sub>}} be a nontrivial polynomial of degree {{mvar|n}} such that <math display="block">\int_a^b \omega(x) \, x^k p_n(x) \, dx = 0, \quad \text{for all } k = 0, 1, \ldots, n - 1.</math> Note that this will be true for all the orthogonal polynomials above, because each {{mvar|p<sub>n</sub>}} is constructed to be orthogonal to the other polynomials {{mvar|p<sub>j</sub>}} for {{math|''j''<''n''}}, and {{math|''x''<sup>''k''</sup>}} is in the span of that set. If we pick the {{mvar|n}} nodes {{mvar|x<sub>i</sub>}} to be the zeros of {{mvar|p<sub>n</sub>}}, then there exist {{mvar|n}} weights {{mvar|w<sub>i</sub>}} which make the Gaussian quadrature computed integral exact for all polynomials {{math|''h''(''x'')}} of degree {{math|2''n'' − 1}} or less. Furthermore, all these nodes {{mvar|x<sub>i</sub>}} will lie in the open interval {{math|(''a'', ''b'')}}.<ref>{{harvnb|Stoer|Bulirsch|2002|pp=172–175}}</ref> To prove the first part of this claim, let {{math|''h''(''x'')}} be any polynomial of degree {{math|2''n'' − 1}} or less. Divide it by the orthogonal polynomial {{mvar|p<sub>n</sub>}} to get <math display="block"> h(x) = p_n(x) \, q(x) + r(x). </math> where {{math|''q''(''x'')}} is the quotient, of degree {{math|''n'' − 1}} or less (because the sum of its degree and that of the divisor {{mvar|p<sub>n</sub>}} must equal that of the dividend), and {{math|''r''(''x'')}} is the remainder, also of degree {{math|''n'' − 1}} or less (because the degree of the remainder is always less than that of the divisor). Since {{mvar|p<sub>n</sub>}} is by assumption orthogonal to all monomials of degree less than {{mvar|n}}, it must be orthogonal to the quotient {{math|''q''(''x'')}}. Therefore <math display="block"> \int_a^b \omega(x)\,h(x)\,dx = \int_a^b \omega(x)\,\big( \, p_n(x) q(x) + r(x) \, \big)\,dx = \int_a^b \omega(x)\,r(x)\,dx. </math> Since the remainder {{math|''r''(''x'')}} is of degree {{math|''n'' − 1}} or less, we can interpolate it exactly using {{mvar|n}} interpolation points with [[Lagrange polynomials]] {{math|''l''<sub>''i''</sub>(''x'')}}, where <math display="block"> l_i(x) = \prod _{j \ne i} \frac{x-x_j}{x_i-x_j}. </math> We have <math display="block"> r(x) = \sum_{i=1}^n l_i(x) \, r(x_i). </math> Then its integral will equal <math display="block"> \int_a^b \omega(x)\,r(x)\,dx = \int_a^b \omega(x) \, \sum_{i=1}^n l_i(x) \, r(x_i) \, dx = \sum_{i=1}^n \, r(x_i) \, \int_a^b \omega(x) \, l_i(x) \, dx = \sum_{i=1}^n \, r(x_i) \, w_i, </math> where {{math|''w''<sub>''i''</sub>}}, the weight associated with the node {{math|''x''<sub>''i''</sub>}}, is defined to equal the weighted integral of {{math|''l''<sub>''i''</sub>(''x'')}} (see below for other formulas for the weights). But all the {{mvar|x<sub>i</sub>}} are roots of {{mvar|p<sub>n</sub>}}, so the division formula above tells us that <math display="block"> h(x_i) = p_n(x_i) \, q(x_i) + r(x_i) = r(x_i), </math> for all {{mvar|i}}. Thus we finally have <math display="block"> \int_a^b \omega(x)\,h(x)\,dx = \int_a^b \omega(x) \, r(x) \, dx = \sum_{i=1}^n w_i \, r(x_i) = \sum_{i=1}^n w_i \, h(x_i). </math> This proves that for any polynomial {{math|''h''(''x'')}} of degree {{math|2''n'' − 1}} or less, its integral is given exactly by the Gaussian quadrature sum. To prove the second part of the claim, consider the factored form of the polynomial {{math|''p''<sub>''n''</sub>}}. Any complex conjugate roots will yield a quadratic factor that is either strictly positive or strictly negative over the entire real line. Any factors for roots outside the interval from {{mvar|a}} to {{mvar|b}} will not change sign over that interval. Finally, for factors corresponding to roots {{mvar|x<sub>i</sub>}} inside the interval from {{mvar|a}} to {{mvar|b}} that are of odd multiplicity, multiply {{math|''p''<sub>''n''</sub>}} by one more factor to make a new polynomial <math display="block"> p_n(x) \, \prod_i (x - x_i). </math> This polynomial cannot change sign over the interval from {{mvar|a}} to {{mvar|b}} because all its roots there are now of even multiplicity. So the integral <math display="block"> \int_a^b p_n(x) \, \left( \prod_i (x - x_i) \right) \, \omega(x) \, dx \ne 0, </math> since the weight function {{math|''ω''(''x'')}} is always non-negative. But {{math|''p''<sub>''n''</sub>}} is orthogonal to all polynomials of degree {{math|''n'' − 1}} or less, so the degree of the product <math display="block"> \prod_i (x - x_i) </math> must be at least {{mvar|n}}. Therefore {{math|''p''<sub>''n''</sub>}} has {{mvar|n}} distinct roots, all real, in the interval from {{mvar|a}} to {{mvar|b}}. ==== General formula for the weights ==== The weights can be expressed as {{NumBlk|:|<math>w_{i} = \frac{a_{n}}{a_{n-1}} \frac{\int_{a}^{b} \omega(x) p_{n-1}(x)^2 dx}{p'_{n}(x_{i}) p_{n-1}(x_{i})}</math>|{{EquationRef|1}}}} where <math>a_{k}</math> is the coefficient of <math>x^{k}</math> in <math>p_{k}(x)</math>. To prove this, note that using [[Lagrange interpolation]] one can express {{math|''r''(''x'')}} in terms of <math>r(x_{i})</math> as <math display="block">r(x) = \sum_{i=1}^{n} r(x_{i}) \prod_{\begin{smallmatrix} 1 \leq j \leq n \\ j \neq i \end{smallmatrix}}\frac{x-x_{j}}{x_{i}-x_{j}}</math> because {{math|''r''(''x'')}} has degree less than {{mvar|n}} and is thus fixed by the values it attains at {{mvar|n}} different points. Multiplying both sides by {{math|''ω''(''x'')}} and integrating from {{mvar|a}} to {{mvar|b}} yields <math display="block">\int_{a}^{b}\omega(x)r(x)dx = \sum_{i=1}^{n} r(x_{i}) \int_{a}^{b}\omega(x)\prod_{\begin{smallmatrix} 1 \leq j \leq n \\ j \neq i \end{smallmatrix}} \frac{x-x_{j}}{x_{i}-x_{j}}dx</math> The weights {{mvar|w<sub>i</sub>}} are thus given by <math display="block">w_{i} = \int_{a}^{b}\omega(x)\prod_{\begin{smallmatrix}1\leq j\leq n\\j\neq i\end{smallmatrix}}\frac{x-x_{j}}{x_{i}-x_{j}}dx</math> This integral expression for <math>w_{i}</math> can be expressed in terms of the orthogonal polynomials <math>p_{n}(x)</math> and <math>p_{n-1}(x)</math> as follows. We can write <math display="block"> \prod_{\begin{smallmatrix} 1 \leq j \leq n \\ j \neq i \end{smallmatrix}} \left(x-x_{j}\right) = \frac{\prod_{1\leq j\leq n} \left(x - x_{j}\right)}{x-x_{i}} = \frac{p_{n}(x)}{a_{n}\left(x-x_{i}\right)}</math> where <math>a_{n}</math> is the coefficient of <math>x^n</math> in <math>p_{n}(x)</math>. Taking the limit of {{mvar|x}} to <math>x_{i}</math> yields using L'Hôpital's rule <math display="block"> \prod_{\begin{smallmatrix} 1 \leq j \leq n \\ j \neq i \end{smallmatrix}} \left(x_{i}-x_{j}\right) = \frac{p'_{n}(x_{i})}{a_{n}}</math> We can thus write the integral expression for the weights as {{NumBlk|:|<math>w_{i} = \frac{1}{p'_{n}(x_{i})}\int_{a}^{b}\omega(x)\frac{p_{n}(x)}{x-x_{i}}dx</math>|{{EquationRef|2}}}} In the integrand, writing <math display="block">\frac{1}{x-x_i} = \frac{1 - \left(\frac{x}{x_i}\right)^{k}}{x - x_i} + \left(\frac{x}{x_i}\right)^{k} \frac{1}{x - x_i}</math> yields <math display="block">\int_a^b\omega(x)\frac{x^kp_n(x)}{x-x_i}dx = x_i^k \int_{a}^{b}\omega(x)\frac{p_n(x)}{x-x_i}dx</math> provided <math>k \leq n</math>, because <math display="block">\frac{1-\left(\frac{x}{x_{i}}\right)^{k}}{x-x_{i}}</math> is a polynomial of degree {{math|''k'' − 1}} which is then orthogonal to <math>p_{n}(x)</math>. So, if {{math|''q''(''x'')}} is a polynomial of at most nth degree we have <math display="block">\int_{a}^{b}\omega(x)\frac{p_{n}(x)}{x-x_{i}} dx = \frac{1}{q(x_{i})} \int_{a}^{b} \omega(x)\frac{q(x) p_n(x)}{x-x_{i}}dx </math> We can evaluate the integral on the right hand side for <math>q(x) = p_{n-1}(x)</math> as follows. Because <math>\frac{p_{n}(x)}{x-x_{i}}</math> is a polynomial of degree {{math|''n'' − 1}}, we have <math display="block">\frac{p_{n}(x)}{x-x_{i}} = a_{n}x^{n-1} + s(x)</math> where {{math|''s''(''x'')}} is a polynomial of degree <math>n - 2</math>. Since {{math|''s''(''x'')}} is orthogonal to <math>p_{n-1}(x)</math> we have <math display="block">\int_{a}^{b}\omega(x)\frac{p_{n}(x)}{x-x_{i}}dx=\frac{a_{n}}{p_{n-1}(x_{i})} \int_{a}^{b}\omega(x)p_{n-1}(x)x^{n-1}dx </math> We can then write <math display="block">x^{n-1} = \left(x^{n-1} - \frac{p_{n-1}(x)}{a_{n-1}}\right) + \frac{p_{n-1}(x)}{a_{n-1}}</math> The term in the brackets is a polynomial of degree <math>n - 2</math>, which is therefore orthogonal to <math>p_{n-1}(x)</math>. The integral can thus be written as <math display="block">\int_{a}^{b}\omega(x)\frac{p_{n}(x)}{x-x_{i}}dx = \frac{a_{n}}{a_{n-1} p_{n-1}(x_{i})} \int_{a}^{b}\omega(x) p_{n-1}(x)^{2} dx </math> According to equation ({{EquationNote|2}}), the weights are obtained by dividing this by <math>p'_{n}(x_{i})</math> and that yields the expression in equation ({{EquationNote|1}}). <math>w_{i}</math> can also be expressed in terms of the orthogonal polynomials <math>p_{n}(x)</math> and now <math>p_{n+1}(x)</math>. In the 3-term recurrence relation <math>p_{n+1}(x_{i}) = (a) p_{n}(x_{i}) + (b) p_{n-1}(x_{i})</math> the term with <math>p_{n}(x_{i})</math> vanishes, so <math>p_{n-1}(x_{i})</math> in Eq. (1) can be replaced by <math display="inline">\frac{1}{b} p_{n+1} \left(x_i\right)</math>. ====Proof that the weights are positive==== Consider the following polynomial of degree <math>2n - 2</math> <math display="block">f(x) = \prod_{\begin{smallmatrix} 1 \leq j \leq n \\ j \neq i \end{smallmatrix}}\frac{\left(x - x_j\right)^2}{\left(x_i - x_j\right)^2}</math> where, as above, the {{mvar|x<sub>j</sub>}} are the roots of the polynomial <math>p_{n}(x)</math>. Clearly <math>f(x_j) = \delta_{ij}</math>. Since the degree of <math>f(x)</math> is less than <math>2n - 1</math>, the Gaussian quadrature formula involving the weights and nodes obtained from <math>p_{n}(x)</math> applies. Since <math>f(x_{j}) = 0</math> for {{mvar|j}} not equal to {{mvar|i}}, we have <math display="block">\int_{a}^{b}\omega(x)f(x)dx=\sum_{j=1}^{n}w_{j}f(x_{j}) = \sum_{j=1}^{n} \delta_{ij} w_j = w_{i} > 0.</math> Since both <math>\omega(x)</math> and <math>f(x)</math> are non-negative functions, it follows that <math>w_{i} > 0</math>. === Computation of Gaussian quadrature rules === There are many algorithms for computing the nodes {{mvar|x<sub>i</sub>}} and weights {{mvar|w<sub>i</sub>}} of Gaussian quadrature rules. The most popular are the Golub-Welsch algorithm requiring {{math|''O''(''n''<sup>2</sup>)}} operations, Newton's method for solving <math>p_n(x) = 0</math> using the [[Orthogonal polynomials#Recurrence relation|three-term recurrence]] for evaluation requiring {{math|''O''(''n''<sup>2</sup>)}} operations, and asymptotic formulas for large ''n'' requiring {{math|''O''(''n'')}} operations. ==== Recurrence relation ==== Orthogonal polynomials <math>p_r</math> with <math>(p_r, p_s) = 0</math> for <math>r \ne s</math> for a scalar product <math>(\cdot , \cdot)</math>, degree <math>(p_r) = r</math> and leading coefficient one (i.e. [[monic polynomial|monic]] orthogonal polynomials) satisfy the recurrence relation <math display="block">p_{r+1}(x) = (x - a_{r,r}) p_r(x) - a_{r,r-1} p_{r-1}(x) \cdots - a_{r,0}p_0(x)</math> and scalar product defined <math display="block">(f(x),g(x))=\int_a^b\omega(x)f(x)g(x)dx</math> for <math>r = 0, 1, \ldots, n - 1</math> where {{mvar|n}} is the maximal degree which can be taken to be infinity, and where <math display="inline">a_{r,s} = \frac{\left(xp_r, p_s\right)}{\left(p_s, p_s\right)}</math>. First of all, the polynomials defined by the recurrence relation starting with <math>p_0(x) = 1</math> have leading coefficient one and correct degree. Given the starting point by <math>p_0</math>, the orthogonality of <math>p_r</math> can be shown by induction. For <math>r = s = 0</math> one has <math display="block">(p_1,p_0) = (x-a_{0,0}) (p_0,p_0) = (xp_0,p_0) - a_{0,0}(p_0,p_0) = (xp_0,p_0) - (xp_0,p_0) = 0.</math> Now if <math>p_0, p_1, \ldots, p_r</math> are orthogonal, then also <math>p_{r+1}</math>, because in <math display="block">(p_{r+1}, p_s) = (xp_r, p_s) - a_{r,r}(p_r, p_s) - a_{r,r-1}(p_{r-1}, p_s)\cdots - a_{r,0}(p_0, p_s)</math> all scalar products vanish except for the first one and the one where <math>p_s</math> meets the same orthogonal polynomial. Therefore, <math display="block">(p_{r+1},p_s) = (xp_r,p_s) - a_{r,s}(p_s,p_s) = (xp_r,p_s)-(xp_r,p_s) = 0.</math> However, if the scalar product satisfies <math>(xf, g) = (f,xg)</math> (which is the case for Gaussian quadrature), the recurrence relation reduces to a three-term recurrence relation: For <math>s < r - 1, xp_s</math> is a polynomial of degree less than or equal to {{math|''r'' − 1}}. On the other hand, <math>p_r</math> is orthogonal to every polynomial of degree less than or equal to {{math|''r'' − 1}}. Therefore, one has <math>(xp_r, p_s) = (p_r, xp_s) = 0</math> and <math>a_{r,s} = 0</math> for {{math|''s'' < ''r'' − 1}}. The recurrence relation then simplifies to <math display="block">p_{r+1}(x) = (x-a_{r,r}) p_r(x) - a_{r,r-1} p_{r-1}(x)</math> or <math display="block">p_{r+1}(x) = (x-a_r) p_r(x) - b_r p_{r-1}(x)</math> (with the convention <math>p_{-1}(x) \equiv 0</math>) where <math display="block">a_r := \frac{(xp_r,p_r)}{(p_r,p_r)}, \qquad b_r := \frac{(xp_r,p_{r-1})}{(p_{r-1},p_{r-1})} = \frac{(p_r,p_r)}{(p_{r-1},p_{r-1})}</math> (the last because of <math>(xp_r, p_{r-1}) = (p_r, xp_{r-1}) = (p_r, p_r)</math>, since <math>xp_{r-1}</math> differs from <math>p_r</math> by a degree less than {{mvar|r}}). ==== The Golub-Welsch algorithm ==== The three-term recurrence relation can be written in matrix form <math>J\tilde{P} = x\tilde{P} - p_n(x) \mathbf{e}_n</math> where <math>\tilde{P} = \begin{bmatrix} p_0(x) & p_1(x) & \cdots & p_{n-1}(x) \end{bmatrix}^\mathsf{T}</math>, <math>\mathbf{e}_n</math> is the <math>n</math>th standard basis vector, i.e., <math>\mathbf{e}_n = \begin{bmatrix} 0 & \cdots & 0 & 1 \end{bmatrix}^\mathsf{T}</math>, and {{mvar|J}} is the following [[tridiagonal matrix]], called the Jacobi matrix: <math display="block">\mathbf{J} = \begin{bmatrix} a_0 & 1 & 0 & \cdots & 0 \\ b_1 & a_1 & 1 & \ddots & \vdots \\ 0 & b_2 & \ddots & \ddots & 0 \\ \vdots & \ddots & \ddots & a_{n-2} & 1 \\ 0 & \cdots & 0 & b_{n-1} & a_{n-1} \end{bmatrix}.</math> The zeros <math>x_j</math> of the polynomials up to degree {{mvar|n}}, which are used as nodes for the Gaussian quadrature can be found by computing the eigenvalues of this matrix. This procedure is known as ''Golub–Welsch algorithm''. For computing the weights and nodes, it is preferable to consider the [[Symmetric matrix|symmetric]] tridiagonal matrix <math>\mathcal{J}</math> with elements <math display="block">\begin{align} \mathcal{J}_{k,i} = J_{k,i} &= a_{k-1} & k &= 1,2,\ldots,n \\[2.1ex] \mathcal{J}_{k-1,i} = \mathcal{J}_{k,k-1} = \sqrt{J_{k,k-1}J_{k-1,k}} &= \sqrt{b_{k-1}} & k &= \hphantom{1,\,}2,\ldots,n. \end{align}</math> That is, <math display="block">\mathcal{J} = \begin{bmatrix} a_0 & \sqrt{b_1} & 0 & \cdots & 0 \\ \sqrt{b_1} & a_1 & \sqrt{b_2} & \ddots & \vdots \\ 0 & \sqrt{b_2} & \ddots & \ddots & 0 \\ \vdots & \ddots & \ddots & a_{n-2} & \sqrt{b_{n-1}} \\ 0 & \cdots & 0 & \sqrt{b_{n-1}} & a_{n-1} \end{bmatrix}.</math> {{math|'''J'''}} and <math>\mathcal{J}</math> are [[similar matrices]] and therefore have the same eigenvalues (the nodes). The weights can be computed from the corresponding eigenvectors: If <math>\phi^{(j)}</math> is a normalized eigenvector (i.e., an eigenvector with euclidean norm equal to one) associated with the eigenvalue {{mvar|x<sub>j</sub>}}, the corresponding weight can be computed from the first component of this eigenvector, namely: <math display="block">w_j = \mu_0 \left(\phi_1^{(j)}\right)^2</math> where <math>\mu_0</math> is the integral of the weight function <math display="block">\mu_0 = \int_a^b \omega(x) dx.</math> See, for instance, {{harv|Gil|Segura|Temme|2007}} for further details. === Error estimates === The error of a Gaussian quadrature rule can be stated as follows.<ref>{{harvnb|Stoer|Bulirsch|2002|loc=Thm 3.6.24}}</ref> For an integrand which has {{math|2''n''}} continuous derivatives, <math display="block"> \int_a^b \omega(x)\,f(x)\,dx - \sum_{i=1}^n w_i\,f(x_i) = \frac{f^{(2n)}(\xi)}{(2n)!} \, (p_n, p_n) </math> for some {{mvar|ξ}} in {{math|(''a'', ''b'')}}, where {{mvar|p<sub>n</sub>}} is the monic (i.e. the leading coefficient is {{math|1}}) orthogonal polynomial of degree {{mvar|n}} and where <math display="block"> (f,g) = \int_a^b \omega(x) f(x) g(x) \, dx.</math> In the important special case of {{math|1=''ω''(''x'') = 1}}, we have the error estimate<ref>{{harvnb|Kahaner|Moler|Nash|1989|loc=§5.2}}</ref> <math display="block"> \frac{\left(b - a\right)^{2n+1} \left(n!\right)^4}{(2n + 1)\left[\left(2n\right)!\right]^3} f^{(2n)} (\xi), \qquad a < \xi < b.</math> Stoer and Bulirsch remark that this error estimate is inconvenient in practice, since it may be difficult to estimate the order {{math|2''n''}} derivative, and furthermore the actual error may be much less than a bound established by the derivative. Another approach is to use two Gaussian quadrature rules of different orders, and to estimate the error as the difference between the two results. For this purpose, Gauss–Kronrod quadrature rules can be useful. === Gauss–Kronrod rules === {{main|Gauss–Kronrod quadrature formula}} If the interval {{math|[''a'', ''b'']}} is subdivided, the Gauss evaluation points of the new subintervals never coincide with the previous evaluation points (except at zero for odd numbers), and thus the integrand must be evaluated at every point. ''Gauss–Kronrod rules'' are extensions of Gauss quadrature rules generated by adding {{math|''n'' + 1}} points to an {{mvar|n}}-point rule in such a way that the resulting rule is of order {{math|2''n'' + 1}}. This allows for computing higher-order estimates while re-using the function values of a lower-order estimate. The difference between a Gauss quadrature rule and its Kronrod extension is often used as an estimate of the approximation error. === Gauss–Lobatto rules === Also known as '''Lobatto quadrature''',<ref>{{harvnb|Abramowitz|Stegun|1983|p=888}}</ref> named after Dutch mathematician [[Rehuel Lobatto]]. It is similar to Gaussian quadrature with the following differences: # The integration points include the end points of the integration interval. # It is accurate for polynomials up to degree {{math|2''n'' − 3}}, where {{mvar|n}} is the number of integration points.<ref>{{harvnb|Quarteroni|Sacco|Saleri|2000}}</ref> Lobatto quadrature of function {{math|''f''(''x'')}} on interval {{math|[−1, 1]}}: <math display="block">\int_{-1}^1 {f(x) \, dx} = \frac {2} {n(n-1)}[f(1) + f(-1)] + \sum_{i = 2}^{n-1} {w_i f(x_i)} + R_n.</math> Abscissas: {{mvar|x<sub>i</sub>}} is the <math>(i - 1)</math>st zero of <math>P'_{n-1}(x)</math>, here <math>P_m(x)</math> denotes the standard Legendre polynomial of {{mvar|m}}-th degree and the dash denotes the derivative. Weights: <math display="block">w_i = \frac{2}{n(n - 1)\left[P_{n-1}\left(x_i\right)\right]^2}, \qquad x_i \ne \pm 1.</math> Remainder: <math display="block">R_n = \frac{-n\left(n - 1\right)^3 2^{2n-1} \left[\left(n - 2\right)!\right]^4}{(2n-1) \left[\left(2n - 2\right)!\right]^3} f^{(2n-2)}(\xi), \qquad -1 < \xi < 1.</math> Some of the weights are: {| class="wikitable" style="margin:auto; background:white; text-align:center;" ! Number of points, ''n'' ! Points, {{mvar|x<sub>i</sub>}} ! Weights, {{mvar|w<sub>i</sub>}} |- | rowspan="2" | <math>3</math> | <math>0</math> || <math>\frac{4}{3}</math> |- | <math>\pm 1</math> || <math>\frac{1}{3}</math> |- | rowspan="2" | <math>4</math> | <math>\pm \sqrt{\frac{1}{5}}</math> || <math>\frac{5}{6}</math> |- | <math>\pm 1</math> || <math>\frac{1}{6}</math> |- | rowspan="3" | <math>5</math> | <math>0</math> || <math>\frac{32}{45}</math> |- | <math>\pm\sqrt{\frac{3}{7}}</math> || <math>\frac{49}{90}</math> |- | <math>\pm 1</math> || <math>\frac{1}{10}</math> |- | rowspan="3" | <math>6</math> | <math>\pm\sqrt{\frac{1}{3}-\frac{2\sqrt{7}}{21}}</math> || <math>\frac{14+\sqrt{7}}{30}</math> |- | <math>\pm\sqrt{\frac{1}{3} + \frac{2\sqrt{7}}{21}}</math> || <math>\frac{14 - \sqrt{7}}{30}</math> |- | <math>\pm 1</math> || <math>\frac{1}{15}</math> |- | rowspan="4" | <math>7</math> | <math>0</math> || <math>\frac{256}{525}</math> |- | <math>\pm\sqrt{\frac{5}{11}-\frac{2}{11}\sqrt{\frac{5}{3}}}</math> || <math>\frac{124 + 7\sqrt{15}}{350}</math> |- | <math>\pm\sqrt{\frac{5}{11} + \frac{2}{11}\sqrt{\frac{5}{3}}}</math> || <math>\frac{124 - 7\sqrt{15}}{350}</math> |- | <math>\pm 1</math> || <math>\frac{1}{21}</math> |} An adaptive variant of this algorithm with 2 interior nodes<ref>{{harvnb|Gander|Gautschi|2000}}</ref> is found in [[GNU Octave]] and [[MATLAB]] as <code>quadl</code> and <code>integrate</code>.<ref>{{harvnb|MathWorks|2012}}</ref><ref>{{harvnb|Eaton|Bateman|Hauberg|Wehbring|2018}}</ref> == References == === Citations === <references/> === Bibliography === {{refbegin}} {{sfn whitelist | CITEREFAbramowitzStegun1983}} * {{AS ref | 25.4, Integration }} *{{cite journal | first1 = Donald G. | last1 = Anderson | title = Gaussian quadrature formulae for <math>\int_0^1 -\ln(x)f(x) dx</math> | year = 1965 | volume = 19 | number = 91 | pages = 477–481 | journal = Math. Comp. | doi = 10.1090/s0025-5718-1965-0178569-1 | doi-access = free }} *{{cite journal | first1 = Bernard | last1 = Danloy | title = Numerical construction of Gaussian quadrature formulas for <math>\int_0^1 (-\log x) x^\alpha f(x) dx</math> and <math>\int_0^\infty E_m(x) f(x) dx</math> | journal = Math. Comp. | year = 1973 | volume = 27 | number = 124 | pages = 861–869 | doi = 10.1090/S0025-5718-1973-0331730-X | mr = 0331730}} * {{cite web | last1 = Eaton | first1 = John W. | last2 = Bateman | first2 = David | last3 = Hauberg | first3 = Søren | last4 = Wehbring | first4 = Rik | title = Functions of One Variable (GNU Octave) | url = https://octave.org/doc/v4.2.2/Functions-of-One-Variable.html#XREFquadl | access-date = 28 September 2018 | year = 2018}} *{{cite journal | title = Adaptive Quadrature - Revisited | last1 = Gander | first1 = Walter | last2 = Gautschi | first2 = Walter | journal = BIT Numerical Mathematics | date = 2000 | volume = 40 | issue = 1 | pages = 84–101 | doi = 10.1023/A:1022318402393 | url = https://www.inf.ethz.ch/personal/gander/| url-access = subscription }} * {{cite book | last = Gauss | first = Carl Friedrich | author-link = Carl Friedrich Gauss | title = Methodus nova integralium valores per approximationem inveniendi | series = Comm. Soc. Sci. Göttingen Math | volume = 3 | year = 1815 | at = S. 29–76 | url = http://gallica.bnf.fr/ark:/12148/bpt6k2412190.r=Gauss.langEN }} datiert 1814, auch in Werke, Band 3, 1876, S. 163–196. [[s:Translation:Methodus_nova_integralium_valores_per_approximationem_inveniendi|English Translation]] by Wikisource. *{{cite journal | first1 = Walter | last1 = Gautschi | title = Construction of Gauss–Christoffel Quadrature Formulas | journal= Math. Comp. | year = 1968 | volume = 22 | issue= 102 | pages = 251–270 | doi = 10.1090/S0025-5718-1968-0228171-0 | mr = 0228171}} *{{cite journal | first1 = Walter | last1 = Gautschi | title = On the construction of Gaussian quadrature rules from modified moments | journal= Math. Comp. | year = 1970 | volume = 24 | issue = 110 | pages = 245–260 | doi = 10.1090/S0025-5718-1970-0285117-6 | mr = 0285177}} * {{cite book | first = Walter | last = Gautschi | title = A Software Repository for Gaussian Quadratures and Christoffel Functions | publisher = SIAM | isbn = 978-1-611976-34-2 | year = 2020}} * {{citation | last1 = Gil | first1 = Amparo | last2 = Segura | first2 = Javier | last3 = Temme | first3 = Nico M. | chapter=§5.3: Gauss quadrature | title = Numerical Methods for Special Functions | year = 2007 | publisher = SIAM | isbn = 978-0-89871-634-4 }} * {{cite journal | first1 = Gene H. | last1 = Golub | title = Calculation of Gauss Quadrature Rules | journal = Mathematics of Computation | author-link = Gene Golub | first2 = John H. | last2 = Welsch | volume = 23 | issue = 106 | year = 1969 | pages = 221–230 | jstor = 2004418 | doi = 10.1090/S0025-5718-69-99647-1 | doi-access= free}} *{{cite journal | first = C. G. J. | last = Jacobi | author-link = Carl Gustav Jacob Jacobi | title = Ueber Gauß' neue Methode, die Werthe der Integrale näherungsweise zu finden | journal = Journal für die Reine und Angewandte Mathematik | volume = 1 | year = 1826 | at = S. 301–308 | url = http://gdz.sub.uni-goettingen.de/dms/load/img/?PPN=PPN243919689_0001&DMDID=DMDLOG_0035 | postscript = und Werke, Band 6.}} * {{Cite journal | last1 = Kabir | first1 = Hossein | last2 = Matikolaei | first2 = Sayed Amir Hossein Hassanpour | date = 2017 | title = Implementing an Accurate Generalized Gaussian Quadrature Solution to Find the Elastic Field in a Homogeneous Anisotropic Media | journal = Journal of the Serbian Society for Computational Mechanics | volume = 11 | issue = 1 | pages = 11–19 | doi = 10.24874/jsscm.2017.11.01.02}} *{{cite book | last1 = Kahaner | first1 = David | last2 = Moler | first2 = Cleve | author2-link = Cleve Moler | last3 = Nash | first3 = Stephen | title = Numerical Methods and Software | year = 1989 | publisher = [[Prentice-Hall]] | isbn = 978-0-13-627258-8 | url-access = registration | url = https://archive.org/details/numericalmethods0000kaha }} * {{cite journal | first1 = Teresa | last1 = Laudadio | first2 = Nicola | last2 = Mastronardi | first3 = Paul | last3 = Van Dooren | title = Computing Gaussian quadrature rules with high relative accuracy | journal = Numerical Algorithms | volume = 92 | year = 2023 | pages = 767–793|doi=10.1007/s11075-022-01297-9| doi-access = free }} * {{citation | first1 = Dirk P. | last1 = Laurie | title = Accurate recovery of recursion coefficients from Gaussian quadrature formulas | year = 1999 | volume = 112 | number = 1–2 | pages = 165–180 | journal = J. Comput. Appl. Math. | doi = 10.1016/S0377-0427(99)00228-9 | doi-access = free }} * {{ cite journal | first1 = Dirk P. | last1 = Laurie | title = Computation of Gauss-type quadrature formulas | year = 2001 | pages = 201–217 | volume = 127 | number = 1–2 | journal = J. Comput. Appl. Math. | doi = 10.1016/S0377-0427(00)00506-9 | bibcode = 2001JCoAM.127..201L }} * {{cite web | title = Numerical integration - MATLAB integral | url = https://www.mathworks.com/help/matlab/ref/integral.html | author = MathWorks | date = 2012}} <!-- first introduced in version R2012a --> *{{cite journal | first1 = R. | last1 = Piessens | title = Gaussian quadrature formulas for the numerical integration of Bromwich's integral and the inversion of the laplace transform | year = 1971 | volume = 5 | number = 1 | journal= J. Eng. Math. | pages = 1–9 | doi = 10.1007/BF01535429 | bibcode = 1971JEnMa...5....1P }} *{{Citation | last1 = Press | first1 = WH | author1-link = William H. Press | last2 = Teukolsky | first2 = SA | last3 = Vetterling | first3 = WT | last4 = Flannery | first4 = BP | year = 2007 | title = Numerical Recipes: The Art of Scientific Computing | edition = 3rd | publisher = Cambridge University Press | location = New York | isbn = 978-0-521-88068-8 | chapter = Section 4.6. Gaussian Quadratures and Orthogonal Polynomials | chapter-url = http://apps.nrbook.com/empanel/index.html?pg=179}} * {{cite book | author-link1= Alfio Quarteroni | last1 = Quarteroni | first1 = Alfio | first2 = Riccardo | last2 = Sacco | first3 = Fausto | last3 = Saleri | title = Numerical Mathematics | location = New York | publisher = [[Springer-Verlag]] | pages = 425–478 | date = 2000 | isbn = 0-387-98959-5 | title-link = Numerical Mathematics |doi=10.1007/978-3-540-49809-4_10}} *{{cite journal | first1 = Cordian | last1 = Riener | last2 = Schweighofer | first2 = Markus | title = Optimization approaches to quadrature: New characterizations of Gaussian quadrature on the line and quadrature with few nodes on plane algebraic curves, on the plane and in higher dimensions | year = 2018 | journal = Journal of Complexity | volume = 45 | pages = 22–54 | doi = 10.1016/j.jco.2017.10.002 | arxiv = 1607.08404 }} * {{ cite journal | first1 = Robin P. | last1 = Sagar | title = A Gaussian quadrature for the calculation of generalized Fermi-Dirac integrals | year = 1991 | journal = Comput. Phys. Commun. | volume = 66 | pages = 271–275 | number = 2–3 | doi = 10.1016/0010-4655(91)90076-W | bibcode = 1991CoPhC..66..271S }} * {{citation | last1 = Stoer | first1 = Josef | last2 = Bulirsch | first2 = Roland | year = 2002 | title = Introduction to Numerical Analysis | edition = 3rd | publisher = [[Springer-Verlag | Springer]] | isbn = 978-0-387-95452-3<!-- 0-387-95452-X --> }} *{{dlmf | title=§3.5(v): Gauss Quadrature | id = 3.5.v | last = Temme | first = Nico M.}} *{{cite journal | first1 = E. | last1 = Yakimiw | title = Accurate computation of weights in classical Gauss–Christoffel quadrature rules | year = 1996 | journal = J. Comput. Phys. | volume = 129 | issue = 2 | pages = 406–430 | bibcode = 1996JCoPh.129..406Y | doi = 10.1006/jcph.1996.0258}} {{refend}} == External links == * {{springer|title=Gauss quadrature formula|id=p/g043510}} * [http://www.alglib.net/integral/gq/ ALGLIB] contains a collection of algorithms for numerical integration (in C# / C++ / Delphi / Visual Basic / etc.) * [https://www.gnu.org/software/gsl/ GNU Scientific Library] — includes [[C (programming language)|C]] version of [[QUADPACK]] algorithms (see also [[GNU Scientific Library]]) *[http://ans.hsh.no/home/skk/Publications/Lobatto/PRIMUS_KHATTRI.pdf From Lobatto Quadrature to the Euler constant e] * [http://numericalmethods.eng.usf.edu/topics/gauss_quadrature.html Gaussian Quadrature Rule of Integration – Notes, PPT, Matlab, Mathematica, Maple, Mathcad] at ''Holistic Numerical Methods Institute'' * {{MathWorld|id=Legendre-GaussQuadrature|title=Legendre-Gauss Quadrature}} * [http://demonstrations.wolfram.com/GaussianQuadrature/ Gaussian Quadrature] by Chris Maes and Anton Antonov, [[Wolfram Demonstrations Project]]. * [https://pomax.github.io/bezierinfo/legendre-gauss.html Tabulated weights and abscissae with Mathematica source code], high precision (16 and 256 decimal places) Legendre-Gaussian quadrature weights and abscissas, for ''n''=2 through ''n''=64, with Mathematica source code. * [https://web.archive.org/web/20121122202131/http://people.sc.fsu.edu/~jburkardt/math_src/arbitrary_weight_rule/arbitrary_weight_rule.html Mathematica source code distributed under the GNU LGPL] for abscissas and weights generation for arbitrary weighting functions W(x), integration domains and precisions. * [http://www.boost.org/doc/libs/release/libs/math/doc/html/math_toolkit/gauss.html Gaussian Quadrature in Boost.Math, for arbitrary precision and approximation order] * [http://www.boost.org/doc/libs/release/libs/math/doc/html/math_toolkit/gauss_kronrod.html Gauss–Kronrod Quadrature in Boost.Math] * [https://keisan.casio.com/exec/system/1329114617 Nodes and Weights of Gaussian quadrature] {{Webarchive|url=https://web.archive.org/web/20210414045300/https://keisan.casio.com/exec/system/1329114617 |date=2021-04-14 }} {{Numerical integration}} [[Category:Numerical integration]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:AS ref
(
edit
)
Template:Citation
(
edit
)
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite web
(
edit
)
Template:Closed-closed
(
edit
)
Template:Closed-open
(
edit
)
Template:Dlmf
(
edit
)
Template:EquationNote
(
edit
)
Template:EquationRef
(
edit
)
Template:Further
(
edit
)
Template:Harv
(
edit
)
Template:Harvnb
(
edit
)
Template:Main
(
edit
)
Template:Math
(
edit
)
Template:MathWorld
(
edit
)
Template:More footnotes
(
edit
)
Template:Mvar
(
edit
)
Template:NumBlk
(
edit
)
Template:Numerical integration
(
edit
)
Template:Open-open
(
edit
)
Template:Redirect
(
edit
)
Template:Refbegin
(
edit
)
Template:Refend
(
edit
)
Template:Section link
(
edit
)
Template:SfnRef
(
edit
)
Template:Sfn whitelist
(
edit
)
Template:Short description
(
edit
)
Template:Springer
(
edit
)
Template:Webarchive
(
edit
)