###前提・実現したいこと
現在,fortranの教科書を独学しています。問題を解きながら進めているのですが、どうしても組み方がわからない問題があるので教えてください。
問題は画像のようなものです。第n項目を出力することはできるのですが、n項目とn-1項目を比較しつつそれらの誤差を出力する方法がどうしてもわかりません。nとn項目とn-1項目と誤差(書籍での|e|)をファイルに出力したいです.
以下に挙げたソースコードは、とりあえず一つの値を出力するものです。
(k=0.64ではK(0.64)=1.78423 63259 46738...)
####ソースコード(Fortran)
program first_eliptic_integral
implicit none
integer :: i, n=50 , fo=11 !50次まで足し上げ
real(8) :: pi=acos(-1.0d0), k, K1, X, sum=1.0d0, sum0 = 1.0d0
open(fo, file='Ex1.23_output.d') write(*,*) 'k(0<=k^2<=1):' read(*,*) k do i=1,n X=(k**2*(2*i-1)**2)/((2*i)**2) sum0 = sum0*X sum = sum + sum0 K1= (pi/2.0d0)*sum enddo write(fo,*) K1 close(fo)
end program first_eliptic_integral
###試したこと
nをカウントしたいので、do i=1,n文の外に更にnをカウントするdo文を置いてみたり、if文を使ってn-1を取り出そうとしましたが、出力結果は全部同じ数値になってしまいます。
###補足情報(言語/FW/ツール等のバージョンなど)
現在配列は勉強中なので、do文, if文(exit, cycle)のみで教えていただけたらうれしいです。(GOTO文もなしでお願いします.)
参考書籍は数値計算のためのFortran90/95プログラミング入門(牛島)です。
環境はgfortranでコンパイルしています。
※ここを利用するのは初めてなので、よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/03/13 17:52 編集
2017/03/14 02:49
退会済みユーザー
2017/03/14 13:04 編集