1 / 23

Governor’s School for the Sciences

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.

ullrich
Télécharger la présentation

Governor’s School for the Sciences

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Governor’s School for the Sciences Mathematics Day 2

  2. “The more things stay, the more they change the sane.” -khaosworks

  3. 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.”

  4. Where are you from? Give us the Good, the Bad or the Ugly!

  5. Periodic PatternsWhat comes next? Stock Price History Sound Signal

  6. 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.

  7. 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)

  8. Example: 0.1sin(x)-0.3cos(x)+0.4sin(2x)+0.2cos(2x)

  9. 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!

  10. 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

  11. Time for Boardwork! Consider this sequence: 1, 2, 0, 2, 1, 2, 0, 2, 1, 2, …

  12. 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)

  13. 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,…

  14. 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)

  15. Break Time

  16. 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

  17. 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?

  18. 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

  19. 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

  20. 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

  21. MATLAB Demo

  22. Field Trip • Pickup behind Reese at 9:45AM • Hike/Lunch/Stream Play • Back by 5:00PM

  23. 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

More Related