I have a range of values that represents a curve. This in turn is applied in programming to an interface - rotatable knobs to be precise.
Let's say you have a knob that represents a value from 1-20. When the knob is turned all the way down it's at 1, all the way up it's at 20. However, when you position the knob at 50% it's ~4.5. This due to my graphical representation value is then interpolated through an easing function.
Things are fine when going from one direction, such as "knob position 50% = 4.5 real value". However I cannot calculate what knob position I want to set by knowing the real value beforehand.
Let's look at my curve:

In my scenario my control value (knobs for example) range from 0-65534. Here we see 132 steps (x-axis) of interpolated data. The red controlvalue line is simply the control value. The blue line of realvalue is what a controlvalue at the step is converted into as a real value.
At this point I'm trying to figure out how to calculate a curve that can negate and give me the opposite of that transformation. Using my previous example of the knob that goes from 1-20, I'd like to be able to input a value of 4.5 into a new easing function that in turn gives me the desired control value - 50%, or 32737 in my scenario range.
The green curve is my failed attempt by simply calculating my columns of data I have in Calc. The equation goes like controlvalue + (controlvalue - realvalue), and as you can see I'm way off my mark - the values actually goes over 100% now.
Is there a mathematical way of arriving at a "correct" inverse of my curve?
My actual equation for the realvalue curve is a polynomial trending line, it looks like this:
f(x) = 1,00700664979392E-051x^12 - 3,7131435338088E-046x^11 + 5,95341600280796E-041x^10 - 5,44877937503095E-036x^9 + 3,14278561440411E-031x^8 - 1,1903278571858E-026x^7 + 2,99381548053501E-022x^6 - 4,9360056928568E-018x^5 + 5,2406997973793E-014x^4 - 2,68113835779245E-010x^3 + 4,67332812021518E-006x^2 + 0,1561599643x + 0,3499712063