User Tools

Site Tools


gibson:teaching:fall-2014:math445:lecture10-diary

Math 445 lecture 10: more ''for''

The following example problem spells out in great detail how to translate a formula in summation notation into a Matlab for loop.

Recall this classic formula for $\pi^2/6$ due to Euler:

\begin{eqnarray*}
\frac{\pi^2}{6} = \sum_{n=1}^{\infty} \frac{1}{n^2} = 1 + \frac{1}{2^2} + \frac{1}{3^2} + \frac{1}{4^2} + \frac{1}{5^2} +  \ldots 
\end{eqnarray*}

We can sum the first N terms of this series with the Matlab one-liner

N=100; sum((1:N).^(-2))

We can also do the sum with a for loop. To see how to build the for loop, it's helpful to think of the series as a sequence of partial sums

\begin{eqnarray*}
P_1 = 1 
\end{eqnarray*}

\begin{eqnarray*}
P_2 = 1 + \frac{1}{2^2}
\end{eqnarray*}

\begin{eqnarray*}
P_3 = 1 + \frac{1}{2^2} + \frac{1}{3^2} 
\end{eqnarray*}

etc. Note that the difference between successive partial sums is a single term.

\begin{eqnarray*}
P_n = P_{n-1} + \frac{1}{n^2}
\end{eqnarray*}

So we can compute the $N$th partial sum $P_N$ by successively adding the term $1/n^2$ for n going from 1 to N.

That's exactly we do when we compute the sum with a for loop.

N=100;
P=0;
for n=1:N
  P = P + 1/n^2;
end

At each step in the for loop, we compute $1/n^2$ for the current value of $n$, add it to the previously computed partial sum $P_{n-1}$, and then store the result into $P_n$. But, since we are only interested in the final value $P_N$, we just store the current value of the partial sum in the variable P and write over it with the next value each time we step through the loop.

gibson/teaching/fall-2014/math445/lecture10-diary.txt · Last modified: 2014/10/17 10:23 by gibson