mat 305: mathematical loops mat 305: mathematical computing · computing john perry loops definite...
TRANSCRIPT
![Page 1: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/1.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
MAT 305: Mathematical ComputingRepeating a task with loops
John Perry
University of Southern Mississippi
Fall 2011
![Page 2: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/2.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Outline
1 Loops
2 Definite loops
3 Loop tricks I’d rather you avoid for now
4 Indefinite loops
5 Summary
![Page 3: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/3.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Outline
1 Loops
2 Definite loops
3 Loop tricks I’d rather you avoid for now
4 Indefinite loops
5 Summary
![Page 4: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/4.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Loops?
• loop: a sequence of statements that is repeated
big time bug: infinite loops
![Page 5: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/5.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Why loops?
• like functions: avoid retyping code
• many patterns repeated• same behavior, different data
• unlike functions: easily vary repetitions of code
• easier than typing a function name 100 times• can repeat without knowing number of times when
programming
![Page 6: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/6.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Types of loops
• definite
• number of repetitions known at beginning of loop
• indefinite
• number of repetitions not known (even unknowable)at beginning of loop
Python uses different constructions for each
∴ Sage uses different constructions for each
![Page 7: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/7.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Types of loops
• definite
• number of repetitions known at beginning of loop
• indefinite
• number of repetitions not known (even unknowable)at beginning of loop
Python uses different constructions for each
∴ Sage uses different constructions for each
![Page 8: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/8.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Outline
1 Loops
2 Definite loops
3 Loop tricks I’d rather you avoid for now
4 Indefinite loops
5 Summary
![Page 9: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/9.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
The for command
for each in L:statement1statement2. . .
where• each is an identifier• L is an “iterable collection” (tuples, lists, sets)• if you modify each,
• corresponding element of L does not change• on next loop, each takes next element of L anyway
![Page 10: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/10.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
What does it do?
for each in L:statement1statement2. . .• suppose L has n elements• statement1, statement2, etc. are repeated (looped) n times• on ith loop, each has the value of ith element of L
![Page 11: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/11.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Trivial example
sage: for each in [1, 2, 3, 4]:print each
1234
![Page 12: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/12.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Less trivial example
sage: for each in [x**2, cos(x), e**x*cos(x)]:print diff(each)
2*x-sin(x)-e^x*sin(x) + e^x*cos(x)
![Page 13: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/13.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
What happened?
L == [x**2, cos(x), e**x*cos(x)]
loop 1: each = x**2print diff(each) 2x
loop 2: each = cos(x)print diff(each) -sin(x)
loop 3: each = e**x*cos(x)print diff(each) -e^x*sin(x) + e^x*cos(x)
![Page 14: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/14.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
What happened?
L == [x**2, cos(x), e**x*cos(x)]
loop 1: each = x**2print diff(each) 2x
loop 2: each = cos(x)print diff(each) -sin(x)
loop 3: each = e**x*cos(x)print diff(each) -e^x*sin(x) + e^x*cos(x)
![Page 15: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/15.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
What happened?
L == [x**2, cos(x), e**x*cos(x)]
loop 1: each = x**2print diff(each) 2x
loop 2: each = cos(x)print diff(each) -sin(x)
loop 3: each = e**x*cos(x)print diff(each) -e^x*sin(x) + e^x*cos(x)
![Page 16: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/16.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
What happened?
L == [x**2, cos(x), e**x*cos(x)]
loop 1: each = x**2print diff(each) 2x
loop 2: each = cos(x)print diff(each) -sin(x)
loop 3: each = e**x*cos(x)print diff(each) -e^x*sin(x) + e^x*cos(x)
![Page 17: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/17.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Changing each ?
sage: L = [1,2,3,4]sage: for each in L:
each = each + 1print each
2345
Notice: loop ran 4 times (L has 4 elements) even though each hadvalue 5
![Page 18: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/18.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Changing each ?
sage: L = [1,2,3,4]sage: for each in L:
each = each + 1print each
2345
Notice: loop ran 4 times (L has 4 elements) even though each hadvalue 5
![Page 19: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/19.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Changing L ?
Don’t modify L unless you know what you’re doing.
Usually, you don’t.
sage: L = [1,2,3,4]
sage: for each in L:L.append(each+1)
. . . infinite loop!
![Page 20: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/20.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Changing L ?
Don’t modify L unless you know what you’re doing.Usually, you don’t.
sage: L = [1,2,3,4]
sage: for each in L:L.append(each+1)
. . . infinite loop!
![Page 21: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/21.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Changing L ?
Don’t modify L unless you know what you’re doing.Usually, you don’t.
sage: L = [1,2,3,4]
sage: for each in L:L.append(each+1)
. . . infinite loop!
![Page 22: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/22.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
More detailed example
Given f (x), a,b ∈R, and n ∈N, estimate´ b
a f (x) dx using n leftRiemann sums.
• Excellent candidate for definite loop if n known fromoutset.
• Riemann sum: repeated addition: loop!• If n is not known, can still work, but a function with a
loop is better. (Details later.)
• Start with pseudocode. . .
![Page 23: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/23.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
More detailed example
Given f (x), a,b ∈R, and n ∈N, estimate´ b
a f (x) dx using n leftRiemann sums.
• Excellent candidate for definite loop if n known fromoutset.
• Riemann sum: repeated addition: loop!• If n is not known, can still work, but a function with a
loop is better. (Details later.)
• Start with pseudocode. . .
![Page 24: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/24.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Pseudocode for definite loop
for counter ∈ Lloop statement 1loop statement 2. . .
out-of-loop statement 1
Notice:• indentation ends at end of loop• ∈, not in (mathematics, not Python)• no colon
![Page 25: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/25.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Pseudocode for definite loop
for counter ∈ Lloop statement 1loop statement 2. . .
out-of-loop statement 1
Notice:• indentation ends at end of loop• ∈, not in (mathematics, not Python)• no colon
![Page 26: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/26.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Building pseudocode
Ask yourself:• What list do I use to repeat the action(s)?• What do I have to do in each loop?
• How do I break the task into pieces?• Divide et impera! Divide and conquer!
![Page 27: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/27.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
ReviewHow do we estimate limits using left Riemann sums?
ˆ b
af (x) dx≈
n∑
i=1
f (xi)∆x
where• ∆x= b−a
n• x1 = a, x2 = a+∆x, x3 = a+ 2∆x, . . . xn = a+(n− 1)∆x
• short: xi = a+(i− 1)∆x
So. . .• L= (1,2, . . . ,n)• repeat addition of f (xi)∆x
• use computer to remember previous value and add to it• sum= sum+ . . .
![Page 28: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/28.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
ReviewHow do we estimate limits using left Riemann sums?
ˆ b
af (x) dx≈
n∑
i=1
f (xi)∆x
where• ∆x= b−a
n• x1 = a, x2 = a+∆x, x3 = a+ 2∆x, . . . xn = a+(n− 1)∆x
• short: xi = a+(i− 1)∆x
So. . .• L= (1,2, . . . ,n)• repeat addition of f (xi)∆x
• use computer to remember previous value and add to it• sum= sum+ . . .
![Page 29: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/29.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
ReviewHow do we estimate limits using left Riemann sums?
ˆ b
af (x) dx≈
n∑
i=1
f (xi)∆x
where• ∆x= b−a
n• x1 = a, x2 = a+∆x, x3 = a+ 2∆x, . . . xn = a+(n− 1)∆x
• short: xi = a+(i− 1)∆x
So. . .• L= (1,2, . . . ,n)• repeat addition of f (xi)∆x
• use computer to remember previous value and add to it• sum= sum+ . . .
![Page 30: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/30.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Pseudocode
Let∆x= b−an this is not given
Let L= (1,2, . . . ,n) set up L—notice no PythoneseLet S= 0 S must start at 0 (no sum)for i ∈ L
xi = a+(i− 1)∆x determine xiS= S+ f (xi)∆x add to S
translates to Sage as. . .Delta_x = (b - a)/xL = range(1,n+1) now use PythoneseS = 0for i in L:
xi = a + (i - 1)*Delta_xS = S + f(x=xi)*Delta_x
![Page 31: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/31.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Pseudocode
Let∆x= b−an this is not given
Let L= (1,2, . . . ,n) set up L—notice no PythoneseLet S= 0 S must start at 0 (no sum)for i ∈ L
xi = a+(i− 1)∆x determine xiS= S+ f (xi)∆x add to S
translates to Sage as. . .Delta_x = (b - a)/xL = range(1,n+1) now use PythoneseS = 0for i in L:
xi = a + (i - 1)*Delta_xS = S + f(x=xi)*Delta_x
![Page 32: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/32.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Try it!
sage: f = x**2; a = 0; b = 1; n = 3
sage: Delta_x = (b - a)/n
sage: L = range(1,n+1)
sage: S = 0
sage: for i in L:xi = a + (i - 1)*Delta_xS = S + f(x=xi)*Delta_x
sage: S
5/27
![Page 33: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/33.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Try it!
sage: f = x**2; a = 0; b = 1; n = 3
sage: Delta_x = (b - a)/n
sage: L = range(1,n+1)
sage: S = 0
sage: for i in L:xi = a + (i - 1)*Delta_xS = S + f(x=xi)*Delta_x
sage: S5/27
![Page 34: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/34.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
What happened?
L = [1,2,3]
loop 1: i= 1xi = a + (i - 1)*Delta_x
xi = 0 + 0*(1/3) = 0S = S + f(x=xi)*Delta_x
S = 0 + f(0)*(1/3) = 0loop 2: i= 2
xi = a + (i - 1)*Delta_x xi = 0 + 1*(1/3) = 1/3
S = S + f(x=xi)*Delta_x S = 0 + f(1/3)*(1/3) = 1/27
loop 3: i= 3xi = a + (i - 1)*Delta_x
xi = 0 + 2*(1/3) = 2/3S = S + f(x=xi)*Delta_x
S = 1/27 + f(2/3)*(1/3) = 5/27
![Page 35: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/35.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
What happened?
L = [1,2,3]loop 1: i= 1
xi = a + (i - 1)*Delta_x xi = 0 + 0*(1/3) = 0
S = S + f(x=xi)*Delta_x S = 0 + f(0)*(1/3) = 0
loop 2: i= 2xi = a + (i - 1)*Delta_x
xi = 0 + 1*(1/3) = 1/3S = S + f(x=xi)*Delta_x
S = 0 + f(1/3)*(1/3) = 1/27loop 3: i= 3
xi = a + (i - 1)*Delta_x xi = 0 + 2*(1/3) = 2/3
S = S + f(x=xi)*Delta_x S = 1/27 + f(2/3)*(1/3) = 5/27
![Page 36: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/36.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
What happened?
L = [1,2,3]loop 1: i= 1
xi = a + (i - 1)*Delta_x xi = 0 + 0*(1/3) = 0
S = S + f(x=xi)*Delta_x S = 0 + f(0)*(1/3) = 0
loop 2: i= 2xi = a + (i - 1)*Delta_x
xi = 0 + 1*(1/3) = 1/3S = S + f(x=xi)*Delta_x
S = 0 + f(1/3)*(1/3) = 1/27
loop 3: i= 3xi = a + (i - 1)*Delta_x
xi = 0 + 2*(1/3) = 2/3S = S + f(x=xi)*Delta_x
S = 1/27 + f(2/3)*(1/3) = 5/27
![Page 37: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/37.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
What happened?
L = [1,2,3]loop 1: i= 1
xi = a + (i - 1)*Delta_x xi = 0 + 0*(1/3) = 0
S = S + f(x=xi)*Delta_x S = 0 + f(0)*(1/3) = 0
loop 2: i= 2xi = a + (i - 1)*Delta_x
xi = 0 + 1*(1/3) = 1/3S = S + f(x=xi)*Delta_x
S = 0 + f(1/3)*(1/3) = 1/27loop 3: i= 3
xi = a + (i - 1)*Delta_x xi = 0 + 2*(1/3) = 2/3
S = S + f(x=xi)*Delta_x S = 1/27 + f(2/3)*(1/3) = 5/27
![Page 38: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/38.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Try it with larger n!
sage: f = x**2; a = 0; b = 1; n = 1000
sage: Delta_x = (b - a)/n
sage: L = range(1,n+1)
sage: S = 0
sage: for i in L:xi = a + (i - 1)*Delta_xS = S + f(x=xi)*Delta_x
sage: S
665667/2000000correct answer is 1
3 ; use round() to see how “close”
![Page 39: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/39.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Try it with larger n!
sage: f = x**2; a = 0; b = 1; n = 1000
sage: Delta_x = (b - a)/n
sage: L = range(1,n+1)
sage: S = 0
sage: for i in L:xi = a + (i - 1)*Delta_xS = S + f(x=xi)*Delta_x
sage: S665667/2000000
correct answer is 13 ; use round() to see how “close”
![Page 40: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/40.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Typing and retyping is a painMake a function out of it!
algorithm left_Riemann_sum
inputsf , a function on [a,b]⊂Rn ∈N
outputsleft Riemann sum approximation of
´ ba f (x) dx w/n rectangles
doLet∆x= b−a
nLet L= (1,2, . . . ,n)Let S= 0for i ∈ L
xi = a+(i− 1)∆xS= S+ f (xi)∆x
return S don’t forget to report the result!
![Page 41: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/41.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Typing and retyping is a painMake a function out of it!
algorithm left_Riemann_suminputs
f , a function on [a,b]⊂Rn ∈N
outputsleft Riemann sum approximation of
´ ba f (x) dx w/n rectangles
doLet∆x= b−a
nLet L= (1,2, . . . ,n)Let S= 0for i ∈ L
xi = a+(i− 1)∆xS= S+ f (xi)∆x
return S don’t forget to report the result!
![Page 42: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/42.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Typing and retyping is a painMake a function out of it!
algorithm left_Riemann_suminputs
f , a function on [a,b]⊂Rn ∈N
outputsleft Riemann sum approximation of
´ ba f (x) dx w/n rectangles
doLet∆x= b−a
nLet L= (1,2, . . . ,n)Let S= 0for i ∈ L
xi = a+(i− 1)∆xS= S+ f (xi)∆x
return S don’t forget to report the result!
![Page 43: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/43.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Typing and retyping is a painMake a function out of it!
algorithm left_Riemann_suminputs
f , a function on [a,b]⊂Rn ∈N
outputsleft Riemann sum approximation of
´ ba f (x) dx w/n rectangles
doLet∆x= b−a
nLet L= (1,2, . . . ,n)Let S= 0for i ∈ L
xi = a+(i− 1)∆xS= S+ f (xi)∆x
return S don’t forget to report the result!
![Page 44: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/44.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Translate into Sage code. . .
. . . on your own. Raise your hand if you need help.
You should be able to compute:• left_Riemann_sum(x**2, 0, 1, 3)
• left_Riemann_sum(x**2, 0, 1, 1000)
. . . and obtain the same answers as before.
![Page 45: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/45.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Outline
1 Loops
2 Definite loops
3 Loop tricks I’d rather you avoid for now
4 Indefinite loops
5 Summary
![Page 46: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/46.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Looping through nonexistent lists
• for each in L
• L an “iterable collection”
• may not want to construct list of n elements; merely repeatn times
• for each in xrange(L) has same effect• slightly faster, uses less computer memory
![Page 47: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/47.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Building lists from lists
Python (Sage) has a handy list constructor• Suppose Lold has n elements• Let Lnew = [f (x) for x ∈ Lold]
• Lnew will be a list with n elements• Lnew[i] == f (Lold[i])
![Page 48: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/48.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Example
sage: L = [x**2 for x in range(10)]
sage: L[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
![Page 49: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/49.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Outline
1 Loops
2 Definite loops
3 Loop tricks I’d rather you avoid for now
4 Indefinite loops
5 Summary
![Page 50: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/50.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
The while command
while condition :statement1statement2. . .
where• statements are executed while condition remains true• like definite loops, variables in condition can be modified• unlike definite loops, variables in condition should be
modified• warning: statements will not be executed if condition is false
from the get-go
![Page 51: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/51.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Pseudocode for indefinite loop
while conditionstatement1statement2. . .
out-of-loop statement 1
Notice:• indentation ends at end of loop• no colon
![Page 52: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/52.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Pseudocode for indefinite loop
while conditionstatement1statement2. . .
out-of-loop statement 1
Notice:• indentation ends at end of loop• no colon
![Page 53: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/53.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Silly 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 54: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/54.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
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 55: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/55.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
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 56: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/56.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
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 C between f (a) and f (b),• ∃c ∈ (a,b) such that f (c) =C.
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 57: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/57.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
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 C between f (a) and f (b),• ∃c ∈ (a,b) such that f (c) =C.
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 58: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/58.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Back to the example. . .
Given• f (x) = cosx− x
• continuous because it is a difference of continuousfunctions
• a= 0 and b= 1
• f (a) = 1> 0• f (b)≈−0.4597< 0
Intermediate Value Theorem applies: can start Method ofBisection.
![Page 59: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/59.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
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 60: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/60.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
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 61: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/61.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
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 62: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/62.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
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 ∈R 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 63: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/63.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
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 ∈R 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 64: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/64.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
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 ∈R 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 65: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/65.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
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 ∈R 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 66: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/66.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
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 67: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/67.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
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 68: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/68.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
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 69: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/69.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
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 70: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/70.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Outline
1 Loops
2 Definite loops
3 Loop tricks I’d rather you avoid for now
4 Indefinite loops
5 Summary
![Page 71: MAT 305: Mathematical Loops MAT 305: Mathematical Computing · Computing John Perry Loops Definite loops Loop tricks I’d rather you avoid for now Indefinite loops Summary The](https://reader034.vdocuments.net/reader034/viewer/2022042606/5f8b32605a629f26b8316759/html5/thumbnails/71.jpg)
MAT 305:MathematicalComputing
John Perry
Loops
Definite loops
Loop tricks I’drather youavoid for now
Indefinite loops
Summary
Summary
Two types of loops
• definite: n repetitions known at outset
• for i ∈ L
• list L of n elements controls loop• don’t modify L
• indefinite: number of repetitions not known at outset
• while condition
• Boolean condition controls loop