Find a curve that fits this data please

johnpjust

I'm doing research and I have some data (attached -- 'y' = first column, 'x' = second column in CSV format) that I need to find a general curve fit for (function = f(x)/x). This will help me do future predictions.

Here are my stipulations:

The fit curve must have the format of f(x)/x. Two examples I've tried are sqrt(x)/x and log(x)/x --> and of course they have more general forms such as [(b*x+a)^n]/x and {[log(x+a)]^n}/x. However, these functions do not "bend" in the way that fits the data best so there must be better (see "sqrt.jpg").

The function f(x) MUST behave well at zero and be positive for 'x' > 0. E.g., for the log function this can be done by shifting the x data by '1'. The sqrt function is naturally well behaved with no modifications obviously.

The curve needs to fit the general shape but use as FEW of parameters as possible. E.g., the sqrt function (x^n) is attractive because it only uses 1 parameter, "n", but just not quite right.

Thanks!

Attachments

• 4 KB Views: 517
• 18.3 KB Views: 234
Last edited:

mfb

Mentor
If you want an x in the denominator, it is easier to look at y*x as function of x. There, a linear fit is actually reasonable, especially if we can ignore the first datapoint (at x=9.5) as outlier.

It is easy to adjust that shape to fit better to the lower values, for example with f(x)=0.255 x + 19 - 19 e^(-0.1x). I did not optimize it yet (and I'm not used to measured values without known uncertainties), that's just by eye. But that arbitrary exponential there looks like overfitting, at least without a physical model behind it.

Here are y*x and y as a function of x, with f(x) plotted on top: Attachments

• 11.7 KB Views: 257
• 1 person

johnpjust

Very impressive! You must do this often to be able to "eye" a fit?! Can you explain a little more (maybe in a different way) on what you've done here? I don't quite understand "y*x as function of x".

This is a model to describe relative changes in bulk density of a material, so no physical model is really possible. The variability in the data is due to measurement error and other factors but very difficult to isolate.

Also - The curve would need to bend up a little more in the beginning. After you've linearized the data in the top graph, the group at the beginning is slightly bias.

Thanks!!!

mfb

Mentor
Very impressive! You must do this often to be able to "eye" a fit?! Can you explain a little more (maybe in a different way) on what you've done here? I don't quite understand "y*x as function of x".
I multiplied all y-values with their x-values. That way my new data points get the same shape as the (unknown) f(x). Then I tried a linear fit. It was reasonable, but not good in the region of low x, so I used those fit parameters and added the exponential.

Also - The curve would need to bend up a little more in the beginning. After you've linearized the data in the top graph, the group at the beginning is slightly bias.
What do you mean?

johnpjust

For the low values of 'x', the fit curve you've given APPEARS to generally be "under" the data points. Is there a way to manipulate the curve to better fit the data points for low low values of 'x'?

mfb

Mentor
Sure, just play around with the 4 free parameters.

johnpjust

Cool. Well done, and thank you.

Physics Forums Values

We Value Quality
• Topics based on mainstream science
• Proper English grammar and spelling
We Value Civility
• Positive and compassionate attitudes
• Patience while debating
We Value Productivity
• Disciplined to remain on-topic
• Recognition of own weaknesses
• Solo and co-op problem solving