2022年度計算機演習A・B

第7回:関数の積分

1. 積分の概念

1.1. 関数の定積分

関数 $f:\mathbb{R}\to\mathbb{R}$ と区間 $[a,b]\subset\mathbb{R}$ を考えます。

このとき、関数 $f$ の区間 $[a,b]$ における定積分(definite integral)

$$ \int_a^b f(x)\,dx $$

は、下図のように $x$-$y$ 平面において $y=f(x)$、$x$ 軸、$x=a$、$x=b$ によって囲まれる領域の符号付き面積を意味します。

定積分の定義方法はリーマン積分やルベーグ積分など複数存在しますが、以下ではリーマン積分(Riemann integral)の考え方について詳しく見ていきます。

1.2. リーマン積分の考え方

区間 $[a,b]$ を、

$$ a=x_0<x_1<x_2<\cdots<x_{n-1}<x_n=b $$

によって $n$ 個の小区間 $[x_0,x_1],[x_1,x_2],\ldots,[x_{n-1},x_n]$ に分割します。

各 $i=1,\ldots,n$ に対して点 $t_i\in[x_{i-1},x_i]$ を与えるとき、

$$ \sum_{i=1}^n f(t_i)(x_i-x_{i-1}) $$

を $f$ の考えている点付き分割に関するリーマン和(Riemann sum)と呼びます。下図のように、リーマン和は長方形の面積の和に相当します。

特に、各 $t_i$ を小区間の左端に取る(すなわち $t_i=x_{i-1}$ である)場合のリーマン和を左リーマン和、小区間の右端に取る(すなわち $t_i=x_i$ である)場合のリーマン和を右リーマン和と呼びます。

関数 $f$ が単調増加であるならば、左リーマン和は求める面積の下界、右リーマン和は求める面積の上界を与えます。

$n\to\infty$ としたときに点付き分割の取り方によらずにリーマン和が一定の値に収束するとき、その極限の値を関数 $f$ の区間 $[a,b]$ におけるリーマン積分と呼びます。

2. 定積分の近似計算

ここでは、上記の「単調増加関数に対する左リーマン和と右リーマン和の性質」を利用して、定積分の近似計算を行います。

例として、関数 $f(x)=\sqrt{x}+1$ の区間 $[0,1]$ における定積分を考えます。明らかに、$f$ は $[0,1]$ において単調増加です。

まず、$f(x)$ を計算する関数f(x)および $f$ の $[0,1]$ におけるグラフを描画する関数draw_f()を定義します。

次に、分割数 $1$ の等分割(すなわち、$[0,1]$ のまま)に関する左リーマン和と右リーマン和を考えます。

このときの左リーマン和に対応する図は、次のようになります。

ここで、関数plt.fill

plt.fill(x_list,y_list,色を表す文字列,alpha=不透明度)

のように使用し、x_listとy_listが表す複数の点によって囲まれる領域を指定の色と不透明度(0~1)で塗りつぶすことができます。ただし、点の順番には注意が必要であり、順番通りに線分で結んでできる領域の塗りつぶしになります。

左リーマン和の値はこの赤色の領域の面積に等しいので、次のように求まります。

右リーマン和に対応する図は、次のようになります。

右リーマン和の値はこの緑色の領域の面積に等しいので、次のように求まります。

同様にして、分割数 $2$ の等分割に関する左リーマン和と右リーマン和を考えると、次のようになります。

演習1

関数 $f(x)=\sqrt{x}+1$ に対して、区間 $[0,1]$ の分割数 $3$ の等分割に関する左リーマン和と右リーマン和を考えます。

それぞれに対応する図を描画した上で値を求めるコードを書いてください。

演習2

関数 $f(x)=\sqrt{x}+1$ に対して、区間 $[0,1]$ の分割数 $n$ の等分割に関する左リーマン和と右リーマン和を考えます。

左リーマン和に対応する図を描画する関数draw_left_RS(n)、左リーマン和の値を返す関数calc_left_RS(n)、右リーマン和に対応する図を描画する関数draw_right_RS(n)、右リーマン和の値を返す関数calc_right_RS(n)を定義してください。

$n=4$ の場合に、定義したそれぞれの関数を呼び出してください。

演習3(オプション)

関数 $f(x)=\sqrt{x}+1$ に対して、区間 $[0,1]$ の分割数 $n$ の等分割に関する左リーマン和と右リーマン和を考えます。

右リーマン和と左リーマン和の差が $0.01$ より小さくなるような最小の $n$ を求めるコードを書いてください。

また、定積分 $\int_0^1 \left(\sqrt{x}+1\right)\,dx$ の値を手計算で求め、上記の $n$ に対する左リーマン和および右リーマン和の値と比較して考察してください。

第7回レポート課題

演習1~演習3に取り組んでください。