York University
Fall 2014 – Course Website
Basic Information
- Course Description: The symbolic and numeric computing environments provided by Maple and Matlab are used to solve problems in mechanics and electromagnetism. Two lectures (1.5 hours each) and three laboratory hours every week. One term. Three credits. Prerequisites: SC/PHYS 1010 6.00 or a minimum grade of C in SC/PHYS 1410 6.00 or SC/PHYS 1420 6.00; One of LE/CSE 1020 3.00, LE/CSE 1540 3.00; SC/MATH 1014 3.00 or equivalent. Co-requisite: SC/MATH 2015 3.00 or equivalent.
- Location & Time: T,Th 10:00-11:30 (ACW 306) AND M 3:30-6:30 (ACW 203)
- Course Syllabus (includes course logistics): here (pdf)
- Instructor: Christopher Bergevin
Office: Petrie 240
Email: cberge [AT] yorku.ca
Office Hours: TBD (or by appt.)
Phone: 416-736-2100 ext.33730 - TAs: Keh-Harng (William) Feng (kehharng@yorku.ca) & Nikita Bezginov (nibezg@gmail.com) Office Hours: TBD (or by appt.)
- Marker: Ivan Guevara (ivan.guevara1988@gmail.com)
- Text Data-Driven Modeling and Scientific Computation: Methods for Complex Systems and Big Data by J.N. Kutz (Oxford U.P.)
→ Via YorkU, you may be able to access the text online here
Updates and useful bits
- [12.17.14] Just as a reminder, the final exam will take place on Friday 12/19 from 9-12 in ACW 203. The exam is comprehensive, but will chiefly focus on material since the midterm. While we will be in the computer lab, we will not be using the computers for the exam (i.e., the format will be very similar to the midterm). Keep in mind that you can still bring a single double-sided sheet with anything you like on it to the exam (which you also must turn in).
- [12.01.14] Student-student assessment forms can be downloaded here. These are due (along with the project written reports) at the start of class on 12/4.
- [11.19.14] Regarding Fourier analysis, a very useful/interesting reference can be found here and here
- [11.07.14] A reminder that project proposals are due on Monday 11/10. A few salient items to note:
- The format of submitting the proposals will be as follows. During the lab session on 11/10, each group will be expected to give a brief and informal ‘presentation’ of their proposed project. You can use the projector if you like (and you are encouraged to do such!), but such is not necessary. The TAs and fellow class members will provide some feedback on your proposal. You will need to think carefully about such, refine, and ultimately submit a formal 1 page proposal by the end of the day (midnight) to Nikita.
- Here are some tips on creating an effective proposal. Proposals should consist of three pieces: Hypothesis – A reasonable hypothesis is the backbone to your proposal and thus is an essential ingredient in success with the project. Formulating the hypothesis should be given considerable thought. You need to be specific about what you are going to test, as vague hypotheses will lead to headaches. Consider the number of computational aspects to test in order to address your hypothesis: it is crucial to avoid such being too large and thereby take up considerably more time than you have. Instead, refine the hypothesis into a single answerable question. Specifying with detail the predicted outcome will produce a decent hypothesis. Ideally you should have a sense ahead of time whether this hypothesis will be viable by loosely testing it before hand. Background – Also included in your proposal should be the background which explains your reasoning behind the hypothesis. Blindly conducting simulations without a good reason can create an excessive amount of work for you as you try to explain the results without understanding the underlying mechanisms. This is also troublesome for your eventual audience as they try to understand what the reasoning behind the simulations was. Procedure – The procedure is designed to explain how you might go about testing the hypothesis in a rigorous way. Keeping with the theme of the proposal, the procedure should be very specific about how the ‘data’ (i.e., some sort of computational result) will be obtained. For this, a quantitative description is desirable: what will be the computational ‘measurements’ you perform be? Enough information should be given that someone else could test the hypothesis independently of you.
- Some folks may be in groups with as few as two people. If that is the case, please let the course instructor know before the lab session on Monday 11/10. We will try to merge groups as need be on a case-by-case basis. Ideally, each group should consist of three or more people. Keeping in mind that all members are expected to contribute significantly.
- For those looking for a bit more of a challenge, one suggestion is to take a look at this book (accessible via Springer Link, as provided by the York U libraries). It contains some meaty ‘projects’ that might be appropriate to develop into your group project. You’d need to identify a tangible problem and frame some sort of reasonable hypothesis stemming from such.
- [10.28.14] Details for the course project are now available here. Also, students have been randomly placed into groups of approximately four. Groups are listed here (the associated code for determining the groups can be found here for those interested). It’s likely a good idea to get in touch with your fellow group members ASAP just to get connected initially and start formulating ideas.
- [10.23.14] The final exam will take place on Friday Dec.19, 9 AM until 12 PM in ACW 203.
- [10.16.14] The class midterm will take place in class one week from today (10/23). It will be a written exam, chiefly focusing on conceptual aspects to all the topics covered in class so far. Any material incorporated into lectures 1-12 is fair game. This includes all material in the course slides themselves, as well as topics as discussed in class. The ‘suggested’ reading from Kutz’s book supplements the lecture topics and is recommended to be look at closely. You may be asked to write Matlab syntax-specific sections of code. One suggested means to prepare to work thorough the ‘Post class exercises’ suggested for each lecture. Also, as per the course syllabus: “Students will be allowed to bring a single page (double-sided) of notes with them for each exam. Note, as specified in the lateness policy below, there are no makeups”.
- [10.09.14] As per the course syllabus, class attendance is part of the final grade. Attendance was taken today and will sporadically be done again in the future. Coming to class is essential in order to do well in this course!
- [09.25.14] Unfortunately, there will not a be a class lecture on Thursday Oct.2. So you do not need to come to class that day. The lecture slides relevant for that day (dealing with regression) will be posted here as soon as available, and we will discuss that material on during the first part of the lab session on Monday Oct.6.
- [09.25.14] The tentative date for the class midterm exam will be Thursday Oct.23.
- [09.23.14] Note that for all assignments, you should write (and hand in a copy of) your own code. It is okay to look at and utilize the example codes provided here (or from fellow students), but you must write your own version of code (as indicated in the course syllabus). Also in order to receive full credit, you must provide sufficient (but concise) explanation as to how you arrived at your answer.
- Here are some links to resources that might be useful:
- Guide to get Matlab running remotely (via York’s internal server). Guide to help get you started with plotting in Matlab. Lastly, here is link to archived materials from EECS 1541 W2014 (thanks to Prof. Burton Ma).
Class Notes
- 12.04.14 – Course summary
- Reminder: The final exam will take place on Friday Dec.19, 9 AM until 12 PM in ACW 203.
- Pre-Problem
- Pre-Problem (bonus!)
- Slides
- Remember me?
- Example codes: Autocorrelation and noisy (periodic) signals (EXautocorr4.m), ‘Object’ position identification (EXfindDots, zipped folder)
- 12.02.14 – Study day (no class)
- 12.01.14 – Group presentations (during lab period)
- 11.27.14 – DAQ II
- Book reading: Kutz ch. 6.1-6.3
- Pre-Problem
- Slides
- Example codes: Frequency quantizing (EXaveraging.m), ‘Classic curves’ (EXclassicCurves.m), Turbine model (EXturbine.m; see also this)
- 11.25.14 – DAQ I
- Reading: This link has some helpful general background
- Pre-Problem
- Slides
- Example codes: Frequency quantizing (EXquantizeF.m )
- 11.20.14 – Monte carlo II
- Book reading: Kutz ch. 12.3
- Pre-Problem
- Slides
- Example codes: Permutation codes (EXpermutation.m and EXpermutation2.m; you’ll need this and this too), random walk codes in both 1D (EXrandomWalk1D.m) and 2D (EXrandomWalk2D.m), plus three resampling codes (EXresampleLinearFit.m, EXresampleLoess.m and EXresampleLoess2.m; the latter two require loess )
- 11.18.14 – Monte carlo I
- Book reading: Kutz ch. 12.2 (12.1 is good to read too for general background)
- Pre-Problem
- Slides
- Example codes: EXestimatePI.m (demonstrates how to estimate pi using a random # generator), EXrandomNum1.m and EXrandomNum2.m (two simple/clunky/underachieving random # generator algorithms), EXintegrateMC1.m (demonstrates integration using two different Monte carlo approaches), and EXgaussian1 (demonstrates how to build up a Gaussian distribution from a uniform distribution; also allows for a nonlinear regression to fit the appropriate function, but also requires this and this)
- 11.13.14 – Convolutions & Filtering
- Pre-Problem
- Slides
- Example codes: EXconvolution1.m (demonstrates how two simple waveforms are convolved; you’ll also need this), EXconvolution2.m (demonstrates convolving a sampled sinusoid with an impulse), EXsharpenImage.m (simple code to demonstrate 2-D convolution in spatial domain within context of image processing)
- 11.11.14 – Principal component Analysis (PCA) (Prof. Hugh Wilson)
- Book reading: Kutz ch. 2.5, 15.3-15.4
- Pre-Problem
- Slides
- Example codes: EX2Dpca.m (demonstrates a 2-D PCA analysis), EXgramSchmidt.m (demonstrates Gram Schmidt orthonormalization)
- 11.06.14 – Fourier III – Practicalities
- Book reading: Kutz ch. 10.1, 13.4
- Pre-Problem
- Slides
- Link to a webpage describing one means to make ‘photo mosaics’
- Example codes: EXquantizeF.m (demonstrates windowing and the effects of ‘quantizing’ frequency)
- 11.04.14 – Fourier II – Mathematical background
- Pre-Problem
- Slides
- Example of Tuvan throat singing (mp3 of Huun Huur Tu)
- Example codes: EXbuildImpulse (zipped folder containing relevant pieces to build up an impulse from the Fourier components) and EXspecREP3 (zipped folder containing relevant pieces to to fiddle with a variety of 1-D discrete Fourier transform properties)
- 10.30.14 – No class (Co-curricular days)
- 10.28.14 – Fourier I – Introduction
- Book reading: Kutz ch. 13.1
- Pre-Problem
- Slides
- Example codes: EXspectrogram.m (makes a spectrogram of a .wav file; the two .wav files used in the slides can be downloaded here and here) and 2D_Fourier (zipped folder containing relevant pieces for 2-D Fourier demonstration)
- A very useful/interesting reference can be found here and here
- 10.23.14 – Midterm
- 10.21.14 – Nonlinear systems II – Chaos, Period doubling
- Pre-Problem
- Slides
- Example codes: EXfractal2.m (generate Julia set) and EXlogisticBIF.m (generate period doubling cascade for Logistic map)
- 10.16.14 – Nonlinear systems I – Fractals
- Pre-Problem
- Slides
- Example codes: EXkoch1.m (generate Koch snowflake) and EXfractal1.m (generate Mandelbrot set)
- 10.14.14 – Regression III – Splines, Non-parametric methods
- Pre-Problem
- Slides
- Example codes: EXsplines1.m (multiple regression), EXregression6 (a zipped folder containing the relevant pieces), and EXloess1.zip
- 10.09.14 – Regression II – Polynomials, Nonlinear functions
- Book reading: Kutz ch. 3.2-3.3
- Pre-Problem
- Slides
- Example codes: EXregression3.m (multiple regression) and EXregression5 (a zipped folder containing the relevant pieces)
- 10.07.14 – Regression I – Linear least squares
- Book reading: Kutz ch. 3.1
- Pre-Problem
- Slides
- Example codes: EXregression1.m
- A zipped folder containing the files relevant for deplot can be found here
- 10.02.14 – Linear systems II – Eigenvalues and Eigenvectors, Linearizing nonlinear systems, Eigenfaces
- Note: There is no in-class lecture today (we will discuss this material during the lab on 10/6)
- Book reading: Kutz ch. 2.5
- Pre-Problem
- Slides
- 09.30.14 – Linear systems I – Introduction and Motivations
- Book reading: Kutz ch. 2.1, 2.4
- Pre-Problem
- Slides
- Example codes: VDPode45EX.m and VDPfunction.m (van der Pol oscillator)
- 09.25.14 – Differential equations III – Built-in solvers, Higher order systems
- Book reading: Kutz ch. 7.3
- Pre-Problem
- Slides
- Example codes: ODErkEX1.m (Logistic equation), HOode45EX.m and HOfunction.m (harmonic oscillator)
- 09.23.14 – Differential equations II – Euler’s method, Runge-Kutta
- Book reading: Kutz ch. 7.2
- Pre-Problem
- Slides
- Example codes: ODEeulerEX1.m, ODEeulerEX4.m
- 09.18.14 – Differential equations I – Introduction
- Book reading: Kutz ch. 7.1
- Pre-Problem
- Slides
- 09.16.14 – Numerical integration
- Book reading: Kutz ch. 4.2
- Pre-Problem
- Slides
- Example code INTexample1.m
- Barn owl auditory nerve fiber tuning curve data
- 09.11.14 – Harmonic oscillator, Numerical differentiation
- Book reading: Kutz ch. 4.1, 4.3
- Pre-Problem
- Slides
- Example code NDexample1.m
- 09.09.14 – Introduction and review
- Book reading: Kutz ch.1
- Slides
HW Assignments
Homework should be handed in as a hard copy on Thursday mornings before the start of class.