what's wrong with the code?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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
0 commentaires
Réponse acceptée
Andrei Bobrov
le 20 Mar 2015
Try it
x= pi/4;
n = 2;
sum1 = 2;
er = 1;
while abs(er) > 0.001
m = 2*n-1;
sumnew = sum1+(-1)^(n-1)*x^m/factorial(m);
er = (sumnew-sum1)/sumnew;
n = n+1;
sum1 = sumnew;
end
0 commentaires
Plus de réponses (1)
Roger Stafford
le 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.]
3 commentaires
Voir également
Catégories
En savoir plus sur Get Started with MuPAD dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!