NDEigensystem

NDEigensystem[[u[x,y,],u,{x,y,}Ω,n]

给出线性微分算子 在区域 Ωn 个最小量级的特征值和特征函数.

NDEigensystem[{1[u[x,y,],v[x,y,],],2[u[x,y,],v[x,y,],],},{u,v,},{x,y,}Ω,n]

给出在区域 Ω 上耦合微分算子 {op1,op2,} 的特征值和特征函数.

NDEigensystem[eqns,{u,},t,{x,y,}Ω,n]

为耦合时间相关微分方程 eqns 的解 u, 给出空间变量 {x,y,} 的特征值和特征函数.

更多信息和选项

  • NDEigensystem,亦称为本征模求解器,是一个数值特征求解器 (eigen solver),用于求区域上微分方程的特征向量和特征值.
  • NDEigensystem 给出在耦合系统的情况下特征值 λi 和特征函数 ui 的列表 {{λ1,,λn},{u1,,un}}{{λ1,,λn},{{u1,v1,},,{un,vn,}}.
  • 方程 eqnsNDSolve 中所指定的相同.
  • 微分算子 的特征值和特征函数对 {λi,ui} 满足 [u[x,y,]]==λi ui[x,y,].
  • 耦合微分算子的特征值和特征函数对 {λi,{ui,vi,}} 满足:
  • 1[ui[x,y,],vi[x,y,],]λi ui[x,y,]
    2[ui[x,y,],vi[x,y,],]==λi vi[x,y,]
  • 特征值按绝对值递增的顺序排序.
  • 默认归一化下,由NDEigensystem[[u[x,y,]],u,{x,y,}Ω,n] 计算得的特征函数 ui 近似满足 . »
  • 默认归一化下,耦合微分算子的特征函数 {ui,vi,} 近似满足 .
  • 可以包括同质的 DirichletConditionNeumannValue 或广义罗宾边界条件. »
  • 还可包含 PeriodicBoundaryCondition.
  • 当在部分边界 Ω 上没有指定边界条件时,这就等价于指定诺伊曼零边界条件.
  • 对于一阶时间相关方程组系统,时间导数D[u[t,x,y,],t], D[v[t,x,y,],t], 实际上是被 λ u[x,y,], λ v[x,y,], 替代.
  • 高于一阶的时间相关方程系统被降阶至一个有中间变量 ut=u*,=vt=v*,= 等的耦合一阶系统. 只返回函数 u, v, . »
  • NDEigensystem 接受可以用来控制不同阶段的解的 Method 选项. 设置 Method->{s1->m1,s2->m2,} 下,步骤 si 由方法 mi 处理. 当步骤没有显式指明时, NDEigensystem 尝试自动决定将给定方法应用于哪个步骤.
  • 可能的求解步骤是:
  • "PDEDiscretization"空间算子的离散化
    "Eigensystem"根据离散系统计算特征系统
    "Interpolation"创建插值函数
    "VectorNormalization"用于构建特征函数的特征向量的归一化

范例

打开所有单元关闭所有单元

基本范例  (3)

找出 [0,π] 上拉普拉斯算符的最小的4个特征值和特征函数:

可视化特征函数:

计算边缘被夹紧的圆薄膜的前6个特征值:

可视化特征函数:

指定 Schrödinger 算符,参数为 和电势

求 5 个最小的特征值和特征函数:

可视化经 缩放和由相应的特征值偏移的特征函数:

范围  (13)

一维情形  (7)

指定拉普拉斯算子:

指定齐次狄利克雷边界条件:

找出最小的 4 个特征值和特征函数:

可视化特征函数:

指定拉普拉斯算子:

指定齐次诺伊曼边界条件:

找出最小的 4 个特征值和特征函数:

这等价于:

指定带有齐次狄利克雷边界条件的瞬态方程:

找出最小的 4 个特征值和特征函数:

这等价于:

求周期性边界条件下拉普拉斯方程的 5 个特征值和特征向量:

与解析特征值相比较:

可视化特征函数:

查看确认边界是周期性的:

PeriodicBoundaryCondition 获得等价的表达式:

指定带有齐次狄利克雷边界条件的波方程:

找出最小的 4 个特征值和特征函数:

计算广义波动方程 的特征系统:

与常微分方程组的等效一阶系统的精确解相比:

指定刘维尔算符:

找出最小的4个特征值和特征函数:

将这些特征值同解析特征值相比:

可视化特征函数:

可视化解析特征函数:

二维  (6)

指定拉普拉斯算子:

找出最小的4个特征值和特征函数:

可视化特征函数:

指定拉普拉斯算子:

找出单位圆盘中的算子的最小的4个特征值和特征函数:

可视化特征函数:

指定带有齐次狄利克雷边界条件的拉普拉斯算子:

找出一个矩形中的最小的 9 个特征值和特征函数:

可视化特征函数:

指定带有齐次狄利克雷边界条件的波方程:

找出圆盘中最小的 4 个特征值和特征函数:

可视化特征函数:

波动方程的特征值会是角频率的平方根:

与常微分方程的一阶等效系统的精确解相比较:

解一个局部约束特征系统问题:

可视化特征函数:

选项  (9)

Method  (9)

"Eigensystem"  (4)

EigensystemEigenvalues 求解离散 PDE. 下面将讨论 NDEigensystem 中所有可用的 Eigensystem 选项.

指定一种方法来求解特征系统:

这个例子里默认方法更快:

默认方法为 Arnoldi 方法:

与直接求解法(仅适用于小规模问题)相比,Arnoldi 方法在数值上更高效,但稳定性较差.

指定 Arnoldi 次:

FEAST 方法适合于在特定范围内求特征值和特征向量. 用 Eigensystem 的 FEAST 方法在 范围内求 SturmLiouville 算子的两个特征值和特征函数:

根据 SturmLiouville 理论,特征值必须是不同的,但在此例中,它们几乎相同:

几乎简并的特征函数为:

区间的端点 未被包含在 FEAST 求特征值的区间中;如果想要了解更多信息,请查阅 Eigensystem 的参考页面 .

下面举例说明 "Shift" 选项的用法.

"Interpolation"  (1)

缺省情况下,对于区域 外的点,特征函数给出 Indeterminate

修改默认设置,取消警告信息:

计算区域 外的第二个特征函数:

可视化解的一部分:

改变特征函数,返回区域 外的外推值:

计算区域 外的第二个特征函数:

"PDEDiscretization"  (1)

为底层计算改变 MaxCellMeasure

精确特征值是 0,1,4,9,,因此特征值误差为:

已降低离散误差中的更精细的网格结果:

"VectorNormalization"  (3)

计算,对计算的特征值不进行任何归一化处理:

默认情况下关于系统矩阵进行归一化:

函数由插值特征向量构建:

NDEigensystem 构建作为广义特征系统被求解的阻尼和刚度系统矩阵. 构建特征向量的归一化,使得应用标准化特征值于阻尼矩阵形成了一个单位矩阵:

把归一化特征向量应用到刚度矩阵产生对角线上的特征值:

默认归一化下,特征函数的 L2 范数将约为1:

在计算特征系统前,移除与狄利克雷条件相关的自由度,0再插入到解的后面. 这产生标准向量的不同维度和约束问题的特征向量:

在特征系统计算中,两个狄利克雷条件被移除:

特征系统计算后,零值被重新插入到函数中:

应用  (10)

声学  (1)

Mini 的近似横截面的声学特征值和特征函数进行计算. 导入一张横截面的图像:

使用掩码工具来生成一个边界图形:

离散化图形:

计算横截面的 6 个特征值和特征函数:

可视化汽车横截面的第 2 个特征函数:

该视图定性显示出一个假定声学刚性墙的驻波. 大的振幅与大的压强变化相对应,从而对应于大的音量.

结构力学  (2)

指定一个平面应力偏微分方程:

计算约束特征值和特征函数:

可视化特征函数的比例范数:

这个可视化显示了区域的主形变.

指定钢的平面应力模型的变量和参数:

计算一个长 10 米、高 0.7 米的横梁的第一个特征值和特征函数:

根据特征值计算共振频率:

用 Euler-Bernoulli 梁理论解析地计算第一谐振频率:

比较结果的差别;差别中大概一半源于不同理论的近似:

特征函数展开式  (4)

用特征函数展开来构建一个粗细不均匀的两头夹紧的线的解:

粗略估计作为特征函数的线性组合的初始条件 1-TemplateBox[{{{2, x}, -, 1}}, Abs]

用参数和特征值作频率,假设在 的时间导数为0,构建时间相关解:

做出这个估计的动画,包括每个有非零系数的函数:

与由 NDSolve 找出的时间相关解比较:

画出其中差异的图像:

比较一面圆鼓上的不同谐振频率:

显示每个特征函数一个循环周期内的时间演化:

减小图形的大小:

注意,有更大特征值的特征函数振动更快:

显示特征函数线性组合的时间演化:

这是有一致初始条件的波方程的解:

显示有限特征展开和完整解的区别:

用一个特征函数展开获得一个区域上热方程的解:

计算 上拉普拉斯算子的前 20 个特征值和特征函数:

为初始条件:

为计算积分,在离散化的定义域 Ωd 上进行速度更快而且一致性更好:

因为 不满足齐次边界条件,找到离散定义域 Ωd 上的稳态解 ,使 满足齐次边界条件:

计算差值 的特征函数展开的参数:

热方程的解的估计如下:

计算时间相关解:

画出差的图像:

L 形区域上的特征函数:

前 6 个特征函数:

第一个特征函数:

特征值和特征函数的区间  (1)

求在一个区间上的特征值和特征函数:

可视化得到的特征函数:

量子力学  (2)

指定 Schrödinger 算符,参数为 和电势

求细化网格上的 10 个最小的特征值和特征函数:

可视化经 缩放和由相应的特征值偏移的特征函数:

下面的例子说明了特征值的避免交叉现象. 为此,计算两个圆盘之间的区域差异. 外面的圆盘的半径为 ,其圆心位于 . 里面的圆盘的半径为 . 里面的圆盘的圆心从 开始,慢慢地以 向右移动. 编写一个辅助函数:

计算特征值和特征向量:

可视化 的各个位置处 Laplacian of the geometry 的特征值:

请注意,有些曲线是交叉的,而另一些曲线则显示出避免交叉现象.

可视化特解的特征向量:

属性和关系  (3)

通过默认归一化,特征函数 ui 近似地满足

当特征值是复数时,有必要使用共轭:

比较估计的特征系统和波动方程的解析计算特征系统.

找出波方程 在0到 的6个最小特征值和特征函数:

偏微分方程系统的特征值转换成一阶时间对应的矩阵 的特征值,其中 是边界为 的特征值:

显示高阶时间相关偏微分方程和一阶偏微分方程系统间的关系.

找出波方程 在0到 的6个最小特征值和特征函数:

画出系数及特征函数的实数部分和虚数部分的图像:

找出作为一阶偏微分方程系统 给出的波方程的6个最小的特征值和特征函数:

画出特征函数的系数及实数部分和虚数部分的图像:

二阶系统的特征值和一阶方程的系统的特征值是一样的:

对于给定特征值,返回的二阶系统的特征函数与返回给系统的第一个特征函数是一样的:

对给定的特征值, 乘以返回给二阶系统的特征函数与返回给系统的第二个特征函数是一样的:

系统的特征函数被归一化,使

二阶时间相关系统的特征函数归一化至和系统相同,因为 int_Omega{u_i,v_i,...}.{u_i,v_i,...}=(1+lambda_i^2)int_OmegaTemplateBox[{{u, _, i}}, Abs]^2=1,所以 int_OmegaTemplateBox[{{u, _, i}}, Abs]^2=1/((1+lambda_i^2))

可能存在的问题  (15)

计算的特征系统取决于离散化的粒度:

准确的特征值是 0,1,4,9,,所以特征值误差如下:

可视化 -TemplateBox[{{(, {u,  , x}, )}, {{, x, }}}, Laplacian]=lambda (u x) 中的离散化误差:

在递减的离散误差中更细网格的结果:

可视化在 中的离散化误差:

这个区域的离散化粒度会影响可以找到的特征值和特征函数的数目:

与一个细致的离散化相比,粗糙的离散化特征值和特征函数的差倾向于随模数而增加:

无法求解非齐次狄利克雷边界条件下的特征系统:

可以求解齐次狄利克雷边界条件下的特征系统:

无法求解非齐次 Neumann 边界值条件下的特征系统:

可以求解齐次 Neumann 边界值条件下的特征系统:

同样的结果:

无法求解非齐次广义 Neumann 边界值条件下的特征系统:

可以求解齐次广义 Neumann 值得特征系统:

算子和可能的边界条件必须是稳态并线性的:

初始条件将被设为零并被忽略:

相同结果:

特征值和特征函数将按照幅值排序. 定义势函数:

注意负特征值:

通过实部得到特征值:

NDEigensystem 为给定的微分算子找出 个最小量级的特征值及其对应的特征函数. 特别是在寻找最负特征值的情况下,例如许多量子力学问题,NDEigensystem 返回的 个最负值特征值可能与其默认返回的 个特征值不一致. 请看下面的范例.

以氢原子的无量纲径向薛定谔方程为例,能量单位为雷德贝格,长度以玻尔半径为单位.

定义径向薛定谔方程:

求解 时的特征值问题. 使用细化网格以获得良好的近似质量:

查看以电子伏特为单位得到的特征值:

这些特征值与最接近 的特征值相对应. 例如,看看这个问题的分析特征值.

该方程的分析能量遵循该方程:

如果你事先知道特征值的下限,比如 ,你就可以把特征值问题 重新定义为 . 换句话说,这是一个新的特征值问题:,其中 . 鉴于 的负下限,偏移确保了 只取正值. 因此, 个最小幅度值将对应于 个最大负值. 这样,我们就可以计算 ,然后得到 . 最简单的方法是使用 "Shift" 选项.

设置下限:

定义偏移并求解特征值问题:

查看以电子伏特为单位得到的特征值:

这些特征值与最负值的特征值相对应,但顺序相反,因此有必要对特征状态进行排序:

使用 SortBy 对特征状态进行排序:

绘制概率密度图:

请看分析特征值与所得结果之间的差异:

NDEigensystem 将 PDE 转换为时间依赖的 PDE. 这种转换不是唯一的,可能会导致耦合 PDE 出现意外的结果:

在内部,给定的方程式被重写为时间依赖的 PDE 方程组. 这是通过向运算符添加时间依赖的导数项和时间变量 并将其设置为 0 来完成的. 在前面的例子中,根据给定的自变量 {v[x],u[x]},生成了以下时间系统: {D[v[t,x],t]==- u[t,x]-Laplacian[u[t,x],{x}],D[u[t,x],t]==-v[t,x]-Laplacian[v[t,x],{x}]}

因为自变量 {v[x],u[x]} 的顺序,第一个方程在 v[t,x] 上有时间依赖的导数项,第二个方程在 u[t,x] 上有时间依赖的导数项. 这很可能不是预期的方程.

如果想要唯一指定方程组,最好使用时间描述:

另外,可按顺序 {u[x],v[x]} 给出自变量:

可到 Finite Element Method Usage Tips 查阅更多关于这个主题的信息.

转换方程时要小心. 考虑带有齐次狄利克雷条件的 SturmLiouville 问题 . 特征值的解析解为:

为了避免在 处的数值稳定问题,最好使用时间描述:

与下列问题公式比较:

有些情况下,对于耦合 PDE,NDEigensystem 可能返回似乎是意想不到的结果:

避免此问题的一种方法是通过 "InterpolationOrder" 选项指定因变量的排序:

此外,也可以使用 "Direct" 方法:

可以在有限元方法教程中找到有关这个主题的更多信息.

特征函数可以是解析解的负倍数.

用解析解定义特征值问题的参数:

求解特征系统:

将解析解与数值特征函数进行比较,两者相差 倍:

特征函数的正负不是确定的;() 乘以特征函数,所得结果还是特征函数. 事实上,任何常数乘以特征函数,所得结果依然是特征函数. NDEigensystem 选择范数为 1 的特征函数,如属性和关系部分所述.

目前,NDEigensystem 无法处理索引变量:

构建 个因变量:

对特征函数进行积分时,NIntegrate 在使用符号区域时可能会有问题:

虽然结果是正确的,但使用与数值特征系统计算相同的网格可能更高效:

巧妙范例  (1)

研究下面量子力学范例中,特征函数 怎样随着势阱数量的增加渐渐形成团簇,以及在空间极限趋于无穷时,怎样形成所容许的能带. 同时,当结构的尺寸增大时,边界条件的影响在减小. 还应注意到在一个能带内,特征函数 有很大的不同(他们必须彼此正交),而特征函数的平方则是相似的. 这表示了由单势阱近似特征函数所形成的叠加的各种可能性:

Wolfram Research (2015),NDEigensystem,Wolfram 语言函数,https://reference.wolfram.com/language/ref/NDEigensystem.html (更新于 2023 年).

文本

Wolfram Research (2015),NDEigensystem,Wolfram 语言函数,https://reference.wolfram.com/language/ref/NDEigensystem.html (更新于 2023 年).

CMS

Wolfram 语言. 2015. "NDEigensystem." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2023. https://reference.wolfram.com/language/ref/NDEigensystem.html.

APA

Wolfram 语言. (2015). NDEigensystem. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/NDEigensystem.html 年

BibTeX

@misc{reference.wolfram_2024_ndeigensystem, author="Wolfram Research", title="{NDEigensystem}", year="2023", howpublished="\url{https://reference.wolfram.com/language/ref/NDEigensystem.html}", note=[Accessed: 13-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_ndeigensystem, organization={Wolfram Research}, title={NDEigensystem}, year={2023}, url={https://reference.wolfram.com/language/ref/NDEigensystem.html}, note=[Accessed: 13-November-2024 ]}