10/06/19 02:24:33
>>177
LOG(1 + x) = x - x^2 / 2 + x^3 / 3 - x^4 / 4 +......
収束半径が小さいので注意。一般の範囲でやりたいなら、LOGの性質を使って範囲を調整汁。
subroutine logtn(x)
c
real Tn, ans, err
integer n
c
EPS = 1.0e-6
n = 1
Tn = x - 1.0
ans = Tn
write(6,10) x
10 format('Log(', f10.5, ') ')
50 if( abs(Tn) .gt. EPS) then
n = n + 1
Tn = - Tn * ( x - 1.0 )
ans = ans + Tn / n
err = ans - log(x)
write(6,11) n, ans, err
11 format(I3,' Log(X) = ',f12.7,' err = ',f15.10)
go to 50
end if
write(6,*) ' Log(',x,' )= ',ans
return
end
c