--- go_furuya@infoseek.jp wrote:
> hi CY
>
> you write 10/09
> >I want to find the Laplacian in polar coordinates.
>
> My answer is that
>
> (C1) eq[1]:sin(p)*cos(q)*r=x $
> (C2) eq[2]:sin(p)*sin(q)*r=y $
> (C3) eq[3]:cos(p)*r=z $
> (C4) depends([r,p,q],[x,y,z])$
>
(C5)solve([diff(eq[1],x),diff(eq[2],x),diff(eq[3],x)],[diff(r,x),diff(p,x),diff(q,x)]);
> there is a bug in trigsmp.lisp. so we shoud use share/trgsmp.mc
> (C6) load(trgsmp);
> (C7) trigsimp(D5);
> (C8) sq1:D7[1]$
> (C9)
>
trigsimp(solve([diff(eq[1],y),diff(eq[2],y),diff(eq[3],y)],[diff(r,y),diff(p,y),diff(q,y)]))$
> (C10) sq2:D9[1]$
> (C11)
>
trigsimp(solve([diff(eq[1],z),diff(eq[2],z),diff(eq[3],z)],[diff(r,z),diff(p,z),diff(q,z)]))$
> (C12) sq3:D11[1]$
>
> (C13) depends(u,[r,p,q]);
> (C14) duxx:expand(subst(sq1,diff(subst(sq1,diff(u,x)),x)))$
> (C15) duyy:expand(subst(sq2,diff(subst(sq2,diff(u,y)),y)))$
> (C16) duzz:expand(subst(sq3,diff(subst(sq3,diff(u,z)),z)))$
> (C17) expand(duxx+duyy+duzz)$
> (C18) trigreduce(%);
> (C19) expand(%);
> 2 2
> 2 d u d u
> du CSC (p) --- --- du
> 2 2 -- 2 2 COT(p) --
> d u dr dq dp dp
> (D19) --- + ---- + ----------- + --- + ---------
> 2 r 2 2 2
> dr r r r
> Of cource directly calc subst(sq1,diff(u,x,2)),but on that occasion
> we must recalc diff(r,x,2)....,so on.
>
> Gosei Furuya (go_furuya@infoseek.jp)
Nice! Thanks! About the bug in trigsimp.lisp - is there a reason we
have two different packages for this kind of stuff? I recall that when
I asked the question about grad, vect.mc had to be used and even then a
couple changes were needed. What's the history behind these different
packages?
CY
__________________________________________________
Do You Yahoo!?
Make a great connection at Yahoo! Personals.
http://personals.yahoo.com