Unformatted text preview:

Numerical Integration!Aiichiro Nakano!Collaboratory for Advanced Computing & Simulations!Department of Computer Science!Department of Physics & Astronomy!Department of Chemical Engineering & Materials Science! University of Southern California!Email: [email protected]!New toolbox: !1. !Gaussian quadratures (orthogonal functions) !2. !Newton’s method!Numerical Integration!• !Numerical integration = weighted sum of function values!• !Trapezoid quadrature: Piecewise linear approximation!€ S = f (x)dxab∫≅ wkf (xk)k=0n−1∑€ f (x) ≅ fk+ (x − xk)( fk+1− fk) / h x ∈ [ xk, xk+1] € f (x)dxab∫≅h2( fk+ fk+1)k=0n− 1∑+ O(h2)Resulting area:!Piecewise constant O(h) approximation € xk= kh = (b − a)k /nwk= h  Simpson Rule!• !Simpson quadrature: Piecewise quadratic approximation !• !Lagrange interpolation:!€ f (x) ≅(x − xk)(x − xk+1)(xk−1− xk)(xk−1− xk+1)fk−1+(x − xk−1)(x − xk+1)(xk− xk−1)(xk− xk+1)fk+(x − xk−1)(x − xk)(xk+1− xk−1)(xk+1− xk)fk+1€ f (x)dxab∫≅h3( f2l+ 4 f2l+1+ f2l+2)l=0n / 2−1∑+ O(h4)Gaussian Quadratures!• !Idea of Gaussian quadrature: Freedom to choose both weighting coefficients & the location of abscissas to evaluate the function!• !Gaussian quadrature: Chooses the weight & abscissas to make the integral exact for a class of integrands “polynomials times some known function W(x)”.!!> !Gauss-Legendre: !W(x) = 1; -1 < x < 1!!> !Gauss-Chebyshev: !W(x) = (1 - x2)-1/2; -1 < x < 1!! !•••!€ W (x) f (x)dxab∫= wkf (xk)k=1n∑W.H. Press, B.P. Flannery, S.A. Teukolsky, & W.T. Vetterling, !Numerical Recipes, 2nd Ed. (Cambridge U Press, ʼ93), Sec. 4.5!• !New toolbox: (1) orthogonal functions (recursive generation via a generating function; (2) Newton method for root finding!Orthogonal Functions!• !Gaussian quadratures are defined through orthogonal functions!• !Orthogonal functions are often introduced as solutions to differential equations!• !Examples: Legendre, Bessel, Laguerre, Hermite, Chebyshev, …!• !Operationally well-defined to compute the function values & derivatives!• !Efficiently computable through recursive relations (more than elementary functions like sin(x), exp(x), ...)!Orthogonal Functions!• !Scalar product:!• !Orthonormal set of functions: Mutually orthogonal & normalized !• !Recurrence relation to construct an orthonormal set:!(Theorem) pj(x) has exactly j distinct roots in (a,b), & the roots interleave the j-1 roots of pj-1(x)!€ f g ≡ W (x) f (x)g(x)dxab∫€ pmpn=δm,n=1 m = n0 m ≠ n   € p−1(x) ≡ 0p0(x) ≡ 1pj+1(x) = (x − aj) pj(x) − bjpj−1(x) j = 0,1, 2,… € aj=xpjpjpjpjj = 0,1,…bj=pjpjpj−1pj−1j = 1, 2,…Legendre Polynomial!€ W (x) = 1 −1 < x < 1• !Recursive function evaluation!• !Function derivative: A recurrence derived by differentiating g by x!€ (x2−1) ′ P j= jxPj− jPj−1• !Generating function: The recurrence may be obtained through the Taylor expansion of the following function with respect to t !€ g(t, x) =11− 2xt + t2≡ Pj(x)tjj=0∞∑€ ( j +1)Pj+1= (2 j +1)xPj− jPj−1P0= 1 P1= x!(Hint) Differentiate both sides by t & compare the coefficients of t j !Gauss-Legendre Quadrature!• !Roots, xk !• !Weights, wk: To reproduce some integrals exactly (linear equation)!€ W (x) f (x)dx−11∫= wkf (xk)k=1n∑€ P0(x)Pn(x)dx−11∫=22n +1δ0,n= wkPn(xk)k=1n∑€ wk=2nPn− 1(xk) ′ P n(xk)=2(1− xk2) ′ P n(xk)[ ]2 € Pn(xk) = 0 k = 1,…,nor!Newton’s Method for Root Finding!€ Pn(x) = 0• !Problem: Find a root of a function!• !Newton iteration: Successive linear approximation of the function!!1. !Start from an initial guess, x0, of the root!!2. !Given the k-th guess, xk, obtain a refined guess, xk+1, from the linear fit: !€ Pn(x) ≅ ′ P n(xk)(x − xk) + Pn(xk) = 0€ → xk+1= xk−Pn(xk)′ P n(xk)Gauss-Legendre Program!void gauleg(float x1,float x2,float x[],float w[],int n) { ! int m,j,i; ! double z1,z,xm,xl,pp,p3,p2,p1; ! m=(n+1)/2; // Find only half the roots because of symmetry! xm=0.5*(x2+x1); ! xl=0.5*(x2-x1); ! for (i=1;i<=m;i++) { ! z=cos(3.141592654*(i-0.25)/(n+0.5)); ! do { ! p1=1.0; p2=0.0; ! for (j=1;j<=n;j++) { // Recurrence relation ! p3=p2; p2=p1; ! p1=((2.0*j-1.0)*z*p2-(j-1.0)*p3)/j; ! } ! pp=n*(z*p1-p2)/(z*z-1.0); // Derivative ! z1=z; ! z=z1-p1/pp; // Newton’s method ! } while (fabs(z-z1) > EPS); // EPS=3.0e-11 ! x[i]=xm-xl*z; ! x[n+1-i]=xm+xl*z; ! w[i]=2.0*xl/((1.0-z*z)*pp*pp); ! w[n+1-i]=w[i]; ! } !}!• !Given the lower & upper limits (x1 & x2) of integration & n, returns the abscissas & weights of the Gauss-Legendre n-point quadrature in x[1:n] & w[1:n]. !€ z ← z −Pn(z)′ P n(z)€ P−1= 0P0= 1jPj= (2 j −1)zPj−1− ( j −1)Pj−2     € (z2−1) ′ P j= jzPj− jPj−1€ wi=2(1− xi2) ′ P n(xi)[ ]2How to Use the Gauss-Legendre Program!//gauleg-driver.c!#include <stdio.h>!#include <math.h>!double *dvector(int, int);!void gauleg(double, double, double *, double *, int);!int main() {!!double *x,*w;!!double x1= -1.0,x2=1.0,sum;!!int N,i;!!printf("Input the number of quadrature points\n");!!scanf("%d",&N);!!x = dvector(1,N);!!w = dvector(1,N);!!gauleg(x1,x2,x,w,N);!!sum=0.0;!!for (i=1; i<=N; i++)!!!sum += w[i]*2.0/(1.0 + x[i]*x[i]);!!printf("Integration = %f\n", sum);!}!$ cc –o gauleg-driver gauleg-driver.c gauleg.c -lm € π= dx2x2+1−11∫≅ wk2xk2+1k=1N∑Recursive Function Evaluation!p1=1.0; p2=0.0; !for (j=1;j<=n;j++) { // Recurrence relation ! p3=p2;! p2=p1; ! p1=((2.0*j-1.0)*z*p2-(j-1.0)*p3)/j; !} !pp=n*(z*p1-p2)/(z*z-1.0); // Derivative !• !Legendre function!€ P−1= 0P0= 1jPj= (2 j −1)zPj−1− ( j −1)Pj−2     € (z2−1) ′ P j= jzPj− jPj−1#define C0 0.188030699!#define C1 1.48359853!#define C2 (-1.0979059)!#define C3 0.430357353!fs = C0+x*(C1+x*(C2+x*C3));!sr = fs+0.5*(x/fs-fs);!• !Compare it with a (low-accuracy) square-root


View Full Document

USC PHYS 516 - NumIntg

Documents in this Course
Load more
Download NumIntg
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view NumIntg and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view NumIntg 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?