This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.

Minimal Surface Problem on the Unit Disk

This example shows how to solve a nonlinear elliptic problem.

A Nonlinear PDE

A nonlinear problem is one whose coefficients not only depend on spatial coordinates, but also on the solution itself. An example of this is the minimal surface equation

$$-\nabla \cdot \left( \frac{1}{\sqrt{1 + \left|\nabla u\right|^2}} \nabla u \right) = 0$$

on the unit disk, with

$u(x,y) = x^2$

on the boundary. To express this equation in toolbox form, note that the elliptic equation in toolbox syntax is

$$ -\nabla\cdot(c\nabla u) + au = f.$$

The PDE coefficient c is the multiplier of $\nabla u$, namely

$$c = \frac{1}{\sqrt{1 + \left|\nabla u\right|^2}}.$$

$c$ is a function of the solution $u$, so the problem is nonlinear. In toolbox syntax, you see that the $a$ and $f$ coefficients are 0.


Create a PDE Model with a single dependent variable, and include the geometry of the unit disk. The circleg function represents this geometry. Plot the geometry and display the edge labels.

numberOfPDE = 1;
model = createpde(numberOfPDE);
axis equal
title 'Geometry with Edge Labels';

Specify PDE Coefficients

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

Boundary Conditions

Create a function that represents the boundary condition $u(x,y) = x^2$.

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

Generate Mesh

axis equal

Solve PDE

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

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

Plot Solution

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

Was this topic helpful?