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)