This week I’ve learned much more sophisticated methods to physics modeling. To demonstrate this, I wrote two scripts to solve the following differential equation:

d2w/dz2 + 2/z dw/dz +w5 = 0

The first solution used the naive forward-euler method. Before last week, I did not know that this method had a name, nor that it was naive. Basically, it calculates the solution by starting with an initial value of w and dw/dz, and guesses what the value will be a small distance away by virtue of the differential equation. The problem here is that the error is first order in the step size.

The midpoint method, by contrast, approximates what the value will be a small distance away, but then uses this knowledge to move a half-step forward, re-calculate how fast things should be changing, go back to the first value and use the initial position and midpoint velocity to find the new position (obviously I’m not describing this well, but if you’re actually interested you should wikipedia this stuff).

All this seems like a lot more computation time, but it turns out the error is better than quadratic order in the step size. (it actually goes something like h5/2). In other words, at small step sizes (in this case better than 300 iterations), it converges much better than forward euler.

Here’s how the convergence looked using the two different methods (I am taking into account that each single iteration in the midpoint method is two iterations. Also note this is a log scale, and the x axis is “iterations” rather than “step size”):


I just got a new apartment in the East Village. Come visit the city and stay on our couch!

Good location and affordable, which normally implies a really bad space, but it’s kinda nice.

That’s all for now.


Further defining the internet duffellverse.

Eating at the sushi bar.
Let me memorize your face.
Nooooooodles.
Pud.

I hope this clears a few things up.


Apartment burned down.

Though if you’re a regular reader you probably already know that, because I probably already sent you an email. What the hell is this blog for, anyway?

Anyway, I don’t really plan on dealing with this much until I get home. I hope to continue to enjoy my time in beautiful Seattle.


New York has taught me a lot, but it’s easy to get caught up in all the hype and not realize how it’s changing you. The past two weeks in Seattle have reminded me of a few important ideals that I may have forgotten somewhere along the way:

1. Be Optimistic.
2. Don’t sweat the small stuff.
3. Don’t judge people too much.
4. Don’t worry about what others think.

Really simple life lessons, but it’s amazing how frequently we forget them. It also used to describe my life attitude pretty well, but I’d been slipping this past year, especially on number four. Nothing to worry me too much, I’m still pretty good about all four, but it’s good to get a reminder of some of the ideals that I hold pretty strongly.


The cafe is closed.

Why did we keep this a secret from all our loyal customers? I don’t know, it’s just better this way. You all got a chance to say goodbye last year.

They may finally be rid of me for good now, considering I no longer have a hangout. I am now harder to get ahold of than ever before. Hey, I may not have a cell phone, but at least I have a watch now. You should have seen me before I got this watch. You guys are spoiled, really.

I had this one idea, which was to go around reviewing east village cafes, which would be great if I had the time for it. Anyway, you may see a post or two from me on the subject.

Am I a cursed employee? It seems that everywhere I work, they eventually end up closing. I guess nearly every business comes to an end sometime.

Until next time, keep your fishs to the grindstone.


While researching optimization algorithms for my filter work, I came across the idea of genetic optimization. As opposed to the usual optimization scheme of venturing a single guess and exploring nearby points, this method is in close analogy with nature’s most famous optimization routine, evolution via natural selection. Genetic optimization takes a large set of initial guesses, and “cross-breeds” them. First of all, this method is nice because it converges after fewer iterations (assuming parallel simulations are carried out simultaneously). Secondly, it is more likely to find global maxima, essentially because it casts a wider net. Check out the simple java program I wrote:


It seems like just yesterday I was remarking on the fact that it was March. I suppose things have happened in the past couple months, but nothing that wouldn’t totally bore anyone reading this.

So instead, I’ll leave you with this gem of a youtube clip from Bill Maher:

[New Rules]


The Yanks play the Mariners in a couple and a half weeks. Saturday, May 3 and Sunday, May 4. The Sunday one will definitely be a day game, so I’m planning on that one. Plus, the Saturday one is “Military Appreciation Day” and I don’t think I appreciate the military quite enough to enjoy that one. Yankees fans + overpatriotic warmongers = loud badness. A lot of “We’re number one” chanting, I imagine. I’ll just take the yankees fans by themselves, thank you.

Anyway, back to the thing. Come join me, all New York people that I forget to invite in person. Especially Seattle transplants. It’ll be a hoot.


It is March.

Next Page »

?