- A factorial can only be represented accurately in double precision up to 21. Same applies for the inverse
- Your different terms will span many orders of magnitude. Adding terms like that kills accuracy.
Trying to write a script that solves a series
4 ビュー (過去 30 日間)
古いコメントを表示
The series goes 1-1/3!+1/5!-1/7!+.....20 terms
This is my first guess on how to solve it. Don't have software available to me at the moment. This is a start but I have a feeling something isn't right here.
a0=1/factorial(0); %first term
an=1/factorial(38); %final term
n=0; Initialize
sumf=0; %initialize sum of series
sign=1; %initialize sign
for tn=a0: -1 / factorial(n+2):an ; %step size negative due to decreasing values.
sumf = (sumf + tn) . * sign;
sign= (sign .* -1); %update sign
n=n+2; %The n is update within the factorial increment
end
any problems with this? can you update an increment?
0 件のコメント
回答 (1 件)
José-Luis
2013 年 2 月 21 日
編集済み: José-Luis
2013 年 2 月 21 日
A few problems, mostly regarding numerics
If you want accurate results and have the symbolic math toolbox you could look into vpa().
参考
カテゴリ
Help Center および File Exchange で Symbolic Math Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!