■Dirichlet境界条件を組み込む■
それでは、この連立方程式にDirichlet境界条件を組み込んでみましょう。境界条件は、下の示す通りとします。
境界条件 | 境界値 | つまり |
---|---|---|
u(x) at x=0 | u(0) | u1=u(0) |
u(x) at x=L | u(L) | u3=u(L) |
連立方程式には、未知数が3つ有ります。その内の2つがDirichlet境界条件として与えられているので、計算で求まる未知数は、1つ(u2)になります。つまり、連立方程式の2行目があれば問題は解決することになります。しかし、この方法は機械的に解析するという点からみると、賢い方法とは言えません。機械的に且つ効率的に解析出来るようにするには、次のルールを守る必要があります。
マトリックス[K]の大きさを維持する。 |
[K]が対称マトリックスであれば、Dirichlet境界条件組み込んだ後も[K]を対称に保つ。 |
上の2つをルール化すると、次の様になる。
Dirichlet境界条件を連立方程式に組み込むルール | |
---|---|
1 | Dirichlet境界条件が組み込まれる行(row)に存在している全ての値をゼロにする。そして、その行のマトリックスの対角要素の位置に1を挿入し、右辺のその行の位置に境界値を挿入する。 |
2 | マトリックスと未知数ベクトルの掛け算を行い、Dirichlet境界条件と掛け算される項は全て右辺へ移動する。 |
ちょっと、理解しにくそうですので、実際にやってみましょう。その前に、グラフィックのスペースを節約するために、マトリックスの中にある数値を次の様に置き換えます。
すると、領域の両端にDirichlet境界条件を組み込んだ連立方程式は、次の様になります。
この結果を用いて、u(0)=0, u(L)=1, L1=L2=0.5, α2=1 で計算してみると、u2=25/44=0.56818 が得られます。貴方も確認してみて下さい。そして計算されたu2と境界条件として使ったu1とu3を 境界条件を挿入した元の式に代入すると、q1とq3を得ることが出来ます。 実際に数値を代入すると、以下のようになります。
結果的に、q1=1.183712, q3=0.64962になります。
■u2,q1, q3を一括計算 ■
読者から”u2,q1, q3を同時に計算できないのですか”と言う質問をうけました。
答えは、”出来ます”です。しかし、機械的に計算する上で非効率な方法と言えます。ですから、有限要素法では、uとqは別々
に計算します。参考までに、u2,q1, q3を一括で計算する方法を紹介しておきます。
まず、前ページで紹介した下の式を見て下さい。そして、この連立方程式を未知と既知の2つに別けます。皆さんもやってみて下さいね。
ここでは、未知がu2,q1, q3ですね。そして既知がu1とu3ですね。 すると以下のようになります。
上の2つのマトリックスに数値を代入し計算すると、未知が一挙に得られます。 実は、これは境界要素法的な計算手順なです。有限要素法では、この方法を使ったプログラムは、見たことはありません。 有ってもおかしくは有りませんが、計算結果をuとqに分類する面倒な操作が必要になってくるからだと思います。 それに、左辺のマトリックスが非対称になっていますので、連立方程式の解法に多くのメモリーを必要とします。 更に、|B1|<1になっていない可能性があります。|B1|<1の条件を満足しないと、連立方程式の計算精度を落とすことになります。 境界要素法では、これらの悪い条件を全てクリアーしなければならないため、プログラムの作成に大変複雑になって います。 とにかく、これは正しい有限要素法の手順でないので深く勉強する必要はありません。
BACK | NEXT |
---|
Menu | View | Helm | wrm | Lin | Element | Rmrk | Vari | Para | Non-L | Wire |