2 レポート課題 part 1

締め切りは7月21日19:30 (以前18:00と言いましたが、 ゼミをやっている時間で、中途半端であると言われたので、 少しずらしました), 提出方法は Oh-o! Meiji. もし容量制限に引っかかった場合は、早目にメールで相談して下さい。 (FreeFem++ がうまくインストール出来ない、という場合も相談に乗りますが、 〆切が近づくとこちらも忙しいので、早目早目でお願いします。)

以下 [1]〜[5] から1つ以上解いて下さい。 使用するプログラミング言語の選択は基本的に自由ですが、 桂田が相談に乗るためには、 自分の MacBook Air で実行して見せてもらう必要があります1

[1]
正則関数の定める流れ (Mathematica を使うことを想定)
(1)
渦糸の等ポテンシャル線、流線、 ベクトル場を適当に (流れの様子が良く分かるように) 可視化する。
(湧き出しのサンプル・プログラムはあるので簡単のはず。 追記 プログラムは、 講義内容と対応するように書かれていて、 きちんと解読すること。 もちろん細かいところは問題に合うように書き換える必要がある。)
(2)
自分で思いつく正則関数を5つ以上試し (「 係数だけを変えて数合わせ」ではなく、なるべく「違う」ものを選ぶこと)、 そのうちの1つを選んで、 それを複素速度ポテンシャルとする流れについて、 等ポテンシャル線、流線、 ベクトル場を適切に可視化し、 それをもとにどういう流れであるか説明する (流量の計算をしてみるとか…)。

正則関数の実部・虚部の等高線自体は、関数論のテキストの多くに載っている。 凝りたければ、今井 [2] 等を見て関数を選ぶと良い。 追記 「簡単な流れの合成」という話をしてある。 それや初等関数の定める流れを描いてみることを授業で勧めた。

[2]
ポテンシャル問題を解くことによる流れの決定 (FreeFem++ を使うことを想定)
     2次元渦なし非圧縮の定常流で、 流体の占める領域の境界での流速が分かっている場合に、 速度ポテンシャル $ \phi$ 、流れ関数 $ \psi$ を計算して、 等ポテンシャル線, 流線, ベクトル場を可視化せよ。 -- $ \phi$

$\displaystyle \Laplacian\phi=0$   in $ \Omega $ $\displaystyle ,\quad
\frac{\rd\phi}{\rd n}=\bm{v}\cdot\bm{n}$   on $ \rd\Omega$

の解として求まる。$ \psi$ はどうすれば良いか? (念のため注意: 講義で説明したように、 解 $ \phi$ が存在するためには $ \dsp\int_{\rd\Omega}\bm{v}\cdot\bm{n}\;\D\sigma
=0$ が必要である。 $ \overline{\Omega}$ で定義された $ \bm{v}$ $ \Div\bm{v}
=0$ を満たすものはこの条件を満たすが、 $ \rd\Omega$ の上だけで $ \bm{v}$ を与える場合は注意すること。)
[3]
差分法による Poisson 方程式の解法 (1) (MATLAB を使うことを想定)
     こちらが提示した MATLAB のサンプル・プログラムは、 $ f\equiv 1$ , $ g_1\equiv 0$ という特殊な場合に

$\displaystyle -\Laplacian u=f$   in $ \Omega $ $\displaystyle ,\quad
u=g_1$   on $ \rd\Omega$

を解くものであるが、 これをより一般の条件のもとで解けるようにプログラムを拡張する。
そのプログラムを別のプログラミング言語 (例えば Python) に移植出来たら加点する。
[4]
差分法による Poisson 方程式の解法 (2)
Poisson 方程式の Neumann 境界値問題、すなわち

$\displaystyle -\Laplacian u=f$   in $ \Omega $ $\displaystyle ,\quad
\frac{\rd u}{\rd n}=g_2$   on $ \rd\Omega$

の解が存在するためには、 $ \dsp\int_{\rd\Omega}g_2\;\D\sigma
=-\int_{\Omega}f\;\D\bm{x}$ という条件が必要であり、 解が存在するときも解の一意性は成立しない ($ u$ に任意の定数を加えたものはまた解になるから)。 この事情は、離散化して作った差分方程式 $ A\bm{U}=\bm{F}$ でも変わらない。 $ \det A=0$ となっているため、解が存在するためには $ \bm{F}$ に条件が必要で、 解が存在する場合も一意性は成立しない (分からなければ線型代数を復習すること)。 この問題を解決し、差分解を求めるプログラムを作る。 1次元、すなわち

$\displaystyle -u''(x)=f(x)$   ($ x\in(0,1)$ )$\displaystyle ,\quad
u'(0)=a,\quad u'(1)=b
$

の場合で構わない。講義では、 $ u(0)=\alpha$ , $ u'(1)=\beta$ という問題に対して、 行列 $ A$ を与えてあるので、それをたたき台にして考察すると良い (なお、プログラムも C で書いたものを提供してある http://nalab.mind.meiji.ac.jp/~mk/complex2/potential/node5.html)。
この問題に対して、 ``いい加減な'' アプローチをしているプログラムが結構ある。 実は、この講義で提供している FreeFem++ のプログラムもそうである (笑)。 一度じっくり考えてみる価値のある問題である。
[5]
(基本解の方法に関する課題)
$ a,b$ $ a>b>0$ を満たす実数とするとき

$\displaystyle \Omega:=\left\{z=x+yi\in\mathbb{C}\relmiddle\vert
\frac{x^2}{a^2}+\frac{y^2}{b^2}<1\right\}
$

とおく (つまり、$ \Omega $ は楕円領域である)。 $ \Omega $ の等角写像 $ \varphi\colon \Omega\to D_1$ を、 基本解の方法を用いて求めよ。 (もし、厳密解を文献で見つけて、それを計算する方法が得られたら、 上で計算した解と比べて見よ。)

桂田 祐史
2017-08-11