what's wrong with the code?
Show older comments
Hi, what's wrong with the following code?
=========================================================================================================x=pi/4; n=2; sum=2; while(1) m=2*n-1; sumnew=sum+(-1)^(n-1)*x^m/factorial(m); error=(sumnew-sum)/sumnew; n=n+1; sum=sumnew; if error<0.001; break end end
Accepted Answer
More Answers (1)
Roger Stafford
on 20 Mar 2015
If you were trying to calculate sin(pi/4), you started with the wrong values for n and sum1. For sin(pi/4) it should be the following. (As yours stands, it computes 2+sin(pi/4)-pi/4.)
x=pi/4;
n=1; % <-- Start with n = 1
sum1=0; % <-- Start with sum1 = 0
while(1)
m=2*n-1;
sumnew=sum1+(-1)^(n-1)*x^m/factorial(m);
error=abs((sumnew-sum1)/sumnew); % <-- Also this should be absolute value
n=n+1;
sum1=sumnew;
if error<0.001; break end
end
[Note: Like Andrei, I substituted 'sum1' for 'sum' because the latter symbol is reserved for matlab's 'sum' function.]
Categories
Find more on Get Started with MuPAD 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!