![Page 1: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/1.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary MAT 305: Mathematical ComputingRepeating a task with loops
John Perry
University of Southern Mississippi
Fall 2013
![Page 2: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/2.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Outline
1 Loops
2 Indefinite loops
3 Summary
![Page 3: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/3.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Outline
1 Loops
2 Indefinite loops
3 Summary
![Page 4: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/4.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Loops?
• loop: a sequence of statements that is repeated
big time bug: infinite loops
“infinite loop”?see infinite loop
— AmigaDOS manual, ca. 1993
![Page 5: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/5.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Loops?
• loop: a sequence of statements that is repeated
big time bug: infinite loops
“infinite loop”?see infinite loop
— AmigaDOS manual, ca. 1993
![Page 6: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/6.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Why loops?
• like functions: avoid retyping code
• many patterns repeated• same behavior, different data
• don’t know number of repetitions when programming
![Page 7: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/7.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Types of loops
• definite
• number of repetitions known at beginning of loop
• indefinite
• number of repetitions not known at beginning of loop• number of repetitions unknownable at beginning of
loop
Most languages use different constructions for each
![Page 8: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/8.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Types of loops
• definite
• number of repetitions known at beginning of loop
• indefinite
• number of repetitions not known at beginning of loop• number of repetitions unknownable at beginning of
loop
Most languages use different constructions for each
![Page 9: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/9.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Outline
1 Loops
2 Indefinite loops
3 Summary
![Page 10: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/10.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
The while command
while condition :statement1statement2. . .
where• statements are executed while condition remains true
• statements will not be executed if condition is falsefrom the get-go
• like definite loops, variables in condition can be modified• unlike definite loops, variables in condition should be
modified
![Page 11: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/11.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Pseudocode for indefinite loop
while conditionstatement1statement2. . .
out-of-loop statement 1
Notice:• indentation ends at end of loop• no colon
![Page 12: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/12.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Pseudocode for indefinite loop
while conditionstatement1statement2. . .
out-of-loop statement 1
Notice:• indentation ends at end of loop• no colon
![Page 13: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/13.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Example
sage: f = x**10sage: while f != 0:
f = diff(f)print f
10*x^990*x^8720*x^75040*x^630240*x^5151200*x^4604800*x^31814400*x^23628800*x36288000
![Page 14: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/14.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
More interesting example
Use the Method of Bisection to approximate a root of cosx− xon the interval [0,1], correct to the hundredths place.
Hunh?!?
![Page 15: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/15.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
More interesting example
Use the Method of Bisection to approximate a root of cosx− xon the interval [0,1], correct to the hundredths place.
Hunh?!?
![Page 16: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/16.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Method of Bisection?
The Method of Bisection is based on:
Theorem (Intermediate Value Theorem)If• f is a continuous function on [a,b], and• f (a) 6= f (b),
then• for any y between f (a) and f (b),• ∃c ∈ (a,b) such that f (c) = y.
![Page 17: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/17.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Continuous?
f continuous at x= a if• can evaluate limit at x= a by computing f (a), or• can draw graph without lifting pencil
Upshot: To find a root of a continuous function f , start withtwo x values a and b such that f (a) and f (b) have different signs,then bisect the interval.
![Page 18: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/18.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Continuous?
f continuous at x= a if• can evaluate limit at x= a by computing f (a), or• can draw graph without lifting pencil
Upshot: To find a root of a continuous function f , start withtwo x values a and b such that f (a) and f (b) have different signs,then bisect the interval.
![Page 19: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/19.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
1 Animation = 1000 Words
(need Acrobat Reader to see animation)
![Page 20: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/20.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Back to the example. . .
Check hypotheses. . .• f (x) = cosx− x
• x, cosx continuous• difference of continuous functions also continuous∴ f continuous
• a= 0 and b= 1
• f (a) = 1> 0• f (b)≈−0.4597< 0
Intermediate Value Theorem applies: can start Method ofBisection.
![Page 21: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/21.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
How to solve it?
Idea: Interval endpoints a and b are not close enough as long astheir digits differ through the hundredths place.
Application: While their digits differ through the hundredthsplace, halve the interval.
“Halve” the interval? Pick the half containing a root!
![Page 22: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/22.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
How to solve it?
Idea: Interval endpoints a and b are not close enough as long astheir digits differ through the hundredths place.
Application: While their digits differ through the hundredthsplace, halve the interval.
“Halve” the interval? Pick the half containing a root!
![Page 23: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/23.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
How to solve it?
Idea: Interval endpoints a and b are not close enough as long astheir digits differ through the hundredths place.
Application: While their digits differ through the hundredthsplace, halve the interval.
“Halve” the interval? Pick the half containing a root!
![Page 24: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/24.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Pseudocode
algorithm method_of_bisection
inputsf , a continuous functiona,b ∈R such that a 6= b and f (a) and f (b) have different signs
outputsc ∈ [a,b] such that f (c)≈ 0 and c accurate to hundredths place
dowhile the digits of a and b differ through the hundredths
Let c= a+b2
if f (a) and f (c) have the same signLet a= c Interval now
�
a+b2 ,b�
else if f (a) and f (c) have opposite signsLet b= c Interval now
�
a, a+b2
�
else we must have f (c) = 0return c
return a, rounded to hundredths place
![Page 25: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/25.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Pseudocode
algorithm method_of_bisectioninputs
f , a continuous functiona,b ∈R such that a 6= b and f (a) and f (b) have different signs
outputsc ∈ [a,b] such that f (c)≈ 0 and c accurate to hundredths place
dowhile the digits of a and b differ through the hundredths
Let c= a+b2
if f (a) and f (c) have the same signLet a= c Interval now
�
a+b2 ,b�
else if f (a) and f (c) have opposite signsLet b= c Interval now
�
a, a+b2
�
else we must have f (c) = 0return c
return a, rounded to hundredths place
![Page 26: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/26.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Pseudocode
algorithm method_of_bisectioninputs
f , a continuous functiona,b ∈R such that a 6= b and f (a) and f (b) have different signs
outputsc ∈ [a,b] such that f (c)≈ 0 and c accurate to hundredths place
dowhile the digits of a and b differ through the hundredths
Let c= a+b2
if f (a) and f (c) have the same signLet a= c Interval now
�
a+b2 ,b�
else if f (a) and f (c) have opposite signsLet b= c Interval now
�
a, a+b2
�
else we must have f (c) = 0return c
return a, rounded to hundredths place
![Page 27: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/27.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Pseudocode
algorithm method_of_bisectioninputs
f , a continuous functiona,b ∈R such that a 6= b and f (a) and f (b) have different signs
outputsc ∈ [a,b] such that f (c)≈ 0 and c accurate to hundredths place
dowhile the digits of a and b differ through the hundredths
Let c= a+b2
if f (a) and f (c) have the same signLet a= c Interval now
�
a+b2 ,b�
else if f (a) and f (c) have opposite signsLet b= c Interval now
�
a, a+b2
�
else we must have f (c) = 0return c
return a, rounded to hundredths place
![Page 28: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/28.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Try it!
sage: def method_of_bisection(f,x,a,b):while round(a,2) != round(b,2):
c = (a + b)/2if f(x=a)*f(x=c) > 0:
a = celif f(x=a)*f(x=c) < 0:
b = celse:
return creturn round(a,2)
sage: method_of_bisection(cos(x)-x,x,0,1)0.74
![Page 29: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/29.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Try it!
sage: def method_of_bisection(f,x,a,b):while round(a,2) != round(b,2):
c = (a + b)/2
if f(x=a)*f(x=c) > 0:a = c
elif f(x=a)*f(x=c) < 0:b = c
else:return c
return round(a,2)
sage: method_of_bisection(cos(x)-x,x,0,1)0.74
![Page 30: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/30.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Try it!
sage: def method_of_bisection(f,x,a,b):while round(a,2) != round(b,2):
c = (a + b)/2if f(x=a)*f(x=c) > 0:
a = celif f(x=a)*f(x=c) < 0:
b = celse:
return creturn round(a,2)
sage: method_of_bisection(cos(x)-x,x,0,1)0.74
![Page 31: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/31.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Try it!
sage: def method_of_bisection(f,x,a,b):while round(a,2) != round(b,2):
c = (a + b)/2if f(x=a)*f(x=c) > 0:
a = celif f(x=a)*f(x=c) < 0:
b = celse:
return creturn round(a,2)
sage: method_of_bisection(cos(x)-x,x,0,1)0.74
![Page 32: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/32.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Outline
1 Loops
2 Indefinite loops
3 Summary
![Page 33: Loops MAT 305: Mathematical ComputingMAT 305: Mathematical Computing John Perry Loops Indefinite loops Summary Pseudocode algorithm method_of_bisection inputs f , a continuous function](https://reader033.vdocuments.us/reader033/viewer/2022043005/5f8b3373adab406af265fb0d/html5/thumbnails/33.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Indefinite loops
Summary
Summary
Two types of loops
• definite: n repetitions known at outset
• for c ∈C
• collection C of n elements controls loop• don’t modify C
• indefinite: number of repetitions not known at outset
• while condition
• Boolean condition controls loop