KrisLibrary  1.0.0
Functions | Variables
Math::Quadrature Namespace Reference

Namespace for quadrature functions. More...

Functions

Real Quadrature (RealFunction &f, const Real *c, const Real *x, int k)
 General purpose summation routine, returns sum[i=0..k-1]ci*f(xi)
 
void Quadrature (VectorFunction &f, const Real *c, const Real *x, int k, Vector &res)
 
Real trapezoidal (RealFunction &f, Real a, Real b)
 
Real trapezoidal (Real f0, Real f1)
 
Real simpsons (RealFunction &f, Real a, Real b)
 
Real simpsons (Real f0, Real f1, Real f2)
 
Real simpsons_3_8 (RealFunction &f, Real a, Real b)
 
Real simpsons_3_8 (Real f0, Real f1, Real f2, Real f3)
 
Real NC4 (RealFunction &f, Real a, Real b)
 
Real NC4 (Real f0, Real f1, Real f2, Real f3, Real f4)
 
Real Gaussian (RealFunction &f, int k)
 Gaussian quadrature rule with k points on [-1,1], [a,b] respectively.
 
Real Gaussian (RealFunction &f, Real a, Real b, int k)
 
Real compositeTrapezoidal (RealFunction &f, Real a, Real b, int n)
 
Real compositeSimpsons (RealFunction &f, Real a, Real b, int n)
 
Real composite (QuadratureFunction q, RealFunction &f, Real a, Real b, int n)
 composite integration for an arbitrary quadrature function
 
Real trapezoidal2D (RealFunction2 &f, Real a, Real b, Real c, Real d)
 integral[a,b]x[c,d] f dA = 1/4(b-a)(c-d) (f(a,c) + f(b,c) + f(a,d) + f(b,d)) + O(h^2)
 
Real simpsons2D (RealFunction2 &f, Real a, Real b, Real c, Real d)
 
Real simpsons2D (RealFunction2 &f, Real a, Real b, RealFunction &c, RealFunction &d)
 

Variables

const Real xGaussian2 [1] = {0.57735026918962576450914878050196}
 
const Real cGaussian2 [1] = {1.0}
 
const Real xGaussian3 [2] = {0,0.77459667}
 
const Real cGaussian3 [2] = {0.88888889,0.55555555}
 
const Real xGaussian4 [2] = {0.33998104,0.65214515}
 
const Real cGaussian4 [2] = {0.65214515,0.34785485}
 
const Real xGaussian5 [3] = {0.0,0.53846931,0.90617985}
 
const Real cGaussian5 [3] = {0.56888889,0.47862867,0.23692689}
 
const Real xGaussian6 [3] = {0.23861918,0.66120939,0.93246951}
 
const Real cGaussian6 [3] = {0.46791393,0.36076157,0.17132449}
 
const Real xGaussian7 [4] = {0.0,0.40584515,0.74153119,0.94910791}
 
const Real cGaussian7 [4] = {0.41795918,0.38183005,0.27970539,0.12948497}
 
const Real xGaussian8 [4] = {0.18343464,0.52553241,0.79666648,0.96028986}
 
const Real cGaussian8 [4] = {0.36268378,0.31370665,0.22238103,0.10122854}
 
const Real xGaussian10 [5] = {0.14887434,0.43339539,0.67940957,0.86506337,0.97390653}
 
const Real cGaussian10 [5] = {0.29552422,0.26926672,0.21908636,0.14945135,0.06667134}
 
const Real cGaussian2_x_unit [2] ={0.1819586182,0.3180413818}
 
const Real xGaussian2_x_unit [2] ={0.3550510257,0.8449489743}
 
const Real cGaussian3_x_unit [3] ={0.2009319140,0.06982697994,0.2292411061}
 
const Real xGaussian3_x_unit [3] ={0.9114120405,0.2123405382,0.5905331354}
 
const Real cGaussian2_x2_unit [2] ={0.1007858821,0.2325474512}
 f*x^2 on [0,1]
 
const Real xGaussian2_x2_unit [2] ={0.4558481560,0.8774851770}
 
const Real cGaussian3_x2_unit [3] ={0.1571363612,0.02995070308,0.1462462695}
 
const Real xGaussian3_x2_unit [3] ={0.9270059759,0.2949977900,0.6529962340}
 
const Real cGaussian2_x1x_unit [2] ={0.08333333333,0.08333333333}
 f*x(x-1) on [0,1]
 
const Real xGaussian2_x1x_unit [2] ={0.2763932023,0.7236067977}
 
const Real cGaussian3_x1x_unit [3] ={0.08888888899,0.03888888889,0.03888888889}
 
const Real xGaussian3_x1x_unit [3] ={0.5,0.8273268354,0.1726731646}
 
const int maxGaussianDegree = 10
 
const Real * xGaussian [11]
 
const Real * cGaussian [11]
 

Detailed Description

Namespace for quadrature functions.

Function Documentation

Real Math::Quadrature::compositeSimpsons ( RealFunction f,
Real  a,
Real  b,
int  n 
)

composite simpsons rule on n segments (n assumed to be even) integral[a,b] f dx ~= 1/3h(f(a) + 4*sum[i=1:n-1, odd]f(a+ih) + 2*sum[i=1:n-1, even]f(a+ih) + f(b)) + (b-a)O(h^4)

Real Math::Quadrature::compositeTrapezoidal ( RealFunction f,
Real  a,
Real  b,
int  n 
)

composite trapezoidal rule on n segments integral[a,b] f dx ~= 1/2h(f(a) + 2*sum[i=1:n-1]f(a+ih) + f(b)) + (b-a)O(h^2)

Real Math::Quadrature::NC4 ( RealFunction f,
Real  a,
Real  b 
)

Newton-Cotes order 4 integral[a,b] f dx ~= 2/45h(7f(a) + 32f(a+h) + 12f(a+2h) + 32f(a+3h) + 7f(b)) + O(h^7)

Real Math::Quadrature::simpsons ( RealFunction f,
Real  a,
Real  b 
)

simpsons rule integral[a,b] f dx ~= 1/3h(f(a) + 4f(a+h) + f(b)) + O(h^5)

Real Math::Quadrature::simpsons2D ( RealFunction2 f,
Real  a,
Real  b,
Real  c,
Real  d 
)

integral[a,b]x[c,d] f dA = 1/9(b-a)(c-d) (f(a,c) + f(a,d) + f(b,c) + f(b,d)

  • 4[f(a+h,c)+f(a+h,d)+f(a,c+h)+f(b,c+h)] + 16*f(a+h,c+h) ) + O(h^4)
Real Math::Quadrature::simpsons2D ( RealFunction2 f,
Real  a,
Real  b,
RealFunction c,
RealFunction d 
)

integral[a,b]x[c(x),d(x)] f dA = 1/9 (f(a,c(a)) + f(a,d(a)) + f(b,c(b)) + f(b,d(b))

  • 4[f(a+h,c(a+h))+f(a+h,d(a+h))+f(a,c(a)+h(a))+f(b,c(b)+h(b))] + 16*f(a+h,c(a+h)+h(a+h)) ) + O(h^4)
Real Math::Quadrature::simpsons_3_8 ( RealFunction f,
Real  a,
Real  b 
)

simpsons 3/8 rule integral[a,b] f dx ~= 3/8h(f(a) + 3f(a+h) + 3f(a+2h) + f(b)) + O(h^5)

Real Math::Quadrature::trapezoidal ( RealFunction f,
Real  a,
Real  b 
)

trapezoidal rule integral[a,b] f dx ~= 1/2h(f(a) + f(b)) + O(h^3)

Variable Documentation

const Real* Math::Quadrature::cGaussian[11]
Initial value:
= {NULL,NULL,cGaussian2,cGaussian3,cGaussian4,
cGaussian5,cGaussian6,cGaussian7,cGaussian8,NULL,cGaussian10 }
const Real cGaussian2[1]
Definition: quadrature.cpp:77
const Real Math::Quadrature::cGaussian2 = {1.0}

Gaussian quadrature: The coefficient versions Gaussiank give coefficients for the k-point gaussian quadrature rule in the arrays c and x The resulting rule is int[-1,1]f(x) = sum ci*f(xi) note: only the positive half is provided

const Real Math::Quadrature::cGaussian2_x_unit ={0.1819586182,0.3180413818}

Warped gaussian quadrature: Same as above, but integral of a warped function f*x on [0,1]

const Real* Math::Quadrature::xGaussian[11]
Initial value:
= {NULL,NULL,xGaussian2,xGaussian3,xGaussian4,
xGaussian5,xGaussian6,xGaussian7,xGaussian8,NULL,xGaussian10 }