.Alternate to using for loop or symsum for the summation ∑(const)^n/(n*n!) ?

2 views (last 30 days)
Dear all,
Is there a more computationally efficient way compared to using for loop or symsum (from Symbolic math toolbox) to compute:
∑(const)^n/(n*n!)
const is some constant value, n is the range of limit varying from 1 to infinity (or some high value like 200 for approximating the sum).
-- Thanks, Ram.
  2 Comments
Sean de Wolski
Sean de Wolski on 26 Jun 2013
Edited: Sean de Wolski on 26 Jun 2013
Why not symsum? You're going to need it for factorial greater than 170 anyway:
factorial(171)
Ramaprasad Kulkarni
Ramaprasad Kulkarni on 27 Jun 2013
I am using symsum and it is computationally expensive. It takes a lot of time (like half an hour for my program). I am not using 'for loop' anymore which I assume would have been worse computationally.

Sign in to comment.

Accepted Answer

Roger Stafford
Roger Stafford on 26 Jun 2013
Your sum is equal to the integral
int('(exp(x)-1)/x','x',0,const)
so you could do numerical integration of this rather than summing the infinite series. That integrand is actually well-behaved in the vicinity of x = 0, but computing it might give you some problems, so you could substitute a Taylor series approximation very near x = 0.
  1 Comment
Ramaprasad Kulkarni
Ramaprasad Kulkarni on 27 Jun 2013
Well, I used symsum with 'range 1 to 200' which runs much faster without much difference in results compared to the 'range 1 to infinity' (which I was using earlier).
-- Thanks for your replies.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!