I’ve been trying to understand how the Alabern-Mateu-Verdera characterization of Sobolev spaces works. Consider a function . Let be the average of on scale ; that is, . The difference measures the deviation of from a line. AMV define the **square function** as a weighted average of the squares of such deviations:

Since I’m mostly interested in the local matters, I’ll use the truncated square function which avoids the large-scale considerations. If is very nice (say, twice continuously differentiable), then is of order , and the integral converges with room to spare. For example, here is the Gaussian ( is in blue, in red):

This looks suspicious. Clearly, measures the size of the **second **derivative, not of the first. Yet, one of the Alabern-Mateu-Verdera theorems is for the Sobolev space of first order : namely, (for finite ). So, the degree of integrability of matches that of , even though the functions look very different.

For functions that are not very nice may be infinite for some values of . For example, if the graph of has a corner at some point, then is of order there, and the integral defining diverges as . For example, take the triangle :

The triangle is a Lipschitz, i.e., , but its is not bounded. So, the AMV characterization does not extend to . However, the blow-up rate of in this example is merely logarithmic ( to be precise), which implies for all , in accordance with the AMV theorem. Again, we notice that and look rather unlike each other… except that now resembles the absolute value of the Hilbert transform of .

Here is the semicircle :

At the endpoints of the arc blows up as , and therefore only when . And indeed, near the endpoints the nonlinearity on scale is about , which turns the integrand in the definition of into . Hence, as . We have iff , as needed.

The last example, , has both a cusp and two corners, demonstrating the different rates at which blows up.

My Scilab code is probably not the most efficient one for this purpose. I calculated using a multidiagonal matrix with on the main diagonal and on the nearest diagonals.

step=0.01; scale=1; x=[-3:step:3]; n=length(x); s=zeros(n)

f=max(0,1-sqrt(abs(x)))

for k=1:(scale/step) do

avg=-diag(ones(n,1))

for j=1:k do

avg=avg+diag(ones(n-j,1)/(2*k),j)+diag(ones(n-j,1)/(2*k),-j)

end

s=s+(avg*f').^2/(step^2*k^3)

end

s=s.^(1/2)

clf(); plot(x,f); plot(x,s,'red')