Assume that $f(x,y,z)$ is a function defined over a box $[a, b] \times [c, d] \times [e, g]$ represented by a chebfun3. Our aim is to illustrate how to use chebfun to compute the surface integral of $f$ over a 3D parametric surface. (For comparison, note that this example is a scalar analogue of the vector example http://www.chebfun.org/examples/approx3/FluxIntegral3D.html).

Consider a parametric surface $S$:

$$ S = \{ (x,y,z): x = x(u,v), y = y(u,v), z = z(u,v), u_1 \leq u \leq u_2, v_1 \leq v \leq v_2 \} $$

Such a parametric surface can be described as a Chebfub2v object. The surface integral of $f$ is

$$ \int_S f(x,y,z) ds = \int_S f(x(u,v), y(u,v), z(u,v)))\ |T_u \times T_v| \ du dv $$

where $T_u \times T_v$ is the cross product of tangent vectors $T_u$ and $T_v$.

We can use the integral2 command of Chebfun3 to compute surface integrals. To get a meaningful result, the range of $S$ must be in the domain of $f$.

To start with an easy example, let's compute the surface integral of $x^2$ over the unit sphere [p. 1082, 1]:

f = chebfun3(@(x,y,z) x.^2);
dom = [0, pi, 0, 2*pi];
S = chebfun2v(@(u,v) sin(u).*cos(v), @(u,v) sin(u).*sin(v), ...
    @(u,v) cos(u), dom);
format long
I = integral2(f, S)
exact = 4*pi/3;
error = abs(I-exact)
I =
   4.188790204786394
error =
     3.552713678800501e-15

Next, we solve Example 6 of http://www.math24.net/surface-integrals-of-first-kind.html

f = chebfun3(@(x,y,z) sqrt(1+x.^2+y.^2), 3*[-1 1 -1 1 -1 1]);
S = chebfun2v(@(u,v) u.*cos(v), @(u,v) u.*sin(v), @(u,v) v, [0 2 0 pi]);
I = integral2(f, S)
exact = 14*pi/3
I =
  14.660765716752545
exact =
  14.660765716752367

Our third example is on computing an integral over a seashell surface

S = chebfun2v(@(u,v) 5/4*(1-v/(2*pi)).*cos(2*v).*(1+cos(u)) + cos(2*v), ...
                    @(u,v) 5/4*(1-v/(2*pi)).*sin(2*v).*(1+cos(u)) + sin(2*v), ...
                    @(u,v) 10*v/(2*pi) + 5/4*(1-v/(2*pi)).*sin(u) + 15, ...
                    [0, 2*pi, -2*pi, 2*pi]);
surf(S), axis tight
title('seashell')
f = chebfun3(@(x,y,z) x+y+z, [-6 6 -6 6 0 25]);
I = integral2(f, S)
I =
     6.030788147086102e+03

Here is integration over the surface of another seashell

S = chebfun2v(@(u,v) u.*cos(u).*(cos(v)+1), ...
                    @(u,v) u.*sin(u).*(cos(v)+1), ...
                    @(u,v) u.*sin(v) - ((u+3)/8*pi).^2 - 20, ...
                    [0, 13*pi, -pi, pi]);
surf(S), axis tight
title('another seashell')
f = chebfun3(@(x,y,z) x+y+z, [-100 100 -100 100 -400 0]);
I = integral2(f, S)
I =
    -2.984056242788587e+07

Our last example is integration over the surface of a spring

r1 = 0.5; r2 = 0.5; t = 1.5;
S = chebfun2v(@(u,v) (1-r1*cos(v)).*cos(u), ...
                    @(u,v) (1-r1*cos(v)).*sin(u), ...
                    @(u,v) r2*(sin(v) + t*u/pi), ...
                    [0, 10*pi, 0, 10*pi]);
surf(S), axis tight
title('spring')
f = chebfun3(@(x,y,z) x+y+z, [-2 2 -2 2 -2 10]);
I = integral2(f, S)
exact = 1878.4483067846025004401820388947;
error = (I - exact)/exact
I =
     1.878448306784605e+03
error =
     1.573563547150067e-15

References

  1. J. Stewart, Calculus: Early Transcendentals, 6th Edition, Thomson Brooks/Cole, 2008.