This semester we had about a week to spend on numerical methods. My goal was to give them the basics of how a numerical method works: given one selects a step size and then one rides the slope of the tangent line: and repeat the process. This is the basic Euler method; one can do an averaging process to get a better slope (Runge-Kutta) and one, if one desires, can use previous points in a multi-step process (e. g. Adams-Bashforth, etc.). Ultimately, it is starting at a point and using the slope at that point to get a piece wise linear approximation to a solution curve.
But the results of such a process confused students. Example: if one used a spreadsheet to do the approximation process (e. g. Euler or Runge-Kutta order 4), one has an output something like this:
So, there is confusion. They know how to get from one row to the other and what commands to type. But….”where is the solution?” they ask.
One has to emphasize what is obvious to us: the columns, is the approximate solution…a piece wise approximation of one anyway. What we have is a set where these ordered pairs are points in the approximate solution to the differential equation that runs through those points. One cannot assume that the students understand this, even when they can do the algorithm.
An Exam Question
As a bonus question, I gave the following graph:
I then said: “I was testing out an Euler method routine on the differential equation and I got the following output.
A) Is this solution mathematically possible?
B) If there is an error, is this an error induced by the Euler method or by an improper step size, or is a coding error more likely?
Many students got part A correct: some noted that is an equilibrium solution and that this differential equation meets the “existence and uniqueness” criteria everywhere; hence the graph of the proposed solution intersecting the equilibrium solution is impossible.
Others noted that the slope of a solution at would be zero; others noted that the slopes above were negative and this proposed solution leveled out. Others noted that is an attractor hence any solution near would have to stay near there.
But no one got part B; one even went as far to say that someone with a Ph. D. in math would never make such an elementary coding error (LOL!!!!!)
But the key here: the slopes ARE negative above and a correct Euler method (regardless of step size…ok, within reason) would drive the curve down.
So this WAS the result of a coding error.
What went wrong: I was running both RK-order 4 and Euler (for teaching purposes) and I stored the RK slope with one variable and calculated the “new Y” using the RK slope (obtained from the RK approximation) for the Euler method. Hence when the curve “jumped over” the , the new slope it picked up was a near zero slope from the RK approximation for the same value of (which was near, but below the equilibrium.
My problem is that the two variables in the code differed by a single number (my bad). I was able to fix the problem very quickly though.
On another part of the test, I told them to solve and gave them the phrase: “hint: THINK first; this is NOT a hard calculation”. A few students got it, but mostly the A students. There was ONE D student who got it right!