Main Content

Minimal Surface Problem

This example shows how to solve the minimal surface equation


on the unit disk Ω={(x,y)|x2+y21}, with u(x,y)=x2 on the boundary Ω. An elliptic equation in the toolbox form is


Therefore, for the minimal surface problem, the coefficients are as follows:


Because the coefficient c is a function of the solution u, the minimal surface problem is a nonlinear elliptic problem.

To solve the minimal surface problem using the programmatic workflow, first create a PDE model with a single dependent variable.

model = createpde;

Create the geometry and include it in the model. The circleg function represents this geometry.


Plot the geometry with the edge labels.

axis equal
title 'Geometry with Edge Labels';

Figure contains an axes object. The axes object with title Geometry with Edge Labels contains 5 objects of type line, text.

Specify the coefficients.

a = 0;
f = 0;
cCoef = @(region,state) 1./sqrt(1+state.ux.^2 +^2);

Specify the boundary conditions using the function u(x,y)=x2.

bcMatrix = @(region,~)region.x.^2;

Generate and plot a mesh.

axis equal

Figure contains an axes object. The axes object contains 2 objects of type line.

Solve the problem by using the solvepde function. Because the problem is nonlinear, solvepde invokes a nonlinear solver. Observe the solver progress by setting the SolverOptions.ReportStatistics property of the model to 'on'.

model.SolverOptions.ReportStatistics = 'on';
result = solvepde(model);
Iteration     Residual     Step size  Jacobian: Full
   0          1.8540e-02
   1          2.8715e-04   1.0000000
   2          1.2144e-06   1.0000000
u = result.NodalSolution;

Plot the solution.

xlabel 'x'
ylabel 'y'
zlabel 'u(x,y)'
title 'Minimal Surface'

Figure contains an axes object. The axes object with title Minimal Surface contains an object of type patch.