gooブログはじめました!

写真付きで日記や趣味を書くならgooブログ

Excelで流線のグラフをつくる

2016-01-24 08:30:06 | ブログ

 流体力学で、一様流中に静止する円柱について、その流線を計算した。流線とは、流れのみちすじを示す曲線のことである。Excelのグラフ機能を使って、その計算結果をグラフ表示することにした。

 流線は、y>0領域に6本、y<0領域に6本、合計12系列つくることにし、-3<x<3を設定する列にxのキザミ値を入力し、各系列に計算結果のデータを入力した。円柱に沿った流線のデータを入力するために、ExcelのSQRT関数を利用した。

 今回のグラフ表示は、ブログの記事にうまくイメージを添付できるかどうかを確認するためである。

 なお、問題の流線をどのように計算するのかについては、次のブログの記事としたい。

 参考文献
 金丸隆志著「理系のためのExcelグラフ入門」(ブルーバックス)

なぜ複素数が必要なのか

2016-01-03 14:45:21 | ブログ
 中学校の数学では、2次方程式ax**2+bx+c=0の解き方が出てくる。ここでは、平方根の中の判別式b**2-4acが負でない場合のみ解ありとし、これが負の場合には、解なしとして扱っている。

 高校の数学では、判別式が負の場合、すなわち解が複素数となる場合も解ありとし、複素平面や複素数についての簡単な演算も扱っている。

 しかし、多くの人々は、複素数という数があるな、というくらいの記憶しかなく、問題解決に複素数を利用したとう経験はほとんどないのではなかろうか。

 x-y座標は、例えばy=ax+bのような式を表現するには便利であるが、物理学や工学でよく出てくる円のような回転対称な曲線を表現するには向いていない。このため、このような曲線を扱うとき、平面上の点の位置を動径rと偏角シータ(以下、tで表す)の2つの変数で表現する極座標を使うことが多い。しかし、極座標形式の数式を扱うときも、2つの変数(r,t)についての演算を行うときには言うまでもなく、rが一定で1つの変数tについての演算を行うときでさえ、その計算は面倒なものになりがちである。

 数式を極座標上の2つの実数の変数(r,t)で表現する代わりに、複素数zで表現すれば、1つの変数を扱うことになり、計算が楽になる場合があるのではないかという期待がもてる(もっとも、複素数zを用いて計算するという不安感や抵抗感のようなものを克服する必要はあるが)。複素数zについての演算は、多くの場合、実数xについての演算と同じ形式になる。

 複素数zをx-y座標上の点(x,y)と対応させれば、z=x+iy(iは虚数単位)であるが、極座標上の点(r,t)と対応させれば、z=rexp(it)と表現できる。xの関数exp(x)は、微分しても積分してもexp(x)のままという計算に便利な関数なので、zのexp表現も同様のご利益にあずかれる。

 以下、複素数を利用する3つの例について説明する。

 第1の例は、電気・電子工学で交流をとり扱う方法に関するものである。

 交流電圧と交流電流を、各々、x-y平面上で原点Oのまわりに回転するベクトルとみなすことができる。電圧ベクトルの絶対値をE、x軸からの位相角をaとすると、交流電圧は、複素数表示を用いてEexp(ia)で表される。また、交流ベクトルの絶対値をI、位相角をbとすると、交流電流は、時間変数をtとして、Iexp(kt+b)iのように表される。kは定数である。

 インダクタンスL、コンデンサーC、抵抗Rをもつ回路に交流電圧を印加するとき、この回路に流れる電流の時間発展は、時間に関する微分方程式で表現できる。この場合、電流、電圧を複素数表示にすると、微分や積分の答が機械的に得られ、非常に便利である。

 第2の例は、複素数zを変数とする複素関数f(z)を用いて、数式を単純化したり、演算を簡易化する方法に関するものである。
 
 まず、関数f(z)を用いて、実変数xの関数f(x)の定積分を行う方法について説明する。

 f(z)の積分については、コーシーの定理という便利な定理がある。それは、「積分路が閉じていて、その内側に被積分関数の特異点がなければ、その積分路に沿った線積分の結果は0である。」というものである。

 積分対象となる複素関数のほかに、任意の積分路を示す関数が指定されなければならない。円や直線によって閉じた積分路を指定するのが便利である。積分路が円であれば、それは変数zそのものを表すことになる。

 複素関数の特異点とは、以下の条件が成り立たない点である。その条件とは、その点の値が有限であり、かつその点で複素微分が可能であるという条件である。例えば、f(z)=1/zとすると、z=0は特異点である。しかし、z=exp(it)と置き換えると、z=0の特異点を避けられる。

 積分路上には特異点がないのに、なぜその内側に特異点があってはならないのか。おそらく、指定した積分路の内側にあって、この積分路から連続的に変形できる閉曲線は、すべてコーシーの定理の適用範囲であるので、結局、指定した積分路の内側にある点すべてが定理の適用範囲になるのであろう。

 以下、単純な閉曲線を例にとって、複素関数f(z)の定積分を求める方法を概念的に示す。

 x-y平面上で(-c,0)から(c,0)まではx軸上の直線であり、(c,0)から(-c,0)までは半径cの半円の円周で構成される閉曲線とする。

 複素関数f(z)の定積分は、
直線上でのf(z)の定積分+半円周上でのf(z)の定積分=0
である。第1項は実数の積分に他ならないから、
    Rl(f(z))の定積分+半円周上でのf(z)の定積分=0
となる。Rl(f(z))はf(z)の実数部分なので、xの関数となる。

 従って、Rl(f(z))の積分は困難であるがf(z)の積分が比較的容易な場合には、実変数関数の積分の代わりに第2項のf(z)の積分を行えばよいことになる。

 次に、流体力学において、複素関数を巧妙に利用して演算する例を挙げる。

 流体力学において重要な変数は、直角座標(x,y,z)における速度ベクトルv(u,v,w)と圧力p(x,y,z)である。u,v,wは、各座標における速度成分である。速度ベクトルvは、流体の流れのみちすじを示す流線のある位置の接線上にある。

 各速度成分は速度ポテンシャル関数(x,y,z)から導かれると考えるのが便利である。この関数をx,y,zで偏微分すると、各々u,v,wが得られる。速度ベクトルvは、速度ポテンシャルの等ポテンシャル面(x,y,z)の法線方向にあると考えればよい。これは、気象学において、低気圧や高気圧が渦なしとしたとき、等圧線の法線方向に風速ベクトルがあるのと類似している。

 以下の説明は、縮まない完全流体(粘性のない流体)の2次元の渦なし運動に関するものである。2次元の流れを考えるとき、流れの関数(x,y)と呼ぶ一種のポテンシャルを考えるのが便利である。流れの関数の等ポテンシャル曲線(x,y)を考えると、これは流線に相当するので、この曲線を横切るような流れはなく、流量は0である。速度ポテンシャル(x,y)が知られていなくても、流体の流量や流線の状態から流れの関数が容易に求まる場合がある。流れの関数が分かれば、それをyおよびxで偏微分することにより、各々u,-vが求められる。また、両者の等ポテンシャル曲線が直交している関係から両者の関係式(コーシー・リーマンの方程式と呼ばれる)によって速度ポテンシャル(x,y)が計算できる。

 さらに、速度ポテンシャルを実数部、流れの関数を虚数部とする複素速度ポテンシャルf(z)を考えることができる。すなわち、
f(z)=速度ポテンシャル+i×流れの関数, z=x+iy
である。f(z)をxについて微分し、上記関係式を使うと、
df/dz=u-iv=qexp(-it)
が得られる。ただし、速度ベクトルの大きさをq、x軸となす角をtとして、
    u=qcost, v=qsint
の関係を用いてある。

 速度ポテンシャルあるいは流れの関数が知れている場合に速度を求めるには、微分演算をx,yについて2回行わねばならないのに対して、複素速度ポテンシャルfを用いると、それを微分することにより、一挙に速度ベクトルが得られるのである。

 第3の例は、量子力学における複素数の利用に関するものである。

 量子力学では、複素数があると計算に便利であるという域を越えて、量子力学の基本的な方程式をつくるとき、複素数が不可欠となる。これは、2次方程式の解法を教えるとき、中学数学では何とか複素数を避けて通ったが、高校数学となると、もはや避けて通れず、複素数を扱わざるを得ないのと同様である。

 量子力学では、シュレディンガー方程式をつくるとき、物理量を演算子に置き換えている。例えば、粒子の運動量pを2乗した量p**2はマイナスの演算子に対応するから、運動量pに対応する演算子は、係数×i×(d/dx)のように、どうしても虚数iが現れてしまう。そうすると、方程式の解となる波動関数も、一般には複素数となる。ここで、d/dxは微分演算子である。

 ここで、微分演算子にも抵抗感があるかも知れない。関数f(x)に左から演算子d/dxを作用させると、それはf(x)をxで微分することを意味するから、微分演算子単独では単なる記号の意味しかもたないが、関数に作用させると微分結果の関数という意味あるものになる。粒子の位置など何らかの状態を定量的に表すベクトルに適当な行列を作用させると、別の状態を表すベクトルが得られるのと同様である。つまり、演算子は行列に、波動関数はベクトルに対応することになる。

 それにしても、微分演算子というのは、よくできている。微分を2回行う演算子は、(d/dx)(d/dx)であるが、これは、(d/dx)**2のことであるから、微分演算子を変数のように扱えるということであり、これが-の値に対応するのなら、d/dxには必然的に虚数iがついてくるということである。

 波動関数に複素数がついてまわろうが、そうでなかろうが、波動関数の構成要素をcexp(ikt)のように複素数表示するのが便利である。波動というものはその構成要素にcos(kt)やsin(kt)で表される波を含むからである。これによって、波動関数に関する計算が格段に簡易化される。

 参考文献
 数学、物理学の一般的な教科書のほかに、流体力学の分野では、
  今井功著「物理テキストシリーズ 流体力学」(岩波書店)