I'm a programmer seeking to take a bunch of data and represent it as a curve. Specifically, I want to take several hundred/thousand (floating) points and represent those points to a specified level of accuracy (e.g. at least to the nearest 0.01) as a curve. Note: this data will not pass the vertical line test (it won't be representable as a function), and I ideally do not want to split it up into different curves.
(Forgive me if "curve" is the wrong word to use here. Should I refer to it as something else, e.g. polynomial? I'm not sure.)
Here is my reasoning: I would like to be able to store all of this data in as little space as possible at the cost of a little computation. I figure the only way to do that - to compress data that may not have very much redundancy (and even if it did, the compression wouldn't be as significant as I am hoping for) - is to represent the data algorithmically somehow. (I actually feel kind of smart for coming up with this idea, even if it already is in practice and I don't understand the math behind it. :)
Is this doable, and if so, how? How would the math behind this work?
If what I am wanting to achieve is absolutely impossible or would take far too much computation to be practical, that's okay. I have a contingency list of things I would sacrifice if necessary in order to have a next-best attempt:
- I could try sorting the data according to X positions in order to make the result a function.
- I could curve-fit only, say, a dozen points at a time.
but of course I would prefer not to have to do either of these.
Also, if it makes much of a difference, these points are 3 dimensional. (2 dimensional answers are welcome though, if that makes it easier to answer or simpler to explain.)
Thanks,

I could be wrong but I'm pretty sure this is alot like how JPEG image compression works. They take in a bunch of data points (pixels) and using the principles of Fourier transforms figure out which combination of Cosine curves when added will produce the original data.
Here is a nice link
http://nautil.us/blog/the-math-trick-behind-mp3s-jpegs-and-homer-simpsons-face
The more modern compressors use "Wavelets" instead of Cosine but the basic idea still sounds really similar to your idea.