定义物理常量
要跟踪物理常量,请创建一个结构体数组,其中每个常量都有一个对应的字段。当您稍后为方程、初始条件和边界条件定义函数时,可以将此结构体作为额外的参数传入,以便函数可以访问常量。
C.L = 1;
C.D = 0.1;
C.eta = 10;
C.K = 1;
C.Ip = 1;
编写方程代码
在编写方程代码之前,您需要确保它的形式符合 pdepe 求解器的要求:
c(x,t,u,∂u∂x)∂u∂t=x-m∂∂x(xmf(x,t,u,∂u∂x))+s(x,t,u,∂u∂x).
此形式的 PDE 为
∂u∂t=x0∂∂x(x0D∂u∂x)-DηL∂u∂x.
因此,方程中的系数的值是
m=0(没有角对称性的笛卡尔坐标)
c(x,t,u,∂u∂x)=1
f(x,t,u,∂u∂x)=D∂u∂x
s(x,t,u,∂u∂x)=-DηL∂u∂x
现在,您可以创建一个函数以编写方程代码。该函数应具有签名 [c,f,s] = transistorPDE(x,t,u,dudx,C):
x 是独立的空间变量。
t 是独立的时间变量。
u 是关于 x 和 t 微分的因变量。
dudx 是偏空间导数 ∂u/∂x。
C 是包含物理常量的额外输入。
输出 c、f 和 s 对应于 pdepe 所需的标准 PDE 形式中的系数。
因此,此示例中的方程可以由以下函数表示:
function [c,f,s] = transistorPDE(x,t,u,dudx,C)
D = C.D;
eta = C.eta;
L = C.L;
c = 1;
f = D*dudx;
s = -(D*eta/L)*dudx;
end
(注意:所有函数都作为局部函数包含在示例的末尾。)
代码初始条件
接下来,编写一个返回初始条件的函数。初始条件应用在第一个时间值处,并为 x 的任何值提供 u(x,t0) 的值。使用函数签名 u0 = transistorIC(x,C) 编写函数。
初始条件为
u(x,0)=KLD(1-e-η(1-x/L)η).
对应的函数是
function u0 = transistorIC(x,C)
K =