このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1269438098/680
#  [1] 制御工学  
#  [2] 問題文:dy/dx=(1-y)/15の微分方程式をルンゲクッタ法を用いてx=0〜100までの値を求めよ。  
#  [3]  
#   [3.1] OS:windouwsXP  
#   [3.2] コンパイラ名とバージョン: Fujitsu Fortran & C Academic Package V3.0 L10   
#  [3.3] 言語:C  
#  [4] 期限: 5/19 17:00まで  
#  [5] その他の制限:初期値は0で、刻み幅は任意です。  
#  コード、計算結果をプリントして提出、また計算結果をグラフにして提出しなければならないので、ファイル形式で保存できるようにして欲しいです。  
#   
#  プログラミングの授業ではないのに急に出されて困っています。  
#  よろしくお願い致します。 
#   

f(X,Y,Z) :- Z is (1.0 - Y) / 15.

'dy/dx=(1-y)/15の微分方程式をルンゲクッタ法を用いてx=0〜100までの値を求める'(L) :-
        ルンゲ・クッタ法(0.0,100,0.0,1.0,L).

ルンゲ・クッタ法(X,M,_,_,[]) :- X >= M,!.
ルンゲ・クッタ法(X,M,Y,H,[[X,Y2]|R]) :-
        f(X,Y,Z1),C1 is Z1 * H,
        f(X + H / 2.0,Y + C1 / 2.0,Z2),C2 is Z2 * H,
        f(X + H / 2.0,Y + C2 / 2.0,Z3),C3 is Z3 * H,
        f(X + H ,Y + C3,Z4),C4 is Z4 * H,
        D is (C1 + 2.0 * C2 + 2.0 * C3 + C4) / 6.0,
        Y2 is Y + D,
        X2 is X + H,
        ルンゲ・クッタ法(X2,M,Y2,H,R).