f系数specifyCoefficients
本节描述如何编写的系数f
在方程中
或类似的方程。现在的问题是如何编写的系数f
通过包含在PDE模型specifyCoefficients
。
N在方程的数目,看见吗使用PDE工具箱方程可以解决。给f
是下面的:
如果
f
是恒定的,给一个列向量N组件。例如,如果N= 3,f
可能是:f = [3、4、10];
如果
f
不是常数,给出一个函数处理。函数必须的形式fcoeff = fcoeffunction(位置、状态)
传递系数
specifyCoefficients
一个函数处理,如specifyCoefficients(模型,“f”@fcoeffunction,…)
solvepde
或solvepdeeig
计算和填充数据位置
和状态
结构数组和数据传递给该函数即可。您可以定义函数,使其输出取决于这些数据。您可以使用任何名称代替位置
和状态
,但必须有两个参数的函数。在你的函数中使用附加参数,用你的函数(这需要附加参数)与一个匿名函数,只需要位置
和状态
参数。例如:fcoeff =…@(位置、状态)myfunWithAdditionalArgs(位置、状态、__arg1最长…)specifyCoefficients(模型,“f”fcoeff,…
位置
是一种结构与这些字段:location.x
location.y
location.z
location.subdomain
的字段
x
,y
,z
代表了x- - - - - -,y- - - - - -,z——的点的坐标函数计算系数值。的子域名
字段表示的子域数字,目前仅适用于二维模型。位置字段是行向量。状态
是一种结构与这些字段: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——- - - - - -Nr矩阵。的state.time
字段是一个标量代表时间时间模型。
你的函数必须返回一个矩阵的大小N——- - - - - -Nr,在那里Nr点位置的数量吗solvepde
传球。Nr等于的长度location.x
或任何其他位置
字段。这个函数应该评估f
在这些点。
例如,如果N= 3,f
可能是:
函数f = fcoeffunction(位置、状态)N = 3;%的方程nr =长度(location.x);%的列数f = 0 (N, nr);f %分配现在% f的特定的函数形式:f(1) =位置。x -位置。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);
这代表了系数函数