Here are some items to get you started on Project 5C. I have put two data files here: http://www-users.math.umd.edu/~bhunt/data/ The file xvals.txt contains x values that you are trying to estimate, and you can't download this file at this point. Your first task is to download the file yvals.txt and use this data ("simulated observations") to estimate the x values. I generated the data from the following equations (in MATLAB notation): x(n) = 0.99*x(n-1) + 0.1*randn y(n) = x(n) + randn Here randn represents (and in MATLAB, generates) a normally distributed (pseudo-)random number with mean 0 and variance 1. In the notation of the project handout, this means a=0.99, b=0.01 (this is 0.1 squared b/c b is a variance), and r=1. At the end of class on Wednesday, I talked about applying the Kalman filter to this type of model, but I didn't write down equations specific to the model. Here is a source with scalar Kalman filter equations and derivation: http://www.swarthmore.edu/NatSci/echeeve1/Ref/Kalman/ScalarKalman.html Its notation is similar to the Wikipedia Kalman filter page's notation, and differs from mine in the following ways (among others). Both pages include a "control variable" u that you should ignore, i.e. use u=0. They also use z, w, v (whereas I use y, delta, epsilon) to represent observations, model noise, and observation noise respectively. You should start by programming and applying the scalar Kalman filter to the data I'm giving you in yvals.txt. When I let you see the values in xvals.txt, you can see how good your estimates are. But in real life we have to evaluate the quality of our estimate of x values without ever knowing the real x values. So it is useful to learn another of evaluating the quality of your results, looking at "forecast errors". If you estimate x(n) by xhat(n), then you can use the model to predict the next observation y(n+1) to be 0.99*xhat(n). As a baseline, you can compute the RMS difference between y(n+1) and 0.99*y(n). Then when you get estimates xhat(n) from the Kalman filter, compute the RMS difference between y(n+1) and 0.99*xhat(n); you should see an improved forecast error. One way to think of the forecast error approach is that we are looking at the problem of estimating/predicting y(n+1) from y(1), y(2), ..., y(n), which is closely related to the data assimilation problem of estimating x(n) from y(1), y(2), ..., y(n). Let me know if you have any questions, any problems loading the data (if you use MATLAB, "load" should work), and if not let me know when you have some results -- then I'll let you look at xvals.txt and discuss next steps. Brian Hunt Associate Chair for Undergraduate Studies Department of Mathematics, University of Maryland