Scaling a function with two 'asymptotes' of which one is non-constant

214 Views Asked by At

I have a bunch of curves that look roughly like the example below. Each curve has two 'asymptotes' a constant value for $x\rightarrow0$ and a linear curve for $x\rightarrow\infty$ (although, as in the example, infinity is not that far away, around $x=6 \text{ or } 7$).

Assuming that I know the slope of the linear function and the asymptotic values for $x\rightarrow0$ for each curve, I would like to scale/transform $y$ and $x$ such that all curves fall on top of each other. My question is: how do I do this scaling/transforming of $y$ and $x$ to achieve a collapse of all data?

I can see that simply shifting $y$ with $y(0)$ is not going to work out, because that also shifts the linearly sloped parts and purely stretching results in different linear slopes so I guess I need some smart combination but I really don't know where to start.

enter image description here

1

There are 1 best solutions below

6
On BEST ANSWER

There are infinitely many such transformations, however, if you seek for a linear transformation, any curve with data $(x,y)$ can be rescaled to a new curve $(x',y')$ using

$$\begin{bmatrix}x' \\ y' \end{bmatrix}= \begin{bmatrix}x \\ y \end{bmatrix}+t\cdot\begin{bmatrix}x \\ y-y_0 \end{bmatrix}$$ and some $t\in\mathbb{R}$, where $y_0$ is the height, at which the sloping tangent meets $x=0$ (i.e. $y_0= 1.7$ in this example).

In other words, any curve with $y(0)=k$ can be mapped onto another curve with $y(0)=k'$ by choosing $t=(k'-k)/(y_0-k')$.

Geometrically, this just expresses a rescaling relatively to the point $(0,y_0)$.