桂田 祐史
Date: 2022年5月24日, 2022年5月30日
 +
+
 で実行する。
コマンドを打ち間違えても、
戻って修正してから
 で実行する。
コマンドを打ち間違えても、
戻って修正してから 
 +
+
 すれば良い。
 すれば良い。
 +
+
 として、
Documentation のところをクリックすれば良い。
ContourPlot[] や Table[] など調べてみると良い。
 として、
Documentation のところをクリックすれば良い。
ContourPlot[] や Table[] など調べてみると良い。
以下のコマンドをコピペして実行してみれば良いが、
一気にコピペすると、
複数のコマンドが団子になって大きなセルになってしまうので、
少しずつ(あるいはタイプして入力する) ことを勧める。セルは 
 +
+
 +D で分割することもできる。
+D で分割することもできる。
| 一様流の可視化 uniform_flow.nb | 
| 
(* uniforma_flow.nb *)
p=1; q=2; c=p-q I
Clear[f,phi,psi,vv]
f[z_]:=c z
phi[x_,y_]:=ComplexExpand[Re[f[x+I y]]]
psi[x_,y_]:=ComplexExpand[Im[f[x+I y]]]
(* 次は1つずつ実行して式を見る *)
phi[x,y]
psi[x,y]
g1=ContourPlot[phi[x,y]==Table[level,{level,-5,5,1.0}],{x,-2,2},{y,-2,2},
  ContourStyle->Directive[Red,Thin]]
g2=ContourPlot[psi[x,y]==Table[level,{level,-5,5,1.0}],{x,-2,2},{y,-2,2},
  ContourStyle->Directive[Blue,Thin]]
vv[x_,y_]:={Re[f'[x+I y]],-Im[f'[x+I y]]}
g3=VectorPlot[vv[x,y], {x,-2,2},{y,-2,2}, VectorScaling -> Automatic]
gall=Show[g1,g2,g3]
Export["uniform_flow.png", gall]
Export["uniform_flow.pdf", gall]
 | 
この uniform_flow.nb が入力できたら、 それを元にして次の source.nb を作ると簡単である。
| 湧き出しの可視化 source.nb | 
| 
(* source.nb *)
m=1
Clear[f,phi,psi,vv]
f[z_]:=m Log[z]
ComplexExpand[f[x+I y]]
phi[x_,y_]:=ComplexExpand[Re[f[x+I y]]]
psi[x_,y_]:=ComplexExpand[Im[f[x+I y]]]
g1=ContourPlot[phi[x,y]==Table[Log[r],{r,0.1,3.0,0.2}],{x,-2,2},{y,-2,2},
   ContourStyle->Directive[Red,Thin]]
g2=ContourPlot[psi[x,y]==Table[t,{t,-Pi,Pi,Pi/10}],{x,-2,2},{y,-2,2},
   ContourStyle->Directive[Blue,Thin]]
Show[g1,g2]
vv[x_,y_]:={Re[f'[x + I y]], -Im[f'[x + I y]]}
(* 次はうまく行かない *)
g3=VectorPlot[vv[x, y], {x, -2, 2}, {y, -2, 2}, VectorScaling -> Automatic]
(* 原点の近くで大きいから、他が短くなってしまう *)
g3=VectorPlot[vv[x, y] Boole[x^2 + y^2 > 0.2], {x, -2, 2}, {y, -2, 2},
              VectorScaling -> Automatic]
g4 = Show[g1, g2, g3]
Export["source.png", g4]
Export["source.pdf", g4]
 | 
| ターミナルからの入手法 | 
| curl -O http://nalab.mind.meiji.ac.jp/~mk/complex2/uniform_flow.nb curl -O http://nalab.mind.meiji.ac.jp/~mk/complex2/source.nb |