what's wrong with the code?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Akzeptierte Antwort
Andrei Bobrov
am 20 Mär. 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 Kommentare
Weitere Antworten (1)
Roger Stafford
am 20 Mär. 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 Kommentare
Siehe auch
Kategorien
Mehr zu Get Started with MuPAD finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!