Минимальная поверхностная проблема

В этом примере показано, как решить минимальное поверхностное уравнение

-(11+|u|2u)=0

на единичном диске Ω={(x,y)|x2+y21}, с u(x,y)=x2 на контуре Ω. Эллиптическое уравнение в форме тулбокса

-(cu)+au=f.

Поэтому для минимальной поверхностной проблемы, коэффициенты следующие:

c=11+|u|2,a=0,f=0.

Поскольку коэффициент c является функцией решения u, минимальной поверхностной проблемой является нелинейная эллиптическая проблема.

Чтобы решить минимальную поверхностную задачу с помощью программируемого рабочего процесса, сначала создайте модель PDE с одной зависимой переменной.

model = createpde;

Создайте геометрию и включайте ее в модель. circleg функция представляет эту геометрию.

geometryFromEdges(model,@circleg);

Постройте геометрию с метками ребра.

pdegplot(model,'EdgeLabels','on'); 
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.

Задайте коэффициенты.

a = 0;
f = 0;
cCoef = @(region,state) 1./sqrt(1+state.ux.^2 + state.uy.^2);
specifyCoefficients(model,'m',0,'d',0,'c',cCoef,'a',a,'f',f);

Задайте граничные условия с помощью функции u(x,y)=x2.

bcMatrix = @(region,~)region.x.^2;
applyBoundaryCondition(model,'dirichlet',...
                             'Edge',1:model.Geometry.NumEdges,...
                             'u',bcMatrix);

Сгенерируйте и постройте mesh.

generateMesh(model,'Hmax',0.1);
figure; 
pdemesh(model); 
axis equal

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

Решите задачу при помощи solvepde функция. Поскольку проблема нелинейна, solvepde вызывает нелинейный решатель. Наблюдайте прогресс решателя путем установки SolverOptions.ReportStatistics свойство модели к '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;

Постройте решение.

figure; 
pdeplot(model,'XYData',u,'ZData',u);
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.

Для просмотра документации необходимо авторизоваться на сайте