MapleでLaplace演算子を直角座標系からボール座標系に変換します。

1722 ワード

詳細な結果と導出:
https://en.wikipedia.org/wiki/Laplace_operator
http://skisickness.com/2009/11/20/
http://mathworld.wolfram.com/LaplacesEquationSphericalCoordinates.html
http://planetmath.org/derivationofthelaplacianfromrectangulartosphericalcoordinates
方法の一つ
restart;
f:=g(r,theta,phi);
tx :=sin(theta)*cos(phi)*diff(f,r)+((cos(theta)*cos(phi))/r)*diff(f,theta)-(sin(phi)/(r*sin(theta)))*diff(f,phi);
tx2:=expand(sin(theta)*cos(phi)*diff(tx,r)+((cos(theta)*cos(phi))/r)*diff(tx,theta)-(sin(phi)/(r*sin(theta)))*diff(tx,phi));
ty :=sin(theta)*sin(phi)*diff(f,r)+((cos(theta)*sin(phi))/r)*diff(f,theta)+(cos(phi)/(r*sin(theta)))*diff(f,phi);
ty2:=expand(sin(theta)*sin(phi)*diff(ty,r)+((cos(theta)*sin(phi))/r)*diff(ty,theta)+(cos(phi)/(r*sin(theta)))*diff(ty,phi));
tz := cos(theta)*diff(f,r)-(sin(theta)/r)*diff(f,theta);
tz2 := expand(cos(theta)*diff(tz,r)-(sin(theta)/r)*diff(tz,theta));
del := tx2+ty2+tz2:
del := algsubs( cos(theta)^2=1-sin(theta)^2, del ):
del := expand(algsubs( cos(phi)^2=1-sin(phi)^2, del ));
方法の二
restart;
uu:=u(sqrt(x^2+y^2+z^2),arccos(z/sqrt(x^2+y^2+z^2)),arctan(y,x));
ux:=diff(uu,x):
uy:=diff(uu,y):
uz:=diff(uu,z):
uxx:=diff(ux,x):
uyy:=diff(uy,y):
uzz:=diff(uz,z):
Lapu:=simplify(uxx+uyy+uzz):assume(r,positive);
Lapu:=simplify(subs(x=r*sin(theta)*cos(phi),y=r*sin(theta)*sin(phi),z = r*cos(theta),arctan(sin(theta)*sin(phi),sin(theta)*cos(phi))=phi,arccos(cos(theta))=theta,Lapu),trig):
Lapu:=subs(arctan(sin(theta)*sin(phi),sin(theta)*cos(phi))=phi,arccos(cos(theta))=theta,Lapu):
Lapu:=algsubs(-1+cos(theta)^2=-sin(theta)^2,Lapu):
Lapu:=expand(Lapu);
同様に、Mathematica符号の計算コードを書くことができますが、微積分符号の計算と微分方程式符号の計算において、mapleの性能はより良いです。