In Mathematica 8.04 on Windows, I want to display a formula in standard textbook format. The formula is the variance of an $N$-security portfolio. For two securities it is:
$$w_1^2\sigma_1^2+w_2^2\sigma_2^2+2\sigma_{1,2}w_1 w_2$$
To generate this, I have created the following function:
psd[n_Integer] := Sum[Sum[Subscript["w", i] Subscript["w", j] If[i == j, Subsuperscript["σ", i, 2], Subscript["σ", Min[i, j], Max[i, j]]], {i, 1, n}], {j, 1, n}]; This works, but the terms are out of order as shown in this image of the output of psd[2]:

I'd like to take the last two terms (with the exponents) and place them in front of the first two. Suppose that I call the output "a", then I can get the parts of a using Take[a,1] and Take[a,-2].
What I would like to be able to do is to put those two parts back together in reverse order as shown in the original equation. Ideally, I'd be able to specify a sort order, but I can't seem to figure that out. I've tried all of the orders for MonomialList with no luck, and when I add the list parts it gets resorted anyway.
The order of the terms doesn't matter for calculation, but this is for presentation and I'd like it to look like it does in every textbook. The point is to demonstrate how the formula grows longer as more securities are added to the portfolio. Except for the ordering, it works perfectly in a Manipulate. Any ideas?