区分求積法(シンプソン則)
積分を数値的に求める区分求積法として、長方形近似、台形則、シンプソン則などがあります。そのうちシンプソン則では、ある点 $x_i$ とその前の点 $x_{i-1}$、後の点 $x_{i+1}$ を通る二次関数を導出し、その積分値を足し合わせたものを積分値として近似します。台形則は1次式の組み合わせで近似するのに対して、シンプソン則では2次式の組み合わせで近似するということになります。
3点 $(x_{i-1}, y_{i-1}), (x_i, y_i), (x_{i+1}, y_{i+1})$ を通る2次式を
y = a s^2 + b s + c \quad (s = x - x_i)
とします。分点が等間隔であるとすると、 $h = x_{i+1} - x_i = x_i - x_{i-1}$ であり、上記3点を通る条件は
\left\{
\begin{align}
y_{i-1} &= ah^2-bh+c \\
y_i&=c \\
y_{i+1}&=ah^2+bh+c
\end{align}
\right.
となり、これをもとに $a, b, c$ を求めると
\left\{
\begin{align}
a &= \frac{y_{i+1} - 2y_i + y_{i-1}}{2h^2} \\
b &= \frac{y_{i+1}-y_{i-1}}{2h} \\
c &= y_i
\end{align}
\right.
となります。これを、 $x=x_{i-1}$ に相当する $s=-h$ から、$x=x_{i+1}$ に相当する $s=h$ まで積分すると、
\begin{align}
S_i &= \int_{-h}^{h}(as^2+bs+c)ds \\
&= \Bigl[\frac{as^3}{3} + \frac{bs^2}{2} + cs\Bigr]_{-h}^{h} \\
&= \frac{1}{3} \frac{y_{i+1}-2y_i+y_{i-1}}{2h^2}[h^3-(-h)^3] + \frac{1}{2} \frac{y_{i+1}-y_{i-1}}{2h}[h^2-(-h)^2]+y_i[h-(-h)] \\
&= h \Bigl( \frac{y_{i+1}-2y_i+y_{i-1}}{3} + 2y_i \Bigr) \\
&= \frac{h(y_{i+1}+4y_i+y_{i-1})}{3}
\end{align}
となり、$n$を偶数としたとき、全体としては
\begin{align}
S &\approx \sum_{i=1}^{n-1}S_i = S_1 + S_2 + ... + S_{n-1} \\
&= \frac{1}{3}(y_0 + 4y_1 + 2y_2 + 4y_3 + ... + 4y_{n-3}+2y_{n-2}+4y_{n-1}+y_n)
\end{align}
すなわち、左端を「0番目」と数えたとき、奇数番目の点は4倍、偶数番目の点は2倍、両端だけは例外的に1倍して合計し、それに $h/3$ をかけたものが答えになります。これをシンプソンの第1公式といいます。
課題52:区分求積法(シンプソン則)
シンプソン則を用いて、次の式を数値的に解いてください。
\int_{1}^{2}\frac{x}{x^2+1}dx
課題提出方法
-
基本的にGoogle Colaboratoryを用いてプログラミングしてください。どうしても Google Colaboratory を用いることができない場合のみ、Jupyter Notebook または Jupyter Lab を用いてください。
-
課題1つごとに、ノートブックを新規作成してください。1つのノートブックで複数の課題を解かないでください。
-
ノートブックを新規作成すると「Untitled.ipynb」のような名前になりますが、それを「学籍番号・氏名・課題番号」のような名前に変更してください。
-
質問・感想・要望などございましたらぜひ書き込んでください。
-
もし課題を解くにあたって参考になったウェブサイトがあれば、それについても触れてください。
-
課題を計算し終わった ipynb ファイルを提出するときは、指定したメールアドレスに Google Drive で共有する形で授業担当者に提出してください。