How to code Taylor's series approximation of Error function? Is following code right? Please help
10 views (last 30 days)
Show older comments
z=0:4; ert=zeros(1,length(z)); sm=zeros(1,length(z)); sm=0; for k=1:length(z) for n=0:500 sm=sm+((-1)^n*z(k)^(2*n+1))/(gamma(n-1)*(2*n+1)); end ert(k)=(2/sqrt(pi))*sm; end
0 Comments
Answers (2)
Torsten
on 8 Mar 2017
Edited: Torsten
on 9 Mar 2017
You must avoid to explictly calculate z^(2*n+1)/n!.
For large n and |z|>1, you'll get an infinity/infinity problem.
Use that
[(z^2)^n/n!] = [(z^2)^(n-1)/(n-1)!] * (z^2/n).
Thus, you can calculate summand (n) of the series from summand (n-1) instead of recalculating every summand anew.
Best wishes
Torsten.
0 Comments
See Also
Categories
Find more on Multirate Signal Processing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!