Reputation: 2022
I'm trying to plot a mathematical expression in python. I have a sum of functions f_i
of the following type
-x/r^2*exp(-rx)+2/r^3*(1-exp(-rx))-x/r^2*exp(-r x_i)
where x_i
values between 1/360 and 50. r is quite small, meaning 0.0001
. I'm interested in plotting the behavior of these functions (actually I'm interested in plotting sum f_i(x) n_i
, for some real n_i) as x
converges to zero. I know the exact analytical expression, which I can reproduce. However, the plot for very small x
tends to start oscillating and doesn't seem to converge. I'm now wondering if this has to do with the floating-point precision in python. I'm considering very small x
, like 0.0000001
Upvotes: 0
Views: 194
Reputation:
.0000001 isn't very small.
Check out these pages:
https://docs.python.org/3/library/stdtypes.html#typesnumeric
https://docs.python.org/3/library/sys.html#sys.float_info
Try casting your intermediate values in the computations to float before doing math.
Upvotes: 1