# What formula to chose a nonlinear formula?

Suppose I have a formula

$$f(x) = x,$$

where $$0 \leq x \leq 255$$

Now I want to have a formula

$$f(x) = y,$$

where $$0 \leq x \leq 255$$, where $$f(0) = 0$$, $$f(255) = 255$$ and e.g., $$f(128) = 150$$ (the value of $$150$$ might vary).

All other values should be interpolated.

So actually I want a function that is nonlinear (starts with $$0$$ and goes up to $$255$$, starting increasing fast and finishes increasing slow); opposite as a parabolic function.

What (kind of) function should I use?

• So you want a function $f(x)$ such that $f(0) = 0$ , $f(128)=150$ and $f(255) = 255$? – NoChance May 15 at 21:17
• Welcome to Mathematics Stack Exchange! A quick tour will enhance your experience. Here are helpful tips to write a good question and write a good answer. For equations, please refer to this MathJax tutorial. – Pantelis Sopasakis May 15 at 21:17
• You may use a logistic function. – minori minus May 15 at 21:18
• You can interpolate and get a parabolic function, I don't get what you mean by "opposite as a parabolic function". – Crostul May 15 at 21:18
• See wolframalpha.com/input/… . Wolfram Alpha describes an arc of a parabola. – Crostul May 15 at 21:26

WA gives $$\frac{10933x-11x^2}{8128}$$

https://www.wolframalpha.com/input/?i=interpolate+((0,0),(128,150)(255,255))

I think one classical example of nonlinearity could be the gamma for color correction.

Instead of using the interval $$X=0\ ..\ 255$$ it is easier to work in $$[0,1]$$ by scaling $$x=\frac X{255}$$.

Now, remark that any $$x^\gamma$$ stays in $$[0,1]$$ since $$0^\gamma=0$$ and $$1^\gamma=1$$.

Remark: this is not exactly color correction, which is $$x^{1/\gamma}$$, but this is just a convention.

So you have linearity for $$\gamma=1$$ and non-linearity for any other value of the exponent.

Note that if you really want to work with bytes the result can be scaled back using $$255\times\left(\frac X{255}\right)^\gamma$$

Depending of your choice of $$\gamma<1$$ or $$\gamma>1$$ you will get either a fast increase at the start of the interval or at the end of the interval.

Try it here (move the g cursor): https://www.desmos.com/calculator/cnc2diykyx

• Actually, this is indeed exact the reason I use it for ... but I kind of promised the acceptance of the answer to Crostul (since he exactly answered my question), but your answer is perfect for the reason I need it for. Hope you understand. – Michel Keijzers May 15 at 22:14
• @MichelKeijzers In that case, I'd wager there already exists a library function for precisely that purpose – Hagen von Eitzen May 16 at 5:53
• Desmos seems like an excellent tool. Thanks for the tip! – Eric Duminil May 16 at 6:34
• @HagenvonEitzen Probably yes, but for this so simple function I can program the one line formula. – Michel Keijzers May 16 at 11:09

To satisfy the requirements: $$f(128)=150, f(255)=255$$

However, $$f(0)=0$$ can't be satisfied by this method. I assumed that f(1)=1, however you can change the numbers but not use zero, otherwise, there would be no inverse.

An example of the curve looks like this Curve

• Thank you for your feedback. You can construct an equation of the form $f(x)=Ax^2+Bx+C$ and substitute 3 non-zero values you know x and y for. You will get a system of equations having 3 unknowns (A, B, C). You solve for theses unknowns and plug the values back into $f(x)=Ax^2+Bx+C$. Matrix calculations are optional. – NoChance May 15 at 21:44