The question is becoming more clear now, based on your response to my first answer. I'll post this as a separate answer, since things can often become lost in a thread of comments.
You tell me you actually have a series of curves, all of which would pass through a known point at (-31.5,30).
What I need to point out first is that point at (x,y) = (-31.5,30) is not consistent with the shape of your curve. Just extrapolate that blue curve by eye, and you will see that. Perhaps you are mistaken, and you wanted it to lie at (-30,31.5) instead, which would be much closer.
Anyway, you want to identify a model that represents this basic shape. We see a derivative singularity at the right end point, so a point of infinite slope. At the left end, the curves all pass through that given point at (-31.5,30).
A basic curve shape that would represent this is a simple power law curve.
y = a*(x0 - x)^b
where b is less than 1, but greater than zero. For the data you have supplied, we would have x0 = 0.
You tell me the curve passes through the point (-31.5,30), but your data does not go down all the way to that point.
First, let me see if a simple power law curve does represent your data well.
mdlform = fittype('a*(-x)^b','indep','x')
mdlform =
General model:
mdlform(a,b,x) = a*(-x)^b
mdl = fit(xCommon,yAverage,mdlform,'start',[1 0.5])
mdl =
General model:
mdl(x) = a*(-x)^b
Coefficients (with 95% confidence bounds):
a = 6.995 (6.988, 7.001)
b = 0.4552 (0.4548, 0.4555)
plot(mdl,xCommon,yAverage)
And that fits your data actually pretty well. How well does it extrapolate on the left to the point at x=-31.5?
It misses that point by a little, but not a lot. Unfortunately, if I try to force that model to pass through the point at (-31.5,30), the model no longer fits your data.
We can do better if we swap the axes. That is, fit xCommon as a function of yAverage.
mdlform2 = fittype('a*x^2 + b*x^3 + c*x^4','indep','x')
mdlform2 =
General model:
mdlform2(a,b,c,x) = a*x^2 + b*x^3 + c*x^4
mdl2 = fit(yAverage,xCommon,mdlform2)
Warning: Start point not provided, choosing random start point.
mdl2 =
General model:
mdl2(x) = a*x^2 + b*x^3 + c*x^4
Coefficients (with 95% confidence bounds):
a = -0.0255 (-0.02553, -0.02547)
b = 0.0003413 (0.0003384, 0.0003442)
c = -1.464e-05 (-1.47e-05, -1.457e-05)
plot(mdl2,yAverage,xCommon)
And there we see that your data and the curve as fit overlay nearly perfectly. The curve also has the property of a derivative singularity at x==0, due to the model I chose, f we go back, and swap the axes to the original.
The flaw is, the data you have suppied is not consistent with a point on that curve at (-31.5,30). Instead, this model strongly suggests that when y=30, x should be around -25.6. Again, the data you gave us is not consistent with your goals.
In either case though, we can find a curve that seems to reasonably represent that data, and has roughly the desired shape.