• 検索結果がありません。

偏微分方程式とその数値計算

N/A
N/A
Protected

Academic year: 2021

シェア "偏微分方程式とその数値計算"

Copied!
24
0
0

読み込み中.... (全文を見る)

全文

(1)

偏微分方程式とその数値計算

樋口さぶろお

龍谷大学理工学部数理情報学科

計算科学☆演習II L07(2015-05-22 Fri)

最終更新: Time-stamp: ”2015-05-22 Fri 20:18 JST hig”

今日の目標

微分方程式が偏微分方程式かどうか判定できる 偏微分方程式(拡散方程式)の数値計算のプログ ラムを書ける

http://hig3.net

(2)

略解:モーメント母関数M(λ, t)からの母期待値の計算

L06-Q1

Quiz解答:モーメント母関数と確率

1 関係するのは e10λ3C1(peλ)1(qeλ)2 の項で,確率は,3pq2.

2 tが奇数のとき,t= 2t+ 1と書くと,関係するのは e10λtCt(peλ)t(qeλ)t+1 の項.

tが偶数のとき,e の項は現れず,係数は0.

よって,

P(9, t) =

0 (tが偶数)

t!

(t1 2 )!(t+1

2 )!pt21qt+12 (tが奇数)

(3)

略解:モーメント母関数M(λ, t)からの母期待値の計算

L06-Q2

Quiz解答:モーメント母関数

1 漸化式は,P(x, t+ 1) = 39P(x1, t) + 19P(x, t) + 59P(x+ 1, t),初項 P(x,2) =

{

1 (x= 3) 0 () .

2 漸化式は,M(λ, t+ 1) = (39eλ+19+ 59eλ)M(λ, t),初項は

M(λ,2) = e より,一般項は,M(λ, t) = e(39eλ+19 +59eλ)t2.

3 M(λ,100),e100λ の係数を考える. (39eλ+19 +59eλ)1002 e97λ の係数を考えればよく,P(100,100) =98C1(39)97(19)1

4 E[X(t)] = ∂λ M(λ, t)|λ=0= 329 ×(t2)

5 V[X(t)] = E[X(t)2](E[X(t)])2 = 6881×(t2)

:4のような問では,効く項が1個だけとはかぎらない. 2個以上の項の 和になることもある.

(4)

偏微分方程式とその数値計算

先週までのあらすじ

X(t)についての問題文 プログラミング x+=getrandom(getuniform());

頭で意味を考えて書き替え

P(x, t) の漸化式と初項 プログラミング 今日の話

形式的な式変形 M(λ, t) の漸化式と初項

等比数列の一般項を求める M(λ, t) の具体的な式

eλxの係数 P(x, t)

∂λ |λ=0

E[Xn]

(5)

偏微分方程式とその数値計算 P(x, t)と拡散方程式

ここまで来たよ

1 略解:モーメント母関数M(λ, t)からの母期待値の計算

2 偏微分方程式とその数値計算 P(x, t)と拡散方程式 P(x, t)の数値計算

(6)

偏微分方程式とその数値計算 P(x, t)と拡散方程式

P(x, t)と拡散方程式

微分の差分近似の復習

f(x+ ∆x)f(x)f(x)∆x f(x+ ∆x)f(x)

∆x f(x) (∆x0) f(x)f(x∆x)

∆x f(x) (∆x0)

P(x, t) X(t) の漸化式は,tt+ 1,x±1って言ってきたけど,ここ では tt+ ∆t,x±∆x と思おう.

p=q = 12 とすると,例えば,

P(x, t+ 1) =pP(x1, t) +qP(x+ 1, t)

P(x, t+ ∆t) =1

2P(x∆x, t) +1

2P(x+ ∆x, t)

(7)

偏微分方程式とその数値計算 P(x, t)と拡散方程式

±∆t,±∆x を微分で書きたい…

P(x, t+ ∆t)P(x, t) =1

2[(P(x+ ∆x, t)P(x, t))

(P(x, t)P(x∆x, t))]

∂P

∂t (x, t)∆t=1 2

(∂P

∂x(x, t)∂P

∂x(x∆x, t) )

∆x

∂P

∂t (x, t)∆t=1 2

(

∂x

∂P

∂x(x, t)∆x )

∆x

∂P

∂t (x, t) =1 2

(∆x)2

∆t

2P

∂x2(x, t)

熱や濃度のときは P(x, t) でなく,よくu(x, t) で書く. 12(∆x)∆t2 D >0:

拡散定数.

(8)

偏微分方程式とその数値計算 P(x, t)と拡散方程式

拡散方程式

拡散方程式(放物型偏微分方程式の典型例)

∂u

∂t(x, t) =D·2u

∂x2(x, t) x 軸上を,熱や溶けた砂糖が伝わっていく. u(x, t): 時刻tにおける,位置 x

温度, 砂糖濃度

u:

従属

変数,x, t:独立変数 解の例

u(x, t) =a(2t+x2) +bx+c. 確率,,砂糖の合計が変化しちゃう 期条件,境界条件.

u(x, t) = 1

2πDtex

2 2Dt

(9)

偏微分方程式とその数値計算 P(x, t)と拡散方程式

偏微分方程式

多変数関数 u(x1, x2, . . . , xn)に対する微分方程式で,いろんな独立変数 のの偏微分が混ざってるもの 常微分方程式 u(t) =2u(t).

x′′(t) =x(t).

拡散方程式,熱方程式は,偏微分方程式の中でも,放物型といわれるタイ

現象の数学A

別のタイプ: 波動方程式,双曲型 現象の数学B,ラプラス方程式,楕円型 太鼓の形

アニメ http://www.a.math.ryukoku.ac.jp/~hig/course/compsci2_

2013/img/pde-diff.cdf

常微分方程式: x(t): x が変化していく

偏微分方程式: u(x, t): 関数 u(x) が変化していく

(10)

偏微分方程式とその数値計算 P(x, t)と拡散方程式

L07-Q1

Quiz(偏微分方程式)

次のうち,偏微分方程式と呼べるのはどれとどれ?

1 計算科学IIでやったP(x, t) の漸化式の極限の微分方程式

2 物理数学IIでやったニュートンの運動方程式mx′′=kxbx.

3 物理数学IIや数理モデル基礎Iでやったx′′+ax+bx=c.

4 関数論でやった コーシー-リーマンの関係式

5 計算科学Iでやったルンゲクッタ法で解ける微分方程式

6 数理モデル基礎IIでやった,平衡点のタイプを考えるような連立微 分方程式

(11)

偏微分方程式とその数値計算 P(x, t)の数値計算

ここまで来たよ

1 略解:モーメント母関数M(λ, t)からの母期待値の計算

2 偏微分方程式とその数値計算

P(x, t)と拡散方程式

P(x, t)の数値計算

(12)

偏微分方程式とその数値計算 P(x, t)の数値計算

P(x, t)の数値計算

大注意:計算機使うけど

標本抽出

じゃない.

乱数

不要. 漸化式 P(x, t+ 1) = (P(∗, t)の式) を計算したい.

(rw6,sim6では横がt,n(サンプル番号)だったから逆) P(x, t) を配列 double u[x]で表す. 添字t ?

for(t)の中でu=P(x, t) を更新していく(ランダムウォークの x=x+getrandom(getuniform());と同じのり)

(13)

偏微分方程式とその数値計算 P(x, t)の数値計算

Cの配列の復習

1 d o u b l e u [ 1 0 ] ; /宣言/

2

3 i n t u [ ] ={0 , 2 , 3 , 1 , 0 , 0 , 0 , 0 , 0 , 0}; /宣言兼代入/

u[0],u[1],...,u[9]が使える.

u[-1],u[10]にアクセスすると不吉なことが起こる. 代入する前は,値が0である保証はもちろんない.

(14)

偏微分方程式とその数値計算 P(x, t)の数値計算

イメージするための例え話

U(x, t) 人のウォーカーが実際にいる.

数式的 U(x, t): 時刻 t,座標 x にいるウォーカーの人数. 上の状況なら

U(0, t) = 0, U(1, t) = 2, U(2, t) = 3, U(3, t) = 1, U(, t) = 0.

C U[x]座標 x にいるウォーカーの人数(時刻 t とともに更新) int U[10]; /*配列の宣言. 101 =x座標の上限*/

または

int U[]={0,2,3,1,0,0,...}; /*宣言兼代入*/

実際の double u[] 1.0/6みたいなも値.

(15)

偏微分方程式とその数値計算 P(x, t)の数値計算

u[]の更新: u での例え話

ut+1 = (utの式), u0=初項 を解く

1 d o u b l e u ;

2 d o u b l e u n e x t ;

3

4 /∗ こ こ で u を 初 項 に 従 っ て 初 期 化 ∗/

5

6 f o r( t =0; t<=tmax ; t ++){

7 / こ こ で 時 刻 t u を 出 力 /

8

9 / 漸 化 式 を 適 用 /

10 u n e x t =( u の 出 て く る 漸 化 式 右 辺 ) ;

11 u=u n e x t ;

12 }

u[t] とか使うのは効率悪い.

あれ? uunext2個あるのは無駄. u=(* uの出てくる漸化式右辺*);

でいいじゃん

(16)

偏微分方程式とその数値計算 P(x, t)の数値計算

u[]の更新: 本番

1 d o u b l e u [ xの 範 囲 の 長 さ ] ;

2 d o u b l e u n e x t [ xの 範 囲 の 長 さ ] ;

3

4 / こ こ で u [ x ] を 初 項 に 従 っ て 初 期 化 /

5

6 f o r( t =0; t<=tmax ; t ++){

7 /∗ こ こ で 時 刻 t u [ x ] を 出 力 ∗/

8

9 /∗ 漸 化 式 を 適 用 ∗/

10 f o r( x=xmin ; x<=xmax ; x++){

11 u n e x t [ x ] = ( u [ x ] の 出 て く る 漸 化 式 右 辺 ) ;

12 }

13 f o r( x=xmin ; x<=xmax ; x++){

14 u [ x ]= u n e x t [ x ] ;

15 }

16 }

次に出てくる境界条件は無視して書いてます.

(17)

偏微分方程式とその数値計算 P(x, t)の数値計算

L07-Q2

Quiz(2項係数の漸化式)

次のランダムウォークの確率の漸化式を考える.

P(x, t+ 1) = {1

5P(x1, t) +45P(x+ 1, t) (それ以外)

0 (x <1, x >6),

P(x,0) = {

0.5 (x= 1,3) 0 (それ以外)

下のような P(x, t) の表を,漸化式を適用して埋めよう.

t\x 2 1 0 +1 +2 +3 +4 +5 +6 +7

0 1 2

(18)

偏微分方程式とその数値計算 P(x, t)の数値計算

数値計算的悩み

1 問題 解決

2 x, tの範囲は正負両方配列の添字は0以上 オフセット

3 x, tの範囲は無限 配列のサイズを宣言 境界条件

(19)

偏微分方程式とその数値計算 P(x, t)の数値計算

配列の宣言:オフセット 範囲 x=xmin,· · ·,0,· · ·, xmax.

:xmin=10, xmax= 10 u[-10]とかエラー

1 #d e f i n e XMAX 10

2 #d e f i n e XOFFSET 10 /∗ ず ら し 定 数. −XMIN よ り 大 き め,

3 境 界 条 件 を 考 え る と も っ と 大 き く./

4 d o u b l e u [XMAX+1+XOFFSET ] ; /∗大きめサイズで宣言.

5 境 界 条 件 を 考 え る と も っ と 大 き く./

P(10, t)u[-10+XOFFSET]

...

P(0, t)u[0+XOFFSET]

P(x, t)u[x+XOFFSET]

...

P(10, t)u[XMAX+1+XOFFSET-1]

樋口さぶろお (数理情報学科) L07偏微分方程式とその数値計算 計算科学☆演習II(2015) 19 / 24

(20)

偏微分方程式とその数値計算 P(x, t)の数値計算

境界条件 計算機では,しょせん有限範囲

u[xmin+XOFFSET], · · ·, u[XMAX+1+XOFFSET]しか計算できない. しか〜し,端で困る.

unext[xmin+XOFFSET]=

0.5*u[xmin-1+XOFFSET]+0.5*u[xmin+1+XOFFSET];

解決策:

解くべき数学の問題を変更する.

P(x, t+ 1) =

1

2P(x1, t) +12P(x+ 1, t) (xminxxmax) スペシャルルール (xxmin1) スペシャルルール (xxmax+ 1) u[xmin-1+XOFFSET],u[XMAX+1+XOFFSET+1] を強制的に決める

今の場合,u[xmin-1+XOFFSET]=u[XMAX+1+XOFFSET+1]=0としておけば, もとの無限領域の問題と似る. 固定境界条件

世の中には,他に自由境界条件,周期境界条件,· · ·. 端から砂糖を投入,

(21)

偏微分方程式とその数値計算 P(x, t)の数値計算

微分方程式+初期条件+境界条件の書き方の作法

微分方程式

∂u

∂t(x, t) =D·2u

∂x2(x, t) (xmin< x < xmax, t >0) 初期条件

u(x,0) =xの式 (xmin< x < xmax, t >0) 境界条件

u(xmin, t) =u(xmax, t) = 0 (t0) xmin1 xmin と置き直した.

(22)

偏微分方程式とその数値計算 P(x, t)の数値計算

L07-Q3 Quiz(漸化式)

下の漸化式を計算しようと思って,間違ったプログラムを書いてしまっ . xtの表で計算結果を書こう. 7x13 の範囲でいい.

P(x, t+ 1) = {1

5P(x1, t) +45P(x+ 1, t) (それ以外)

0 (x <−1, x >20),

P(x,0) = {

1 (x= 10) 0 (それ以外)

1 d o u b l e u [ 2 1 ] ;

2 u [ ]の 初 期 化;

3 f o r( t =0; t<3; t ++){

4 f o r( x =1; x<20; x++){

5 u [ x ] = 0 . 2u [ x1]+0.8u [ x + 1 ] ;

6 }

7 }

横方向樋口さぶろおx,縦方向(数理情報学科)t の表を書いてL07偏微分方程式とその数値計算,この部分が終了したときの配列の中身計算科学☆演習II(2015) 22 / 24

(23)

偏微分方程式とその数値計算 P(x, t)の数値計算

お知らせ

Mathラウンジ=チューター 月火水木昼.

Visual Studio の使い方や自宅インストールにも対応できます.

eラーニング予習問題ふつうのペースにもどります. 2015-05-2623:55 締切

数理情報演習履修説明会 2015-06-244or5らしい.

manaba出席カード提出

https://attend.ryukoku.ac.jp

(24)

偏微分方程式とその数値計算 P(x, t)の数値計算

(講義の)プチテストやります!

日時2015-06-052 90 講義の30ピーナッツ

外部記憶ペーパーなしで行きます

出題計画2015-05-29金に確定します. 2014の過去問題とは時期も内容も違うことに注意.出題について

演習と講義の両方から出題します.

離散的な確率変数が与えられたとき母平均値,母分散,母標準偏差,母期待値の計算 標本が与えられたとき標本平均値,標本分散,標本標準偏差,標本期待値の計算 ランダムウォークのP(x, t)をいろんな方法で

ランダムウォークのE[X(t)],V[X(t)]をいろんな方法で Xの規則からP の初項と漸化式を求める

P の初項と漸化式からMの初項と漸化式を求め,Mを求める

Mから確率Pと期待値E[ϕ(X)]を求める

Cでの乱数の使い方

ランダムウォークの確率シミュレーションの方法とプログラム 偏微分方程式の数値計算の方法とプログラム

プログラミングの問題はありますが, ExcelVisual Studioの問題はありません.

参照

関連したドキュメント

名大・工 鳥居 達生《胎 t 鍵ゆ驚麗■) 名大・工 襲井 鉄轟〈艶 t 鍵陣 s 濾囎麗) 名大・工 彰浦 洋韓ユ騰曲エ鋤翼鱒騰

しかし何かを不思議だと思うことは勉強をする最も良い動機だと思うので,興味を 持たれた方は以下の文献リストなどを参考に各自理解を深められたい.少しだけ案

[r]

Yamamoto: “Numerical verification of solutions for nonlinear elliptic problems using L^{\infty} residual method Journal of Mathematical Analysis and Applications, vol.

[r]

[r]

[r]

⑥ニューマチックケーソン 職種 設計計画 設計計算 設計図 数量計算 照査 報告書作成 合計.. 設計計画 設計計算 設計図 数量計算