FEM: Singularität der Steifheitsmatrix

11

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

Nach dem FEM-Schema reduziere ich mein Problem auf ein Optimierungsproblem

J(u)=(Au,u)2(f,u)minu
Ich führe finite Elemente h_ {k} (x)hk(x) als
vk(x)={1(xxkh)2,x[xk1,xk+1]0,otherwise
für jedes k=1,,n1 , wobei xk=hk , h=1n . Finite Elemente v0(x) und vn(x) werden ähnlich eingeführt.

Ich versuche, den Vektor \ alpha numerisch so zu finden, αdass u(x)=k=0nαkvk(x) das Optimierungsproblem löst. Wir haben

J(u)=i=0nj=0nαiαj(Avi,vj)i=0n2αi(vi,f)=αTVα2αTbminα,
wobei bi=(f,vi) und Vi,j=(Avi,vj) . Nach Differenzierung in Bezug auf α erhalte ich
Vα=b,
aber hier ist die Steifheitsmatrix V singulär. Also, was muss ich tun? Vielleicht muss ich andere finite Elemente wählen?
Applikationen
quelle
Hallo Nimza, hast du ein Testproblem, bei dem du die genaue Lösung kennst? Wenn ja, versuchen Sie zuerst, VTVα=VTb zu lösen, um zu testen, ob Ihre Basis innerhalb der Domäne korrekt ist. Wenn alles korrekt aussieht, ist es möglicherweise das falsch gestellte BC, das die Matrix singulär macht. Aber der BC scheint mir in Ordnung zu sein.
Shuhao Cao

Antworten:

13

In absteigender Reihenfolge der Wahrscheinlichkeit

  1. Falsche Basis. Aus Ihrer Beschreibung geht hervor, dass Sie genau zwei quadratische Funktionen mit Unterstützung für jedes Element haben. Dieser Raum ist keine Teilung der Einheit und nicht (kontinuierliche erste Ableitungen). Um Ihr Problem vierter Ordnung direkt zu diskretisieren (anstatt es beispielsweise auf ein System von Gleichungen zweiter Ordnung zu reduzieren), benötigen Sie eine Basis. Beachten Sie, dass die Basis alle linearen Funktionen exakt wiedergeben kann.C1C1C1

  2. Unzureichende Randbedingungen. Dies ist offensichtlich, wenn Sie den Nullraum berechnen und zeichnen.

  3. Falsche Montage. Überprüfen Sie die Zuordnung von Elementen zur zusammengesetzten Reihenfolge, um sicherzustellen, dass sie Ihren Erwartungen entspricht, z. B. dass die Ausrichtung der Elemente nicht umgekehrt wird.

  4. Falsche lokale Montage. In 1D können Sie analytisch berechnen, wie die Elementsteifigkeitsmatrix aussieht (möglicherweise für einen vereinfachten Fall), und überprüfen, ob der Code sie reproduziert.

Jed Brown
quelle
Vielen Dank. 1. Ich denke, dass ich eine Basis brauchen werde, weil . Wenn ich dann nur Funktionen betrachte, die Randbedingungen erfüllen, dann ist . C2(Au,v)=01σ2(x)u(x)v(x)dxkerA={0}
Applikation
1
Eine Basis reicht aus, der Integrand muss nicht stetig sein. Beachten Sie, dass die Randbedingungen für zweite Ableitungen zu einem Randintegral werden. Sie können eine Basis für die direkte Diskretisierung eines Problems vierter Ordnung verwenden, müssen jedoch Sprungterme wie bei diskontinuierlichen Galerkin-Methoden für Systeme erster und zweiter Ordnung integrieren. Es ist keine schlechte Methode, aber in 1D unnötig kompliziert, weil es so einfach ist, Basen mit einer beliebigen Reihenfolge der Kontinuität (z. B. Splines) zu konstruieren. Dieses Papier ist ein Beispiel für " DG". C1C0C0
Jed Brown
In Ordnung. Ich habe meine Basis korrigiert: jetzt auf und . Jetzt ist es . Aber die Methode funktioniert immer noch nicht. vk(x)=cos2(π2h(xxi))[xi1,xi+1]i=1,,n1C1
Applikation
Die Basis sollte in der Lage sein, lineare Funktionen zu reproduzieren, dies kann jedoch nicht. Wenn Sie das behoben haben, überprüfen Sie, ob die Integrale korrekt ausgeführt werden, und überprüfen Sie dann die Randbedingungen. C1
Jed Brown
0

Das Problem hat eindeutig eine ODD-Ordnungsableitung. Insbesondere für größere Péclet-Zahlen behält die Steifheitsmatrix möglicherweise keine "feine" Form bei, wodurch während des Zusammenbaus Nullen erzeugt werden und daher eine singuläre oder manchmal sehr kleine Determinante erhalten wird, die durch die Schwingungen im Lösungsdiagramm wahrgenommen wird.

Die Lösung für diese Art von Problem ist unter anderem die Verwendung von Strafen. Insbesondere wird dies als Petrov-Galerkin-Methode bezeichnet .

Entschuldigung für mein schlechtes Englischverständnis.

Sohail Ahmed
quelle