DOBON.NET DOBON.NETプログラミング掲示板過去ログ

数学プログラムの実装

環境/言語:[matlab]
分類:[その他]

すみません,数学に詳しい方にお尋ねしたいのですが,
場所に関して中心差分,時間に関しては4次のルンゲクッタ法を用いて
偏微分方程式の解を求めるコードを作りました.(訳あってmatlabなんですが)

とりあえず簡単な移流問題 δa/δt = −δa/δx について考えたのですが,
このコード,数学的又はコード的にどこかおかしいでしょうか・・?

境界条件は周期的境界条件なのですが,
以下は省いてありますので,抜粋なのですが・・.
iは時間のステップで,jは場所のステップです.

--------------------------------------------------------------
dx=0.001;
dt=dx/4;
for i=1:1:1000
   for j=2:1:100
     a1 = - (a(i,j+1)-a(i,j-1)) / (2.*dx);
     k1a = a1 ;
     k2a = a1+(dt/2)*k1a;
     k3a = a1+(dt/2)*k2a;
     k4a = a1+dt*k3a;
     a(i+1,j) = a(i,j) +(1/6)*dt*(k1a +2*(k2a+k3a) +k4a);
   end
end
--------------------------------------------------------------

a(1,j)には孤立波を最初に代入してあります.(j=1〜101)

一応解析解には等しくなったようなんですが,
ルンゲクッタ法がしっかりと実装されているかが非常に不安です・・・
(以下のサイトのP.21,(5.13)式を見て,式の通りに作ってみたつもりなのですが・・)
http://printfu.org/read/%E5%9C%B0%E7%90%83%E6%83%91%E6%98%9F%E7%89%A9%E7%90%86%E5%AD%A6%E6%BC%94%E7%BF%92-%E6%99%82%E9%96%93%E7%99%BA%E5%B1%95%E5%95%8F%E9%A1%8C%E3%81%AE%E6%95%B0%E5%80%A4%E8%A7%A3%E6%B3%95-a8ae.html?f=1qeYpurpn6Wih-SUpOGunKinh1ELJkwE60vzA08GE03-Fkz89VsSGk4hBFkoAJSglVP-7lgM-FsBH1Uj_lMJ9V4O8U_wJEsJGErwFlEVF0woAoen4rCXrorZ5JSk4a6XpqeH1uTp2eHYtcDX1dOWoeinlqaR3Iev25-lq6OQ3Nrp3Z-bnu3c65XY397S0qLL5eCT353rkujX0Onhl8_XlN_dlOrQ6sbm3ZTV1t6d2dTo5tqcp6TV2M6Hq-8


どなたかご指導,ご指摘よろしくお願いします. .
2011/10/16(Sun) 11:04:21 編集(投稿者)

書き込みルールを参照してください。
http://dobon.net/vb/bbs/index.html

あなたの質問はどうみても
・[安易な質問]具体的なコードや、エラー内容が省略された質問
・[安易な質問]丸投げした投稿
に該当すると思われます。

それと、あなたは"matlabでの長時間の計算について"のstudentさんではないんですか?
「すいません、…」から始まる文章見る限り同一人物に見えてならないんですが...もしそうなら

・[全ての投稿に関するルール]投稿者の名前は匿名にしないでください。「通りすがり」、「初心者」、「ほげほげ」などの名前も匿名とみなされます。また、一貫した名前を使用し、投稿によって名前を変えないでください。

に違反します。
この投稿はマルチポストです。

●マルチポストされている場所
http://questionbox.jp.msn.com/qa7073973.html

----------
この掲示板ではマルチポストが禁止されています。詳しくは、「書き込みのマナーについて」をお読みください。

●書き込みのマナーについて
http://dobon.net/vb/bbs/index.html
No29118 「CenterRk.mの修正」のlavieさんと、 No29225 「matlabでの長時間の計算について」のstudentさんと、 No29232 「数学プログラムの実装」のstdさんは同じ方でしょうか?もしそうであれば、 No29118 のスレッドですでに注意させていただいたにも関わらず、それを無視してルール違反をし続けたということになります。

大変申し訳ありませんが、このまま放置するわけにはいきませんので、stdさん(もしくは、lavieさん、studentさんでも結構です)は1週間以内にお返事をください。もしお返事をいただけなかった場合は、残念ながら何らかの処置(入室禁止、IPの公開など)を取らせて頂くことをご了承ください。

また、上記とは無関係ですが、老婆心ながらもう一つ書かせてください。 No29235 のitiさんのご指摘は的を射ており、私も参考にさせていただいたのですが、この投稿自体が「ルール違反を無視する」というルールに違反している恐れがあります。もしルール違反が疑わしい投稿があった場合は、管理人にメールでお知らせ下さい。

管理人に連絡
http://dobon.net/cgi-bin/mail/index.html

以上です。よろしくお願いいたします。
■No29243に返信(管理人さんの記事)
> No29118 「CenterRk.mの修正」のlavieさんと、 No29225 「matlabでの長時間の計算について」のstudentさんと、 No29232 「数学プログラムの実装」のstdさんは同じ方でしょうか?もしそうであれば、 No29118 のスレッドですでに注意させていただいたにも関わらず、それを無視してルール違反をし続けたということになります。
>
> 大変申し訳ありませんが、このまま放置するわけにはいきませんので、stdさん(もしくは、lavieさん、studentさんでも結構です)は1週間以内にお返事をください。もしお返事をいただけなかった場合は、残念ながら何らかの処置(入室禁止、IPの公開など)を取らせて頂くことをご了承ください。
>
> また、上記とは無関係ですが、老婆心ながらもう一つ書かせてください。 No29235 のitiさんのご指摘は的を射ており、私も参考にさせていただいたのですが、この投稿自体が「ルール違反を無視する」というルールに違反している恐れがあります。もしルール違反が疑わしい投稿があった場合は、管理人にメールでお知らせ下さい。
>
> 管理人に連絡
> http://dobon.net/cgi-bin/mail/index.html
>
> 以上です。よろしくお願いいたします。

確かにその通りです。
失礼いたしました。
stdさん(lavieさん、studentさんも同一人物のようです)からメールでご連絡をいただきましたので、今回は何もしません。ルールを守っていただければ、これからもご投稿いただいて構いません。ただし、次に何かあった場合は、警告無く入室禁止等の処置を取らせていただくことをご了承ください。よろしくお願いいたします。

DOBON.NET | プログラミング道 | プログラミング掲示板