fortran - Do sum with alternating sign in argument -
i'm doing numerical exercises in fortran 90. when trying sum alternating sign in argument noticed (in manner did it) fortran don't know how that.
for example want sum on k 1 10 of ((-1)^k)/2k did was
sumk = 0 k = 1,10 sumk = ((-1)**k)/(2*k) + sumk end but output sumk = 1. did wrong?
if k integer, performing integer operations. these might not expect, e.g. 1/2 = 0. using floats result in 0.5, of course, conversion integers result in 0.
so, basically, part add sumk 0 in case, leading sumk=0 in end. prevent this, need take quotient floats:
sumk = real(((-1)**k))/real(2*k) + sumk then, result -0.322817445 (which verified using wolfram alpha).
of course, there several ways improve this, such computing (-1)**k iteratively, or replacing modulo operation.
Comments
Post a Comment