230 likes | 243 Views
Learn about the Fourier Transform, its application in finding trigonometric polynomial approximations, and how to program it in MATLAB. Explore periodic patterns and interpolation techniques.
E N D
Governor’s School for the Sciences Mathematics Day 2
“The more things stay, the more they change the sane.” -khaosworks
MOTD: Joseph Fourier • 1768-1830 (French) • Partial Differential Equation for Heat Conduction • Solution by Infinite Trigonometric Series (Fourier Series) • “Mathematics compares the most diverse phenomena and discovers the secret analogies that unite them.”
Where are you from? Give us the Good, the Bad or the Ugly!
Periodic PatternsWhat comes next? Stock Price History Sound Signal
Aside When we have real data we may not want to predict the pattern exactly. (Why? Noisy or too much data) Instead we may wish to find an approximation to the pattern: A(n) = f(n) + e(n) Where |e(n) | is ‘small’ and ‘random’ Finding f is slightly different but the tools we are using still work.
Trignometric Polynomial Interpolation • Recall: Polynomial of degree n p(x) = a0 + a1x + a2x2 + … + anxn • Trig poly of degree n t(x) = a0 + a1 cos(x) + a2 cos(2x) + … + an cos(nx) + b1 sin(x) + b2 sin(2x) + … + bn sin(nx) • Finding t means finding a0, a1, a2, …, an , b1, b2, …, bn • The process of changing from the data to the coefficients is called the Fourier Transform • Computed using: Fast Fourier Transform (FFT)
Why Trig Polynomial? • Euler’s formula: eiq= cos(q) + i sin(q) (Cool: 1 + eip= 0) • (eiq)n = cos(nq) + i sin(nq) • Rewrite t(x) = c-nw-n + … + c-1w-1 + c0 + c1w + c2w2 + … + cnwn, where w = eix • Coefficients ck are complex but t is real!
How To Find t • Always modify the x-range so it covers from 0 to 2p for unique part of sequence • M points in unique part -> spacing of 2p/M • Vandermode approach using ‘nice’ values for x (p/6, p/4, p/3, p/2, p, …) • Clever work can find each coefficient directly! (idea of FFT) • For large data sets, use a program
Time for Boardwork! Consider this sequence: 1, 2, 0, 2, 1, 2, 0, 2, 1, 2, …
Solution Consider this sequence: 1, 2, 0, 2, 1, 2, 0, 2, 1, 2, … T(n) = 5/4 + 1/2 cos(pn/2) – 3/4 cos(pn)
Your turn … Find the trig polynomial for these sequences: 2, 3, 2, 3, 2, 3, 2, … -1, 0, 4, 3, -1, 0, 4, 3, -1,…
Your turn … Find the trig polynomial for these sequences: 2, 3, 2, 3, 2, 3, 2, … t(n) = 5/2 – 1/2 cos(pn) -1, 0, 4, 3, -1, 0, 4, 3, -1,…t(n) = 3/2 – 5/2 cos(pn/2) – 3/2 sin(pn/2)
Programming in MATLAB • Put the commands you want to use together in a file, save the file and then call it from the command window. • Two types: Scripts and Functions • Called ‘M-Files’ as file name is something.m • Run it by typing: something
First Script • Up/Down Pattern A(n+1) = A(n)/2 if A(n) is even 3A(n)+1 if A(n) is odd • Example: 5, 16, 8, 4, 2, 1, 4, 2, 1, … • Does it always get to …, 4, 2, 1, …? • How long does it take to get to 1?
MATLAB Script: updown.m x(1) = input(‘Enter initial value:’);k = 1;while (x(k) ~= 1) if (mod(x(k),2) == 0) x(k+1) = x(k)/2; else x(k+1) = 3*x(k)+1; end k = k + 1;end
MATLAB Function: updownf.m function x = updownf(a)x(1) = a;k = 1;while (x(k) ~= 1) if (mod(x(k),2) == 0) x(k+1) = x(k)/2; else x(k+1) = 3*x(k)+1; end k = k + 1;end
Modifications • Display the results (use disp(x) ) • Plot the results (use plot(x,’o’)) • Save the results (use diary updown) • Stop at 500 terms (if never reach 1) • Look for a repeated value • Compute statistics
Field Trip • Pickup behind Reese at 9:45AM • Hike/Lunch/Stream Play • Back by 5:00PM
Team 2 Austin Chu Michelle Sarwar Jennifer Soun Matthew Zimmerman Team 1 Sam Barrett Clay Francis Michael Hammond Angela Wilcox Teams • Team 3 • Charlie Fu • Scott McKinney • Steve White • Lena Zurkiya • Team 4 • Stuart Elston • Chris Goodson • Meara Knowles • Charlie Wright