Suppose is a convex function on a bounded convex domain . Does it have a continuous extension to ?

Of course not if is unbounded, like on the interval . So let’s assume is bounded. Then the answer is positive on one dimension, and easy to prove: is monotone in some neighborhood of a boundary point, and being bounded, must have a finite limit there.

In higher dimensions, the above argument does not work anymore. And indeed, a bounded convex function on a nice domain (like a disk) may fail to have a limit at some boundary points.

The example I describe is geometrically natural, but doesn’t seem to have a neat closed form equation. Let be the upper half of the open unit disk. Its boundary consists of the diameter and the semicircle . Define

Equivalently, take the convex hull of the set in , and let be the equation of its bottom surface.

This is a convex function by construction. It takes a bit of (routine) work to show that has limit everywhere on , except the endpoints, and that it has limit on , again except the endpoints. Consequently, there is no limit of as .

Here’s a plot of :

To obtain it in a reasonably efficient way, I had to narrow down the class of affine functions without changing the supremum. Note that if , then dividing by gives a better contributor to the supremum. (This increases where it is positive, and the parts where it is negative do not matter anyway since .)

Let be the point of where attains the value . Then is parallel to the radius at that point. To fulfill the condition on , the function must decay quickly enough along the radius toward the center. The required rate is found by projecting onto the radius: it is . Hence, we only need to consider

The one-parameter supremum over is not hard to evaluate numerically. Here is the Matlab code that produced the plot above.

```
[R,T] = meshgrid(0:.01:1, 0:.01:pi);
X = (2-R).*R.*cos(T); Y = (2-R).*R.*sin(T);
Z = zeros(size(X));
t = .001:.001:pi-.001;
for k = 1:length(t)
Z = max(Z, (X*cos(t(k))+Y*sin(t(k))-abs(cos(t(k))))./(1-abs(cos(t(k)))));
end
Z = min(Z, 1);
surf(X, Y, Z)
```

The truncation step `Z = min(Z, 1);`

would be unnecessary in exact arithmetics, but it helps to cut out floating point errors.

The factor `(2-R)`

is attached to polar coordinate transformation so that there are more polar circles near the boundary, where the function changes most rapidly.

Finally, note that the nonsmoothness of domain is not an issue here. The function naturally extends to a convex function on the open unit disk, by letting in the bottom half.

(Adapted from Extension of bounded convex function to boundary)