Gauss積分 その1

今回はGauss積分のサンプリング点の位置と重み値を計算してみます
ここで言うGauss積分は数値積分のことで,Gauss関数exp(-x^2)の無限積分のことではありません(´・ω・`)
積分区間写像されることを前提として自然座標系-1〜1とします
久田俊明,野口裕久共著「非線形有限要素法の基礎と応用」165頁[3.5.3]をフォローします
gauss quadrature1.wxm
http://cdn-ak.f.st-hatena.com/images/fotolife/r/ryooji_f/20130825/20130825090911.png
n : サンプリング点の数
%i1にてパッケージ"interpol"をロードします(画面出力は省略)
サンプリング点が4点の場合を考えます(%o2)
legendre_p関数を使って4次のルジャンドル多項式を計算します(%o3)
上式を解いた根の実部(real part)をサンプリング点位置x[i]として%o4式に示します
(実部を取っているのは6次以上のルジャンドル多項式の根が複素数となるためで,n < 6 であれば不要です)
数値で表示し直したものを%o5式に示します


http://cdn-ak.f.st-hatena.com/images/fotolife/r/ryooji_f/20130825/20130825090910.png
以後の計算はNewton-Cotes積分とほぼ同じですが一応・・・
サンプリング点位置x[i]と評価値f[i]の配列pを%o6式に示します
この配列からlagrange関数を使ってラグランジュの補間多項式Lを計算します(%o7)(画面出力は省略)
Lの各サンプリング点の評価値f[i]についての係数配列hを%o8式に示します
それぞれのh[i]を区間[-1〜1]で積分した配列を重み値wとして%o9式に示します
数値で表示し直したものを%o10式に示します



重み値wの総和は 2(区間長さ)となります(%o11)


Gauss積分における各サンプリング点での位置(左列)と重み値(右列)を以下にまとめます

n = 1
 0			2

n = 2
-1/sqrt(3)		1
 1/sqrt(3)		1

n = 3
-sqrt(3/5)		5/9
 sqrt(3/5)		5/9
 0			8/9

n = 4
-0.86113631159405	0.34785484513745
 0.86113631159405	0.34785484513745
-0.33998104358486	0.65214515486255
 0.33998104358486	0.65214515486255

n = 5
-0.90617984593866	0.23692688505619
 0.90617984593866	0.23692688505619
-0.53846931010568	0.47862867049937
 0.53846931010568	0.47862867049937
 0.00000000000000	0.56888888888889

n = 6
-0.93246951420315	0.17132449237917
 0.93246951420315	0.17132449237917
-0.2386191860832	0.46791393457269
 0.2386191860832	0.46791393457269
-0.66120938646626	0.36076157304814
 0.66120938646626	0.36076157304814

n = 7
-0.94910791234276	0.12948496616887
 0.94910791234276	0.12948496616887
-0.4058451513774	0.38183005050512
 0.4058451513774	0.38183005050512
-0.74153118559939	0.27970539148928
 0.74153118559939	0.27970539148928
 0.00000000000000	0.41795918367347


非線形有限要素法の基礎と応用

非線形有限要素法の基礎と応用