数値積分公式

多結晶粒界での拡散を研究中。方程式は線形なんでマトリクスを計算すれば後は簡単だが、これを計算するために有限要素法の形状関数(リニアでない)の積分をする必要がある。その関係で三角形内部での積分に使うシンプソン則みたいなのを考えてみた。

y   3_
|  /   -_ 
| 6      5 _
 /          -_
1------4-------2 -->x

こういう感じで、内部の値を二次式\large C_0 + C_x\cdot x + C_y\cdot y + C_{xx}\cdot x^2+C_{yy}\cdot y^2+C_{xy}\cdot x yで補間し、6つの係数を点1から6までの値 f1〜f6で決めて、積分値を f1〜f6 で表す。計算したら面積*(f4+f5+f6)/3 となり、f1〜f3 は無関係という結果になった。あってるんだろうか。
実際テスト計算すると台形則より精度が出た。一次元のシンプソン則だと、足すときのウェイトを 1:2:1:2:1:2:・・・とするだけで精度が飛躍的に上がるというのがなんか不思議だけど、この場合は特定の点を捨てることで精度が出るという、もっと奇妙な話だ。

追記

四面体の場合について同じ計算をしてみた。6つの辺上の中点はウェイト1/5、4つの頂点はウェイト-1/20 で足す、という結果になった。二次元では、たまたま0になるんだろう。

追記

http://en.wikipedia.org/wiki/Gaussian_quadrature
一次元の場合、n 点のサンプルで2n+1次多項式まで厳密に積分値を出せるようだ。ちょいと勉強せねば。三角形の場合もできるかのう。