講義ノートを見ながら数値解析ソフトOctaveの操作を勉強しています。
読んでいる講義ノートにオイラー法とルンゲ・クッタ法でf''(x)+f'(x)+x=0の微分方程式を解く箇所があるのですが、書いている通りに打ち込むとx=0の直線になってしまいます。lsodeで解くとうまくいくのですが。学び始めたばかりの初心者でまったく分からないので、、どうすればいいか教えてください。以下が講義ノートに書いてあったプログラムです。xdot2,euler,rk4は定義された関数で、rk4eulerがメインプログラムです。
% xdot2.m
function xdot2 = xdot2(x,t)
xdot2=[x(2) -x(2)-x(1)];
% euler.m
function x=euler(F,x,t)
[m n]=size(t); %t のサイズ(=ステップ数)を抽出
for k=1:m-1 %tのサイズ-1回繰り返す。
tau=t(k+1)-t(k);
x(k+1,:)=x(k,:)+tau.*feval(F,x(k,:),t(k));
%上の式がオイラー法の公式
end
% rk4.m
function x=rk4(F,x,t)
[m n]=size(t);
for k=1:m-1 %t のサイズ-1 だけステップを繰り返す。
tau = t(k+1)-t(k); %刻み幅
F1=feval(F,x(k,:),t(k));
F2=feval(F,x(k,:)+1/2*tau.*F1,t(k)+1/2*tau);
F3=feval(F,x(k,:)+1/2*tau.*F2,t(k)+1/2*tau);
F4=feval(F,x(k,:)+tau*F3,t(k)+tau);
x(k+1,:)= x(k,:)+tau/6*(F1 +2*F2 +2*F3 +F4);
%以上が4次のRK法の公式
end
%rk4euler.m %オイラー、RK、lsode の比較
t=[0:0.2:10]’; x0=[0 1]; %定義域、初期値の定義
R1=euler('xdot2',x0,t); x1=R1(:,1); %オイラー法
R2= rk4('xdot2',x0,t); x2=R2(:,1); %RK 法
R3=lsode('xdot2',x0,t); x3=R3(:,1); %lsode
plot(t,x1,'rx-.',t,x2,'bx',t,x3,'ko');
xlabel('t'); ylabel('x');
legend('Euler','RK4','lsode');
title('rk4euler1.m');
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 「FFTの基本は、DFTはサンプル数Nが偶数なら 2つのDFTに分解できるということ。 分解するとD 3 2022/03/31 21:01
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- 高校 レピュニット数の性質についてです。 レピュニット数とは、各桁が1のみの数で、以下1がk桁の数をRkと 3 2023/07/21 19:58
- 国産車 回答宜しくお願いします。 今度中古のHONDAステップワゴン購入考えておりますが、DVA-RKの型式 1 2022/03/30 12:11
- C言語・C++・C# LU分解法のピボット選択機能実装について(C言語・gcc-9) 1 2022/07/22 15:20
- C言語・C++・C# LU分解法のピボッティングについて(C言語/gcc-9) 3 2022/07/11 23:10
- 数学 ユークリッドの互除法、合同式の問題について 1 2022/05/08 11:49
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- 大学受験 参考書の勉強法について質問なのですが、参考書を一通り終わらせて、二周目を行う際、問題だけ解けば良いで 2 2023/06/30 20:19
- 数学 オイラーの等式、πの単位である[rad]の取り扱い方について教えて下さい。 1 2022/12/25 17:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラムの規模を表す単位「k...
-
ライン数とステップ数の違いに...
-
ステップカウントツールが作成...
-
ubuntuで デイスク/deb/loopと...
-
パソコンでインターネット接続...
-
パソコン初心者がキーボードを...
-
VB.netでDLLを読み込んで実行す...
-
スタックフレームの消滅
-
エラー?メッセージ
-
エクセルのHLOOKUP関数の検索範...
-
ブラインドタッチ、苦手なんで...
-
hdmiはパラレル?シリアル?
-
Macと iPadの違いについて 今現...
-
ネットワークアイコンが黄色三...
-
昔したタイピングソフトが思い...
-
タイピングの癖
-
RS-FF回路について
-
ネットワークアドレスとブロー...
-
命令口調について
-
100台のPCをLAN接続する時に必...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムの規模を表す単位「k...
-
ステップ数について
-
ステップ数??
-
ライン数とステップ数の違いに...
-
VB6.0で #の意味
-
プログラムで 一番大きい を定...
-
ステップカウントツールが作成...
-
STEPについて
-
シェルスクリプトについて
-
PythonのプログラムのDirに関す...
-
URLの中の「?=○○」の意味は?
-
ステップ数によるスケジュール
-
「ByRef引数の型が一致しません...
-
c言語プログラミングのプログラ...
-
剰余を求めるプログラム
-
再帰について
-
prologでNの階乗の逆関数を考...
-
ドット絵のようなやつを作るに...
-
基本情報技術者の擬似言語プロ...
-
パソコンでインターネット接続...
おすすめ情報