# Marathon training starts today

Haven’t posted much on my own running, but wanted to stay honest on this one.

Not me, but at least I took the photo.

Building up to the 2013 Austin Marathon, with a goal of sub-2:30, which should be good for a top-5 (top-1?) finish.  Training started today, after 2+ weeks entirely off, the first time I’ve managed that in quite a while.  Hoping that a 12 week focused buildup will work well.  My daily mileage is borrowed mostly from here, though the 90 mile week I will likely substitute 10-12-15-11-10-22-10 to keep the second long run down a little bit.

Additional workouts will be marathon pace (5:30-5:50) segments built into the long run, starting at ~30 minutes this week and building up to (hopefully) ~90 minutes.  These will be negative splits.

Wednesdays will be faster pieces, ~5 miles at 5:00-5:20/mile, broken up at first, and (hopefully) continuous by the end of the cycle.  I’ll bring the Wednesday workout in after two weeks of training.

Weekly mileages (tempo time, Wednesday workout):

• Nov. 25 45mi (30mins)
• Dec. 2 56mi (35mins)
• Dec. 9 66mi (40mins, 5xmile, 2mins recover)
• Dec. 16 78mi (45mins, 4 x 2km, 90s recover)
• Dec. 23 66mi (50mins, 4 x 1.5mi, 90s recover)
• Dec. 30 78mi (55mins, 3 x 3km, 60s recover)
• Jan. 6 90mi (2 x 2.5mi, 60s recover, long run pushed back one day)
• Jan. 13 78mi (3M half marathon the 13th, 70mins the 19th, 2 x 3mi, 30s recover)
• Jan. 20 90mi (80mins, 5miles continuous)
• Jan. 27 90mi (90mins, 2 x 3mi, 30s recover)
• Feb. 3 78mi (60mins, 5miles continuous)
• Feb. 10 70mi (no saturday long run, 3miles continuous, race sunday)

# Arrogance Personified

Well, since my last post, I successfully defended (footage from after the defense), found a job as an analytics developer at a startup in Austin, TX, and even moved out here.  Feels great to be out of Houston and — despite the Texas summer — I’ve started playing outside again, running, climbing and biking.  I’ve somewhat competitive plans of doing well at next February’s Austin marathon, as well as some mountain trips further in the future…

For now though, having tons of fun at the job, playing with gigantic data sets, and learning all sorts of new things.  I’d expect more posts about manifold learning and extracting structure from large networks in the future, but for today a track and field video I’ve loved for a long time, featuring Bill McChesney, John Treacy and Steve Ovett.

# Hiatus

Coming up on my defense, so no fun for a little while.  Hopefully I’ll be back in May with new, interesting (to me!) tidbits and adventures.  Happy trails!

# Bouncing balls

Inspired, as usual, by Leonid’s recent post, I decided to first write a script that would mimic his.  After that, since I had all the numbers worked out, I wrote two more MATLAB programs: one that mimicked elastic collisions in 2-dimensions, and one that mimics them in 3.

In theory, you can specify the number of particles and their radius, as well as the mass, position, and initial velocity for each (I didn’t vectorize radius for some reason, so I cannot model balls of different sizes bouncing around).  However, in practice I just generate random vectors for each of these numbers.  The final aspect is that the domain I put the balls in was a pool table of 9 x 4.5 units, or 9 x 4.5 x 4.5 for the 3D version.  This was just to make calculating the reflecting angle easier when a ball hit the wall.

As with Leonid’s code, mine works by checking whether the next step will cause any collisions, then adjusting the velocity vector so that the collision didn’t happen (using conservation of momentum and kinetic energy).  This algorithm is not “smart” in the sense that by avoiding one collision, it might get pushed into a second collision which it does not detect, and if a particle gets going fast enough, it can reflect off a wall from a large distance (my time step is just 0.01).  You can spot this in some of the figures below.

Anyways, here are some of the outputs.  I did not go through the trouble of turning these into .gifs, but they play fairly smoothly.  What happens is I simulate N particles of varying masses and velocities bouncing around in a 2- or 3- dimensional box for T seconds, then plot the path of one of the particles.  The end position of all the particles, plus this path, is in each picture below (with the “tracked” particle colored in red).

4 particles for 20 seconds. Not many collisions... I can spot 3, I think.

40 particles bouncing for 20 seconds. This particle is involved in a few more collisions than last time (and looks to have been moving faster, too.

400 particles bouncing for 20 seconds. Quite a few collisions here.

4 particles bouncing for 20 seconds in 3 dimensions. Again, not many collisions (the ball radius is 0.1, compared to the volume of the box, 9x4.5x4.5 = 182).

Now 40 particles for 20 seconds in 3d. A few more collisions, and it looks like it was going pretty fast in the middle there for a while.

400 particles for 20seconds. Starting to look more like the "random walk" of Robert Brown's pollen, though I would certainly have to mess with how heavy the particles were to more accurately model that.

# Coffee shop thoughts

This is not a picture of coffee *or* tea, but the closest I had to the topic at hand.

Random thought on the economics of coffee shops:

When I am doing work in a shop, I typically won’t be buying food, but am aware that I am not the most lucrative customer they will get, so I try to tip well.  This leads to an odd situation at my most-frequented place: I can get a pot of tea for under $4 with a cash discount, and so will typically get a pot of tea with a$5 bill, and leave the change as tip.

However, sometimes the barista will forget the discount, and here’s the problem: do I point out this mistake?  I’ll still be leaving a (noticeably smaller) tip, and so no matter what, I am spending $5. In some sense, I am helping out the barista by pointing out the mistake, but then: is it really worth it to either of us to have this conversation over$0.50?  The conversation has been surprisingly confusing in the past, especially when I take the extra money I just made a point of getting back and leave it in the jar anyways.

Also, I would assume that most shops price their coffee based on what (they expect) will maximize profits. I imagine the pricing would be different if the goal would be to maximize tips (I’ll leave $1.50 on a$2.50 coffee, but $0.60 on a$2.40 coffee).  Likely the answer would be different again if the goal was to maximize profit+tips, but the tea is cool enough to drink now.

# Expectations II

A contour plot of the function. Pretty respectable looking hills- maybe somewhere in the Ozarks- if I say so myself.

As a further example of yesterday’s post, I was discussing multivariable calculus with a student who had never taken it, and mentioned the gradient.  Putting our discussion into the framework of this post, here is what he wanted out of such a high dimensional analogue of the derivative of a function $f: \mathbb{R}^2 \to \mathbb{R}$ (note to impressionable readers: the function defined below is not quite the gradient):
2. Describe the answer:  should be a function from $\mathbb{R}^2 \times \mathbb{R}^2 \to \mathbb{R}^3$, which takes a point in the domain, a direction in the domain, and returns the vector in the range.  The idea being that if you had a map, knew where you are and in which direction you wished to travel, then the gradient should tell you what 3-dimensional direction you would head off in.

Certainly there is such a function, though in some sense we are making it too complicated.  As an example we have some pictures of the beautiful hills formed by the function

$f(x,y) = \sin{3y} + \sin{(4x + 5y)} - x^2 - y^2 + 4.$

The (actual) gradient of this function is

$\nabla f(x,y) = \left(4\cos (4x + 5y) - 2x, 3\cos(3y) - 2y + 5\cos(4x + 5y)\right)$.
Plugging in a point in the plane will give a single vector, and then taking the dot product of this vector with a direction will give a rate of change for f at that point, in that direction.  Specifically, if we start walking north at unit speed from the origin, the gradient will be (4,8), and I take the dot product of this with (0,1) to find that I will be climbing at 8m/s (depending on our units!)

Now the correct answer from my student’s point of view would be that the answer is (0,1,8), since this is the direction in 3 dimensions that one would travel, and that the correct definition for would have
$Df(x,y) \cdot v = \left(x,y,\nabla(x,y) \cdot v \right)$.

The graph of the indicated function, including the vector of the "pseudo-gradient" we discuss.

Of course there are more sophisticated examples of this.  Suppose a function $u: \mathbb{R}^n \to \mathbb{R}$ is harmonic.  That is to say, $\Delta u := \sum_{j = 1}^n \frac{\partial^2 u}{\partial x_j^2} = 0$.  Notice that in order to write down this equality, we already named our solution u.  But just working from this equation, we can deduce a number of qualities that any solution must have: u is infinitely differentiable and, restricted to any compact set, attains its maximum and minimum on the boundary of that set.  Such properties quickly allow us to narrow down the possibilities for solutions to problems.

A picture of some hills that might be shaped like the function we're looking at. In the Ozarks of all places!

# Expectations

Hard thinkin' being done today.

It is useful (for me!) to think about the importance of math as teaching us how to think about problems, rather than providing us with useful factoids (I’m looking at you, history class).  There are a lot of problems/puzzles/patterns in the world, and the chance of seeing the same problem twice is very low (and really, I’ve never seen Batman use the Pythagorean theorem even once, so what’s the point?), so we focus on solving problems in as broad of a context as possible.  In this way, I’d argue, mathematicians become very good problem solvers (“toot! toot!” <– my own horn)

One method of problem solving I would like to focus on today is to name and describe your answer before you have found it.  As a simple example, in order to answer the question “what number squared is equal to itself?”, we would:
1. Name the answer: Suppose x squared is equal to x.
2. Describe the answer: This is where the explicitly developed machinery comes in: We know that $x^2 = x$, so we deduct that x also has the property $x(x-1) = 0$, and conclude that either x = 0 or x = 1.

A geometric way of looking at the word problem. NOT TO SCALE.

As a second example, much of linear algebra is naming objects, describing them, and then realizing you accidentally completely described them.  For example, suppose we wanted to identify every matrix with a number, and make sure that every singular matrix has determinant 0:
1. Name the answer: Let’s call the answer the determinant, or det() for short.
2. Describe the answer: det() should be a function from matrices to numbers, and at least satisfy the following properties: (i) det(I) = 1, so that the identity matrix is associated with the number 1 (so at least some nonsingular matrices will not have determinant zero), (ii) if the matrix A has a row of zeros, then det(A) = 0 (so that at least some singular matrices will have determinant zero, and (iii) the determinant is multilinear, which takes some motivation, will definitely respect identifying singular matrices.

Well, it turns out that these three properties have already completely determined the object we are looking for!  If I had been greedy and asked (iv) each nonsingular matrix is associated with a unique number, then I would have deduced that no such map exists.  If I had not included property (iii), then I would have found there are many such maps.  It is a fairly enjoyable exercise to deduce the other properties of determinants starting from just these three rules.

More filler photos! This is from Cinqueterre in Italy, between some two of the towns.

One of my favorite courses in college was “Experimental Economics”, where we examine how real live humans differ from homo economicus- the perfectly logical, profit-maximizing agent of classical economics.

A good example is the ultimatum game, a 2 player game where one person has $10, and suggests a way to split that$10.  The second player can accept, and then they go on their merry way, or decline and both players get nothing.  Homo economicus would accept $0.01, since she would be better off than when she started, but most of us would be pretty insulted by such an offer. Conversely, most of us probably would not offer only$0.01, even if it is the “best play”.

Another game I am intrigued by is called the St. Petersburg paradox, apparently first posed and studied by some combination of the Bernoulli family.  The idea is that we will play a game where I flip a coin until it comes up tails.  If it comes up heads n times in a row, you win $2^n$ dollars.  The question is: how much would you pay to play this game?

A reasonable way to approach answering this is to compute that you have a 1/2 chance of winning $1, 1/4 chance of winning$2, 1/8 chance of winning $4, and so on. Hence, your “expected winnings” are $\frac{1}{2}1 + \frac{1}{4}2 + \frac{1}{8}4 + \cdots = \frac{1}{2} + \frac{1}{2} + \frac{1}{2} + \cdots$, which is a divergent sum. This means that if I offer to let you play this game for$100, a “supremely logical” person would accept.  Or for $1,000,000. Or any number. On the other hand, I know very few people who would pay even$10 to play the game. The wikipedia article above has plenty of good explanations for why, but this strikes me as a great example of where human behavior diverges from what is “optimum”.

Since I also like creating some content every once in a while, I also have a python script that plays this game using a random integer generator.  Playing the game 10,000,000 times, the average payout was $11.66, and the largest payout was$4,194,304, meaning 22 heads in a row.  This is somewhat meaningless, as we already calculated that the average payout will grow without bound as I perform more trials, but gives a feel for how much the game might be worth intuitively.

from random import randint
def game():
coin = randint(0,1)
count = 0
tot = 1
while coin != 0:
tot+=2**(count)
count +=1
coin = randint(0,1)
def lotsogame(N):
tot = 0
top = 0
for j in range(N):
n = game()
tot += n
if n>top:
top = n
return float(tot)/float(N), top
print lotsogame(1000000)

# Pirates redux.

This riddle was a tough nut to crack. Hey-o!

# Followup-roundup

Two interesting articles I ran across recently:

1 . Wikipedia on mathematical coincidence- a list of near-equalities and identities that just do not matter.  This is a fascinating way to define a “coincidence”, as something that has no theoretical importance or connection to anything else.  Initially I kept an eye on this article thinking it would be a neat way of explaining the 1/998001 decimal expansion, though Leonid Kovalev had a great post relating this identity to a broader theory of power series and generating functions.  I find it beautiful and frustrating at the same time how nearly everything in mathematics has some significance.  This is a fun page to remember for examples of non-significance.

Rice football. Not my picture!

As an anecdotal aside, there was a great colloquium speaker at Rice a few years ago, and I have forgotten everything about his talk (and even who he was!) except the following: he began the talk by listing 7 integers on the side of the board, and saying that he would describe their pattern later in the talk, but we could try to figure it out ourselves.  When the promised moment came, it turned out they were the number of points the Rice football team had scored in their first 7 games (which of course the mathematicians had no hope of recognizing).  However, it was interesting to see how many generating functions people in the room had come up with for these scores!

The Ariane_5 rocket. From wikipedia.

2. Wolfram article on roundoff error, including two stories of floating point arithmetic gone tragically wrong: once with a European Space Agency rocket, and once with a Patriot missile.  Puts my series from last week in a bit more perspective.