Как использовать переменный коэффициент в PDE Toolbox для решения параболического уравнения (Matlab)
Я постараюсь объяснить мои сомнения в лучшем виде:
Я пытаюсь решить уравнение реакции-диффузии с помощью PDE Toolbox (Matlab), синтаксис для получения решения (u):
parabolic - Решить параболическую проблему PDE
Эта функция MATLAB дает решение FEM-формулировки скалярной задачи о PDE: u1 = параболический (u0, tlist, b, p, e, t, c, a, f, d)
c, a, f, d - коэффициенты параболического уравнения:
d(∂u/∂t)−∇⋅(c∇u)+au=f,
Но я хочу этого:
u=parabolic(u0,tlist,b,p,e,t,c,@coeffunction,f,d);
u0 - исходное решение, tlist - векторный массив времен, в котором я записываю решение, b соответствует граничным условиям, (p,e,t) - элементы сетки, а @coeffunction - дескриптор функции, который соответствует коэффициент "а".
Мой вопрос: кто-нибудь знает, возможно ли указать "a" как переменный коэффициент, который зависит от tlist?
1 ответ
Хотя это не набор инструментов PDE, набор инструментов FEATool Matlab FEM позволяет вводить и решать PDE с нелинейными и зависящими от времени коэффициентами. Уравнения и граничные выражения могут быть определены как константы или строковые выражения (включая время, зависимые переменные, производные, координаты пространственного измерения и даже внешние пользовательские функции Matlab). Например, коэффициенты могут быть определены как
fea.coef = { 'coef1' [] [] 42 ;
'coef2' [] [] '2*u-ux^2+sin(2*pi*t)' ;
'coef3' [] [] 'my_fun(t)' };
где теперь coef1-coef3 можно свободно использовать в уравнениях и граничных условиях. Этот ответ показывает один пример теплопередачи, иллюстрирующий этот подход.
В вашем случае с уравнением реакции-диффузии вы могли бы просто использовать графический интерфейс Matlab, так как уравнения PDE с конвекцией-диффузией-реакцией предварительно определены как ввод
u*t
в качестве источника реакции для соответствующего коэффициента R. И если вы предпочитаете работать с файлами m-script, вы можете просто экспортировать модель GUI в виде текстового файла.m модели FEA.