Поместите свою задачу в правильную форму для дифференциальных уравнений в частных производных Toolbox™ решателей. Дополнительные сведения см. в разделе Уравнения, которые можно решить с помощью панели инструментов PDE. Если необходимо преобразовать проблему в форму дивергенции, см. раздел Поместить уравнения в форму дивергенции.
Создать PDEModel контейнер модели. Для скалярных PDE используйте createpde без аргументов.
model = createpde();
Если N - количество уравнений в системе, используйте createpde с входным аргументом N.
model = createpde(N);
Импорт или создание геометрии. Дополнительные сведения см. в разделе Геометрия и сетка.
importGeometry(model,'geometry.stl'); % importGeometry for 3-D geometryFromEdges(model,g); % geometryFromEdges for 2-D
Просмотрите геометрию таким образом, чтобы были известны метки границ.
pdegplot(model,'FaceLabels','on') % 'FaceLabels' for 3-D pdegplot(model,'EdgeLabels','on') % 'EdgeLabels' for 2-D
Чтобы увидеть метки 3-D модели, может потребоваться повернуть модель, сделать ее прозрачной или увеличить масштаб изображения. См. раздел Импорт файла STL.
Создайте граничные условия. Дополнительные сведения см. в разделе Задание граничных условий.
% 'face' for 3-D applyBoundaryCondition(model,'dirichlet','face',[2,3,5],'u',[0,0]); % 'edge' for 2-D applyBoundaryCondition(model,'neumann','edge',[1,4],'g',1,'q',eye(2));
Создайте коэффициенты PDE.
f = [1;2]; a = 0; c = [1;3;5]; specifyCoefficients(model,'m',0,'d',0,'c',c,'a',a,'f',f);
Можно указать коэффициенты как числовые или как функции.
Каждый коэффициент m, d, c, a, и f, имеет определенный формат. См. f Коэффициент для specifyCoefficients, c Коэффициент для specifyCoefficients, и m, d, или Коэффициент для specifyCoefficients.
Для зависимых от времени уравнений или, необязательно, для нелинейных стационарных уравнений создайте начальное условие. См. раздел Установка начальных условий.
Создайте сетку.
generateMesh(model);
Вызовите соответствующий решатель. Для всех проблем, кроме проблем собственного значения, звоните solvepde.
result = solvepde(model); % for stationary problems result = solvepde(model,tlist); % for time-dependent problems
Для проблем собственного значения используйте solvepdeeig:
result = solvepdeeig(model);
Осмотрите решение. См. Сюжеты Решения и Градиента с pdeplot и pdeplot3D, 2-е Сюжеты Решения и Градиента с MATLAB® Functions и 3D Сюжеты Решения и Градиента с MATLAB® Functions.
applyBoundaryCondition | createpde | generateMesh | geometryFromEdges | importGeometry | pdegplot | pdeplot | pdeplot3D