数学の具体的な計算にMaximaを使って、数学もMaximaも同時に学んでしまいましょう。今回はMaximaを使ってベクトル解析をしてみたいと思います。微分演算子 を使ったベクトルの演算を定義し、その公式をいくつかみてみます。また、それらの演算や公式の微分形式における意味について解説します。
Maximaのごく基本的な使い方については以下の記事を参照してください:
を参考にしてみてください。
勾配(gradient)
勾配ベクトル
をMaximaに入力するには
depends([f],[x,y,z])$ grad(f):=matrix([diff(f,x)],[diff(f,y)],[diff(f,z)])$
とします。たとえば の場合には
grad((x^2+y^2+z^2)/2);
により
と計算されます。
方向微分
ベクトル解析ではあまり見かけませんが、関数 をベクトル
の方向に偏微分した時の偏微分係数は
によって計算できます:
inn(a,b):=transpose(a).b$ depends([Vx,Vy,Vz],[x,y,z])$ V:matrix([Vx],[Vy],[Vz])$ dirder(V,f):=inn(V,grad(f))$
たとえば を
方向に偏微分すると
dirder(matrix([1],[1],[0]), (x^2+y^2+z^2)/2);
より、その偏微分係数は と求まります。
回転(rotation または curl)
rot(V):=matrix( [diff(V[3][1],y)-diff(V[2][1],z)], [diff(V[1][1],z)-diff(V[3][1],x)], [diff(V[2][1],x)-diff(V[1][1],y)])$
たとえば と選ぶとその回転は
rot(matrix([x*z],[z*y],[y*x]));
により と計算されます。
また別なベクトル場として の回転をとってみると
rot(matrix([-y],[x],[0]));
より と求まります。
さらに、ベクトル場として を選ぶと
rot(matrix([x],[y],[0]));
より となります。
ちなみに、回転 は、微分形式の言葉でいうと1-形式
に外微分 を作用させた
の各成分です。ここで はウェッジ積というもので
ウェッジ積(wedge product)
という性質をもった反対称な積です。高次の積についても同様に
などです。また、積は線型性
をみたすものと定義します。ここで と
は0-形式(関数または定数)とします。
発散(divergence)
div(V):=diff(V[1][1],x)+diff(V[2][1],y)+diff(V[3][1],z)$
たとえば を選ぶと、その発散は
div(matrix([x-y],[x-y],[0]));
より と計算されます。
発散 は、微分形式の言葉でいうと2-形式
に外微分 を作用させた
の成分です。
ラプラシアン(Laplacian)
Lap(f):=div(grad(f))$
まず、 というのは、0-形式
に外微分をしたものです。
ここではそのあと発散をとっているわけですが、0-形式の外微分は1-形式なので、
2-形式の外微分として表される発散の演算はできません。
そこでホッジ作用素 という演算が導入されて、それは
ベクトル解析の公式
裳華房の『解析学解論』(矢野・石原)は、ベクトル解析(だけでなく、常微分方程式、複素解析、フーリエ解析)のエッセンスが要領よくまとめられ、豊富な練習問題が載っていて、理工系学部生におすすめです:
手計算でテキストをフォローできるようになることも必要ですが、Maximaを使って問題を解いてみるのも、Maximaの使い方の練習問題としても有用です。
上で導入したベクトルの演算に対して以下の公式が成り立ちます:
その3
rot(rot(V))-grad(div(V))+Lap(V);
この公式を少し整理した
ですが、これは微分形式の言葉でいうと2-形式
のラプラシアンの定義そのものです:
ここで -形式に作用する余微分作用素
その4
ext(a,b):=matrix( [a[2][1]*b[3][1]-a[3][1]*b[2][1]], [a[3][1]*b[1][1]-a[1][1]*b[3][1]], [a[1][1]*b[2][1]-a[2][1]*b[1][1]])$ expand(rot(f*V)-f*rot(V)-ext(grad(f),V));