MES: osobliwość macierzy sztywności

11

Rozwiązuję równanie różniczkowe w warunkach początkowych u (0) = u (1) = 0 , u '' (0) = u '' (1) = 0 . Tutaj \ sigma (x) \ geqslant \ sigma_ {0}> 0 jest parametrem. W postaci operatora możemy przepisać równanie różniczkowe jako Au = f , gdzie operator A jest określony dodatnio.

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

Zgodnie ze schematem MES redukuję problem do problemu optymalizacji

J(u)=(Au,u)2(f,u)minu
Wprowadzam elementy skończone hk(x) jako
vk(x)={1(xxkh)2,x[xk1,xk+1]0,otherwise
dla dowolnego k=1,,n1 , gdzie xk=hk , h=1n . Elementy skończone v0(x) i vn(x) są wprowadzane podobnie.

Próbuję znaleźć liczbowo wektor α taki sposób, że u(x)=k=0nαkvk(x) rozwiązuje problem optymalizacji. Mamy

J(u)=i=0nj=0nαiαj(Avi,vj)i=0n2αi(vi,f)=αTVα2αTbminα,
gdzie bi=(f,vi) i Vi,j=(Avi,vj) . Po różnicowaniu względem α otrzymuję
Vα=b,
ale tutaj macierz sztywności V jest pojedyncza. Więc co mam zrobić? Może muszę wybrać inne elementy skończone?
Aplikacja
źródło
Cześć, Nimza, czy masz problem z testem, który znasz dokładne rozwiązanie? Jeśli tak, spróbuj najpierw rozwiązać VTVα=VTb aby sprawdzić, czy Twoja podstawa jest poprawna w domenie, jeśli wszystko wygląda poprawnie, być może to niepoprawnie postawione BC powoduje, że macierz jest pojedyncza. Ale BC wydaje mi się OK.
Shuhao Cao,

Odpowiedzi:

13

W malejącej kolejności prawdopodobieństwa

  1. Niepoprawna podstawa. Z opisu wynika, że ​​masz dokładnie dwie funkcje kwadratowe z obsługą każdego elementu. Ta przestrzeń nie jest podziałem jedności i nie jest (ciągłe pierwsze pochodne). Aby zdyskretować problem czwartego rzędu bezpośrednio (zamiast na przykład zredukować go do układu równań drugiego rzędu), potrzebujesz podstawy . Zauważ, że podstawa powinna być w stanie dokładnie odtworzyć wszystkie funkcje liniowe.C1C1C1

  2. Niewystarczające warunki brzegowe. Będzie to rażąco oczywiste, jeśli obliczysz i narysujesz pustą przestrzeń.

  3. Niepoprawny montaż. Sprawdź mapę od elementów do złożonego zamówienia, aby potwierdzić, że jest to oczekiwane, na przykład, że nie odwraca orientacji elementów.

  4. Niepoprawny lokalny montaż. W 1D możesz analitycznie obliczyć, jak wygląda macierz sztywności elementu (być może w uproszczonym przypadku) i sprawdzić, czy kod ją odtwarza.

Jed Brown
źródło
Dziękuję Ci. 1. Myślę, że będę potrzebować podstawy ponieważ . Jeśli więc rozważę tylko funkcje spełniające warunki brzegowe, to . C2(Au,v)=01σ2(x)u(x)v(x)dxkerA={0}
Aplikacja
1
Wystarczy podstawa , całka nie musi być ciągła. Należy zauważyć, że warunki brzegowe dla drugich instrumentów pochodnych staną się całką graniczną. Możesz użyć podstawy do bezpośredniej dyskretyzacji problemu czwartego rzędu, ale będziesz musiał zintegrować terminy skoku, jak w przypadku nieciągłych metod Galerkina dla systemów pierwszego i drugiego rzędu. Nie jest to zła metoda, ale jest niepotrzebnie skomplikowana w 1D, ponieważ tak łatwo jest zbudować podstawy o dowolnej kolejności ciągłości (np. Splajny). Ten artykuł jest przykładem „ DG”. C1C0C0
Jed Brown
Dobrze. Poprawiłem swoją podstawę: teraz w i . Teraz jest to . Ale metoda nadal nie działa. vk(x)=cos2(π2h(xxi))[xi1,xi+1]i=1,,n1C1
Aplikacja
Podstawa powinna być w stanie odtwarzać funkcje liniowe, ale nie jest to możliwe. Po rozwiązaniu problemu sprawdź, czy całki są wykonywane poprawnie, a następnie sprawdź warunki brzegowe. C1
Jed Brown,
0

Najwyraźniej problem ma pochodną kolejności ODD. Mówiąc dokładniej dla większych liczb Pécleta , matryca sztywności może nie utrzymywać „drobnego” kształtu, który tworzy zera podczas składania, a tym samym uzyskuje pojedyncze lub czasami bardzo małe wyznaczniki, które są zauważalne przez oscylacje na wykresie rozwiązania.

Rozwiązaniem tego rodzaju problemu jest między innymi stosowanie kary. Mówiąc dokładniej, nazywa się to metodą Pietrowa-Galerkina .

Przepraszam za moje złe rozumienie angielskiego.

Sohail Ahmed
źródło