clear all;close all;clc;
es=0.05*10^-3;
sum=0;
i=0;
ea=1;
x=input('Enter x: ');
flag=1;
while(abs(ea)>es)
prev=sum;
sum=sum+flag*(x^i)/factorial(i);
i=i+2;
ea=(sum-prev)/sum;
flag=0-flag;
end
sum

 Akzeptierte Antwort

Stephen23
Stephen23 am 31 Jan. 2019
Bearbeitet: Stephen23 am 31 Jan. 2019

1 Stimme

On each loop iteration the flag value changes sign, so it follows this pattern:
+1
-1
+1
-1
...
This has the effect of alternately adding or subtracting the following term:
+ (x^0)/factorial(0)
- (x^2)/factorial(2)
+ (x^4)/factorial(4)
- (x^6)/factorial(6)
...
This avoids the need to call two different plus and minus operators (but that would also be a perfectly viable approach).

Weitere Antworten (0)

Kategorien

Mehr zu Environment and Settings finden Sie in Hilfe-Center und File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by