「ガウス求積」の版間の差分
削除された内容 追加された内容
m 誤記訂正 nを正の整数 |
|||
(17人の利用者による、間の26版が非表示) | |||
1行目:
'''ガウス求積'''(ガウスきゅうせき、{{lang-en-short|Gaussian quadrature}})または'''ガウスの数値積分公式'''とは、[[カール・フリードリヒ・ガウス]]に因んで名づけられた[[数値解析]]における[[数値積分]]法の一種であり、[[実数]]のある閉区間(慣例的に {{math|[−1, 1]}} に標準化される)で定義された実数値関数のその閉区間に渡る定積分値を、比較的少ない演算で精度良く求めることができる[[アルゴリズム]]である。
{{mvar|n}} を正の[[整数]]とし、
{{Indent|<math> I = \int_{-1}^1 f(x)\,dx = \sum_{i=1}^n w_i f(x_i)</math>}}
の形でなるべく正確に近似する公式を考える。ここで、{{mvar|x{{sub|i}}}} は'''積分点'''または'''ガウス点 (ガウスノード)'''と呼ばれる {{math|[−1, 1]}} 内の {{mvar|n}} 個の点であり、{{mvar|w{{sub|i}}}} は'''重み'''と呼ばれる''n''個の実数である。
{{Indent|<math>\int_{-1}^1 f(x)\,dx = \int_{-1}^1 W(x) g(x)\,dx \approx \sum_{i=1}^n w_i g(x_i).</math>}}
典型的な重み関数としては、<math>W(x)=(1-x^2)^{-1/2}</math>(ガウス
重み関数と指定区間に付随するn次の直交多項式を考え、それの区間内にある''n''個の零点を分点にとして被積分関数''f''(''x'')をHermite補間公式で近似したものを考えると、直交多項式の重み関数に対する直交性から、''f''(''x'')に重み関数を掛けて積分したものは、直交関数の''n''個の零点に於ける''f''(''x'')の関数値それぞれに重みをかけたものの和で近似される(結果的に''f''(''x'')の各分点における導関数値は積分の近似値には寄与しない)。このようにして重み関数に対応するガウス型の数値積分公式を導くことができて、分点が''n''であるときには被積分関数が2''n''−1次以下の任意の多項式に対して正確な積分値を与えるということが示せる.
上述のように
▲== ルジャンドル・ガウス公式による求積 ==
▲上述のように ''n'' 次のこの方法には、 ''n'' 次のルジャンドル多項式 ''P''<sub>''n''</sub>(''x'') が対応している。このときの ''n''次多項式は ''P''<sub>''n''</sub>(1) = 1 となるよう正規化され、''i'' 番目のガウスノード ''x''<sub>''i''</sub> は ''i'' 番目の ''P''<sub>''n''</sub> の根である。重みは次の式で与えられる<ref name=Abramowitz1972>{{citation | editor1-last=Abramowitz | editor1-first=Milton | editor2-last=Stegun | editor2-first=Irene A. | chapter=§25.4, Integration | title=Handbook of Mathematical Functions (with Formulas, Graphs, and Mathematical Tables) | date=1972年 | publisher=[[ドーヴァー出版|Dover]] | isbn=978-0-486-61272-0 }}</ref>。
▲{{Indent|<math> w_i = \frac{2}{\left( 1-x_i^2 \right) (P'_n(x_i))^2} \,\!</math>}}
低次の求積法は次のようになる。
{| class="wikitable" style="margin:auto; text-align:center; background:white;"
! 点の個数
|-
| {{math|1}} || {{math|0}} || {{math|2}}
|-
| {{math|2}} || <math>\pm\sqrt{1/3}</math> || {{math|1}}
|-
| rowspan="2" | {{math|3}} || {{math|0}} ||
|-
| <math>\pm\sqrt{3/5}</math> ||
|-
| rowspan="2" | {{math|4}} || <math>\pm\sqrt{\Big( 3 - 2\sqrt{6/5} \Big)/7}</math> || <math>\tfrac{18+\sqrt{30}}{36}</math>
|-
| <math>\pm\sqrt{\Big( 3 + 2\sqrt{6/5} \Big)/7}</math> || <math>\tfrac{18-\sqrt{30}}{36}</math>
|-
| rowspan="3" | {{math|5}} || {{math|0}} ||
|-
| <math>\pm\tfrac13\sqrt{5-2\sqrt{10/7}}</math> || <math>\tfrac{322+13\sqrt{70}}{900}</math>
42 ⟶ 45行目:
|}
== 区間の変更 ==
一般的な区間 {{math|[''a'', ''b'']}} についての積分は、ガウス求積法を適用する前にその区間を標準区間 {{math|[−1, 1]}} に変更する必要がある。この区間変更は以下のように線型変換で行う。
{{Indent|<math>
\int_a^b f(x)\,dx = \frac{b-a}{2} \int_{-1}^1 f\left(\frac{b-a}{2}x
+ \frac{a+b}{2}\right)\,dx .
</math>}}
ガウス求積法を適用
{{Indent|<math>
\frac{b-a}{2} \sum_{i=1}^n w_i f\left(\frac{b-a}{2}x_i + \frac{a+b}{2}\right).
</math>}}
== 他の形式 ==
正の重み関数 {{mvar|ω}} を導入することで、より汎用的な積分問題の表現も可能であり、区間 {{math|[−1, 1]}} 以外にも適用可能である。すなわち、次の形式の問題である。
{{Indent|<math> \int_a^b \omega(x)\,f(x)\,dx .</math>}}
{| class="wikitable" style="margin:auto; text-align:center; background:white;"
! 区間 !! {{math|''ω''(''x'')}} !! 直交多項式 !! A & S !! 解説など
|-
| {{math|[−1, 1]}} ||
|-
| {{math|(−1, 1)}} || <math>(1-x)^\alpha (1+x)^\beta,\quad \alpha, \beta > -1\,</math> || [[ヤコビ多項式]] || 25.4.33 (<math>\beta=0</math>) ||
|-
| {{math|(−1, 1)}} || <math>\frac{1}{\sqrt{1 - x^2}}</math> || [[チェビシェフ多項式]](第一種) || 25.4.38 ||
|-
| {{math|[−1, 1]}} || <math>\sqrt{1 - x^2}</math> || チェビシェフ多項式(第二種) || 25.4.40 ||
|-
| {{math|[0, ∞)}} || <math>
|-
| {{math|(−∞, ∞)}} || <math>
|}
=== 基礎
{{Indent|<math>
86 ⟶ 89行目:
</math>}}
この多項式
=== 計算 ===
ガウス求積法のノード
例えば、
{{Indent|<math>p_{n+1}(x)+(B_n-x)p_n (x)+A_n p_{n-1}(x)=0, \qquad n=1,2,\ldots.</math>}}
このことから、対応する
:<math>
J\tilde{P}=x_j \tilde{P}.
</math>
ここで
:<math>
\tilde{P}={}^t[p_0 (x_j),p_1 (x_j),...,p_{n-1}(x_j)]
</math>
である。そして、
:<math>
\
\begin{
B_0 & 1 & 0 & \ldots & \ldots & \ldots\\
A_1 & B_1 & 1 & 0 & \ldots & \ldots \\
120 ⟶ 123行目:
\ldots & \ldots & \ldots & A_{n-2} & B_{n-2} & 1 \\
\ldots & \ldots & \ldots & \ldots & A_{n-1} & B_{n-1}
\end{
.
</math>
したがって、ガウス求積法のノードは[[三重対角行列]]の固有値として計算できる。
重みとノードを求めるには、要素が <math>\mathcal{J}_{i,i}=J_{i,i}</math>, <math>i=1,\ldots,n</math> と <math>\mathcal{J}_{i-1,i}=\mathcal{J}_{i,i-1}=\sqrt{J_{i,i-1}J_{i-1,i}},\, i=2,\ldots,n</math> から成る[[対称行列|対称]]な三重対角行列 <math>\mathcal{J}</math> の方が好ましい。<math>\mathbf{J}</math> と <math>\mathcal{J}</math> は[[行列の相似|相似]]なので、固有値(ノード)も同じになる。重みは、行列
:<math>
w_j=\mu_0 \left(\phi_1^{(j)}\right)^2.
</math>
ここで <math>\mu_0</math> は重み関数の積分である。
:<math>
\mu_0=\int_a^b w(x) dx.
</math>
詳しくは Gil, Segura & Temme 2007 を参照されたい<ref name=Gil2007 />。
=== 誤差の見積もり ===
ガウス求積法の誤差は次のように定式化される<ref name=Stoer2002 />。被積分
{{Indent|<math> \int_a^b \omega(x)\,f(x)\,dx - \sum_{i=1}^n w_i\,f(x_i)
= \frac{f^{(2n)}(\xi)}{(2n)!} \, (p_n,p_n) </math>}}
とな
{{Indent|<math> (f,g) = \int_a^b \omega(x) f(x) g(x) \, dx \,\!</math>}}
である。重要な特別な場合 {{math|1=''ω''(''x'')
{{Indent|<math> \frac{(b-a)^{2n+1} (n!)^4}{(2n+1)[(2n)!]^3} f^{(2n)} (\xi) , \qquad a < \xi < b . \,\!</math>}}
Stoer and Bulirsch<ref name=Stoer2002 /> によれば、この誤差見積もりは{{math|2''n''}} 次の導関数を見積もるのが難しいので
=== ガウス=クロンロッド求積法 ===
{{main|ガウス=クロンロッド求積法}}
区間 {{math|[''a'', ''b'']}} を分割すると、各部分区間のガウス評価点は元の区間での評価点とは一致せず(奇数の場合の0を除く)、従って、新たに評価点を求める必要がある。[[ガウス=クロンロッド求積法]]<ref>Notaris, S. E. (2016). Gauss–Kronrod quadrature formulae–a survey of fifty years of research. Electron. Trans. Numer. Anal, 45, 371-404.</ref><ref>Gauss-Kronrod quadrature formula. Encyclopedia of Mathematics. URL: http://www.encyclopediaofmath.org/index.php?title=Gauss-Kronrod_quadrature_formula&oldid=22491</ref>は、ガウス求積法の
== 脚注 ==
166 ⟶ 170行目:
* [http://www.gnu.org/software/gsl/ GNU Scientific Library] - [[C言語]]版の QUADPACK アルゴリズムを含む([[GNU Scientific Library]]も参照)
* [http://nm.mathforcollege.com/topics/gauss_quadrature.html Gaussian Quadrature Rule of Integration - Notes, PPT, Matlab, Mathematica, Maple, Mathcad] at ''Holistic Numerical Methods Institute''
* [http://www.sitmo.com/eqcat/13 Gaussian Quadrature table] at sitmo.com (リンク切れ。閲覧する場合は [[インターネット
* [http://mathworld.wolfram.com/Legendre-GaussQuadrature.html Legendre-Gauss Quadrature at MathWorld]
* [http://demonstrations.wolfram.com/GaussianQuadrature/ Gaussian Quadrature] by Chris Maes and Anton Antonov, [[ウルフラム・リサーチ|The Wolfram Demonstrations Project]].
{{integral}}
{{DEFAULTSORT:かうすきゆうせき}}
[[Category:数値積分]]
[[Category:カール・フリードリヒ・ガウス]]
[[Category:数学に関する記事]]
|