主要内容

f系数specifyCoefficients

本节描述如何编写的系数f在方程中

2 u t 2 + d u t · ( c u ) + 一个 u = f

或类似的方程。现在的问题是如何编写的系数f通过包含在PDE模型specifyCoefficients

N在方程的数目,看见吗使用PDE工具箱方程可以解决。给f是下面的:

  • 如果f是恒定的,给一个列向量N组件。例如,如果N= 3,f可能是:

    f = [3、4、10];
  • 如果f不是常数,给出一个函数处理。函数必须的形式

    fcoeff = fcoeffunction(位置、状态)

    传递系数specifyCoefficients一个函数处理,如

    specifyCoefficients(模型,“f”@fcoeffunction,)

    solvepdesolvepdeeig计算和填充数据位置状态结构数组和数据传递给该函数即可。您可以定义函数,使其输出取决于这些数据。您可以使用任何名称代替位置状态,但必须有两个参数的函数。在你的函数中使用附加参数,用你的函数(这需要附加参数)与一个匿名函数,只需要位置状态参数。例如:

    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);

这代表了系数函数

f = ( x y + u ( 1 ) 1 + 双曲正切 ( u ( 1 ) / x ) + 双曲正切 ( u ( 3 ) / y ) ( 5 + u ( 3 ) ) x 2 + y 2 ]

相关的话题