0% found this document useful (0 votes)
24 views

Computational Physics Iteration and Recursion

The document discusses iteration and recursion, which are techniques for repeating computational steps. It provides definitions of iteration as repeating a process and recursion as a function calling itself. As an example, it examines computing the Fibonacci sequence through both iterative and recursive approaches. It also gives examples of using iteration to compute a sum and use bisection to iteratively search for a root of a function.

Uploaded by

Sam Mashuri
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views

Computational Physics Iteration and Recursion

The document discusses iteration and recursion, which are techniques for repeating computational steps. It provides definitions of iteration as repeating a process and recursion as a function calling itself. As an example, it examines computing the Fibonacci sequence through both iterative and recursive approaches. It also gives examples of using iteration to compute a sum and use bisection to iteratively search for a root of a function.

Uploaded by

Sam Mashuri
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

Iteration and Recursion

Computational Physics Iteration and Recursion

Outline
Defnitions Iteration Recursion Examples
Fibonacci Sequence Computing Sums Searching for a Root

Defnitions
Many numerical algorithms involve repeating simple operations again and again to achieve a solution. Iteration Defnition of function or sequence through repetition of a process Solution techique involving successive approximations Recursion Special case of Iteration wherein function or sequence is defned by calling itself.

Fibonacci Sequence
A famous number sequence derived from a simple formula:
Fn = Fn-1 + Fn-2 with seed values: F1 = 0; F2 = 1

Sequence: 0 1 1 2 3 5 8 13 21 34 55 ... Features


Natural Phenomena (Petals on fowers) Fn/Fn-1 approaches Golden Ratio as n->

Fibonacci Sequence
Iterative Approach
% compute fbonacci sequence % initialize frst two terms f(1) = 0; f(2) = 1; % start computing with next term for i=3:10 %compute to 10th term f(i) = f(i-1)+f(i-2); end % show result f New value in series is sum of previous two values

Fibonacci Sequence
Recursive Approach
function result = fb(m) % recursive function to compute % fbonacci sequence if(m==0) result = 0; elseif(m==1) result = 1; else result = fb(m-1) + fb(m-2); end return result; Creates a MATLAB function (in fle fb.m) to compute the mth term in the Fibonacci sequence.

Function calls itself to add two previous values in the sequence

Computing a Sum
% compute sum of numbers % 1 through 10 %initialize variable Sum = 0.0; % now add in each element for i=1:10 Sum = Sum + i; end % print result fprintf(Result = %f\n, Sum); The variable Sum is initialized with value of 0.0 First pass through loop: i = 1 so Sum = 0 + 1 = 1 Next pass through loop: i = 2 so Sum = 1 + 2 = 3 Third pass through loop: i = 3 so Sum = 3 + 3 = 6

Iterative Search
Find value of t where y(t)=0 if y(tlo) and y(thi) have opposite signs then a root exists. Compute midpoint tmid = (thi+tlo)/2 and determine which half of domain contains the root Repeat until search domain has narrowed to give an answer that is close enough
y(t) y=0

tlo

tmid

thi

Bisection Algorithm
% initial range is lo, hi % initial values at end points are ylo, yhi % note ylo*yhi < 0 assures a root exists epsilon = 1e-10; %convergence criteria while(abs(hi-lo)>2*epsilon) mid = (hi+lo)/2; ymid = myf(mid); if(ymid*ylo)>0) lo = mid; else hi = mid; end end myf is MATLAB function which computes function for root search true if ymid is on same side of 0 as ylo. In this case new low end of search is midpt.

You might also like