PDEPE 非线性

计算科学 matlab 非线性方程 数值建模 抛物线pde
2021-12-25 16:53:03

我想用 Matlabpdepe来解决这个系统:

st=(sr)x+sxxrt=(ABr2+s)x+AKrxx

在哪里A,BK是常数。我需要使用 MATLAB 解决这个问题pdepe问题是我方程中的非线性项:我不知道如何处理非线性部分。边界和初始条件在该部分不是问题。

因此,我尝试以pdepe期望的形式编写我的 PDE:

(11)×t(sr)=(srx+rsx2ABrrx+sx)+x(sxAKrx)+(00)

在 MATLAB 中:

function [c,f,s] = eqtn(x,t,u,DuDx)

c = 1;

f = ????

s = 0;

如何对函数进行编码f?

1个回答

编写函数最直接的方法eqtn是将非线性项定义为返回s向量的一部分,如下所示:

f = [DuDx(1); -A/K*DuDx(2)];
s = [u(1)*DuDx(2)+u(2)*DuDx(1); 2*A/B*u(2)*DuDx(2)+DuDx(1)];

立即想到的问题是,f与 相比,哪些术语适合包含在向量中s

许多物理问题的 PDE 系统是基于某个量随时间守恒的概念推导出来的。这直接导致了f向量所代表的“通量”的概念。也就是说,f在物理问题中具有明确定义的含义。

的定义f在定义边界条件时尤为重要。边界条件pdepe的形式

p + q*f=0

在域的左右两端。如果边界条件不为零q,则其值直接取决于f定义方式。