応用数値解析特論 第 6 回
〜
2
次元Poisson
方程式に対する有限要素法(2)
かつらだ
桂田 祐史ま さ し
http://nalab.mind.meiji.ac.jp/~mk/ana/
2020
年10
月26
日かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 1 / 24
目次
1 本日の内容・今後の予定など
2
2
次元の有限要素法(
続き)
近似方程式の組み立て
—
直接剛性法 連立1
次方程式の具体例プログラム
方程式を立てるのに必要なもの サンプルプログラム紹介
3 参考文献
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 2 / 24
本日の内容・今後の予定など
菊地
[1]
第5
章に従い、空間2
次元の有限要素法(2
回目)
で直接剛 性法の解説を行なう。菊地
[1]
第7
章に掲載されていたサンプルFORTRAN
プログラム を、C
言語に翻訳したもの紹介する。実際に動作させて説明するの は、次回になる。次回
(
来週は大学祭週間なので11
月9
日)
からしばらくFreeFem++
を用いた数値実験を行なう。(
スライドで説明しているため、例年よりも早く進行できると考えていま したが、実際にやってみると意外に時間のかかる面もあり、結局は例年 とあまり変わらなくなっています。座学が長く続いてしまったことは、 反省しています。)
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 3 / 24
本日の内容・今後の予定など
菊地
[1]
第5
章に従い、空間2
次元の有限要素法(2
回目)
で直接剛 性法の解説を行なう。菊地
[1]
第7
章に掲載されていたサンプルFORTRAN
プログラム を、C
言語に翻訳したもの紹介する。実際に動作させて説明するの は、次回になる。次回
(
来週は大学祭週間なので11
月9
日)
からしばらくFreeFem++
を用いた数値実験を行なう。(
スライドで説明しているため、例年よりも早く進行できると考えていま したが、実際にやってみると意外に時間のかかる面もあり、結局は例年 とあまり変わらなくなっています。座学が長く続いてしまったことは、 反省しています。)
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 3 / 24
本日の内容・今後の予定など
菊地
[1]
第5
章に従い、空間2
次元の有限要素法(2
回目)
で直接剛 性法の解説を行なう。菊地
[1]
第7
章に掲載されていたサンプルFORTRAN
プログラム を、C
言語に翻訳したもの紹介する。実際に動作させて説明するの は、次回になる。次回
(
来週は大学祭週間なので11
月9
日)
からしばらくFreeFem++
を用いた数値実験を行なう。(
スライドで説明しているため、例年よりも早く進行できると考えていま したが、実際にやってみると意外に時間のかかる面もあり、結局は例年 とあまり変わらなくなっています。座学が長く続いてしまったことは、 反省しています。)
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 3 / 24
本日の内容・今後の予定など
菊地
[1]
第5
章に従い、空間2
次元の有限要素法(2
回目)
で直接剛 性法の解説を行なう。菊地
[1]
第7
章に掲載されていたサンプルFORTRAN
プログラム を、C
言語に翻訳したもの紹介する。実際に動作させて説明するの は、次回になる。次回
(
来週は大学祭週間なので11
月9
日)
からしばらくFreeFem++
を用いた数値実験を行なう。
(
スライドで説明しているため、例年よりも早く進行できると考えていま したが、実際にやってみると意外に時間のかかる面もあり、結局は例年 とあまり変わらなくなっています。座学が長く続いてしまったことは、 反省しています。)
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 3 / 24
本日の内容・今後の予定など
菊地
[1]
第5
章に従い、空間2
次元の有限要素法(2
回目)
で直接剛 性法の解説を行なう。菊地
[1]
第7
章に掲載されていたサンプルFORTRAN
プログラム を、C
言語に翻訳したもの紹介する。実際に動作させて説明するの は、次回になる。次回
(
来週は大学祭週間なので11
月9
日)
からしばらくFreeFem++
を用いた数値実験を行なう。
(
スライドで説明しているため、例年よりも早く進行できると考えていま したが、実際にやってみると意外に時間のかかる面もあり、結局は例年 とあまり変わらなくなっています。座学が長く続いてしまったことは、反省しています。
)
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 3 / 24
前回にどこまで出来ていたか思い出す
弱形式は次の方程式と同値である。
(5.10)
Ne
X
k=1
⟨bu,bv⟩ek =
Ne
X
k=1
(f,v)bek+ [g2,vb] (bv∈Xb).
本日の取り決め: (時間の都合上)g2= 0とする。(5.10)の右辺第2項= 0.
任意の要素ek に注目し、ek に含まれる節点に反時計回りにN0,N1,N2 と番号
(局所節点番号)をつけ
ui = ˆu(Ni), vi= ˆv(Ni) (i= 0,1,2),
uk = (u0u1u2)⊤, vk = (v0v1v2)⊤ とおいた。
3次元ベクトル fk, 3次正方行列Ak で
(5.13) ⟨u,ˆ vˆ⟩ek =vk⊤Akuk, (f,v)ˆ ek =vk⊤fk
を満たすものを求めた (要素自由項ベクトル,要素係数行列と呼ぶことにした)。
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 4 / 24
前回にどこまで出来ていたか思い出す
弱形式は次の方程式と同値である。
(5.10)
Ne
X
k=1
⟨bu,bv⟩ek =
Ne
X
k=1
(f,v)bek+ [g2,vb] (bv∈Xb).
本日の取り決め: (時間の都合上)g2= 0とする。(5.10)の右辺第2項= 0.
任意の要素ek に注目し、ek に含まれる節点に反時計回りに N0,N1,N2 と番号
(局所節点番号)をつけ
ui = ˆu(Ni), vi= ˆv(Ni) (i= 0,1,2),
uk = (u0u1u2)⊤, vk = (v0v1v2)⊤ とおいた。
3次元ベクトル fk, 3次正方行列Ak で
(5.13) ⟨u,ˆ vˆ⟩ek =vk⊤Akuk, (f,v)ˆ ek =vk⊤fk
を満たすものを求めた (要素自由項ベクトル,要素係数行列と呼ぶことにした)。
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 4 / 24
前回にどこまで出来ていたか思い出す
弱形式は次の方程式と同値である。
(5.10)
Ne
X
k=1
⟨bu,bv⟩ek =
Ne
X
k=1
(f,v)bek+ [g2,vb] (bv∈Xb).
本日の取り決め: (時間の都合上)g2= 0とする。(5.10)の右辺第2項= 0.
任意の要素ek に注目し、ek に含まれる節点に反時計回りに N0,N1,N2 と番号
(局所節点番号)をつけ
ui = ˆu(Ni), vi= ˆv(Ni) (i= 0,1,2),
uk = (u0u1u2)⊤, vk = (v0v1v2)⊤ とおいた。
3次元ベクトル fk, 3次正方行列Ak で
(5.13) ⟨u,ˆ vˆ⟩ek =vk⊤Akuk, (f,v)ˆ ek =vk⊤fk
を満たすものを求めた (要素自由項ベクトル,要素係数行列と呼ぶことにした)。
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 4 / 24
5.4 近似方程式の組み立て — 直接剛性法 行列・ベク トルの拡大
前小節(§5.3)で与えたベクトル、行列をm次元に拡大する。まず、
ui :=u(Pb i),vi :=bv(Pi) (i= 1,2,· · · ,m)として、次のようにおく。
u :=
u1
u2
... um
, v :=
v1
v2
... vm
.
有限要素ek (k = 1,2,· · ·,Ne)の節点N0,N1,N2に対して、 N0=Pik,0, N1=Pik,1, N2=Pik,2
となる整数ik,0,ik,2,ik,2 を取る(これらを全体節点番号と呼ぶ)。 このときuk の成分u0=u(Nb 0),u1=u(Nb 1),u2=u(Nb 2)について
u0=uik,0, u1=uik,1, u2=uik,2
が成り立つ。
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 5 / 24
5.4 近似方程式の組み立て — 直接剛性法 行列・ベク トルの拡大
前小節(§5.3)で与えたベクトル、行列をm次元に拡大する。まず、
ui :=u(Pb i),vi :=bv(Pi) (i= 1,2,· · · ,m)として、次のようにおく。
u :=
u1
u2
... um
, v :=
v1
v2
... vm
.
有限要素ek (k = 1,2,· · ·,Ne)の節点N0,N1,N2に対して、
N0=Pik,0, N1=Pik,1, N2=Pik,2
となる整数ik,0,ik,2,ik,2 を取る(これらを全体節点番号と呼ぶ)。 このときuk の成分u0=u(Nb 0),u1=u(Nb 1),u2=u(Nb 2)について
u0=uik,0, u1=uik,1, u2=uik,2
が成り立つ。
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 5 / 24
5.4 直接剛性法 行列・ベクトルの拡大
f
k= (f
0(k)f
1(k)f
2(k))
⊤ である。これをm
次元ベクトルf
k∗ に拡大する。f
k∗∈ R
m をi
k,0 成分= f
0(k), i
k,1 成分= f
1(k), i
k,2 成分= f
2(k) で、それ以 外の成分はすべて0
であるようなベクトルとする。例えば
i
0(k)< i
1(k)< i
2(k) ならば1 i
k,0i
k,1i
k,2m
↓ ↓ ↓ ↓ ↓
f
k∗= (0 · · · 0 f
0(k)0 · · · 0 f
1(k)0 · · · 0 f
2(k)0 · · · 0)
⊤.
このように定義すると、
(1) (f , b v)
ek= v
k⊤f
k= v
⊤f
k∗(k = 1, 2, · · · , N
e).
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 6 / 24
5.4 直接剛性法 行列・ベクトルの拡大
f
k= (f
0(k)f
1(k)f
2(k))
⊤ である。これをm
次元ベクトルf
k∗ に拡大する。f
k∗∈ R
m をi
k,0 成分= f
0(k), i
k,1 成分= f
1(k), i
k,2 成分= f
2(k) で、それ以 外の成分はすべて0
であるようなベクトルとする。例えば
i
0(k)< i
1(k)< i
2(k) ならば1 i
k,0i
k,1i
k,2m
↓ ↓ ↓ ↓ ↓
f
k∗= (0 · · · 0 f
0(k)0 · · · 0 f
1(k)0 · · · 0 f
2(k)0 · · · 0)
⊤.
このように定義すると、
(1) (f , b v)
ek= v
k⊤f
k= v
⊤f
k∗(k = 1, 2, · · · , N
e).
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 6 / 24
5.4 直接剛性法 行列・ベクトルの拡大
同様の考え方で、3次正方行列Ak= (A(k)ij )を、m次正方行列A∗k= (a(k)ij )に ai(k)
k,0ik,0=A(k)00, a(k)i
k,0ik,1=A(k)01, a(k)i
k,0ik,2=A(k)02, ai(k)
k,1ik,0=A(k)10, a(k)i
k,1ik,1=A(k)11, a(k)i
k,1ik,2=A(k)12, ai(k)
k,2ik,0=A(k)20, a(k)i
k,2ik,1=A(k)21, a(k)i
k,2ik,2=A(k)22, それ以外= 0
として拡大する。
例えばik,0<ik,1<ik,2ならば
A∗k=
ik,0 ik,1 ik,2
↓ ↓ ↓
A(k)00 A(k)01 A(k)02 ←ik,0
A(k)10 A(k)11 A(k)12 ←ik,1
A(k)20 A(k)21 A(k)22 ←ik,2
(書いてないとこは0).
これを用いると
(2) ⟨u,bvb⟩ek =vk⊤Akuk=v⊤A∗ku (k= 1,2,· · ·,Ne).
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 7 / 24
5.4 直接剛性法 行列・ベクトルの拡大
同様の考え方で、3次正方行列Ak= (A(k)ij )を、m次正方行列A∗k= (a(k)ij )に ai(k)
k,0ik,0=A(k)00, a(k)i
k,0ik,1=A(k)01, a(k)i
k,0ik,2=A(k)02, ai(k)
k,1ik,0=A(k)10, a(k)i
k,1ik,1=A(k)11, a(k)i
k,1ik,2=A(k)12, ai(k)
k,2ik,0=A(k)20, a(k)i
k,2ik,1=A(k)21, a(k)i
k,2ik,2=A(k)22, それ以外= 0
として拡大する。例えばik,0<ik,1<ik,2ならば
A∗k=
ik,0 ik,1 ik,2
↓ ↓ ↓
A(k)00 A(k)01 A(k)02 ←ik,0
A(k)10 A(k)11 A(k)12 ←ik,1
A(k)20 A(k)21 A(k)22 ←ik,2
(書いてないとこは0).
これを用いると
(2) ⟨u,bvb⟩ek =vk⊤Akuk=v⊤A∗ku (k= 1,2,· · ·,Ne).
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 7 / 24
5.4 直接剛性法 行列・ベクトルの拡大
同様の考え方で、3次正方行列Ak= (A(k)ij )を、m次正方行列A∗k= (a(k)ij )に ai(k)
k,0ik,0=A(k)00, a(k)i
k,0ik,1=A(k)01, a(k)i
k,0ik,2=A(k)02, ai(k)
k,1ik,0=A(k)10, a(k)i
k,1ik,1=A(k)11, a(k)i
k,1ik,2=A(k)12, ai(k)
k,2ik,0=A(k)20, a(k)i
k,2ik,1=A(k)21, a(k)i
k,2ik,2=A(k)22, それ以外= 0
として拡大する。例えばik,0<ik,1<ik,2ならば
A∗k=
ik,0 ik,1 ik,2
↓ ↓ ↓
A(k)00 A(k)01 A(k)02 ←ik,0
A(k)10 A(k)11 A(k)12 ←ik,1
A(k)20 A(k)21 A(k)22 ←ik,2
(書いてないとこは0).
これを用いると
(2) ⟨u,bvb⟩ek =vk⊤Akuk=v⊤A∗ku (k= 1,2,· · ·,Ne).
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 7 / 24
5.4 直接剛性法 全体係数行列と全体自由項ベクトル
ゆえに弱形式
(5.10)
はNe
X
k=1
v
⊤A
∗ku =
Ne
X
k=1
v
⊤f
k∗すなわち
v
⊤Ne
X
k=1
A
∗ku −
Ne
X
k=1
f
k∗!
= 0
と同値になる。そこで
A
∗:=
Ne
X
k=1
A
∗k, f
∗:=
Ne
X
k=1
f
k∗とおけば
(3) v
⊤(A
∗u − f
∗) = 0.
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 8 / 24
5.4 直接剛性法 全体係数行列と全体自由項ベクトル
ゆえに弱形式
(5.10)
はNe
X
k=1
v
⊤A
∗ku =
Ne
X
k=1
v
⊤f
k∗すなわち
v
⊤Ne
X
k=1
A
∗ku −
Ne
X
k=1
f
k∗!
= 0
と同値になる。そこで
A
∗:=
Ne
X
k=1
A
∗k, f
∗:=
Ne
X
k=1
f
k∗とおけば
(3) v
⊤(A
∗u − f
∗) = 0.
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 8 / 24
5.4 直接剛性法 全体係数行列と全体自由項ベクトル
ゆえに弱形式
(5.10)
はNe
X
k=1
v
⊤A
∗ku =
Ne
X
k=1
v
⊤f
k∗すなわち
v
⊤Ne
X
k=1
A
∗ku −
Ne
X
k=1
f
k∗!
= 0
と同値になる。そこで
A
∗:=
Ne
X
k=1
A
∗k, f
∗:=
Ne
X
k=1
f
k∗とおけば
(3) v
⊤(A
∗u − f
∗) = 0.
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 8 / 24
5.4 直接剛性法 全体係数行列と全体自由項ベクトル
ここで
v
はY := {
v
1.. . v
m
∈ R
m; v
i= 0 (P
i∈ Γ
1 なるi) }
の任意の元であるから、
(3)
は次と同値である。A
∗u − f ∈ Y
⊥= {
w
1.. . w
m
∈ R
m; w
i= 0 (P
i̸∈ Γ
1 なるi) }
すなわち
(4) A
∗∗u = f
∗∗.
ここで
A
∗∗:= A
∗ の第i
行(P
i∈ Γ
1 なるi)
を除いた行列,
f
∗∗:= f
∗ の第i
成分(P
i∈ Γ
1 なるi)
を除いた縦ベクトル.
ところでu
i= g
1(P
i) (P
i∈ Γ
1 なるi )
があるから、これを代入して消去できる。
A
∗∗ を列ベクトルでA
∗∗= (a
1a
2· · · a
m)
のように表示すると、
(4)
はX
mi=1
a
iu
i= f
∗∗.
この左辺を
X
Pi∈Γ1なるi
a
iu
i+ X
Pi̸∈Γ1なるi
a
iu
i= f
∗∗ と分解して、移項するとX
Pi ̸∈Γ1なるi
a
iu
i= f
∗∗− X
Pi∈Γ1なるi
a
iu
i.
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 9 / 24
5.4 直接剛性法 全体係数行列と全体自由項ベクトル
ここで
v
はY := {
v
1.. . v
m
∈ R
m; v
i= 0 (P
i∈ Γ
1 なるi) }
の任意の元であるから、
(3)
は次と同値である。A
∗u − f ∈ Y
⊥= {
w
1.. . w
m
∈ R
m; w
i= 0 (P
i̸∈ Γ
1 なるi) }
すなわち
(4) A
∗∗u = f
∗∗.
ここで
A
∗∗:= A
∗ の第i
行(P
i∈ Γ
1 なるi)
を除いた行列,
f
∗∗:= f
∗ の第i
成分(P
i∈ Γ
1 なるi)
を除いた縦ベクトル.
ところでu
i= g
1(P
i) (P
i∈ Γ
1 なるi )
があるから、これを代入して消去できる。
A
∗∗ を列ベクトルでA
∗∗= (a
1a
2· · · a
m)
のように表示すると、
(4)
はX
mi=1
a
iu
i= f
∗∗.
この左辺を
X
Pi∈Γ1なるi
a
iu
i+ X
Pi̸∈Γ1なるi
a
iu
i= f
∗∗ と分解して、移項するとX
Pi ̸∈Γ1なるi
a
iu
i= f
∗∗− X
Pi∈Γ1なるi
a
iu
i.
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 9 / 24
5.4 直接剛性法 全体係数行列と全体自由項ベクトル
ここで
v
はY := {
v
1.. . v
m
∈ R
m; v
i= 0 (P
i∈ Γ
1 なるi) }
の任意の元であるから、
(3)
は次と同値である。A
∗u − f ∈ Y
⊥= {
w
1.. . w
m
∈ R
m; w
i= 0 (P
i̸∈ Γ
1 なるi) }
すなわち
(4) A
∗∗u = f
∗∗.
ここで
A
∗∗:= A
∗ の第i
行(P
i∈ Γ
1 なるi )
を除いた行列,
f
∗∗:= f
∗ の第i
成分(P
i∈ Γ
1 なるi)
を除いた縦ベクトル.
ところでu
i= g
1(P
i) (P
i∈ Γ
1 なるi )
があるから、これを代入して消去できる。
A
∗∗ を列ベクトルでA
∗∗= (a
1a
2· · · a
m)
のように表示すると、
(4)
はX
mi=1
a
iu
i= f
∗∗.
この左辺を
X
Pi∈Γ1なるi
a
iu
i+ X
Pi ̸∈Γ1なるi
a
iu
i= f
∗∗と分解して、移項すると
X
Pi ̸∈Γ1なるi
a
iu
i= f
∗∗− X
Pi∈Γ1なるi
a
iu
i.
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 9 / 24
5.4 直接剛性法 全体係数行列と全体自由項ベクトル
ゆえに
Au
∗= f ,
ただしu
∗:= u
の第i
成分(P
i∈ Γ
1 なるi )
を除いた縦ベクトル, A := A
∗∗の第i
列(P
i∈ Γ
1 なるi )
を除いた正方行列, f := f
∗∗− X
Pi ∈Γ1なるi
a
iu
i.
(P
i∈ Γ
1 となるi
についてu
i= ˆ u(P
i) = g
1(P
i)
は既知であり、未知数に 含める必要はない。)
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 10 / 24
5.5 連立 1 次方程式の具体例
簡単な問題に対する有限要素法の連立
1
次方程式を実際に求めてみよう。Ω = (0, 1) × (0, 1),
Γ
1= { (x, y); x = 0, 0 ≤ y ≤ 1 } ∪ { (x, y); 0 ≤ x ≤ 1, y = 0 } , Γ
2= { (x, y); x = 1, 0 < y ≤ 1 } ∪ { (x, y); 0 < x ≤ 1, y = 1 } , g
1≡ 0, g
2≡ 0, f ≡
定数関数f .
すなわち
−△ u = f (in Ω), u = 0 on Γ
1, ∂u
∂n = 0 on Γ
2.
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 11 / 24
5.5 連立 1 次方程式の具体例
簡単な問題に対する有限要素法の連立
1
次方程式を実際に求めてみよう。Ω = (0, 1) × (0, 1),
Γ
1= { (x, y); x = 0, 0 ≤ y ≤ 1 } ∪ { (x, y); 0 ≤ x ≤ 1, y = 0 } , Γ
2= { (x, y); x = 1, 0 < y ≤ 1 } ∪ { (x, y); 0 < x ≤ 1, y = 1 } , g
1≡ 0, g
2≡ 0, f ≡
定数関数f .
すなわち
−△ u = f (in Ω), u = 0 on Γ
1, ∂u
∂n = 0 on Γ
2.
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 11 / 24
5.5 連立 1 次方程式の具体例
- 6
O x
y
x = 1 y = 1
Ω
図1:領域Ω
- 6
x y
P
0P
1P
2P
3P
4P
5P
6P
7P
8e
0e
1e
2e
3e
4e
5e
6e
7図 2:要素分割
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 12 / 24
5.5 連立 1 次方程式の具体例
正方形領域
Ω
を図2
のように3
角形要素によって要素分割する。有限要素は次の二つのタイプがある
(
タイプI, II
と呼ぶことにする)
。 各々に図3
のように局所節点番号をつける(
左下から反時計回り)
。タイプ
I e
0, e
2, e
4, e
6.
タイプII e
1, e
3, e
5, e
7.
N
0N
1N
2Type I
N
0N
1N
2Type II
図3:二つのタイプの有限要素と局所節点番号
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 13 / 24
5.5 連立 1 次方程式の具体例
タイプが同じならば、要素係数行列Ak,要素自由項ベクトルfk が等しいことは すぐ分かる。それぞれAI,AII,fI,fII で表すことにする。
タイプIについては
D =h2, S = h2 2 ,
AI = 1 2
1 −1 0
−1 2 −1
0 −1 1
, fI = f h2 6
1 1 1
.
タイプIIについては
D =h2, S = h2 2 ,
AII = 1 2
1 0 −1
0 1 −1
−1 −1 2
, fII =f h2 6
1 1 1
.
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 14 / 24
5.5 連立 1 次方程式の具体例
これらから、全体的な近似方程式を作ろう。
そのために局所的な節点番号と、全体的な節点番号の対応づけが必要である。そこで以 下のような対応表を用意する。
要素 e0 e1 e2 e3 e4 e5 e6 e7
要素タイプ I II I II I II I II N0の全体節点番号 0 0 1 1 3 3 4 4 N1の全体節点番号 3 4 4 5 6 7 7 8 N2の全体節点番号 4 1 5 2 7 4 8 5
N0 N1
N2
Type I N0
N1
N2
Type II
- 6
x y
P0
P1
P2
P3
P4
P5
P6
P7
P8
e0
e1
e2
e3
e4
e5
e6
e7
かつらだ 桂 田
まさし
祐 史 http://nalab.mind.meiji.ac.jp/~mk/ana/応用数値解析特論 第6回 2020年10月26日 15 / 24