m, d,或一个系数specifyCoefficients
系数m, d,或
本节描述如何编写的米,d,或一个方程组的系数
或特征值系统
主题适用于推荐的工作流程包括系数模型中使用specifyCoefficients
。
如果有N系统中的方程,然后这些系数表示N——- - - - - -N矩阵。
常数(数字)系数矩阵,表示每个系数用一个列向量N2组件。例如,这个列向量表示m (:)
。
非常数的系数矩阵,看到非常数的m, d,或。
请注意
的d
系数时需要一种特殊的矩阵形式米
是零。看到当m d系数是零。
短m, d,或一个向量
有时候,你米,d,或一个矩阵对角线或对称。在这些情况下,你可以代表米,d,或一个使用一个较小的比一个向量N2组件。以下部分提供的可能性。
标量m, d,或
软件解释一个标量米,d,或一个是一个对角矩阵。
n元列向量m, d,或
软件解释一个N元列向量米,d,或一个是一个对角矩阵。
N (N + 1) / 2-Element列向量m, d,或
软件解释一个N(N+ 1)/ 2-element列向量米,d,或一个对称矩阵。在下图中,•意味着入口是对称的。
系数一个(我,j行(中)j(j1)/ 2 +我)的向量一个
。
N2元列向量m, d,或
软件解释一个N2元列向量米,d,或一个作为一个矩阵。
系数一个(我,j行(中)N(j1)+我)的向量一个
。
非常数的m, d,或
请注意
如果两个米和d非零,那么d必须一个常数标量或矢量,而不是一个函数。
如果任何米,d,或一个系数不是常数,它表示为一个函数的形式
dcoeff = dcoeffunction(位置、状态)
传递系数specifyCoefficients
一个函数处理,如
specifyCoefficients(模型,“d”@dcoeffunction,…)
solvepde
或solvepdeeig
计算和填充数据位置
和状态
结构数组和数据传递给该函数即可。您可以定义函数,使其输出取决于这些数据。您可以使用任何名称代替位置
和状态
,但必须有两个参数的函数。在你的函数中使用附加参数,用你的函数(这需要附加参数)与一个匿名函数,只需要位置
和状态
参数。例如:
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
矩阵的形式
在哪里年代1(x,y)5在子区域1,子域名2中是10。
这d
是一个对称矩阵。所以它是自然的代表d
作为一个N (N + 1) / 2-Element列向量m, d,或:
形式,下面的函数是合适的。
函数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,…