FEM: singularitas dari matriks kekakuan

11

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

Mengikuti skema FEM, saya mengurangi masalah saya menjadi masalah optimisasi

J(u)=(Au,u)2(f,u)minu
Saya memperkenalkan elemen hingga hk(x) sebagai
vk(x)={1(xxkh)2,x[xk1,xk+1]0,otherwise
untuk setiap k=1,,n1 , di mana xk=hk , h=1n . Elemen hingga v0(x) dan vn(x) diperkenalkan dengan cara yang sama.

Saya mencoba mencari numerik vektor α sehingga u(x)=k=0nαkvk(x) memecahkan masalah optimisasi. Kami memiliki

J(u)=i=0nj=0nαiαj(Avi,vj)i=0n2αi(vi,f)=αTVα2αTbminα,
mana bi=(f,vi) dan Vi,j=(Avi,vj) . Setelah diferensiasi berkenaan dengan α saya menerima
Vα=b,
tapi di sini matriks kekakuan V adalah singular. Jadi apa yang harus saya lakukan? Mungkin saya harus memilih elemen hingga lainnya?
Appliqu
sumber
Hai, Nimza, apakah Anda memiliki masalah pengujian yang Anda tahu solusi yang tepat? Jika ya, coba selesaikan VTVα=VTb pertama-tama untuk menguji apakah dasar Anda benar di dalam domain, jika semuanya terlihat benar, maka mungkin BC yang salah posikan membuat matriks singular. Tetapi SM tampaknya baik-baik saja bagi saya.
Shuhao Cao

Jawaban:

13

Dalam mengurangi urutan kemungkinan

  1. Dasar yang salah. Dari uraian Anda, tampak bahwa Anda memiliki tepat dua fungsi kuadratik dengan dukungan pada setiap elemen. Ruang itu bukan partisi persatuan dan bukan (turunan pertama berkelanjutan). Untuk mendiskritisasi masalah urutan keempat Anda secara langsung (alih-alih menguranginya ke sistem persamaan urutan kedua, misalnya), Anda membutuhkan basis . Perhatikan bahwa basis harus mampu mereproduksi semua fungsi linear dengan tepat.C1C1C1

  2. Kondisi batas tidak memadai. Ini akan sangat jelas jika Anda menghitung dan memplot ruang nol.

  3. Perakitan yang salah. Periksa peta dari elemen ke urutan berkumpul untuk mengonfirmasi bahwa itu adalah apa yang Anda harapkan, misalnya bahwa itu tidak membalikkan orientasi elemen.

  4. Perakitan lokal salah. Dalam 1D, Anda dapat secara analitis menghitung seperti apa elemen matriks kekakuan (mungkin untuk kasus yang disederhanakan) dan memeriksa apakah kode mereproduksinya.

Jed Brown
sumber
Terima kasih. 1. Saya pikir saya akan membutuhkan basis karena . Kemudian, jika saya hanya mempertimbangkan fungsi yang memenuhi syarat batas maka . C2(Au,v)=01σ2(x)u(x)v(x)dxkerA={0}
Appliqu
1
Basis sudah cukup, integrasi dan tidak perlu kontinu. Perhatikan bahwa kondisi batas pada turunan kedua akan menjadi integral batas. Anda dapat menggunakan basis untuk diskritisasi langsung dari masalah urutan keempat, tetapi Anda harus mengintegrasikan persyaratan lompatan seperti metode Galerkin terputus untuk sistem urutan pertama dan kedua. Ini bukan metode yang buruk, tetapi tidak perlu rumit dalam 1D karena sangat mudah untuk membangun basis dengan urutan kontinuitas (misalnya splines). Makalah ini adalah contoh dari " DG". C1C0C0
Jed Brown
Baik. Saya mengoreksi basis saya: sekarang pada dan . Sekarang adalah . Tetapi metode masih tidak berhasil. vk(x)=cos2(π2h(xxi))[xi1,xi+1]i=1,,n1C1
Appliqué
Basis harus dapat mereproduksi fungsi linear, tetapi ini tidak bisa. Setelah Anda memperbaikinya, periksa apakah integral dilakukan dengan benar, lalu periksa kondisi batas. C1
Jed Brown
0

Jelas masalah memiliki turunan pesanan ODD. Lebih khusus untuk nomor Péclet yang lebih besar , matriks kekakuan mungkin tidak mempertahankan bentuk 'baik', yang menciptakan nol selama perakitan dan karenanya mendapat penentu tunggal atau kadang-kadang sangat kecil yang terlihat oleh osilasi dalam plot solusi.

Solusi untuk masalah semacam ini adalah penggunaan hukuman, di antara metode-metode lain. Lebih khusus ini disebut metode Petrov-Galerkin .

Maaf atas pemahaman bahasa Inggris saya yang buruk.

Sohail Ahmed
sumber