Задайте коэффициенты в модели PDE
Коэффициенты УЧП
solvepde
решает УЧП формы
solvepdeeig
решает задачи о собственных значениях УЧП формы
specifyCoefficients
задает коэффициенты m, d, c, a и f в модели PDE.
specifyCoefficients(
задает заданные коэффициенты в каждом model
,Name,Value
)Name
каждому сопоставил Value
, и включает их в model
. Необходимо задать все эти имена: m
D
C
A
, и f
. Этот синтаксис применяет коэффициенты к целой геометрии.
Примечание
Включайте геометрию в model
перед использованием specifyCoefficients
.
specifyCoefficients(
коэффициенты присвоений для заданной области геометрии.model
,Name,Value
,RegionType
,RegionID
)
Задайте коэффициенты для уравнения Пуассона .
solvepde
уравнения адресов формы
.
Поэтому коэффициенты для уравнения Пуассона , , , , . Включайте эти коэффициенты в модель PDE L-образной мембраны.
model = createpde(); geometryFromEdges(model,@lshapeg); specifyCoefficients(model,'m',0,... 'd',0,... 'c',1,... 'a',0,... 'f',1);
Задайте нуль граничные условия Дирихле, поймайте в сети модель и решите УЧП.
applyBoundaryCondition(model,'dirichlet','Edge',1:model.Geometry.NumEdges,'u',0); generateMesh(model,'Hmax',0.25); results = solvepde(model);
Просмотрите решение.
pdeplot(model,'XYData',results.NodalSolution)
Задайте коэффициенты для уравнения Пуассона в 3-D с непостоянными характеристиками выброса и получите содействующий объект.
Коэффициенты уравнения , , , . Для непостоянных характеристик выброса взять .
f = @(location,state)location.y.^2.*tanh(location.z)/1000;
Установите коэффициенты в 3-D прямоугольной геометрии блока.
model = createpde(); importGeometry(model,'Block.stl'); CA = specifyCoefficients(model,'m',0,... 'd',0,... 'c',1,... 'a',0,... 'f',f)
CA = CoefficientAssignment with properties: RegionType: 'cell' RegionID: 1 m: 0 d: 0 c: 1 a: 0 f: @(location,state)location.y.^2.*tanh(location.z)/1000
Установите нуль условия Дирихле на поверхности 1, поймайте в сети геометрию и решите УЧП.
applyBoundaryCondition(model,'dirichlet','Face',1,'u',0); generateMesh(model); results = solvepde(model);
Просмотрите решение на поверхности.
pdeplot3D(model,'ColorMapData',results.NodalSolution)
Создайте скалярную модель PDE с L-образной мембраной как геометрия. Постройте метки субдомена и геометрия.
model = createpde(); geometryFromEdges(model,@lshapeg); pdegplot(model,'FaceLabels','on') axis equal ylim([-1.1,1.1])
Установите c
коэффициент к 1 во всех областях, но f
коэффициент к 1 в субдомене 1, 5 в субдомене 2, и-8 в субдомене 3. Установите все другие коэффициенты на 0.
specifyCoefficients(model,'m',0,'d',0,'c',1,'a',0,'f',1,'Face',1); specifyCoefficients(model,'m',0,'d',0,'c',1,'a',0,'f',5,'Face',2); specifyCoefficients(model,'m',0,'d',0,'c',1,'a',0,'f',-8,'Face',3);
Установите нуль граничные условия Дирихле на все ребра. Создайте mesh, решите УЧП и постройте результат.
applyBoundaryCondition(model,'dirichlet','Edge',1:model.Geometry.NumEdges,'u',0); generateMesh(model,'Hmax',0.25); results = solvepde(model); pdeplot(model,'XYData',results.NodalSolution)
model
— Модель PDEPDEModel
объектМодель PDE в виде PDEModel
объект.
Пример: model = createpde
specifyCoefficients(model,'m',0,'d',0,'c',1,'a',0,'f',@fcoeff)
Примечание
Необходимо задать все эти имена: m
D
C
A
, и f
.
'm'
— Коэффициент производной времени второго порядкаКоэффициент производной времени второго порядка в виде скаляра, вектор-столбца или указателя на функцию. Для получения дополнительной информации на размерах, и для деталей формы указателя на функцию коэффициента, см. m, d, или Коэффициент для specifyCoefficients.
Задайте 0
если термин не является частью вашей проблемы.
Пример: specifyCoefficients('m',@mcoef,'d',0,'c',1,'a',0,'f',1,'Face',1:4)
Типы данных: double |
function_handle
Поддержка комплексного числа: Да
'd'
— Коэффициент производной времени первого порядкаКоэффициент производной времени первого порядка в виде скаляра, вектор-столбца или указателя на функцию. Для получения дополнительной информации на размерах, и для деталей формы указателя на функцию коэффициента, см. m, d, или Коэффициент для specifyCoefficients.
Примечание
Если m
коэффициент является ненулевым, d
должен быть 0
или матрица, и не указатель на функцию. См. d Коэффициент, Когда m будет Ненулевым.
Задайте 0
если термин не является частью вашей проблемы.
Пример: specifyCoefficients('m',0,'d',@dcoef,'c',1,'a',0,'f',1,'Face',1:4)
Типы данных: double |
function_handle
Поддержка комплексного числа: Да
'c'
— Коэффициент производной пробела второго порядкаКоэффициент производной пробела второго порядка в виде скаляра, вектор-столбца или указателя на функцию. Для получения дополнительной информации на размерах, и для деталей формы указателя на функцию коэффициента, см. c Коэффициент для specifyCoefficients.
Пример: specifyCoefficients('m',0,'d',0,'c',@ccoef,'a',0,'f',1,'Face',1:4)
Типы данных: double |
function_handle
Поддержка комплексного числа: Да
'a'
— Коэффициент множителя решенияКоэффициент множителя решения в виде скаляра, вектор-столбца или указателя на функцию. Для получения дополнительной информации на размерах, и для деталей формы указателя на функцию коэффициента, см. m, d, или Коэффициент для specifyCoefficients.
Задайте 0
если термин не является частью вашей проблемы.
Пример: specifyCoefficients('m',0,'d',0,'c',1,'a',@acoef,'f',1,'Face',1:4)
Типы данных: double |
function_handle
Поддержка комплексного числа: Да
'f'
— Исходный коэффициентИсходный коэффициент в виде скаляра, вектор-столбца или указателя на функцию. Для получения дополнительной информации на размерах, и для деталей формы указателя на функцию коэффициента, см. f Коэффициент для specifyCoefficients.
Задайте 0
если термин не является частью вашей проблемы.
Пример: specifyCoefficients('m',0,'d',0,'c',1,'a',0,'f',@fcoeff,'Face',1:4)
Типы данных: double |
function_handle
Поддержка комплексного числа: Да
'RegionType'
— Геометрический тип области'Face'
для 2D модели | 'Cell'
для 3-D моделиГеометрический тип области в виде 'Face'
или 'Cell'
.
Пример: specifyCoefficients('m',0,'d',0,'c',1,'a',0,'f',10,'Cell',2)
Типы данных: char |
string
'RegionID'
— Геометрический ID областиГеометрический ID области в виде вектора из положительных целых чисел. Найдите идентификаторы области при помощи pdegplot
.
Пример: specifyCoefficients('m',0,'d',0,'c',1,'a',0,'f',10,'Cell',1:3)
Типы данных: double
CA
— Содействующее присвоениеCoefficientAssignment
объектСодействующее присвоение, возвращенное как объект CoefficientAssignment Properties.
d
Коэффициент, когда m
является Ненулевымd
коэффициент принимает специальную матричную форму когда m
является ненулевым. Необходимо задать d
как матрица конкретного размера, и не как указатель на функцию.
d
представляет коэффициент демпфирования в случае ненулевого m
. Задавать d
, выполните эти два шага:
Вызовите results = assembleFEMatrices(...)
для проблемы с вашими исходными коэффициентами и использованием d
= 0. Используйте 'none'
по умолчанию метод для
assembleFEMatrices
.
Возьмите d
коэффициент как матрица размера results.M
. Обычно d
любой пропорционально results.M
, или линейная комбинация results.M
и results.K
.
Смотрите динамику ослабленного консольного луча.
Для уравнений собственного значения коэффициенты не могут зависеть от решения u
или его градиент.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.