このディレクトリの索引

#  出典 :: C/C++の宿題片付けます 130代目 #609
#  [1] 授業単元: 
#  [2] 問題文(含コード&リンク):イテレーターを使ってルンゲクッタ法を解く 

'ルンゲ・クッタ法'(Xの初期値,Yの初期値,Xの最終値,_分割数,_解) :-
    H is (Xの最終値-Xの初期値) / _分割数,
    'ルンゲ・クッタ法'(1,_分割数,H,Xの初期値,Yの初期値,_解).

'ルンゲ・クッタ法'(M,N,H,X,Y,[]) :- M > N,!.
'ルンゲ・クッタ法'(M,N,H,X0,Y,[[X,Y,U]|R]) :-
    X is X0 + M * H,
    U is exp(X) - (sin(X) + cos(X)) * 0.5,
    U0 is Y + sin(X) * H,
    X1 is X + H * 0.5,
    Y1 is Y + U0 * 0.5,
    U1 is Y1 + sin(X1) * H,
    Y2 is Y + U1 * 0.5,
    U2 is Y2 + sin(X1) * H,
    X3 is X + H,
    Y3 is Y + U2,
    U3 is Y3 + sin(X3) * H,
    Y4 is Y + ( U0 + ( U1 + U2 ) * 2.0 + U3 ) / 6.0,
    M2 is M + 1,
    'ルンゲ・クッタ法'(M2,N,H,X,Y4,R).