HP Forums

Full Version: Line integral and curvilinear integral
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
hi all,
here there are two programs (CAS) to calculate Line integral (for vectorial functions fields) and Curvilinear Integral (for scalar functions).


intcur: INPUT a scalar function (x,y,z), a parametric form of a curve [r(t), r(t), r(t)], lower and high bound and the programs returns curvilinear integral
intlin: INPUT a vectorial function, a parametric form of a curve (as above), lower and high bound and the program returns linear integral.

These programs work with 2 or 3 components (parametric expression: [r1(t), r2(t), r3(t)] or [r1(t), r2(t)])...

Examples:
1.0 to find the curvilinear integral of z in a circle (parametric: x=COS(t), y=SIN(t), z=t) from 0 to 2π
intcur(z, [COS(t), SIN(t), t], 0, 2*π) -> 2*√2*π^2
2. to find the line integral of F=‹x*SIN(y), y› along the path ‹t, t^2› from -1 to 2
intlin([x*SIN(y), y], [t, t^2], -1,2) -> (15/2)+(COS(1)-COS(4))/2

Enjoy!

Salvo Micciché

Code:

#cas
intcur(args):=
    BEGIN
    local argv,argc, a, b;
    local f, r, dr, ft, s,t;
    purge(t);
    argv:=[args];
    argc:=size(argv);
    IF argc !=4 THEN
    return "Input:f(x,y,z), [r(t),r(t),r(t)] ,low, high";
     ELSE
    f:=argv(1);
    r:=argv(2);
    a:=argv(3);
    b:=argv(4);
    dr:=diff(r,t);
    s:= size(argv(2));
    ft:= IFTE( s==3, subst(f,[x,y,z]=r), subst(f,[x,y]=r) );
    return int(dot(ft,l2norm(dr)),t,a,b);
    END;

END;
#end

...
Code:

#cas
intlin(args):=
BEGIN
local argv, argc, a, b;
local f, r, dr, ft,s, t;
purge(t);
argv:=[args];
argc:=size(argv);
IF argc !=4 THEN
return "Input:[x,y,z], [r(t),r(t),r(t)] ,low, high"; 
 ELSE
f:=argv(1);
r:=argv(2);
a:=argv(3);
b:=argv(4);
dr:=diff(r,t);
s:= size(argv(2));
ft:= IFTE( s==3, subst(f,[x,y,z]=r), subst(f,[x,y]=r) );
return int(dot(ft,dr),t,a,b);
END;

END;
#end

EDIT: put above a slightly new code, in which t is a local variable that's now purged first to being used in the integral calculus, to avoid to leave a global variable in CAS Vars.
Reference URL's