ルンゲクッタ法修正版

 昨日のルンゲクッタ法プログラムは未完成だった。


program main
implicit none

real ystart,xstart,xend,h
real y,x,f
real k0,k1,k2,k3
real f0,f1,f2,f3

character(len=12) fname

write(*,'(a,$)') 'ystart, y(xstart) ?'
read(*,*) ystart,xstart

write(*,'(a,$)') 'xend,dx ? '
read(*,*) xend ,h

write(*,'(a,$)') 'filename ?'
read(*,*) fname

open(10,file=fname)

y=ystart
x=xstart
do while(x<=xend)

write(10,'(2f13.5)') x,y
k0=h*(-x*y+y**2) !k0:xn
k1=h*(-(x+h/2.0)*(y+k0/2.0)+(y+k0/2.0)**2) !k1:xn+k0/2
k2=h*(-(x+h/2.0)*(y+k1/2.0)+(y+k1/2.0)**2) !k2:xn+k1/2
k3=h*(-(x+h)*(y+k2)+(y+k2)**2) !k3:xn+k2
x=x+h
y=y+(k0+2.0*k1+2.0*k2+k3)/6.0
end do

close(10)

end program main


とすると手計算に近づく。参考にしたホームページも一部間違っているのではと思う。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック