<html> <head> <title> SANDIA_CUBATURE - Numerical Integration in M Dimensions </title> </head> <body bgcolor="#EEEEEE" link="#CC0000" alink="#FF3300" vlink="#000055"> <h1 align = "center"> SANDIA_CUBATURE <br> Numerical Integration<br> in M Dimensions </h1> <hr> <p> <b>SANDIA_CUBATURE</b> is a MATLAB library which implements quadrature rules for certain multidimensional regions and weight functions. </p> <p> We consider the following integration regions: <ul> <li> <b>CN_GEG</b>, the N dimensional hypercube [-1,+1]^N, with the Gegenbauer weight function:<br> w(alpha;x) = product ( 1 <= i <= n ) ( 1 - x(i)^2 )^alpha; </li> <li> <b>CN_JAC</b>, the N dimensional hypercube [-1,+1]^N, with the Beta or Jacobi weight function:<br> w(alpha,beta;x) = product ( 1 <= i <= n ) ( 1 - x(i) )^alpha * ( 1 + x(i) )^beta; </li> <li> <b>CN_LEG</b>, the N dimensional hypercube [-1,+1]^N, with the Legendre weight function:<br> w(x) = 1; </li> <li> <b>EN_HER</b>, the N-dimensional product space (-oo,+oo)^N, with the Hermite weight function:<br> w(x) = product ( 1 <= i <= n ) exp ( - x(i)^2 ); </li> <li> <b>EPN_GLG</b>, the positive product space [0,+oo)^N, with the generalized Laguerre weight function:<br> w(alpha;x) = product ( 1 <= i <= n ) x(i)^alpha exp ( - x(i) ); </li> <li> <b>EPN_LAG</b>, the positive product space [0,+oo)^N, with the exponential or Laguerre weight function:<br> w(x) = product ( 1 <= i <= n ) exp ( - x(i) ); </li> </ul> </p> <p> The available rules for region <b>EN_HER</b> all have odd precision, ranging from 1 to 11. Some of these rules are valid for any spatial dimension <b>N</b>. However, many of these rules are restricted to a limited range, such as <b>2 <= N < 6</b>. Some of the rules have two forms; in that case, the particular form is selectable by setting an input argument <b>OPTION</b> to 1 or 2. Finally, note that in multidimensional integration, the dependence of the order <b>O</b> (number of abscissas) on the spatial dimension <b>N</b> is critical. Rules for which the order is a multiple of <b>2^N</b> are not practical for large values of <b>N</b>. The source code for each rule lists its formula for the order as a function of <b>N</b>. </p> <h3 align = "center"> Licensing: </h3> <p> The computer code and data files described and made available on this web page are distributed under <a href = "../../txt/gnu_lgpl.txt">the GNU LGPL license.</a> </p> <h3 align = "center"> Languages: </h3> <p> <b>SANDIA_CUBATURE</b> is available in <a href = "../../cpp_src/sandia_cubature/sandia_cubature.html">a C++ version</a> and <a href = "../../f_src/sandia_cubature/sandia_cubature.html">a FORTRAN90 version</a> and <a href = "../../m_src/sandia_cubature/sandia_cubature.html">a MATLAB version</a>. </p> <h3 align = "center"> Related Data and Programs: </h3> <p> <a href = "../../m_src/sandia_rules/sandia_rules.html"> SANDIA_RULES</a>, a MATLAB library which produces 1D quadrature rules of Chebyshev, Clenshaw Curtis, Fejer 2, Gegenbauer, generalized Hermite, generalized Laguerre, Hermite, Jacobi, Laguerre, Legendre and Patterson types. </p> <p> <a href = "../../m_src/stroud/stroud.html"> STROUD</a>, a MATLAB library which defines quadrature rules for a variety of multidimensional reqions. </p> <h3 align = "center"> Reference: </h3> <p> <ol> <li> Arthur Stroud,<br> Approximate Calculation of Multiple Integrals,<br> Prentice Hall, 1971,<br> ISBN: 0130438936,<br> LC: QA311.S85. </li> <li> Arthur Stroud, Don Secrest,<br> Gaussian Quadrature Formulas,<br> Prentice Hall, 1966,<br> LC: QA299.4G3S7. </li> <li> Dongbin Xiu,<br> Numerical integration formulas of degree two,<br> Applied Numerical Mathematics,<br> Volume 58, 2008, pages 1515-1520. </li> </ol> </p> <h3 align = "center"> Source Code: </h3> <p> <ul> <li> <a href = "c1_geg_monomial_integral.m">c1_geg_monomial_integral.m</a> integral of a monomial with Gegenbauer weight over C1. </li> <li> <a href = "c1_jac_monomial_integral.m">c1_jac_monomial_integral.m</a> integral of a monomial with Jacobi weight over C1. </li> <li> <a href = "c1_leg_monomial_integral.m">c1_leg_monomial_integral.m</a> integral of a monomial with Legendre weight over C1. </li> <li> <a href = "cn_geg_00_1.m">cn_geg_00_1.m</a> implements the midpoint rule for region CN_GEG. </li> <li> <a href = "cn_geg_01_1.m">cn_geg_01_1.m</a> implements a precision 1 rule for region CN_GEG. </li> <li> <a href = "cn_geg_02_xiu.m">cn_geg_02_xiu.m</a> implements the Xiu rule for region CN_GEG. </li> <li> <a href = "cn_geg_03_xiu.m">cn_geg_03_xiu.m</a> implements the Xiu rule for region CN_GEG. </li> <li> <a href = "cn_geg_monomial_integral.m">cn_geg_monoial_integral.m</a> integral of a monomial with Gegenbauer weight over CN. </li> <li> <a href = "cn_jac_00_1.m">cn_jac_00_1.m</a> implements the midpoint rule for region CN_JAC. </li> <li> <a href = "cn_jac_01_1.m">cn_jac_01_1.m</a> implements a precision 1 rule for region CN_JAC. </li> <li> <a href = "cn_jac_02_xiu.m">cn_jac_02_xiu.m</a> implements the Xiu rule for region CN_JAC. </li> <li> <a href = "cn_jac_monomial_integral.m">cn_jac_monoial_integral.m</a> integral of a monomial with Jacobi weight over CN. </li> <li> <a href = "cn_leg_01_1.m">cn_leg_01_1.m</a> implements the midpoint rule for region CN_LEG. </li> <li> <a href = "cn_leg_02_xiu.m">cn_leg_02_xiu.m</a> implements the Xiu rule for region CN_LEG. </li> <li> <a href = "cn_leg_03_1.m">cn_leg_03_1.m</a> implements the Stroud CN:3-1 rule for region CN_LEG. </li> <li> <a href = "cn_leg_03_xiu.m">cn_leg_03_xiu.m</a> implements the Xiu rule for region CN_LEG. </li> <li> <a href = "cn_leg_05_1.m">cn_leg_05_1.m</a> implements the Stroud CN:5-1 rule for region CN_LEG. </li> <li> <a href = "cn_leg_05_2.m">cn_leg_05_2.m</a> implements the Stroud CN:5-2 rule for region CN_LEG. </li> <li> <a href = "cn_leg_monomial_integral.m">cn_leg_monoial_integral.m</a> integral of a monomial with Legendre weight over CN. </li> <li> <a href = "en_her_01_1.m">en_her_01_1.m</a> a precision 1 rule for EN_HER. </li> <li> <a href = "en_her_02_xiu.m">en_her_02_xiu.m</a> a precision 2 rule for EN_HER. </li> <li> <a href = "en_her_03_1.m">en_her_03_1.m</a> a precision 3 rule for EN_HER. </li> <li> <a href = "en_her_03_2.m">en_her_03_2.m</a> a precision 3 rule for EN_HER. </li> <li> <a href = "en_her_03_xiu.m">en_her_03_xiu.m</a> a precision 3 rule for EN_HER. </li> <li> <a href = "en_her_05_1.m">en_her_05_1.m</a> a precision 5 rule for EN_HER. </li> <li> <a href = "en_her_05_2.m">en_her_05_2.m</a> a precision 5 rule for EN_HER. </li> <li> <a href = "en_her_05_3.m">en_her_05_3.m</a> a precision 5 rule for EN_HER. </li> <li> <a href = "en_her_05_4.m">en_her_05_4.m</a> a precision 5 rule for EN_HER. </li> <li> <a href = "en_her_05_5.m">en_her_05_5.m</a> a precision 5 rule for EN_HER. </li> <li> <a href = "en_her_05_6.m">en_her_05_6.m</a> a precision 5 rule for EN_HER. </li> <li> <a href = "en_her_07_1.m">en_her_07_1.m</a> a precision 7 rule for EN_HER. </li> <li> <a href = "en_her_07_2.m">en_her_07_2.m</a> a precision 7 rule for EN_HER. </li> <li> <a href = "en_her_07_3.m">en_her_07_3.m</a> a precision 7 rule for EN_HER. </li> <li> <a href = "en_her_09_1.m">en_her_09_1.m</a> a precision 9 rule for EN_HER. </li> <li> <a href = "en_her_11_1.m">en_her_11_1.m</a> a precision 11 rule for EN_HER. </li> <li> <a href = "en_her_monomial_integral.m">en_her_monomial_integral.m</a> evaluates the exact integral of a monomial in Stroud's EN_HER region. </li> <li> <a href = "ep1_glg_monomial_integral.m">ep1_glg_monomial_integral.m</a> integral of monomial with generalized Laguerre weight on EP1. </li> <li> <a href = "ep1_lag_monomial_integral.m">ep1_lag_monomial_integral.m</a> integral of monomial with Laguerre weight on EP1. </li> <li> <a href = "epn_glg_00_1.m">epn_glg_001.m</a> implements the midpoint rule for region EPN_GLG. </li> <li> <a href = "epn_glg_01_1.m">epn_glg_01_1.m</a> implements a precision 1 rule for region EPN_GLG. </li> <li> <a href = "epn_glg_02_xiu.m">epn_glg_02_xiu.m</a> implements the Xiu rule for region EPN_GLG. </li> <li> <a href = "epn_glg_monomial_integral.m">epn_glg_monomial_integral.m</a> integral of monomial with generalized Laguerre weight on EPN. </li> <li> <a href = "epn_lag_00_1.m">epn_lag_001.m</a> implements the midpoint rule for region EPN_LAG. </li> <li> <a href = "epn_lag_01_1.m">epn_lag_01_1.m</a> implements a precision 1 rule for region EPN_LAG. </li> <li> <a href = "epn_lag_02_xiu.m">epn_lag_02_xiu.m</a> implements the Xiu rule for region EPN_LAG. </li> <li> <a href = "epn_lag_monomial_integral.m">epn_lag_monomial_integral.m</a> integral of monomial with Laguerre weight on EPN. </li> <li> <a href = "gw_02_xiu.m">gw_02_xiu.m</a> implements the Golub-Welsch version of the Xiu rule. </li> <li> <a href = "monomial_value.m"> monomial_value.m</a>, evaluates a monomial given the exponents. </li> <li> <a href = "r8_factorial.m">r8_factorial.m</a> evaluates the factorial function. </li> <li> <a href = "r8_hyper_2f1.m">r8_hyper_2f1.m</a> evaluates the hypergeometric function 2F1(A,B,C,X). </li> <li> <a href = "r8_mop.m"> r8_mop.m</a> returns the I-th power of -1 as an R8 value. </li> <li> <a href = "r8_psi.m">r8_psi.m</a> evaluates the function Psi(X). </li> <li> <a href = "timestamp.m">timestamp.m</a>, prints the YMDHMS date as a timestamp; </li> </ul> </p> <h3 align = "center"> Examples and Tests: </h3> <p> <ul> <li> <a href = "sandia_cubature_test.m">sandia_cubature_test.m</a>, runs all the tests. </li> <li> <a href = "sandia_cubature_test_output.txt">sandia_cubature_test_output.txt</a>, the output file. </li> <li> <a href = "cn_geg_tests.m">cn_geg_tests.m</a>, tests the CN_GEG rules for various monomials. </li> <li> <a href = "cn_geg_test.m">cn_geg_test.m</a>, tests the CN_GEG rules for a particular monomial. </li> <li> <a href = "cn_jac_tests.m">cn_jac_tests.m</a>, tests the CN_JAC rules for various monomials. </li> <li> <a href = "cn_jac_test.m">cn_jac_test.m</a>, tests the CN_JAC rules for a particular monomial. </li> <li> <a href = "cn_leg_tests.m">cn_leg_tests.m</a>, tests the CN_LEG rules for various monomials. </li> <li> <a href = "cn_leg_test.m">cn_leg_test.m</a>, tests the CN_LEG rules for a particular monomial. </li> <li> <a href = "en_her_tests.m">en_her_tests.m</a>, tests the EN_HER rules for various monomials. </li> <li> <a href = "en_her_test.m">en_her_test.m</a>, tests the EN_HER rules for a particular monomial. </li> <li> <a href = "epn_glg_tests.m">epn_glg_tests.m</a>, tests the EPN_GLG rules for various monomials. </li> <li> <a href = "epn_glg_test.m">epn_glg_test.m</a>, tests the EPN_GLG rules for a particular monomial. </li> <li> <a href = "epn_lag_tests.m">epn_lag_tests.m</a>, tests the EPN_LAG rules for various monomials. </li> <li> <a href = "epn_lag_test.m">epn_lag_test.m</a>, tests the EPN_LAG rules for a particular monomial. </li> </ul> </p> <p> You can go up one level to <a href = "../m_src.html"> the MATLAB source codes</a>. </p> <hr> <i> Last revised on 03 March 2010. </i> <!-- John Burkardt --> </body> </html>