specifyCoefficientsВ этом разделе описывается записать коэффициенту f в уравнении
или в подобных уравнениях. Вопрос состоит в том, как записать коэффициенту f для включения в модель PDE через specifyCoefficients.
N является количеством уравнений, смотрите уравнения, которые Можно Решить Используя Тулбокс УЧП. Дайте f как любое из следующего:
Если f является постоянным, дайте вектор-столбец с компонентами N. Например, если N = 3, f мог быть:
f = [3;4;10];
Если f не является постоянным, дайте указатель на функцию. Функция должна иметь форму
fcoeffunction(location,state)
solvepde передает location и state структуры к fcoeffunction. Функция должна возвратить матрицу размера N-by-Nr, где Nr является числом точек в месте это solvepde передачи. Nr равен длине location.x или любой другой location поле . Функция должна оценить f в этих точках.
Передайте коэффициент specifyCoefficients как указатель на функцию, такой как
specifyCoefficients(model,'f',@fcoeffunction,...)
location структура с этими полями:
location.x
location.y
location.z
location.subdomain
Поля xY, и z представляйте x - y - и z - координаты точек, для которых ваша функция вычисляет содействующие значения. subdomain поле представляет числа субдомена, которые в настоящее время применяются только к 2D моделям. Поля местоположения являются векторами-строками.
state структура с этими полями:
state.u
state.ux
state.uy
state.uz
state.time
state.u поле представляет текущее значение решения u. state.ux, state.uy, и state.uz поля являются оценками частных производных решения (∂u / ∂ x, ∂u / ∂ y и ∂u / ∂ z) в соответствующих точках структуры местоположения. Решением и оценками градиента является N-by-Nr матрицы. state.time поле является скалярным временем представления для зависящих от времени моделей.
Например, если N = 3, f мог быть:
function f = fcoeffunction(location,state) N = 3; % Number of equations nr = length(location.x); % Number of columns f = zeros(N,nr); % Allocate f % Now the particular functional form of f f(1,:) = location.x - location.y + state.u(1,:); f(2,:) = 1 + tanh(state.ux(1,:)) + tanh(state.uy(3,:)); f(3,:) = (5 + state.u(3,:)).*sqrt(location.x.^2 + location.y.^2);
Это представляет коэффициентную функцию