応用数値解析特論 第 5 回
〜2次元Poisson方程式に対する有限要素法 (1)〜
かつらだ
桂田 祐史ま さ し
http://nalab.mind.meiji.ac.jp/~mk/ana/
2020年10月19日
目次
1 2 次元の有限要素法
三角形要素への分割と区分的1次多項式 三角形e上の1次関数Li と(Lj,Li)e,⟨Lj,Li⟩e
三角形の面積
三角形要素の面積座標Li
面積座標の積の積分と(Lj,Li)e
Li(x,y) =ai+bix+ciy の係数決定と⟨Lj,Li⟩e 要素係数行列の計算
近似方程式の組み立て —直接剛性法
2 参考文献
かつらだまさし
5 2 次元の有限要素法
第2回の授業で扱ったPoisson方程式の境界値問題を題材に、2次元領域における有限要 素法を説明する(菊地[1])。
(思い出す) ΩはR2の有界領域で、その境界Γは区分的に十分滑らかであるとする。ま たΓ1, Γ2は条件
Γ = Γ1∪Γ2, Γ1∩Γ2=∅, Γ1̸=∅
を満たすとする。f: Ω→R,g1: Γ1→R,g2: Γ1→Rが与えられたとき、次のPoisson 方程式の境界値問題を考える。
問題(P)
次式を満たすu を求めよ:
−△u=f in Ω, (1)
u=g1 on Γ1, (2)
∂u
∂n =g2 on Γ2, (3)
ここでnはΓの外向き単位法線ベクトルを表す。
大筋は1次元の場合と同様だが、(i)各要素内の計算に面積座標を使うところと、(ii)直 接剛性法が2次元でも実現可能であることを理解するところが要点となる。
5 2 次元の有限要素法
第2回の授業で扱ったPoisson方程式の境界値問題を題材に、2次元領域における有限要 素法を説明する(菊地[1])。
(思い出す) ΩはR2の有界領域で、その境界Γは区分的に十分滑らかであるとする。ま たΓ1, Γ2は条件
Γ = Γ1∪Γ2, Γ1∩Γ2=∅, Γ1̸=∅
を満たすとする。f: Ω→R,g1: Γ1→R,g2: Γ1→Rが与えられたとき、次のPoisson 方程式の境界値問題を考える。
問題(P)
次式を満たすu を求めよ:
−△u=f in Ω, (1)
u=g1 on Γ1, (2)
∂u
∂n =g2 on Γ2, (3)
ここでnはΓの外向き単位法線ベクトルを表す。
大筋は1次元の場合と同様だが、(i)各要素内の計算に面積座標を使うところと、(ii)直 接剛性法が2次元でも実現可能であることを理解するところが要点となる。
かつらだまさし
5 2 次元の有限要素法
第2回の授業で扱ったPoisson方程式の境界値問題を題材に、2次元領域における有限要 素法を説明する(菊地[1])。
(思い出す) ΩはR2の有界領域で、その境界Γは区分的に十分滑らかであるとする。ま たΓ1, Γ2は条件
Γ = Γ1∪Γ2, Γ1∩Γ2=∅, Γ1̸=∅
を満たすとする。f: Ω→R,g1: Γ1→R,g2: Γ1→Rが与えられたとき、次のPoisson 方程式の境界値問題を考える。
問題(P)
次式を満たすu を求めよ:
−△u=f in Ω, (1)
u=g1 on Γ1, (2)
∂u
∂n =g2 on Γ2, (3)
ここでnはΓの外向き単位法線ベクトルを表す。
大筋は1次元の場合と同様だが、(i)各要素内の計算に面積座標を使うところと、(ii)直
5.1 三角形要素への分割と区分的 1 次多項式
領域Ω⊂R2に対し、Ωを三角形ek (1≤k≤Ne)に分割する: Ω≒Ω :=b
Ne
[
k=1
ek.
[0]
[1]
[2]
[3]
[4]
[6] [5]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17][18][19]
[20]
[21]
[22]
[23]
[24]
[25]
[26]
[27]
[28]
[29]
[30]
[31]
[32]
[33]
[34]
[35]
[36]
[37]
[38]
[39]
[40]
[41] [42]
[43]
[44]
[45]
[46]
[47]
[48]
[49]
[50]
[51]
[52]
[53]
[54]
[55]
[56]
[57]
[58]
[59]
[60]
[61]
[62]
[63]
[64]
[65] [66] [67]
[68]
[69]
[70]
[71]
[72]
[73]
[74]
[75]
[76]
[78] [77]
[79]
[80]
[81]
[82]
[83]
[84]
[85]
[86]
[87]
[88]
[89] [90]
[91]
[92]
[93]
[94]
[95]
[96]
[97]
[98]
[99]
[100]
[101]
[102]
[103]
[104]
[105]
[106]
[107]
[108]
[109]
[110]
[111]
[112]
[113] [114]
[115]
[116]
[117]
[118]
[119]
[120]
[121]
[122]
[123]
[124]
[125]
[126]
[127]
[128]
[129]
[130]
[131]
[132]
[133]
[134]
[135]
[136]
[137] [138]
[139]
[140]
[141]
[142]
[143]
[144]
[145]
[146]
[147]
[148]
[149]
[150]
[151]
[152]
[153]
[154]
[155]
[156]
[157]
[158]
[159]
[160]
[161] [162]
[163]
[164]
[165]
[166]
[167]
[168]
[169]
[170]
[171]
[172]
[173]
[174]
[175]
[176]
[177]
[178]
[179]
[180]
[181]
[182]
[183]
[184]
[185] [186]
[187]
[188]
[189]
[190]
[191]
図 1:二つの円で囲まれた閉領域Ωを三角形の合併で近似する
Ωが多角形でない限り、境界が「曲がっていて」Ω =
Ne
[
k=1
ek となることは期待できない。
各三角形を三角形(有限)要素とよぶ。
かつらだまさし
5.1 三角形要素への分割と区分的 1 次多項式
ただし、重なりや、すき間、頂点が他の三角形の辺上にあることは避けることにする。
図2:重なり,すき間,頂点が他の要素の辺上にある、なんてのはダメ
Ne は要素の総数(the number of elements)で、プログラムではNELMTのような名前の 変数で記憶されることが多い。
有限要素の頂点を節点(node) と呼び、{Pi}mi=1のように番号をつけておく。
mは節点の総数(the number of nodes)で、プログラムではNNODEのような名前の変数 で記憶されることが多い。
注意 1次元の場合、節点の個数=要素の個数+ 1という簡単な関係が成立していた。 (区間をm等分したとき、mを用いて、要素をek (1≤k≤m),節点をxk(0≤k≤m) と番号づけることが出来た。)2次元の場合は、そのような関係はない。
5.1 三角形要素への分割と区分的 1 次多項式
ただし、重なりや、すき間、頂点が他の三角形の辺上にあることは避けることにする。
図2:重なり,すき間,頂点が他の要素の辺上にある、なんてのはダメ
Ne は要素の総数(the number of elements)で、プログラムではNELMTのような名前の 変数で記憶されることが多い。
有限要素の頂点を節点(node) と呼び、{Pi}mi=1のように番号をつけておく。
mは節点の総数(the number of nodes)で、プログラムではNNODEのような名前の変数 で記憶されることが多い。
注意 1次元の場合、節点の個数=要素の個数+ 1という簡単な関係が成立していた。 (区間をm等分したとき、mを用いて、要素をek (1≤k≤m),節点をxk(0≤k≤m) と番号づけることが出来た。)2次元の場合は、そのような関係はない。
かつらだまさし
5.1 三角形要素への分割と区分的 1 次多項式
ただし、重なりや、すき間、頂点が他の三角形の辺上にあることは避けることにする。
図2:重なり,すき間,頂点が他の要素の辺上にある、なんてのはダメ
Ne は要素の総数(the number of elements)で、プログラムではNELMTのような名前の 変数で記憶されることが多い。
有限要素の頂点を節点(node)と呼び、{Pi}mi=1のように番号をつけておく。
mは節点の総数(the number of nodes)で、プログラムではNNODEのような名前の変数 で記憶されることが多い。
注意 1次元の場合、節点の個数=要素の個数+ 1という簡単な関係が成立していた。 (区間をm等分したとき、mを用いて、要素をek (1≤k≤m),節点をxk(0≤k≤m) と番号づけることが出来た。)2次元の場合は、そのような関係はない。
5.1 三角形要素への分割と区分的 1 次多項式
ただし、重なりや、すき間、頂点が他の三角形の辺上にあることは避けることにする。
図2:重なり,すき間,頂点が他の要素の辺上にある、なんてのはダメ
Ne は要素の総数(the number of elements)で、プログラムではNELMTのような名前の 変数で記憶されることが多い。
有限要素の頂点を節点(node)と呼び、{Pi}mi=1のように番号をつけておく。
mは節点の総数(the number of nodes)で、プログラムではNNODEのような名前の変数 で記憶されることが多い。
注意 1次元の場合、節点の個数=要素の個数+ 1という簡単な関係が成立していた。
(区間をm等分したとき、mを用いて、要素をek (1≤k≤m),節点をxk(0≤k≤m) と番号づけることが出来た。)2次元の場合は、そのような関係はない。
かつらだまさし
5.1 三角形要素への分割と区分的 1 次多項式
Ωb 上連続で、各有限要素ek 上でx とy の 1次多項式関数に等しいものを、区 分的 1 次多項式と呼び、その全体をXe で表わす(Xe はここだけの記号)。
{ek}Nk=1e と Xe の対を区分的1次有限要素(piecewise linear finite element)と 呼ぶ。
2変数の1次関数z =a+bx+cy のグラフは平面であるから、Xe のグラフは、 空間内の三角形を連続につなげた“折れ面”である。
試行関数の空間Xˆg1,試験関数の空間Xˆ は次のように選ぶ。 (4) Xˆg1 =
n ˆ
w ∈Xe wˆ = ˆg1 on Γ1
o
, Xˆ = n
ˆ
v∈Xe vˆ= 0 on Γ1
o . (ˆg1はg1に近い計算しやすい関数) Xe の基底関数{ϕi}mi=1 は
ϕi∈Xe (i= 1,2,· · · ,m), (5a)
ϕi(Pj) =δij (i,j= 1,2,· · · ,m) (5b)
満たすものを採用する(この条件で一意に確定することに注意)。
5.1 三角形要素への分割と区分的 1 次多項式
Ωb 上連続で、各有限要素ek 上でx とy の 1次多項式関数に等しいものを、区 分的 1 次多項式と呼び、その全体をXe で表わす(Xe はここだけの記号)。
{ek}Nk=1e と Xe の対を区分的1次有限要素(piecewise linear finite element)と 呼ぶ。
2変数の1次関数z =a+bx+cy のグラフは平面であるから、Xe のグラフは、
空間内の三角形を連続につなげた“折れ面”である。
試行関数の空間Xˆg1,試験関数の空間Xˆ は次のように選ぶ。 (4) Xˆg1 =
n ˆ
w ∈Xe wˆ = ˆg1 on Γ1
o
, Xˆ = n
ˆ
v∈Xe vˆ= 0 on Γ1
o . (ˆg1はg1に近い計算しやすい関数) Xe の基底関数{ϕi}mi=1 は
ϕi∈Xe (i= 1,2,· · · ,m), (5a)
ϕi(Pj) =δij (i,j= 1,2,· · · ,m) (5b)
満たすものを採用する(この条件で一意に確定することに注意)。
かつらだまさし
5.1 三角形要素への分割と区分的 1 次多項式
Ωb 上連続で、各有限要素ek 上でx とy の 1次多項式関数に等しいものを、区 分的 1 次多項式と呼び、その全体をXe で表わす(Xe はここだけの記号)。
{ek}Nk=1e と Xe の対を区分的1次有限要素(piecewise linear finite element)と 呼ぶ。
2変数の1次関数z =a+bx+cy のグラフは平面であるから、Xe のグラフは、
空間内の三角形を連続につなげた“折れ面”である。
試行関数の空間Xˆg1,試験関数の空間Xˆ は次のように選ぶ。
(4) Xˆg1 = n
ˆ
w ∈Xe wˆ = ˆg1 on Γ1
o
, Xˆ = n
ˆ
v∈Xe vˆ= 0 on Γ1
o . (ˆg1はg1に近い計算しやすい関数)
Xe の基底関数{ϕi}mi=1 は
ϕi∈Xe (i= 1,2,· · · ,m), (5a)
ϕi(Pj) =δij (i,j= 1,2,· · · ,m) (5b)
満たすものを採用する(この条件で一意に確定することに注意)。
5.1 三角形要素への分割と区分的 1 次多項式
Ωb 上連続で、各有限要素ek 上でx とy の 1次多項式関数に等しいものを、区 分的 1 次多項式と呼び、その全体をXe で表わす(Xe はここだけの記号)。
{ek}Nk=1e と Xe の対を区分的1次有限要素(piecewise linear finite element)と 呼ぶ。
2変数の1次関数z =a+bx+cy のグラフは平面であるから、Xe のグラフは、
空間内の三角形を連続につなげた“折れ面”である。
試行関数の空間Xˆg1,試験関数の空間Xˆ は次のように選ぶ。
(4) Xˆg1 = n
ˆ
w ∈Xe wˆ = ˆg1 on Γ1
o
, Xˆ = n
ˆ
v∈Xe vˆ= 0 on Γ1
o . (ˆg1はg1に近い計算しやすい関数) Xe の基底関数{ϕi}mi=1 は
ϕi∈Xe (i= 1,2,· · · ,m), (5a)
ϕi(Pj) =δij (i,j= 1,2,· · · ,m) (5b)
満たすものを採用する(この条件で一意に確定することに注意)。
かつらだまさし
5.2 三角形 e 上の 1 次関数 L
iと (L
j, L
i)
e, ⟨ L
j, L
i⟩
e5.2.1三角形の面積
平面上の三角形要素 eを考える。
e に属する節点を、反時計まわりにNi= (xi,yi) (i= 0,1,2)とする。
後でしばしば必要になるので、eの面積|e|を計算しておこう。
|e|= 1 2det
x1−x0 x2−x0 y1−y0 y2−y0
= 1
2[(x1−x0)(y2−y0)−(y1−y0)(x2−x0)].
1次多項式全体をP1と表す:
P1:={uˆ|(∃α0, α1, α2∈R) ˆu(x,y) =α0+α1x+α2y}.
任意の uˆ∈P1は、3節点Ni における値ui :=u(Nb i) (i= 0,1,2)を指定すれば 定まる(ui=u(Pb i)と混同しないように上に添字をつけた)。これは、直観的に 明らかであるが(平面はその上の一直線上にない 3点を指定すれば定まる)、す ぐ後で基底が分かるので、それが証明になる。
5.2 三角形 e 上の 1 次関数 L
iと (L
j, L
i)
e, ⟨ L
j, L
i⟩
e5.2.1三角形の面積
平面上の三角形要素 eを考える。
e に属する節点を、反時計まわりにNi= (xi,yi) (i= 0,1,2)とする。
後でしばしば必要になるので、eの面積|e|を計算しておこう。
|e|= 1 2det
x1−x0 x2−x0
y1−y0 y2−y0
= 1
2[(x1−x0)(y2−y0)−(y1−y0)(x2−x0)].
1次多項式全体をP1と表す:
P1:={uˆ|(∃α0, α1, α2∈R) ˆu(x,y) =α0+α1x+α2y}.
任意の uˆ∈P1は、3節点Ni における値ui :=u(Nb i) (i= 0,1,2)を指定すれば 定まる(ui=u(Pb i)と混同しないように上に添字をつけた)。これは、直観的に 明らかであるが(平面はその上の一直線上にない 3点を指定すれば定まる)、す ぐ後で基底が分かるので、それが証明になる。
かつらだまさし
5.2 三角形 e 上の 1 次関数 L
iと (L
j, L
i)
e, ⟨ L
j, L
i⟩
e5.2.1三角形の面積
平面上の三角形要素 eを考える。
e に属する節点を、反時計まわりにNi= (xi,yi) (i= 0,1,2)とする。
後でしばしば必要になるので、eの面積|e|を計算しておこう。
|e|= 1 2det
x1−x0 x2−x0
y1−y0 y2−y0
= 1
2[(x1−x0)(y2−y0)−(y1−y0)(x2−x0)].
1次多項式全体をP1と表す:
P1:={uˆ|(∃α0, α1, α2∈R) ˆu(x,y) =α0+α1x+α2y}.
任意のuˆ∈P1は、3節点Ni における値ui :=u(Nb i) (i= 0,1,2)を指定すれば 定まる(ui=u(Pb i)と混同しないように上に添字をつけた)。
これは、直観的に 明らかであるが(平面はその上の一直線上にない 3点を指定すれば定まる)、す ぐ後で基底が分かるので、それが証明になる。
5.2 三角形 e 上の 1 次関数 L
iと (L
j, L
i)
e, ⟨ L
j, L
i⟩
e5.2.1三角形の面積
平面上の三角形要素 eを考える。
e に属する節点を、反時計まわりにNi= (xi,yi) (i= 0,1,2)とする。
後でしばしば必要になるので、eの面積|e|を計算しておこう。
|e|= 1 2det
x1−x0 x2−x0
y1−y0 y2−y0
= 1
2[(x1−x0)(y2−y0)−(y1−y0)(x2−x0)].
1次多項式全体をP1と表す:
P1:={uˆ|(∃α0, α1, α2∈R) ˆu(x,y) =α0+α1x+α2y}.
任意のuˆ∈P1は、3節点Ni における値ui :=u(Nb i) (i= 0,1,2)を指定すれば 定まる(ui=u(Pb i)と混同しないように上に添字をつけた)。これは、直観的に 明らかであるが(平面はその上の一直線上にない 3点を指定すれば定まる)、す ぐ後で基底が分かるので、それが証明になる。
かつらだまさし
5.2.2 三角形要素の面積座標 L
i節点Ni で1,他の節点で0となる1 次関数をLi とする(i= 0,1,2)。つまり Li ∈P1,
(6a)
Li(Nj) =Li(xj,yj) =δij (j= 0,1,2).
(6b)
(L0,L1,L2)は P1の基底になる。実際、任意のub∈P1 は、
(7) u(x,b y) =
X2 i=0
uiLi(x,y) ((x,y)∈e)
と表される(相異なる3点Ni (i= 0,1,2)での値が等しい1次関数は等しい)。 任意の P∈e に対して、3 実数(L0(P),L1(P),L2(P))をP の面積座標(area coordinate)あるいは重心座標(barycentric coordinate)と呼ぶ。(色々裏がある けれど今回は駆け足で進む。)
任意の P∈e に対して次式が成り立つ。
L0(P) +L1(P) +L2(P) = 1.
(Li のグラフz =Li(x,y)の鳥瞰図と等高線を描いておこう。)
5.2.2 三角形要素の面積座標 L
i節点Ni で1,他の節点で0となる1 次関数をLi とする(i= 0,1,2)。つまり Li ∈P1,
(6a)
Li(Nj) =Li(xj,yj) =δij (j= 0,1,2).
(6b)
(L0,L1,L2)は P1の基底になる。実際、任意のub∈P1は、
(7) u(x,b y) =
X2 i=0
uiLi(x,y) ((x,y)∈e)
と表される(相異なる3点Ni (i= 0,1,2)での値が等しい1次関数は等しい)。
任意の P∈e に対して、3 実数(L0(P),L1(P),L2(P))をP の面積座標(area coordinate)あるいは重心座標(barycentric coordinate)と呼ぶ。(色々裏がある けれど今回は駆け足で進む。)
任意の P∈e に対して次式が成り立つ。
L0(P) +L1(P) +L2(P) = 1.
(Li のグラフz =Li(x,y)の鳥瞰図と等高線を描いておこう。)
かつらだまさし
5.2.2 三角形要素の面積座標 L
i節点Ni で1,他の節点で0となる1 次関数をLi とする(i= 0,1,2)。つまり Li ∈P1,
(6a)
Li(Nj) =Li(xj,yj) =δij (j= 0,1,2).
(6b)
(L0,L1,L2)は P1の基底になる。実際、任意のub∈P1は、
(7) u(x,b y) =
X2 i=0
uiLi(x,y) ((x,y)∈e)
と表される(相異なる3点Ni (i= 0,1,2)での値が等しい1次関数は等しい)。
任意のP∈e に対して、3 実数(L0(P),L1(P),L2(P))をPの面積座標(area coordinate)あるいは重心座標(barycentric coordinate)と呼ぶ。(色々裏がある けれど今回は駆け足で進む。)
任意の P∈e に対して次式が成り立つ。
L0(P) +L1(P) +L2(P) = 1.
(Li のグラフz =Li(x,y)の鳥瞰図と等高線を描いておこう。)
5.2.2 三角形要素の面積座標 L
i節点Ni で1,他の節点で0となる1 次関数をLi とする(i= 0,1,2)。つまり Li ∈P1,
(6a)
Li(Nj) =Li(xj,yj) =δij (j= 0,1,2).
(6b)
(L0,L1,L2)は P1の基底になる。実際、任意のub∈P1は、
(7) u(x,b y) =
X2 i=0
uiLi(x,y) ((x,y)∈e)
と表される(相異なる3点Ni (i= 0,1,2)での値が等しい1次関数は等しい)。
任意のP∈e に対して、3 実数(L0(P),L1(P),L2(P))をPの面積座標(area coordinate)あるいは重心座標(barycentric coordinate)と呼ぶ。(色々裏がある けれど今回は駆け足で進む。)
任意のP∈e に対して次式が成り立つ。
L0(P) +L1(P) +L2(P) = 1.
(Li のグラフz =Li(x,y)の鳥瞰図と等高線を描いておこう。)
かつらだまさし
Mathematica のコード例と実行結果
xs = {0, 3, 1}; ys = {0, 1, 2};
{a, b, c} = Inverse[Transpose[{{1, 1, 1}, xs, ys}]];
L[i_, x_, y_] := a[[i]] + b[[i]]*x + c[[i]]*y
xmin = Min[xs]; xmax = Max[xs]; ymin = Min[ys]; ymax = Max[ys];
gbase = RegionPlot[L[1, x, y] > 0 && L[2, x, y] > 0 && L[3, x, y] > 0, {x, xmin, xmax},{y, ymin, ymax}]
gb=Table[Plot3D[L[i, x, y], {x, xmin, xmax}, {y, ymin, ymax}, RegionFunction -> Function[{x, y, z},
L[1, x, y] > 0 && L[2, x, y] > 0 && L[3, x, y] > 0]], {i, 3}]
gc=Table[ContourPlot[L[i, x, y], {x, xmin, xmax}, {y, ymin, ymax}, RegionFunction -> Function[{x, y, z},
L[1, x, y] > 0 && L[2, x, y] > 0 && L[3, x, y] > 0]], {i, 3}]
Mathematica のコード例と実行結果
図 4:左からL0,L1,L2の鳥瞰図と等高線
かつらだまさし
5.2.3 面積座標の積の積分と (L
j, L
i)
e面積座標の積の積分については、便利な公式がある。
0以上の任意の整数i,j,k に対して (8)
Z Z
e
L0(x,y)iL1(x,y)jL2(x,y)kdx dy= 2|e| i!j!k!
(i+j+k+ 2)!.
証明 P0= (0,0),P1= (1,0),P2= (0,1)で囲まれる三角形を∆とし、1次関数 φ:R2→R2を
φ(P0) =N0, φ(P1) =N1, φ(P2) =N2
で定める。実は
φ(u,v) =
x1−x0 x2−x0
y1−y0 y2−y0
u v
+ x0
y0
, detφ′(u,v) = det
x1−x0 y1−y0
x2−x0 y2−y0
= 2|e|. 変数変換(x,y) =φ(u,v)を行なうと
Z Z
e
Li0Lj1Lk2dx dy= Z Z
∆
L0(φ(u,v))iL1(φ(u,v))jL2(φ(u,v))kdetφ′(u,v)du dv.
= 2|e| Z Z
∆
L0(φ(u,v))iL1(φ(u,v))jL2(φ(u,v))kdu dv.
5.2.3 面積座標の積の積分と (L
j, L
i)
e面積座標の積の積分については、便利な公式がある。
0以上の任意の整数i,j,k に対して (8)
Z Z
e
L0(x,y)iL1(x,y)jL2(x,y)kdx dy= 2|e| i!j!k!
(i+j+k+ 2)!.
証明 P0= (0,0),P1= (1,0),P2= (0,1)で囲まれる三角形を∆とし、1次関数 φ:R2→R2を
φ(P0) =N0, φ(P1) =N1, φ(P2) =N2
で定める。
実は
φ(u,v) =
x1−x0 x2−x0
y1−y0 y2−y0
u v
+ x0
y0
, detφ′(u,v) = det
x1−x0 y1−y0
x2−x0 y2−y0
= 2|e|. 変数変換(x,y) =φ(u,v)を行なうと
Z Z
e
Li0Lj1Lk2dx dy= Z Z
∆
L0(φ(u,v))iL1(φ(u,v))jL2(φ(u,v))kdetφ′(u,v)du dv.
= 2|e| Z Z
∆
L0(φ(u,v))iL1(φ(u,v))jL2(φ(u,v))kdu dv.
かつらだまさし
5.2.3 面積座標の積の積分と (L
j, L
i)
e面積座標の積の積分については、便利な公式がある。
0以上の任意の整数i,j,k に対して (8)
Z Z
e
L0(x,y)iL1(x,y)jL2(x,y)kdx dy= 2|e| i!j!k!
(i+j+k+ 2)!.
証明 P0= (0,0),P1= (1,0),P2= (0,1)で囲まれる三角形を∆とし、1次関数 φ:R2→R2を
φ(P0) =N0, φ(P1) =N1, φ(P2) =N2
で定める。実は
φ(u,v) =
x1−x0 x2−x0
y1−y0 y2−y0
u v
+ x0
y0
, detφ′(u,v) = det
x1−x0 y1−y0
x2−x0 y2−y0
= 2|e|.
変数変換(x,y) =φ(u,v)を行なうと Z Z
e
Li0Lj1Lk2dx dy= Z Z
∆
L0(φ(u,v))iL1(φ(u,v))jL2(φ(u,v))kdetφ′(u,v)du dv.
= 2|e| Z Z
∆
L0(φ(u,v))iL1(φ(u,v))jL2(φ(u,v))kdu dv.
5.2.3 面積座標の積の積分と (L
j, L
i)
e面積座標の積の積分については、便利な公式がある。
0以上の任意の整数i,j,k に対して (8)
Z Z
e
L0(x,y)iL1(x,y)jL2(x,y)kdx dy= 2|e| i!j!k!
(i+j+k+ 2)!.
証明 P0= (0,0),P1= (1,0),P2= (0,1)で囲まれる三角形を∆とし、1次関数 φ:R2→R2を
φ(P0) =N0, φ(P1) =N1, φ(P2) =N2
で定める。実は
φ(u,v) =
x1−x0 x2−x0
y1−y0 y2−y0
u v
+ x0
y0
, detφ′(u,v) = det
x1−x0 y1−y0
x2−x0 y2−y0
= 2|e|. 変数変換(x,y) =φ(u,v)を行なうと
Z Z
e
Li0Lj1Lk2dx dy= Z Z
∆
L0(φ(u,v))iL1(φ(u,v))jL2(φ(u,v))kdetφ′(u,v)du dv.
= 2|e|
Z Z
∆
L0(φ(u,v))iL1(φ(u,v))jL2(φ(u,v))kdu dv.
かつらだまさし
5.2.3 面積座標の積の積分と (L
j, L
i)
eLi(φ(u,v))は(1次関数と1次関数の合成であるから) 1次関数で、
Li(φ(Pj)) =δij
を満たすことから、
L0(φ(u,v)) = 1−u−v, L1(φ(u,v)) =u, L2(φ(u,v)) =v.
ゆえに Z Z
e
Li0Lj1Lk2dxdy = 2|e| Z Z
∆
(1−u−v)iujvkdudv
= 2|e| Z 1
0
uj Z 1−u
0
(1−u−v)ivkdv
du. 内側の積分で、v = (1−u)t(0≤t≤1)と変数変換すると、
dv= (1−u)dt, (1−u−v)i = ((1−u)−(1−u)t)i = (1−u)i(1−t)i であるから、
Z1−u 0
(1−u−v)ivkdv= Z 1
0
(1−u)i(1−t)i(1−u)ktk·(1−u)dt
= (1−u)i+k+1 Z 1
0
(1−t)itkdt.
5.2.3 面積座標の積の積分と (L
j, L
i)
eLi(φ(u,v))は(1次関数と1次関数の合成であるから) 1次関数で、
Li(φ(Pj)) =δij
を満たすことから、
L0(φ(u,v)) = 1−u−v, L1(φ(u,v)) =u, L2(φ(u,v)) =v. ゆえに Z Z
e
Li0Lj1Lk2dxdy = 2|e| Z Z
∆
(1−u−v)iujvkdudv
= 2|e| Z 1
0
uj Z 1−u
0
(1−u−v)ivkdv
du.
内側の積分で、v = (1−u)t(0≤t≤1)と変数変換すると、
dv= (1−u)dt, (1−u−v)i = ((1−u)−(1−u)t)i = (1−u)i(1−t)i であるから、
Z1−u 0
(1−u−v)ivkdv= Z 1
0
(1−u)i(1−t)i(1−u)ktk·(1−u)dt
= (1−u)i+k+1 Z 1
0
(1−t)itkdt.
かつらだまさし
5.2.3 面積座標の積の積分と (L
j, L
i)
eLi(φ(u,v))は(1次関数と1次関数の合成であるから) 1次関数で、
Li(φ(Pj)) =δij
を満たすことから、
L0(φ(u,v)) = 1−u−v, L1(φ(u,v)) =u, L2(φ(u,v)) =v. ゆえに Z Z
e
Li0Lj1Lk2dxdy = 2|e| Z Z
∆
(1−u−v)iujvkdudv
= 2|e| Z 1
0
uj Z 1−u
0
(1−u−v)ivkdv
du.
内側の積分で、v = (1−u)t (0≤t≤1)と変数変換すると、
dv= (1−u)dt, (1−u−v)i = ((1−u)−(1−u)t)i = (1−u)i(1−t)i であるから、
Z 1−u 0
(1−u−v)ivkdv= Z 1
0
(1−u)i(1−t)i(1−u)ktk·(1−u)dt
= (1−u)i+k+1 Z 1
(1−t)itkdt.
5.2.3 面積座標の積の積分と (L
j, L
i)
eゆえに Z Z
e
Li0Lj1Lk2dx dy= 2|e| Z 1
0
(1−u)i+k+1ujdu Z 1
0
(1−t)itkdt.
ベータ関数
B(p,q) = Z 1
0
(1−u)p−1tq−1dt とガンマ関数
Γ(x) := Z ∞
0
tx−1e−t dt について、次の公式が成り立つ。
B(p,q) =Γ(p)Γ(q)
Γ(p+q), Γ(n+ 1) =n! (n∈N). ゆえにZ Z
e
Li0Lj1Lk2dx dy= 2|e|B(i+k+ 2,j+ 1)B(i+ 1,k+ 1)
= 2|e|Γ(i+k+ 2)Γ(j+ 1) Γ(i+j+k+ 3)
Γ(i+ 1)Γ(k+ 1) Γ(i+k+ 2)
= 2|e|Γ(i+ 1)Γ(j+ 1)Γ(k+ 1)
Γ(i+j+k+ 3) = 2|e| i!j!k! (i+j+k+ 2)! .
かつらだまさし
5.2.3 面積座標の積の積分と (L
j, L
i)
eゆえに Z Z
e
Li0Lj1Lk2dx dy= 2|e| Z 1
0
(1−u)i+k+1ujdu Z 1
0
(1−t)itkdt.
ベータ関数
B(p,q) = Z 1
0
(1−u)p−1tq−1dt とガンマ関数
Γ(x) :=
Z ∞
0
tx−1e−t dt について、次の公式が成り立つ。
B(p,q) =Γ(p)Γ(q)
Γ(p+q), Γ(n+ 1) =n! (n∈N).
ゆえにZ Z
e
Li0Lj1Lk2dx dy= 2|e|B(i+k+ 2,j+ 1)B(i+ 1,k+ 1)
= 2|e|Γ(i+k+ 2)Γ(j+ 1) Γ(i+j+k+ 3)
Γ(i+ 1)Γ(k+ 1) Γ(i+k+ 2)
= 2|e|Γ(i+ 1)Γ(j+ 1)Γ(k+ 1)
Γ(i+j+k+ 3) = 2|e| i!j!k! (i+j+k+ 2)! .
5.2.3 面積座標の積の積分と (L
j, L
i)
eゆえに Z Z
e
Li0Lj1Lk2dx dy= 2|e| Z 1
0
(1−u)i+k+1ujdu Z 1
0
(1−t)itkdt.
ベータ関数
B(p,q) = Z 1
0
(1−u)p−1tq−1dt とガンマ関数
Γ(x) :=
Z ∞
0
tx−1e−t dt について、次の公式が成り立つ。
B(p,q) =Γ(p)Γ(q)
Γ(p+q), Γ(n+ 1) =n! (n∈N).
ゆえにZ Z
e
Li0Lj1Lk2dx dy= 2|e|B(i+k+ 2,j+ 1)B(i+ 1,k+ 1)
= 2|e|Γ(i+k+ 2)Γ(j+ 1) Γ(i+j+k+ 3)
Γ(i+ 1)Γ(k+ 1) Γ(i+k+ 2)
= 2|e|Γ(i+ 1)Γ(j+ 1)Γ(k+ 1)
Γ(i+j+k+ 3) = 2|e| i!j!k!
(i+j+k+ 2)! .
かつらだまさし
5.2.3 面積座標の積の積分と (L
j, L
i)
ei =j の場合、それ以外の添字(∈ {0,1,2})を k,ℓとすると
(Lj,Li)e = Z Z
e
L2iL0kL0ℓdxdy = 2|e| 2!0!0!
(2 + 0 + 0 + 2)! = 1 6|e|. i ̸=j の場合、それ以外の添字(∈ {0,1,2})を k とすると
(Lj,Li)e = Z Z
e
L1iL1jL0k dxdy = 2|e| 1!1!0!
(1 + 1 + 0 + 2)! = 1 12|e|.
5.2.4 L
i(x , y ) = a
i+ b
ix + c
iy の係数決定と ⟨ L
j, L
i⟩
eLi(x,y) =ai+bix+ciy とおくと
δij=Lj(xi,yi) =aj+bjxi+cjyi = (1xi yi)
aj
bj
cj
であるから I =
1 0 0 0 1 0 0 0 1
=
1 x0 y0
1 x1 y1
1 x2 y2
a0 a1 a2
b0 b1 b2
c0 c1 c2
(ペンを取ってチェック).
A:=
1 x0 y0
1 x1 y1
1 x2 y2
とおくと
detA= det
1 x0 y0
0 x1−x0 y1−y0
0 x2−x0 y2−y0
=
x1−x0 y1−y0
x2−x0 y2−y0
= 2|e|>0.
ゆえに
a0 a1 a2
b0 b1 b2
c0 c1 c2
=A−1.
かつらだまさし