主要内容

m, d,或一个系数specifyCoefficients

系数m, d,或

本节描述如何编写的,d,或一个方程组的系数

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

或特征值系统

· ( c u ) + 一个 u = λ d u · ( c u ) + 一个 u = λ 2 u

主题适用于推荐的工作流程包括系数模型中使用specifyCoefficients

如果有N系统中的方程,然后这些系数表示N——- - - - - -N矩阵。

常数(数字)系数矩阵,表示每个系数用一个列向量N2组件。例如,这个列向量表示m (:)

非常数的系数矩阵,看到非常数的m, d,或

请注意

d系数时需要一种特殊的矩阵形式是零。看到当m d系数是零

短m, d,或一个向量

有时候,你,d,或一个矩阵对角线或对称。在这些情况下,你可以代表,d,或一个使用一个较小的比一个向量N2组件。以下部分提供的可能性。

标量m, d,或

软件解释一个标量,d,或一个是一个对角矩阵。

( 一个 0 0 0 一个 0 0 0 一个 )

n元列向量m, d,或

软件解释一个N元列向量,d,或一个是一个对角矩阵。

( d ( 1 ) 0 0 0 d ( 2 ) 0 0 0 d ( N ) )

N (N + 1) / 2-Element列向量m, d,或

软件解释一个N(N+ 1)/ 2-element列向量,d,或一个对称矩阵。在下图中,•意味着入口是对称的。

( 一个 ( 1 ) 一个 ( 2 ) 一个 ( 4 ) 一个 ( N ( N 1 ) / 2 ) 一个 ( 3 ) 一个 ( 5 ) 一个 ( N ( N 1 ) / 2 + 1 ) 一个 ( 6 ) 一个 ( N ( N 1 ) / 2 + 2 ) 一个 ( N ( N + 1 ) / 2 ) )

系数一个(,j行(中)j(j1)/ 2 +)的向量一个

N2元列向量m, d,或

软件解释一个N2元列向量,d,或一个作为一个矩阵。

( d ( 1 ) d ( N + 1 ) d ( N 2 N + 1 ) d ( 2 ) d ( N + 2 ) d ( N 2 N + 2 ) d ( N ) d ( 2 N ) d ( N 2 ) )

系数一个(,j行(中)N(j1)+)的向量一个

非常数的m, d,或

请注意

如果两个d非零,那么d必须一个常数标量或矢量,而不是一个函数。

如果任何,d,或一个系数不是常数,它表示为一个函数的形式

dcoeff = dcoeffunction(位置、状态)

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

specifyCoefficients(模型,“d”@dcoeffunction,)

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

dcoeff =@(位置、状态)myfunWithAdditionalArgs(位置、状态、__arg1最长)specifyCoefficients(模型,“d”dcoeff,
  • 位置是一种结构与这些字段:

    • 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字段是一个标量代表时间时间模型。

你的函数必须返回一个矩阵的大小N1 -Nr,地点:

  • N1是代表的系数向量的长度。有几个可能的值N1、详细的短m, d,或一个向量1≤N1≤N2

  • Nr是点的数量的位置解算器。Nr等于的长度location.x或任何其他位置字段。这个函数应该评估,d,或一个在这些点。

例如,假设N= 3,你有二维几何。假设你的d矩阵的形式

d = ( 1 年代 1 ( x , y ) x 2 + y 2 年代 1 ( x , y ) 4 1 x 2 + y 2 1 9 ]

在哪里年代1(x,y)5在子区域1,子域名2中是10。

d是一个对称矩阵。所以它是自然的代表d作为一个N (N + 1) / 2-Element列向量m, d,或:

( 一个 ( 1 ) 一个 ( 2 ) 一个 ( 4 ) 一个 ( N ( N 1 ) / 2 ) 一个 ( 3 ) 一个 ( 5 ) 一个 ( N ( N 1 ) / 2 + 1 ) 一个 ( 6 ) 一个 ( N ( N 1 ) / 2 + 2 ) 一个 ( N ( N + 1 ) / 2 ) )

形式,下面的函数是合适的。

函数dmatrix = dcoeffunction(位置、状态)n1 = 6;nr =元素个数(location.x);dmatrix = 0 (n1、nr);dmatrix (1) = 1 (nr);:dmatrix (2) = 5 * location.subdomain;dmatrix (3) = 4 * 1 (nr);dmatrix 4: =√(location.x。^ 2 + location.y。^ 2);:dmatrix(5日)= 1 (nr);:dmatrix (6) = 9 * 1 (nr);

包括该函数作为你的d系数,通过函数处理@dcoeffunction:

specifyCoefficients(模型,“d”@dcoeffunction,

相关的话题