Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 10 May 2005
Offline Last Active Dec 20 2013 10:05 AM

Posts I've Made

In Topic: What is the reason for making the leading entries all ones in a echelon form?

01 December 2013 - 11:20 AM

Wikipedia tells me that this requirement to have the leading non-zero term be a 1 is not universal. I suspect that it's just done in order to make the echelon form unique. If you don't specify that, then depending on how exactly you carry out the reduction, you could get different results from someone else also reducing that same matrix.


(I'm not 100% sure that it does in fact make the echelon form unique, but it feels like it would to me.)

In Topic: Radical equation

12 November 2013 - 08:56 PM

sqrt(x)^2 = x is true in general, even in the case of negative or imaginary numbers. What is the difference between squaring the "side" sqrt(x) and squaring the "term" sqrt(x)?


I'm a graduate student in math and this thread has been more convoluted than most of my textbooks - why is everyone making such a simple thing so difficult? Alvaro has the right of it.

In Topic: Dividing by zero, on purpose

02 November 2013 - 08:49 AM

The very first game I wrote I didn't know how to handle events well enough to get it to quit in a natural way. So I had the escape key just divide by zero so that it would exit.


My proudest moment.

In Topic: New Kickstarter Game from the creators of Myst

18 October 2013 - 04:18 PM

This is the first Kickstarter I've backed, despite being quite enthusiastic about a lot of them. I did this because if any genre needs a second chance, it's the Myst-likes. That, and massive nostalgia. But the point of Myst was never the particular characters, it was the exploration. They didn't show much in the Kickstarter, but they've made it pretty clear that we'll be given weird and wonderful worlds to traverse. That's all I want, and is half the reason I loved Fez which despite being a platformer has as much in common with Myst as with Mario.


For those who are saying that Myst is a niche game, reconsider your thoughts. It was, until 2002 when The Sims over took it, the best selling PC game of all time. It spawned 4 direct sequels and the URU-spinoffs. Myst was a massive force in the gaming world at the time and there were countless knockoffs of it made afterwards. I've played a lot of those knockoffs but most were varying degrees of bad. And oh god they were so inconsistently compatible with PCs back then: every one required the installation of bizarre software to play animations that had generally a 50/50 shot of working.

In Topic: How do I create the equation for a curve?

04 September 2013 - 01:33 PM

We are trying to solve for the constants a,b,c so that the polynomial a+bx+cx^2 gives the appropriate points. Suppose those points are (x1,y1), (x2, y2), (x3,y3).


The typical way to solve this is by using some linear algebra (I know! linear algebra lets you solve quadratics? It's somewhat surprising but we actually know x here and so we don't need to worry about any quadratic behavior. The things were solving for are a, b, and c which are only used linearly in this equation.). If you aren't familiar with this then you'll have to solve it out entirely (and may want to either way if you're not already using a linear algebra library). What this means is that we can plug each point (x,y) into the polynomial and this gives us a constraint on the possible values of a,b,c. So we get:


a + b*x1 + c*x1^2 = y1

a + b*x2 + c*x2^2 = y2
a + b*x3 + c*x3^2 = y3
These are three equations and we have three unknowns a,b,c so it should be solvable, at least so long as the three points permit a unique solution (almost all such points do). You can now solve these three equations for a,b,c.
If you know linear algebra, then this is just solving the matrix-vector equation:
The matrix M = 
| 1 x1 x1^2 |
| 2 x2 x2^2 |
| 3 x3 x3^2 |
The vector Y = {y1, y2, y3} (a column vector)
The vector X = {a,b,c} (also a column vector).
Solve M * X = Y, or X = M \ Y if you're in a language or package that support matrix math directly. Most such languages will also have built-in functions to do this sort of thing. Look for polynomial fitting or least squares (though least squares would technically be overkill).
Or, like I said, you can solve this any other way that you want, such as substitution that most people learn by
highschool algebra.
Actually, I feel like doing that substitution out right now. Starting with the last equation:
a + b x3 + c x3^2 = y3, so a = y3 - bx3 - cx3^2
Substitute into the second equation for a:
(y3 - bx3 - cx3^2) + bx2 + cx2^2 = y2
Solve for b:
b = [ y2 - y3+ c (x3^2 - x2^2) ] / (x2 - x3)
Substitute into the first equation for b and a:
(y3 - [y2 - y3 + c ( x3^2 - x2^2) ] / (x2 - x2) - cx3^2) - [y2 - y3 + c (x3^2 - x2^2)] / (x2 - x3) x1 - cx1^2 = y1
Solve for c:
c = oh gosh I don't really feel like doing the rest of this I guess, but you get the idea. It's pretty long! So I decided to cheat and use Wolfram|Alpha to solve it for me.
This gives us some beautiful solutions:
Let C = 1/ [ (x1-x2) * (x2 - x3) * (x1 - x3) ].
a = C * [ x1*x2 * (x2-x3) * y1 - x1*x3 * (x1-x3) * y2 + x1*x2 * (x1-x2) * y3]
b = C * [-(x2 + x3) * (x2-x3) * y1 + (x1 + x3)* (x1-x3) * y2 + (x1 + x2) * (x1 - x2) * y3]
c = C * [ (x2 - x3) * y1 - (x1 - x3) * y2 + (x1 - x2) * y3 ]
Gives us the coefficients!