我试图编写一个从2个不同文件中读取数据的程序,并分别计算两者的平均值,标准差和标准误差。每个文件包含12个值(月降雨量),这里是值:
5.0, 6.6, 9.3, 10.4, 14.0, 18.0, 16.9, 18.6, 15.4, 13.1, 5.4, 7.6,
和
3.2, 4.3, 9.5, 13.0, 14.5, 19.2, 20.8, 19.0, 17.2, 12.9, 7.2, 2.0。
这是我的代码:
program data
implicit none
integer :: R, F
double precision :: x, sum = 0, mean, y, mean2, sum2 = 0, var =0, sdv,
var2 = 0, sdv2
open(unit = 100, file = 'tmax_1910.txt', status = 'old', action = 'read')
do R = 1, 12
read(100,*) x
sum = sum + x
end do
mean = (sum)/12
do R = 1, 12
var = var + (((x - mean)**2.0)/12)
sdv = var**0.5
end do
open(unit = 200, file = 'tmax_2010.txt', status = 'old', action = 'read')
do F = 1, 12
read(200,*) y
sum2 = sum2 + y
end do
mean2 = (sum2)/12
do F = 1, 12
var2 = var2 + (((y - mean2)**2.0)/12)
sdv2 = var2**0.5
end do
print *, 'mean=', mean, 'mean2=', mean2, 'sdv=', sdv, 'sdv2=', sdv2
end program data
比较我得到的在线计算器,我得到正确的平均值(分别为11.69和11.89),但我的标准偏差值是关闭的。我得到的第一个值是4.09 ......,第二个值是9.9 ......而第一个值是4.9 ......,第二个值是6.6 ......
我的方差公式无法看到任何错误,所以导致这种情况的原因是什么?
感谢。