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
- J. Stewart, Calculus: Early Transcendentals, 6th Edition, Thomson Brooks/Cole, 2008.