proper supremum norm implementation

• To: mathgroup at smc.vnet.net
• Subject: [mg108947] proper supremum norm implementation
• From: Benjamin Hell <hell at exoneon.de>
• Date: Thu, 8 Apr 2010 07:59:53 -0400 (EDT)

Hi,
I am trying to calculate an approximation to the supremum norm of the
difference of two functions on the interval [a,b]. The first one is a
linear spline (lets call it spline, too) connecting data points pretty
much lying on the graph of the second function (lets call it optf),
which in my case is a piecewise linear function. So both functions are
not really complicated, though quite some data points are involved. My
current approach is to use NMaximize to get an approximation to the
supremum norm. The whole procedure looks like:

spline = Interpolation[data,InterpolationOrder->1];
f[t_?NumericQ]:=Norm[spline[t]-optf[t],Infinity];
result = NMaximize[{f[t], a <= t, t <= b}, t];

For a small number of data points this works pretty well, but more than
60 points deliver quite bad results. I know that the results are bad
because I know a point c in [a,b] at which way higher values for
Norm[spline[t]-optf[t],Infinity] appear than NMaximize delivers. Playing
with AccuracyGoal and MaxIterations did not really help. I also tried
using FindMaximum with t=c as starting value, but I didn't even get a
result from that algorithm (only Null and warnings on convergence).

Does anybody know a better way to implement the supremum norm in this case?