A guide to MD


The purpose with MD is to illustrate the basic content of a Multi Dimensional Calculus course. It can also be used as a computational tool.

What you can do

1. Create a (plane) curve c and compute corresponding curve integrals of a given function u.
2. Create a (plane) parameter domain of definition D for functions u and v.
3. Plot given functions u and v.
4. View the divergence and rotation of a given field (u,v).
5. View the Laplacian of u.
6. Integrate given functions over D.
7. View the tangent plane of a given function u.
8. View level curves and/or the gradient field of a given function.
9. Visualize a given vector field (u,v).
10. View the corresponding domain map.
11. Plot the Jacobian of the map.
12. Compute the work integral of a given field along a curve.
13. Compute the flow of a given vector field across a curve.
14. Verify the basic integral theorems of Multi Dimensional Calculus.

How to do it

1. Start MD by moving to the directory ~kenneth/matlab (or copy the files MD.m, MD.mat and R2adm.m to your matlab directory), start matlab, and type MD at the matlab prompt.
2. To define a curve you press the "curve" button. You can then enter a curve by defining "x=" and "y=" as functions of a parameter s which runs from 0 to 1, and then press "ok". You can also enter a (closed piecewise linear) curve by mouse clicking counter clockwise at selected points in the lower plot area, for example to define the boundary of a two dimensional parameter domain D.
3. To compute curve integrals you press the buttons "u ds", "work" and "cross flow".
4. To proceed to define a parameter domain D, you press "domain" after having defined a closed counter clockwise curve c.
5. To view the mesh underlying plotting and integration you may want to press "mesh'.
6. To plot a desired function you define "u=" or "v=" and press return.
7. To integrate the function you press "integrate".
8. To plot the divergence or rotation of the field (u,v), or the Laplacian of u, you press the corresponding buttons.
9. To view the gradient field and/or level curves of function u, you check the corresponding boxes.
10. To view the (u,v) field as an arrow plot in the (x,y) domain you press "uv field".
11. To view (u,v) as a change of coordinates and view the corresponding (u,v) domain, or the corresponding Jacobian, you press the button signed "uv map" or "jacobian". The color of the (u,v) domain indicates a positive and/or negative Jacobian.
12. To verify the integral theorems of Multi Dimensional Calculus, you may compute the divergence and the corresponding integral over D and compare it to the cross flow integral of the (u,v) field, and similarly compute the rotation of (u,v) and the corresponding integral and compare it to the work integral. It is also instructive to compare all these integrals to the corresponding "uv field" plot.
13. Finally, you may view the tangent plane approximation of a given function u, by pressing the "tangent plane" button and then a selected point in the parameter domain D.
14. To obtain a finer mesh for plotting and/or integration to may want to press "refine".
15. You may also modify a given curve and/or domain by pressing "modify", and then click and drag selected points on the curve c to another position. You may also have to redefine the computational domain by pressing "domain", and re-evaluate the functions u and v, or whatever quantity you are studying.
14. If somethings goes wrong, so that the program doesn't cooperate, it may be best to type "close" at the matlab prompt, and make a restart.

Example tours

A curve integral

We compute the length of the spiral r=v, 0<v<10, by pressing "curve" and typing "x=" 10*s*cos(10*s) and "y=" 10*s*sin(10*s), pressing "ok" and then "u ds".

A double integral

We plot and compute the integral of exp(y*sin(x)) on the unit square by pressing "curve", clicking one at a time at the points (0,0), (1,0), (1,1), (0,1) and (0,0) in the parameter domain plot area, then press "domain" to define the domain interior to the given curve, and finally type "u=" exp(y.*sin(x)), (Note the .*!) followed by a return to plot u, and then press "integrate". You may also enter the curve vertices by declaring c global at the matlab prompt by >>global c, and then defining c by >>c=[0 0;1 0;1 1;0 1;0 0], and then press the "domain" button.

Viewing level curves and/or gradient field

With domain and function u as above we may check and/or un check the "contour" and "gradient" boxes to see the level curves and/or gradient field of u.

Viewing vector fields

For example, press the "u=" button and then choose from the uv menu the function sin(12*x.*y) to define u this way, and then press the "v=" button and choose from the uv menu the function x.^2+y.^2 to have v defined this way (if you are too lazy to type in these formulas directly), and then press the "uv field" button.

Change of coordinates

To consider a more familiar example, redefine "u=" and "v=" as x.*cos(y) and x.*sin(y), respectively. Press "jacobian" to plot the jacobian, and "uv map" to see the corresponding domain in the new coordinates u and v. Check that this conforms with what you expected to happen!

div, rot, Laplace

Define u=x.^k and v=y.^k with k=1,2 and view the corresponding div (u,v) plots. Also view the corresponding "uv field plots. Also plot the corresponding rot (u,v).
Repeat with u=-y.^k and v=x.^k.
View the Laplacian or div(grad) of u with u=4*x-7*y, u=x.^2, u=x.^2+v.^2, and u=log(x.^2+y.^2), for example.

Gauss theorem

The theorem states that the total outflow through the boundary B of a domain D of a "flow field" (u,v), that is the integral over the boundary curve B of the (outward) normal component of (u,v), is equal to the total "well production" of D, that is the integral over D of the local "well production" div (u,v). Consider for example the field u=x, v=y. Plot the flow field by pressing "uv field". Is there a net outflow or inflow through the boundary of your domain? What is the well production in different parts of your domain? Press "div(u,v)" to view the local production. The compare the integral over D of div(u,v) with that of the integral over B of the total outflow. Conclusions? You may want to refine the computational mesh by pressing "refine" and recompute the divergence and the integrals.

Stokes theorem (in 2D)

The theorem states that the circulation along the boundary B of a domain D of a vector field (u,v) is equal to the total "curl" or rotation of the vector field inside B, that is in D. In other words, the integral along B of the tangential component of (u,v) is equal to the integral over D of dv/dx-du/dy. Consider for example the field u=-y and v=x. Plot the field with "uv field". Compute and plot the local rotation of the field by pressing "rot(u,v)". Compare the integral of rot(u,v) over D with the "work" (or circulation) integral of (u,v) along B.


1. Find the work applied by of the force field (-y,x) to move a particle along the spiral curve r=v from v=0 to v=10.
2. Find the volume of Scandinavium with radius 10 and height 5+(x/10)^2-(y/10)^2.
3. Find the center of gravity of the domain enclosed by the curve x=abs(2*pi*s-pi)*sin(2*pi*s), y=-abs(2*pi*s-pi)*cos(2*pi*s), 0<s<1. Hint: Only the y-coordinate of the center is non-trivial. Can be found by computing the integrals of y and 1, respectively, over D. Note that the function 1 must be entered as ones(size(x)) or ones(size(y)).
4. Find the total mass of the triangular plate with vertices in (0,0), (1,0) and (0,1) with surface density x/(1+y). (Don't spend too much time getting the exact positions of the vertices!) Compare to problem 51.12.3 in EM2000.
5. Find the total charge of the domain with vertices (0,0), (1,0), (2,1) and (2,2) with charge density x+y. Compare to problem 51.4.3!
6. Find the approximate maxima/minima of the function exp(-x.^2-y.^2).*(x+2*y). Hint1: Study the level curves/gradient field! Hint2: To extend the parameter domain, point close to the boundary you would like to move.
7. Compare the integrals along three different curves from (0,0) to (1,1) of the fields (u,v)=(x,y)=grad(x^2/2+y^2/2), (u,v)=(y,x)=grad(xy), and (-y,x), respectively. Conclusions?
8. ... To be continued!!!