有限元:刚度矩阵的奇异性


11

我正在求解微分方程 具有初始条件u(0)= u(1)= 0u''(0)= u''(1)= 0。这里\ sigma(x)\ geqslant \ sigma_ {0}> 0是参数。以算子形式,我们可以将微分方程改写为Au = f,其中算子A是正定的。

(σ2(x)u(x))=f(x),0x1
u(0)=u(1)=0u(0)=u(1)=0σ(x)σ0>0Au=fA

按照FEM方案,我将问题简化为优化问题

J(u)=(Au,u)2(f,u)minu
我将有限元h_ {k}(x)引入hk(x)
vk(x)={1(xxkh)2,x[xk1,xk+1]0,otherwise
对于任何k=1,,n1,其中xk=hkh=1n。相似地介绍了有限元v0(x)vn(x)

我试图从数值上找到向量α,使得u(x)=k=0nαkvk(x)解决了优化问题。我们有

J(u)=i=0nj=0nαiαj(Avi,vj)i=0n2αi(vi,f)=αTVα2αTbminα,
其中bi=(f,vi)Vi,j=(Avi,vj)。在关于\ alpha求微分后,α我收到
Vα=b,
但是这里的刚度矩阵V是奇异的。那我该怎么办?也许我必须选择其他有限元?

嗨,Nimza,您是否遇到测试问题,但您知道确切的解决方案?如果是,请首先尝试求解VTVα=VTb以测试您的基础在域内是否正确,如果一切看起来正确,则可能是由于不正确放置的BC使矩阵奇异。但是卑诗省对我来说似乎还可以。
曹淑豪2012年

Answers:


13

可能性从大到小

  1. 基础不正确。从您的描述看来,您恰好具有两个二次函数,每个元素都受支持。该空间不是统一的分区,也不是(连续的一阶导数)。要直接离散化四阶问题(例如,而不是将其简化为二阶方程组),您将需要基。注意,基应该能够精确地再现所有线性函数。C1C1C1

  2. 边界条件不足。如果您计算并绘制空空间,这将是显而易见的。

  3. 不正确的组装。检查从元素到组装顺序的映射,以确认它是否符合您的期望,例如,它没有反转元素的方向。

  4. 错误的本地程序集。在1D中,您可以分析计算单元刚度矩阵的外观(可能是简化的情况)并检查代码是否重现了该矩阵。


谢谢。1.我认为我将需要基础,因为。然后,如果我只考虑满足边界条件的函数,则。C2(Au,v)=01σ2(x)u(x)v(x)dxkerA={0}
2012年

1
一个基就足够了,被积体不必是连续的。注意,二阶导数的边界条件将成为边界积分。您可以使用基础直接离散化四阶问题,但是您将需要像针对一阶和二阶系统的不连续Galerkin方法一样集成跳跃项。这不是一个坏方法,但是在一维中它不必要地复杂,因为以任何连续顺序(例如样条线)构造基极容易。本文是“ DG” 的示例。C1C0C0
杰德·布朗

好。我更正了我的依据:现在上的和。现在是。但是方法仍然行不通。vk(x)=cos2(π2h(xxi))[xi1,xi+1]i=1,,n1C1
2012年

的基础应该能够再现线性函数,但是这不能。解决此问题后,请检查积分是否正确执行,然后检查边界条件。C1
杰德·布朗

0

显然,该问题具有奇数阶导数。更具体地说,对于更大的Péclet数,刚度矩阵可能不会保持“精细”形状,这会在组装过程中产生零,因此会变成奇异的或有时很小的行列式,这在溶液图的波动中很明显。

解决此类问题的方法是使用惩罚等方法。更具体地说,这称为彼得罗夫-加勒金方法

对不起,我的英语理解能力很差。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.