Suppose you have a game and you want to interpolate, using linear interpolation, a value's 'target value' from a starting value towards zero and then linearly interpolate the current value towards the target value each frame, in that order.
Let $a(x, t)$ be the 'target' function and $b(x, t)$ be the 'current' function.
A naive implementation would cause the speed of this interpolation to vary based on the time between frames, which is undesirable. The naive implementation would be:
For any given frame, let $a_0, a_1$ be the target value before and after the frame respectively, and $b_0, b_1$ be the current value before and after the frame respectively. If using linear interpolation with a constant factor $k$, after one frame with frame time $t$,
$$a_1 = a_0 \cdot k$$ $$b_1 = b_0 \cdot k + a_1 \cdot (1 - k) $$
To correct the issue arising from varying frame times, we want functions $a$ and $b$ that are invariant under repeated nested calls such that for some 'baseline' frame time $d$, $$a(x, t_1 + t_2) = a(a(x, t_1), t_2) $$ $$b(x, t_1 + t_2) = b(b(x, t_1), t_2) $$ $$a(a_0, d) = a_0 \cdot k$$ $$b(b_0, d) = b_0 \cdot k + a_1 \cdot (1-k)$$
It's fairly simple to find that $a(x,t)$ would be $$a(x, t) = x \cdot k^{t/d}$$ but I don't have any idea how to find b.
Of course, there are better methods to interpolate like this that circumvent this issue entirely but I posted this question in interest of a solution to this specific problem, not a workaround.
My question is: is there a method for solving for $b(x,t)$, and if so, what is the solution? Alternatively, is there a similar interpolation method for $b(x,t)$ that would be invariant under nested calls?