how to use a while loop to perform an infinite series approximation
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
So I have to write a program using a while loop that uses the alternating series approximation for sin(x) using a while loop and compare it to the matlab sin(x) using an error function. so far I have:
clc
clear
x=input('Enter the value of x to compute sin(x): ');
error=1;
n=0;
while error >= 1*(10^-5);
terms = ((-1)^n)*(((x^(n+1)))/factorial(n+1));
SINx=sum(terms);
n=n+1;
error=abs((sin(x)-SINx)/sin(x))*100;
end
And my loop does nothing. Any ideas?
1 commentaire
Réponse acceptée
Tom
le 2 Juil 2012
Modifié(e) : Tom
le 2 Juil 2012
Here's a shabby way of doing it...
x=pi/2; %test: sin(pi/2)=1;
error=1;
n=1;
count=0;
while error >= 1*(10^-3);
%x -x^3/3! +x^5/5! ...
count=count+1;
terms(count)=(-1)^(count+1)*(x^n)/factorial(n);
SINx=sum(terms);
n=n+2;
error=abs((sin(x)-SINx)/sin(x))*100;
end
disp(SINx)
Plus de réponses (1)
Walter Roberson
le 2 Juil 2012
You are only generating a single value in "terms", and the sum() is being applied to that single value. You are not accumulating the values from the terms with n=0, n=1, n=2, etc..
2 commentaires
Tom
le 2 Juil 2012
That is true; also I think the series is incorrect- sine is something like this:x -x^3/3! +x^5/5! ...
Voir également
Catégories
En savoir plus sur Calculus 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!