• ベストアンサー

頭は文系なんですが・・・

stomachmanの回答

  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.7

さてと、もういっちょ行きますか。第2弾。 (やっぱり、高校の微分法の教科書か参考書は用意して、微分法だけでも読んで置いてくださいね。) ●記号がいちいちめんどくさいので、以後 x= n1*、y= n2*、z = t* と書くことにします。またdx/dzというのは dx -- dz という微分の記号のことですよ。これで書くと、無次元化したLotka-Volterra方程式(L-V方程式)は dx/dz = x(1-y) dy/dz = -ay(1-x) ですね。 ●この式を見て(中学生でも)分かるように、 # dx/dz =0となるのはx=0かy=1のときである。 # dy/dz =0となるのはx=1かy=0のときである。 しかし、絶滅しない限りx=0やy=0は起こらないので、 # 「dx/dz =0となるのはy=1のときで、dy/dz =0となるのはx=1のとき。」と言える。 さらに、dy/dx = (dy/dz)/(dx/dz) (高校の教科書より)であるから、 # dy/dx = -ay(1-x)/(x(1-y)) 同様にして、 # dx/dy = -x(1-y)/(ay(1-x)) である。従って、 # dy/dx = 0となるのはx=1かy=0のときである。 # dx/dy = 0となるのはx=0かy=1のときである。 ということが分かる。dy/dx = 0とは相平面の軌道がx軸と平行になる位置、dx/dy = 0とはy軸と平行になる位置である。 ●保存則は # S=(x-ln(x))+(y-ln(y))/a = 一定 証明: Sをzで微分すると、 dS/dz = dx/dz - d(ln(x))/dz + (1/a)dy/dz - (1/a)d(ln(y))/dz ここで d(ln(x))/dz = (1/x) dx/dz であるから、 dS/dz = dx/dz - (1/x) dx/dz + (1/a)dy/dz - (1/(ay))dy/dz = (1- 1/x) dx/dz + (1/a)(1-1/y) dy/dz ここにL-V方程式を代入すると、 dS/dz = (1- 1/x)x(1-y) + (1/a)(1-1/y)(-ay(1-x)) = (x-1)(1-y) - (y-1)(1-x) = 0 これで dS/dz = 0が証明できた。  この保存則を満たすような曲線が、相平面上の軌道、すなわちL-V方程式の解である。(微分方程式の解というのは、数値ではなく、曲線あるいは関数です。)しかし、この保存則は当然の事ながらzを含んでいない。したがって、これだけでは時系列でx,yの変化を描くことはできない。 ●x-ln(x) は(x>0)において、x=1のとき最小値1を取る。(グラフを描いてみると分かります。)従って # S≧(1+1/a)である。 # x=1のときdy/dx = 0となる。このとき、y-ln(y)=a(S-1) である。 この方程式は2つの解 ymax,yminを持つ。グラフを描いてみると分かります。) # y=1のときdx/dy = 0となる。このとき、x-ln(x)=S-1/a である。この方程式は2つの解xmax,xminを持つ。つまり、 # 相平面上の軌道は、y=ymin, y=ymax, x=xmin, x=xmaxの4本の直線で作られる長方形に内接している。長方形との接点は(x,y) = (1,ymin), (1,ymax), (xmin,1),(xmax,1)の4点である。 ●保存則を使った計算 dx/dz = x(1-y) dy/dz = -ay(1-x) を単純に差分化して計算すると、(x*, y*を次の時刻における値として) Δx = x(1-y)Δz、x* = x+Δx Δy = -ay(1-x)Δz、y* = y+Δy であるが、通常、誤差が累積して渦巻きになってしまう。(多分、やってみると分かります。)そこで、初期値を決めたときに、あらかじめS=(x-ln(x))+(y-ln(y))/aを計算しておく。以後、このSをずっと使って、 (1) Δx = x(1-y)Δz、x* = x+Δx はそのまま使い、y* は、保存則を使って計算する。 (2) Δy = -ay(1-x)Δz、y* = y+Δy はそのまま使い、x* は、保存則を使って計算する。 という二つの方法を使うと良い。 まず、(2) の場合の計算法を示す。 step1) Δy = -ay(1-x)Δz を使って、次のyの値を計算し、これをy*とする。 step2) S=(x*-ln(x*))+(y*-ln(y*))/a を満たすようなx*を求めたい。すなわち、C = (y*-ln(y*))/a - S とおき、関数f(x)を f(x) = (x-ln(x)) +C と定義すると、f(x*) = 0 になるx*を求めたい。そこで、この方程式をNewton法で解く。まずf(x)をxで微分した物をf'(x)と書くと、 f'(x) = d(f(x))/dx = 1 - (1/x) である。 Newton法step-1) Δx = x(1-y)Δzを使って、次のxの値を計算し、これをx0とする。 Newton法step-2) x1 = x0 - f(x0)/f'(x0), x2=x1-f(x1)/f'(x1),....を計算すると、数回~10回程度で収束する。これをx*とする。 (1)の場合も、同様のやり方でy*を計算できる。(導出できますか?) # xが1に近いときには、(1)の方法を使い、yが1に近い時には(2)の方法を使うと良い。 なぜなら、xが1に近いとf'(x)がほとんど0になってしまうので、分母がほとんど0のわり算を行うことになり、f(x)/f'(x)がとんでもなく大きくなる。 この方法を使うと、渦巻きにならないで周期軌道が描ける。 ●Newton法を利用して、ymax,ymin,xmax,xminを求めることができる。 ●ここまで来れば、初期値をいろいろ変えたり(と言っても、どちらか一方を1にして、他方だけ動かせばよい。)aを変えたりして、色々な軌道を描けるようになりました。また軌道を描く前に、軌道に外接する長方形が分かるようになった訳です。 ●Newton法の意味についてはまた別途質問してね。

関連するQ&A

  • 閾値付き拡散方程式

    n次元(1次元限定でも可)拡散方程式 ∂u/∂t = ∇^2 u において、u<σとなったら、u=0という条件をつけます。 0. この方程式は数学的に意味があるでしょうか?   つまり、デルタ関数とか弱解といった分野的に、という意味です。 1. この方程式は解析的に解けるでしょうか? 2. 各種の数値解法を適用した場合、   数値解は格子のスケールに依存しないでしょうか?

  • 差分法とオイラー法の違いについて

    最近微分方程式の数値解析について学びだした者です。 微分方程式の数値解法として差分法とオイラー法があると思うのですが、この2つの違いや互いの位置づけはどうなっているのでしょうか? また、差分法には風上法などがありますが、これらとオイラー法の位置づけについても教えていただきたいです。 できればこれら近辺の全体的な体系について教えていただけるとうれしいです。よろしくお願いします。

  • 数値解析の手法(差分法)について

    現在、とある2元の1階偏微分方程式(解はu,vでそれぞれ右と左に進行する波)を数値解析によって解こうと考えています。 数値解析の手段として、差分法がよく用いられると思いますが、 現在、私は、場所に関してはuは後退差分、vは前進差分を使い、 時間に関しては前進差分を使って解いています。 ネットでは場所に関しては中心差分、時間に関してはルンゲ=クッタやリープフロッグなどが 使われていることが多く、私もこの2つを用いて解いてみました。 偏微分方程式には線形項が含まれていたため、 線形問題に対する制約であるΔt/Δx << 1は最低満たすように刻み幅をいろいろ取り、 計算時間も辞さず計算機を動かしてみましたが、 ノイズが消えず、解析解に限りなく近づくには至りませんでした。。 Δt/Δx=0.0001なども試したのですが・・・ そこで、諦めて違う差分法を試し、 場所に関して、uは後退差分、vは前進差分を使い、 時間に関しては前進差分を使って見たところ、 Δt/Δx=0.01程度で解析解に近い、なかなか精度の良い数値解を得ることが出来ました。 2次の差分では上手くいかず、1次の差分だとわりかし上手くいく・・・ 精度的には中心差分やルンゲ=クッタなどの方がいいと思うのですが・・ 正直不思議でなりませんでした。。。 最初に試した差分法のコードミスかと思い、何回もコードを確認し直しましたが、 やはり解析解に近づくには至りませんでした。 こんなことってあるのでしょうか?? 差分法でも場合によって使い分ける必要があるということでしょうか・・? その場合分けするときの指標など、知っておられる方、教えて頂けると助かります。 問題によって

  • 数値解析 微分方程式

    数値解析における常微分方程式を解くために用いる手法についてです。 オイラー公式、ホルン公式、ルンゲクッタ、ルンゲクッタ4次、有限差分法の関係 違いがよくわからなのでどなたか教えてください また常微分方程式を有限差分で解くとなったとき、結局オイラー公式などを使うと言う認識で間違いないでしょうか?それとも有限差分だけで解けるのでしょうか

  • 流体解析(ナビエ・ストークスでベナール対流の非定常解析)について

    連続の式,Navier-Storksとエネルギー方程式をHSMAC法にてベナール対流の非定常解析をしていますが、困っています。二次元、縦横比8:1の長方形領域にて、左の加熱面付近が”振動”しているようなのです。これが原因で非対称となり、時間が発展すると渦が奇数個になってしまいます。離散化はEular陽解法、移流項は一次風上差分、拡散項は中心差分を行っています。2次元の移流拡散方程式(移流項は中心差分)の安定条件は満たすようにDTを決めています。どうればよいでしょうか。

  • 解析的に解くと言えば、一般解や厳密解を求めることでしょうか。

    解析的に解くと言えば、一般解や厳密解を求めることでしょうか。 FEMのような数値解析は、解析的に解くとは言わないんでしょうか。 英語で論文を書いているのですが、 FEMによる方法を numerical analytical methodと書こうと思ってますが、 方程式の一般解を導いた方法は英語で何と書けばよいのでしょうか。 単に,analytical method でよいのでしょうか? analytical method と書いたら、numerical analytical methodのことも 含みますか? お恥ずかしいですが、こんな低レベルで論文を書こうとしていますww よろしくお願いいたします。

  • 解析的の意味?

    数学の用語に関する質問です. 方程式を解く際に, 「解析的に解けないので数値的に解く」 場合がよくありますが, なぜ 「解析的」 と呼ぶのでしょうか? 「代数的」 の方がしっくりくるのですが. 複素関数の分野でしたら解析的は微分可能といいますし,場合によって読み手が解釈を変更する必要があるのでしょうか?

  • 統計解析の勉強で使うデータ

    大学3年で、数学を勉強しています。 今はルベーグ積分や微分方程式を勉強していますが、統計にも興味があります。 本屋さんで統計のコーナーを見ると、数学に近いけど、若干違うのかな、という配列人なっている感じがします。 統計学って、数学科よりも工学系の学科や経済学部で勉強した方がいいのでしょうか? そもそも、統計って、それを分類したり解析したりするもので、教科書にのっているものは、数値の個数が少なかったり、当たり前の子ことを調べるためのデータのような気がします。どういうデータを使って勉強したらいいのでしょうか。

  • 拡散方程式の数値計算(有限差分法)による解き方

    下記の拡散方程式を数値計算(有限差分法)で解き方について教えてください。 拡散方程式 D∂^2C(x,y,t)/∂x^2+u∂C(x,y,t)/∂x=∂C(x,y,t)/∂t 境界条件 D∂C(x,y,t)/∂x=(K/β-u)×C(x,y,t)-KC'(y,t) at x=0 初期条件 C(x,y,0)=Co at t=0 質量保存則 ∂C'(y,t)/∂y=4/vd(K/β×C(0,y,t)-KC'(y,t) ) ---------------------------------------------------------- また、可能であれば、有限差分法以外にも数値解法(有限要素法、有限体積法など)があると思いますが、拡散方程式を解く場合、どの解法が一般的に適しているのか教えてください! よろしくお願い申し上げます。

  • 数学科の人は計算が苦手って本当ですか?

    数学科の人は1+1の証明とかそういうことを大学で勉強しているから計算が苦手ということを聞きました。フーリエ解析や偏微分方程式などの計算ができないのではないか?実は物理学科の学生のほうが計算はできるんだと物理学科の学生が言ってました。実際はどうなんでしょうか?