Flateintegraler med Maple

> restart:

> with(plots):
with(linalg):

Warning, the name changecoords has been redefined

Warning, the protected names norm and trace have been redefined and unprotected

> assume (u,real); Forteller Maple at u og v er reelle tall (ikke komplekse). Maple angir dette i fortsettelsen med en krusedull etter u og v. Den kan vi ignorere.
assume (v,real);

> x := sin(v)*cos(u); Parametriseringen. Vanlig kuleflate som eksempel.
y := sin(v)*sin(u);

z := cos(v);

x := sin(`v`)*cos(`u`)

y := sin(`v`)*sin(`u`)

z := cos(`v`)

> a := 0; b := 2*Pi; Parameterintervallene for u og v
c := 0; d := Pi;

a := 0

b := 2*Pi

c := 0

d := Pi

> plot3d([x,y,z],u=a..b,v=c..d,projection=0.9,scaling=constrained,axes=boxed); Plotter flaten

[Plot]

> Ru := [diff(x,u),diff(y,u),diff(z,u)]; Regner ut partiellderiverte av posisjonsvektoren R
Rv := [diff(x,v),diff(y,v),diff(z,v)];

Ru := [-sin(`v`)*sin(`u`), sin(`v`)*cos(`u`), 0]

Rv := [cos(`v`)*cos(`u`), cos(`v`)*sin(`u`), -sin(`v`)]

> N := simplify( crossprod(Ru,Rv) ); Regner ut kryssproduktet, dvs. en normalvektor N til flaten

N := vector([(-1+cos(`v`)^2)*cos(`u`), (-1+cos(`v`)^2)*sin(`u`), -sin(`v`)*cos(`v`)])

> Nlengde := simplify( norm(N,2) ); Regner ut lengden |N| av vektoren N, som gir flateelementet dS = |N| du dv.

Nlengde := (1-cos(`v`)^2)^(1/2)

> Areal := Int( Int( Nlengde, v=c..d), u=a..b); Setter opp arealet som et symbolsk integral

Areal := Int(Int((1-cos(`v`)^2)^(1/2), `v` = (0 .. Pi)), `u` = (0 .. 2*Pi))

> simplify( value(Areal) ); Evaluerer integralet (eksakt hvis mulig; hvis ikke mulig gir Maple bare det symbolske integralet tilbake)

4*Pi

> evalf(Areal); Numerisk verdi (alltid mulig)

12.56637061

> Massetetthet := cosh(u+v); Vi kan integrere andre funksjoner over flaten, uttrykt ved parametrene u og v. F.eks. kan vi ha en massetetthet pr. flateenhet. Her har vi valgt en funksjon som eksempel.

Massetetthet := cosh(`u`+`v`)

> Total_masse := Int( Int( Massetetthet*Nlengde, v=c..d), u=a..b); Setter opp total ladning som et symbolsk integral

Total_masse := Int(Int(cosh(`u`+`v`)*(1-cos(`v`)^2)^(1/2), `v` = (0 .. Pi)), `u` = (0 .. 2*Pi))

> simplify( value(Total_masse) ); Evaluerer integralet eksakt, hvis mulig

-1/4*(exp(4*Pi)-exp(2*Pi)-exp(5*Pi)+exp(Pi)-exp(6*Pi)+1)*exp(-3*Pi)

> evalf(Total_masse); Finner numerisk verdi

3226.010009

>