#環境
fortran90
#質問
fortranで区分求積法で積分を計算するプログラムなのですが、
関数で値を渡している渡していないでなぜか実行結果大きく変わってしまいます。
どこをどう見ても違う表現方法に変わっただけにしか見えないのですが、
どこら辺が間違っているのでしょうか。回答お願いします。
program kubunnkyuusekihou implicit none real(8) a,b !右端と左端の値 real(8)dx !分割した時の一つ一つの区間の長さ integer N !分割数 integer k !ループ変数 real(8) xk !分割した時にできた区間の右端、左端 integer S !求める面積 real(8) f write(*,*)'分割数は?' read(*,*) N a = 1.0d0 b = 10.0d0 dx = ( b - a ) / dble( N ) S = 0.0d0 do k = 1, N xk = a + 0.5d0 * dx * (2.0d0*dble(k)-1.0d0) S = S + dx * 3 * xk * xk end do write(*,*)'求める面積はS', S end program kubunnkyuusekihou #実行結果 分割数は? 3 求める面積はS 978
program kubunnkyuusekihou_error implicit none real(8) a,b !右端と左端の値 real(8)dx !分割した時の一つ一つの区間の長さ integer N !分割数 integer k !ループ変数 real(8) xk !分割した時にできた区間の右端、左端 integer S !求める面積 real(8) f write(*,*)'分割数は?' read(*,*) N a = 1.0d0 b = 10.0d0 dx = ( b - a ) / dble( N ) S = 0.0d0 do k = 1, N xk = a + 0.5d0 * dx * (2.0d0*dble(k)-1.0d0) S = S + dx * f(xk) end do write(*,*)'求める面積はS', S end program kubunnkyuusekihou_error function f( x ) implicit none real(8), intent(in) :: x real(8) f f(x) = 3.0d0 * x * x !関数の定義 end function #実行結果 分割数は? 3 求める面積はS -2147483648
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/08 11:06