18 views (last 30 days)

Show older comments

hello all,

I know how to plot a parametric surface, for example as in

syms u v

x = u * cos(v);

y = u * sin(v);

z = v;

fsurf(x, y, z, [0 5 0 4*pi])

but can someone point me to the appropriate function for the double integration that calculates the surface area, for example over the interval

0 <= u <= 5

0 <= v <= 4*pi

of the example above?

regards, Danny.

David Goodmanson
on 15 Apr 2020

Hi Danny,

You can find the surface area by finding the vectors Du and Dv that are parallel to the surface when you vary u and v respectively. Taking their cross product gives the the normal unit vector n, times the area element dS of a parallelogram whose area is proportional to dudv. Integrating the area elements give the total area. Since the area element does not depend on v, you can multiply by 4*pi and just do the u integral.

This procedure is analogous to finding the Jacobian. It's almost easier to do this by hand than to use syms, but

syms u v a real

x = u * cos(v);

y = u * sin(v);

z = a*v; % in case you want to vary the pitch

zplot = v;

fsurf(x, y, zplot, [0 5 0 4*pi])

Du = diff([x,y,z],u) % Du is diff() times du

Dv = diff([x,y,z],v) % Dv is diff() times dv

dS = simplify(norm(cross(Du,Dv)))

Area = 4*pi*int(dS,0,5)

double(subs(Area,a,1))

% results

Du = [ cos(v), sin(v), 0]

Dv = [ -u*sin(v), u*cos(v), a]

dS = (a^2 + u^2)^(1/2)

Area = 4*pi*((a^2*log((a^2 + 25)^(1/2) + 5))/2 - (a^2*log(a^2))/4 + (5*(a^2 + 25)^(1/2))/2)

ans = 174.7199

David Goodmanson
on 17 Apr 2020

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!