Is there any equation for this type of skewed parabola?

3.8k Views Asked by At

I am having the following parabola looking curve (blue curve), but its not exactly symmetric. The best fit that I am getting using a quadratic equation is also shown (black curve) but it is not perfectly fitting it.

Is there any simple equation for fitting such a skewed parabolic curve?

The data is from experiment. Y-axis is flow velocity in vertical direction (in m/s), and X-axis is the depth of water (in mm). The parabola vertex can be assumed to be at 'D' as shown in the 2nd figure.

Thanks a lot.

enter image description here

Edit 1: Below is a pic of the experiment set-up in the question for easy understanding. The axes are interchanged in the figures.

enter image description here

2

There are 2 best solutions below

11
On BEST ANSWER

As far as your diagram looks, you might try some ombination of parabolas to fit your function..

Your lower part (both sides) look like more or less from a same parabola, andthe upper part from a different one. So you might make a function like $f(x)$=Parabola A when y coordinates below a certain point and Parabola B otherwise.

Now what these two (or more) parabolas are, you yourself have to find out , by brute force or something..

0
On

This is a fairly old question, but I wanted to share a nice solution offered in this thread. The solution they give was to use a Linex function, which looks like that:

$f(x) = \exp(ax) - ax - 1$

Which, when plotted, looks like that:

enter image description here

Note that I scaled the functions to compare their "skewness". Python code to reproduce the plot:

import numpy as np
from matplotlib import pyplot as plt

x = np.linspace(-2,2)
y = lambda a : np.exp(a * x) - a * x - 1
y_scaled = lambda a : (y(a) - np.min(y(a))) / (np.max(y(a)) - np.min(y(a)))

plt.plot(x, -y_scaled(1.25), x, -y_scaled(0.75), x, -y_scaled(0.25))
plt.legend(['a = 1.25', 'a = 0.75', 'a = 0.25'])
plt.show()

This, of course, doesn't at all look like a parabola (well, it is an exponential function), but did the trick for me when I tackled a similar problem:

enter image description here