[MATLAB] 5.1 プログラムの全体像

 本章では,MATLABの関数を使い,常微分方程式を解く方法について学ぶ。ここでは1次精度の方法(オイラー法)を用いることとする1

5.1 プログラムの全体像

 プログラムの全体像は以下の通りとする。なお,本図ではPADと呼ばれる表記法を使用している(PADについては備考 A1を参照)。

図 5.1 常微分方程式を解くためのプログラムの構造

 図中④の部分で時刻 (t) を 0〜te+hまで間,⑤〜⑧までの命令を繰り返し実行する。各時刻において,現在のyの値 ($y_n$) から次の時刻でのyの値 ($y_{n+1}$) をオイラー法により計算する。この計算には当該時刻での微分値 ($dy/dx$) が必要であり,これを⑤で求める。⑤の微分値を計算する部分は関数として別のファイルに用意する。⑤で得られた微分値を使い⑥で$y_{n+1}$を計算し,その結果を⑦で保存しておく。⑧では次の結果を保存する場所を設定する。

 ①〜③は,④の繰り返し計算を行うための準備である。①では,計算時刻と刻み幅とを設定する。②ではyの初期値 ($t=0$での$y$の値) を設定する。③では,計算結果を記録するための変数(箱)yrを用意し,その中身を0に初期化しておく。また,次の結果を保存するための場所(結果記録番号)を用意しておく。


  1. MATLABにはもともと常微分方程式を解くための関数(例えばode23, ode45など)が用意されている。そのため,本章で示すようなプログラムをわざわざ自分で作る必要はない。ここでは,MATLABでプログラムを作る例を示すこと,常微分方程式を解くとはどのようなことを手順として示すことを目的とし,あえて常微分方程式を解くためのプログラムを示している。 ↩︎

このブログの人気の投稿

[MATLAB] 2.3 行列の要素を抽出する

[MATLAB] A1 PAD (Problem Analysis Diagram)

[MATLAB] 3.3 解析