Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Compute the infinite sum of pi/4 up to 5 correct decimals.

Asked by Snirisa Gödel on 19 Sep 2013

I want to approximate pi/4 by using the infinite sum pi/4=((-1)^(n))/(2*n+1) from 0 to infinity. Here is my MATLAB code:

if true
  tol = 10^(-5)      %Up to five correct decimals
  d=1;               %Arbitrarily chosen, only condition is that d>tol at the start
  sn=0;              %Initial starting value
  n=0; 
  while d>tol
    sn = ((-1)^(n))/(2*n+1);  This is the approximation for pi/4.
    d=abs(pi/4-sn);           Value that decides whether the loop continues.
    n=sn;                     I'm not sure but I want n to increase by one each     
                              time to prevent       
                              circular calculations.
    end

Why do I get Inf+ Nani?

2 Comments

dpb on 19 Sep 2013

Why do I get Inf+ Nani?

Because of

   n=sn; 

Try each step directly at the command line and see what happens...

You need to set a value for the total of the summation of each term initially to zero and then accumulate the terms into that variable -- sn is ok for the name but you don't accumulate a sum of the terms in n, you replaced in with the individual term going forward.

To get the subsequent terms you need to increment n, that is correct --

n=n+1;

where the n=sn; line is instead; the implementation of accumulating the summation is left for you to consider how to do that a little more...

Snirisa Gödel on 19 Sep 2013

Thank you dpb, I appreciate you're answer.

Snirisa  Gödel

Products

No products are associated with this question.

1 Answer

Answer by Azzi Abdelmalek on 19 Sep 2013
Edited by Azzi Abdelmalek on 19 Sep 2013
Accepted answer
tol = 10^(-5)       
d=1;                
sn=0;              %
n=0;
while d>tol
  sn = sn+(-1)^n/(2*n+1);
  n=n+1;
  d=abs(pi/4-sn);
end
disp(sn)

2 Comments

Jan Simon on 19 Sep 2013

This is obviously a homework question. Solving it does not allow the OP to find the solution by his own.

Azzi, please do not post solutions of homework questions, because this reduces the reputation and efficiency of the forum. As a teacher on a university you should think of your colleagues, who do not want to get solutions created by others than their students.

Snirisa Gödel on 19 Sep 2013

Thank you.

Azzi Abdelmalek

Contact us