# Numerical Differentiation and Quadrature (Integration) 1Daniel Baur / Numerical Methods for Chemical Engineers / Numerical Quadrature Daniel Baur ETH Zurich,

## Presentation on theme: "Numerical Differentiation and Quadrature (Integration) 1Daniel Baur / Numerical Methods for Chemical Engineers / Numerical Quadrature Daniel Baur ETH Zurich,"— Presentation transcript:

Numerical Differentiation and Quadrature (Integration) 1Daniel Baur / Numerical Methods for Chemical Engineers / Numerical Quadrature Daniel Baur ETH Zurich, Institut für Chemie- und Bioingenieurwissenschaften ETH Hönggerberg / HCI F128 – Zürich E-Mail: daniel.baur@chem.ethz.ch http://www.morbidelli-group.ethz.ch/education/index

Numerical Differentiation  Problem: Though an analytical derivative can be found for all differentiable functions, it is often impractical to calculate it  Solution: Approximate the derivative numerically  Method of finite differences:  Remember that:  Therefore:for small h 2Daniel Baur / Numerical Methods for Chemical Engineers / Numerical Quadrature

Numerical Quadrature (Integration) f(x) [a,b]  Problem: Generally, it is not possible to find the antiderivative (Stammfunktion) of a function f(x) in order to solve a definite integral in the interval [a,b]  Solution: Approximate the area under the curve numerically  Trapezoidal rule: Divide the interval into sub-intervals and approximate the integral by the sum of the areas of the resulting trapezoids 3Daniel Baur / Numerical Methods for Chemical Engineers / Numerical Quadrature

Trapezoidal rule 4Daniel Baur / Numerical Methods for Chemical Engineers / Numerical Quadrature ax1x1 x2x2 x n-1 b

How does Matlab do it?  quad  quad : Low accuracy, non-smooth integrands, uses adaptive recursive Simpson rule  quadl  quadl : High accuracy, smooth integrands, uses adaptive Gauss/Lobatto rule (degree of integration routine related to number of points)  quadgk  quadgk : High accuracy, oscillatory integrands, can handle infinite intervals and singularities at the end points, uses Gauss/Konrod rule (re-uses lower degree results for higher degree approximations)  Degree p of an integration rule = Polynomials up to order p can be integrated accurately (assuming there is no numerical error) 5Daniel Baur / Numerical Methods for Chemical Engineers / Numerical Quadrature

Matlab Syntax Hints result = quadl(int_fun, a, b,...);  All the integrators use the syntax result = quadl(int_fun, a, b,...);  int_fun is a function handle to a function that takes one input x and returns the function value at x; it must be vectorized f_new = @(x)int_fun(x, K);  Use parametrizing functions to pass more arguments to int_fun if needed f_new = @(x)int_fun(x, K);  f_new is now a function that takes only x as input and returns the value that int_fun would return when K is used as second input  Note that K must be defined in this command result = quadl(@(x)int_fun(x, K), a, b);  This can be done directly in the integrator call: result = quadl(@(x)int_fun(x, K), a, b); integral(...)  Matlab 2012a and newer: integral(...) 6Daniel Baur / Numerical Methods for Chemical Engineers / Numerical Quadrature

Assignment 1  Consider the function f(x)x = 1h10 -15 10 -1 logspace(-15, -1, 200) h 1.Use the method of finite differences to approximate the derivative of f(x) at x = 1. Vary h between 10 -15 and 10 -1 using logspace(-15, -1, 200), and calculate the error of the finite differences approximation compared to the analytical solution for each h. hloglog 2.Plot the error vs. h using loglog. What do you observe? What could be the cause for this behavior? 7Daniel Baur / Numerical Methods for Chemical Engineers / Numerical Quadrature

Exercise  Mass Transfer into Semi-Infinite Slab  Consider a liquid diffusing into a solid material  The liquid concentration at the interface is constant  The material block is considered to be infinitely long, the concentration at infinity is therefore constant and equal to the starting concentration inside the block 8Daniel Baur / Numerical Methods for Chemical Engineers / Numerical Quadrature c(z, t) 0 z c 0 = const.c ∞ = const.

Exercise (continued)  Using a local mass balance, we can formulate an ODE  where j is the diffusive flux in [kg m -2 s -1 ]  With Δz  0, we arrive at a PDE in two variables 9Daniel Baur / Numerical Methods for Chemical Engineers / Numerical Quadrature z z+Δz j in j out

Exercise (continued)  By combining this local mass balance with Fick’s law, a PDE in one variable is found:  The analytical solution of this equation (found by combination of variables) reads: 10Daniel Baur / Numerical Methods for Chemical Engineers / Numerical Quadrature

Assignment 2 1.Write a Matlab program to calculate and plot the concentration profile in the slab  Use the following values: c ∞ = 0; c 0 = 1 zeta = linspace(1e-6, 3) czetaczeta  Create a vector zeta = linspace(1e-6, 3), calculate the value of c for each zeta, then plot c vs. zeta integral quadl  Use integral or quadl for the integration 2.Create a function which calculates an integral with the trapezoidal rule function F = trapInt(f, n, a, b)  Use the form: function F = trapInt(f, n, a, b)  Where f is a function handle to the function that is to be integrated, n is the number of points and a and b denote the interval quadlintegral  Use your function to solve the diffusion problem and compare it to the result you obtained with quadl or integral. 11Daniel Baur / Numerical Methods for Chemical Engineers / Numerical Quadrature

Assignment 2 (continued) 3.Improve your function by adding a convergence check:  In addition to computing the integral with n points, simultaneously calculate it with 2n points  while  while the results differ by more than 10 -6, double n and iterate the calculation  Terminate the calculation and issue a warning if n exceeds 10 6 12Daniel Baur / Numerical Methods for Chemical Engineers / Numerical Quadrature