2
我在使用fortran計算e^x內積分和間隔[b.a]時遇到了一些麻煩。梯形法則的問題
我想我在功能調用中做錯了什麼。感謝您的幫助。
program trapezium
implicit none
integer :: i, n, b, a
real :: sumation, mean, deltax, f(i), integral
! The value of the integral using the trapezium rule can be found using
! integral = (b - a)*((f(a) +f(b))/2 + sumation_1_n-1)/n
write(*,*) "type the limits b, a and the number of intervals"
read *, b, a, n
deltax = (b - a)/n
mean = (f(a) + f(b))/2
sumation = 0
do i = 1, n-1
sumation = sumation + f(i)
end do
integral = deltax*(mean + sumation)
write (*,*) "the value of the integral using the trapezoidal method is", integral
end program
function f(x)
real :: f(x)
integer :: x
f(x) = EXP(x)
end function
我不確定數學在您的代碼中是否正確...即使用戶可以指定完全不同的限制,爲什麼總是從f(1)開始並轉到f(n-1) ?你不應該以'(a-b)/ n'的步驟從'a'跳到'b'嗎?你爲什麼在這裏使用整數? –
i = 1到n-1是計算圖像上出現的總和。計算deltax的限制a和b。 [鏈接] http://imgur.com/uQOEGcS [/ link] – user2803219