I am building a program where I need to simplify N number of points into a single section of a bezier spline, ie describe them using just 2 end points and 2 control points. Naturally this will lead to some loss of information, but I would like the spline section to be as accurate to the original points as possible.
The input will be points that are already on a reasonably smooth curve.
Any answer is appreciated! (That being said, I'm not very good with equations, so an explanation in words would be even more so).
What you want is just a least-squares fit of a Bezier curve to your sequence of points. If you google this, you'll find plenty of results, including some code. For example, this is a very good recent discussion, and this site includes Java code.
Once you have assigned parameter values to your data points, you're left with a so-called "linear" least-squares problem, which is fairly easy to solve by standard techniques.
The mathematics is explained here or here. The first of these deals with b-spline curves, but Bezier curves are just a special case.