常微分方程式を解くプログラム教えて下さい
- 数値解析の授業で4次のルンゲクッタ法を使用して常微分方程式を解くプログラムを作成する課題が出されました。
- ネットで調べた結果、基礎式や初期条件、実験データが与えられる場合に利用するプログラムは見つかりませんでした。
- プログラムが苦手で理解できず、URLのプログラムの解説をお願いしています。
- ベストアンサー
常微分方程式を解くプログラム教えて下さい
今、数値解析という授業で4次のルンゲクッタ法で1階と2階の常微分方程式を解くプログラムをつくれという課題がでています。 RLC回路を解くという課題なのですが、RLC回路は解こうとすると微分方程式になりますので。 ネットで色々調べてみたのですが、どれもよくわかりませんでした。 問題として基礎式と初期条件、実験データというのが与えられています。 ネットでは実験データを利用するようなプログラムはありませんでした。 使わなくてもできるようなものなのでしょうか?それすらもわかりません。 私はプログラムが苦手で、そのプログラムが理解できないのでそれを参考に作ろうとしても皆目見当がつきません。 とりあえず、プログラムを理解するところから始ようと思うので、このURLのプログラムの解説をお願いします。 http://www.math.meiji.ac.jp/~mk/labo/studying-C/Programing-in-C/node45.html とりあえず基礎式や初期条件がどれなのかよくわかりません。 また、基礎式や実験データを使う場合どのようにプログラムに組みこめばよいかも教えていただけると嬉しいです。
- vintage915
- お礼率66% (2/3)
- C・C++・C#
- 回答数3
- ありがとう数3
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1の者です。 参考URLにアクセスしてみると、ルンゲクッタ法の詳しい解説が載っています。 便利ですよ、Wikipedia。でも、こういうのがあるために「思考停止人間」が増えているのかもしれないですけれど。
その他の回答 (2)
- Tacosan
- ベストアンサー率23% (3656/15482)
実験データをどのように使うおつもりでしょうか?
補足
説明が足りませんでした、すみません; 実験データはRやC、L、時間tやV0などが与えられています。 いくつか問があるのですが、そのうちの1つの問を載せておきます。 1.CR回路のSwitch_On後の電位差v2-v1を解け。 これはRCをスイッチを入れて直列につないだ回路で、コンデンサを通る前がV1,通った後がV2になっています。 初期条件:V2-V1 = 10V 基礎式:d(v2-v1)/dt = -(v2-v1)/CR 実験データ R = 1.5*10^6 Ω C = 10^-6 F t = 10 sec です。 私がネットで調べたプログラムだと実験データを入れるようなものはなかったので、プログラムに組み込むやら後で自分で代入したりするだけやらまったくわかりません。。。 組み込まないと解けないものなのでしょうか?? 残念なことにRLC回路をルンゲクッタで解こうとしているプログラムを見つけられなかったので質問させていただきました。
- asuncion
- ベストアンサー率33% (2126/6286)
例題は、たぶん dx/dt=x, x(0)=1 という方程式を[0,1]の区間で解いているのだと思います。 この方程式を解析的に解くと f(x)=exp(x) となります。expは、例の、ネイピア数です。
お礼
ありがとうございます! 初期条件はscanfで読み込んでいるんですね。 dx/dtというような式は見当たりませんが、これはk1 = ... などの部分で定義されているのでしょうか? 一歩前進しました。ありがとうございます!
関連するQ&A
- 高階連立常微分方程式の数値計算
4次のルンゲクッタ法を用いた数値計算を勉強しています. 1階連立常微分方程式と高階常微分方程式は理解でき,プログラムも作成することができました. 次に高階の連立常微分方程式を解こうと思ったら,頭が混乱してしまいました. 4次のルンゲクッタ法を用いて高解連立常微分方程式を解く考え方を教えて頂ければ嬉しいです. また何か良い参考書があれば教えて頂きたいと思います. よろしくお願いします.
- ベストアンサー
- 数学・算数
- 微分方程式を向きに解きたい
常微分方程式を時刻Tでの初期値x(T)を与えてx(0)まで逆向きに解きたいのですがどうしたらよいのでしょうか? ここで解くというのは数値的にということです。 普通に解くルンゲクッタのプログラムをもとにしてプログラムをかきたいのですがどうしたらよいのでしょうか? よろしくお願いします.
- ベストアンサー
- 数学・算数
- 微分方程式をルンゲクッタ法を用いて解くプログラム
2*(y''(x))+0.5(y'(x))+2.5y=1 Y(0)=0.1,y'(0)=0.1 この微分方程式をルンゲクッタ法を用いて、 x軸が0から50位(0.01刻み)までのyの値を算出するプログラムを作りたいのですが、どうすればいいのかさっぱり分かりません。 ネットで色々と調べてみたのですが、ルンゲクッタ法をどうやってプログラムで表せば良いのかが分かりません。 どうか、回答をよろしくお願いします。
- 締切済み
- C・C++・C#
- 偏微分方程式と常微分方程式
物質濃度をC、時間をt、座標をx、物質の分子拡散係数をνとすると分子拡散による物質濃度の時空間変化は以下の偏微分方程式によって記述される。これについて以下の問いに答えよ。 ∂C/∂t=ν((∂^2)C/∂x^2) (1)C(x,t)=X(x)T(t)と仮定することにより、X(x)およびT(t)に関する常微分方程式をそれぞれ導出せよ。 (2)(1)での2つの常微分方程式の一般解をそれぞれ求めよ。 (3)上記拡散方程式は一般に放物型と言われる偏微分方程式に分類される。これとは別の楕円型と言われる偏微分方程式を1つ、数式で記述せよ。 困っているのは(2)の問題です。 以下のようなwebサイトを見つけました。 http://www12.plala.or.jp/ksp/mathInPhys/partial/ これに沿って問題を解いていったとき、一般解をどのようにするべきか迷いが生じました。今回の問題では初期条件や境界条件はないため、一般解はλが正、ゼロ、負のとき全ての場合の一般解を求めなければならないということですか? 後もう1点、もしよければ、楕円型の微分方程式として有名な物理現象、あるいは式を教えていただけないでしょうか? ヨロシクお願いしますm(_ _)m 特に(2)の問題に関する質問、ヨロシクお願いします。。。
- ベストアンサー
- 数学・算数
- 常微分方程式の数値計算
実験で常微分方程式の数値計算をしました y'(x)=2xy,y(0)=1.0(解はy=ex2)←eのx二乗の微分方程式できざみ幅h=0.1、区間〔0,2〕の条件で オイラー法と改良オイラー法とルンゲクッタ法を使って 表計算ソフトを使って求めよとあるのですが、 表計算で近似値のy座標とか Δt後のxの変化分K1とか求めるのですが、全然意味がわからなくて、 何かいい方法はないでしょうか?
- ベストアンサー
- 数学・算数
- ルンゲクッタの連立常微分の解き方が分かりません。
「スライディングモード制御」という制御システムの基本的な考え方である、 次の連立常微分方程式をルンゲクッタ法で解いて、さらにC++でのプログラムを 作るのですが、インターネットや書籍で色々調べてもうまく分かりません。 どなたかお教えください。よろしくお願いします。 (式) x’=y y’=2y-x+u u=-φx フィードバックゲイン φ= 4 σ(x、y)>0 -4 σ(x、y)<0 σ(x、y)=xS,S=0.5x+y 閉ループシステム? 以上が与えられている情報です。 初期値や刻み幅hなどの指定がないため余計に混乱しています。 (自分で適当な値を決めればいいのでしょうか?) ルンゲクッタの解き方だけでもわかればプログラムもなんとかできるかもしれないので、 どうかよろしくお願いします。
- ベストアンサー
- 数学・算数
お礼
ありがとうございます! wikiで調べてみてなかったです・・・すみません; ありがとうございました!