Here is a way that can be used in further tweaking:
f = Interpolation[Table[{x, Cos[x]}, {x, 0, 2 Pi, 2 Pi/20}]]
Block[{eps = 0.9},
f = Interpolation @
Transpose[{
First@Rescale[f["Coordinates"], First@f["Domain"], {0, eps}],
eps*f["ValuesOnGrid"]}
]
]
f // InputForm
(* InterpolatingFunction[{{0., 0.9}}, {5, 7, 0, {21}, {4}, 0, 0, 0, 0, Automatic, {}, {},
False}, {{0., 0.045, 0.09, 0.135, 0.18, 0.225, 0.27, 0.315, 0.36, 0.405, 0.45,
0.49500000000000005, 0.54, 0.585, 0.63, 0.675, 0.72, 0.765, 0.81, 0.855, 0.9}},
{Developer`PackedArrayForm, {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21}, {0.9, 0.8559508646656382, 0.7281152949374528, 0.5290067270632258,
0.27811529493745274, 0., -0.27811529493745274, -0.5290067270632258,
-0.7281152949374528, -0.8559508646656382, -0.9, -0.8559508646656382,
-0.7281152949374528, -0.5290067270632258, -0.27811529493745274, 0.,
0.27811529493745274, 0.5290067270632258, 0.7281152949374528, 0.8559508646656382,
0.9}}, {Automatic}] *)
```
f = Evaluate[eps f[#/eps]] &;
? You can only do it once, or you get a repeated composition. $\endgroup$ – Michael E2 Nov 30 '20 at 18:44Evaluate
and got recursion error... $\endgroup$ – Ulrich Neumann Nov 30 '20 at 18:54