Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

定積分

関数y=f(x)y=f(x)のグラフを考える。f(x)f(x)は区間axba\leq x \leq bで連続であり正であるとする。その曲線、x=a,x=bx=a, x=bで囲まれた面積をSSとする

Source
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 7, 300)
y = 0.5 * x + np.sin(x)
xticks = []
xticklabels = []

fig, ax = plt.subplots(figsize=[5,3])
ax.plot(x, y)

a = 1
ax.axvline(a, linestyle="--")
xticks.append(a)
xticklabels.append("$a$")

b = 6
ax.axvline(b, linestyle="--")
xticks.append(b)
xticklabels.append("$b$")

ax.set(xlabel="x", ylabel="y", xticks=xticks, xticklabels=xticklabels, yticks=[])
ax.fill_between(x[(a <= x) & (x <= b)], y[(a <= x) & (x <= b)], color='lightblue', alpha=0.5)
ax.text(a + 0.4 + (b - a) // 2, 0.5, "S", color="steelblue")

ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['bottom'].set_position('zero')
ax.spines['left'].set_position('zero')

fig.show()
<Figure size 500x300 with 1 Axes>

区間axba\leq x \leq b

a=x0<x1<x2<<xk1<xk<<xn1<b=xna=x_0<x_1<x_2<\cdots<x_{k-1}<x_k<\cdots<x_{n-1}<b=x_n

であるようなn+1n+1個の点x0,x1,x2,,xn1,xnx_0, x_1, x_2, \cdots, x_{n-1}, x_nによってnn個の小区間I1,I2,,In1,InI_1, I_2, \cdots, I_{n-1}, I_nに分割する。小区間IkI_kの大きさはΔxk=xkxk1\Delta x_k = x_k - x_{k-1}である。

xkx_kxx軸に垂直な直線をひくと、面積SSnn個の「帯」に分けられる。 小区間の中の点をξk\xi_kとすると、「帯」の面積は底辺の長さがΔxk\Delta x_kで高さがyk=f(ξk)y_k=f(\xi_k)の長方形の面積f(ξk)Δxkf(\xi_k)\Delta x_kで近似する。

このとき、求める面積SSは長方形の面積の和

Sn=k=1nf(ξk)ΔxkS_n = \sum^n_{k=1} f(\xi_k)\Delta x_k

で近似される。このような和を積和と呼ぶことにする。

Source
import numpy as np
import matplotlib.pyplot as plt

def f(x):
    return 0.5 * x + np.sin(x)

x = np.linspace(0, 7, 300)
y = f(x)
xticks = []
xticklabels = []

fig, ax = plt.subplots(figsize=[5,3])
ax.plot(x, y)

a = 1
ax.axvline(a, linestyle="--")
xticks.append(a)
xticklabels.append("$a$")

b = 6
ax.axvline(b, linestyle="--")
xticks.append(b)
xticklabels.append("$b$")

ax.fill_between(x[(a <= x) & (x <= b)], y[(a <= x) & (x <= b)], color='lightblue', alpha=0.5)
ax.text(a + 0.4 + (b - a) // 2, 0.5, "S", color="steelblue")

# 「帯」
x_ks = [a + i for i in range(1, b)]
for k, x_k in enumerate(x_ks):
    ax.axvline(x_k, ymax=f(x_k) / max(y), linestyle="--")
    xticks.append(x_k)
    xticklabels.append(f"$x_{k}$")

# 長方形
import matplotlib.patches as patches
linesettings = dict(color="darkorange", alpha=0.7)
delta_x = x_ks[2] - x_ks[1]
rect = patches.Rectangle(
    xy=(x_ks[1], 0),
    width=delta_x,
    height=f(x_ks[1]),
    linewidth=2,
    edgecolor='darkorange',
    facecolor='lightyellow',
    alpha=0.8
)
ax.add_patch(rect)

# axis
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['bottom'].set_position('zero')
ax.spines['left'].set_position('zero')

ax.set(xlabel="x", ylabel="y", xticks=xticks, xticklabels=xticklabels, yticks=[])
fig.show()
<Figure size 500x300 with 1 Axes>

分割する小区間の長さΔx\Delta_xが限りなく小さくなるように細かく分割していくと、積和はある一定の値に限りなく近づく。その極限値(f(x)f(x)が連続なら必ず存在する)は面積SSに等しい。

この極限値を

abf(x)dx=limnk=1nf(ξk)Δxk\int_a^b f(x) d x=\lim _{n \rightarrow \infty} \sum_{k=1}^n f\left(\xi_k\right) \Delta x_k

で表し、関数f(x)f(x)aaからbbまでの 定積分 (definite integral) という。bbを積分上限、aaを積分下限と呼ぶ。

負の面積

関数が負の場合をとる場合でも積分は定義できる。積和の定義より、関数の値が負の部分はその部分からの面積への寄与は負である。

Source
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 7, 300)
y = np.sin(x - 0.5)
xticks = []
xticklabels = []

fig, ax = plt.subplots(figsize=[5,3])
ax.plot(x, y)

a = 1
ax.axvline(a, linestyle="--")
xticks.append(a)
xticklabels.append("$a$     ")

b = 6
ax.axvline(b, linestyle="--")
xticks.append(b)
xticklabels.append("$b$     ")

ax.set(xlabel="x", ylabel="y", xticks=xticks, xticklabels=xticklabels, yticks=[])
ax.fill_between(x[(a <= x) & (x <= b)], y[(a <= x) & (x <= b)], color='lightblue', alpha=0.5)

ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['bottom'].set_position('zero')
ax.spines['left'].set_position('zero')

fig.show()
<Figure size 500x300 with 1 Axes>

定積分の性質

  1. ab{f(x)±g(x)}dx=abf(x)dx±abg(x)dx\displaystyle \int_a^b\{f(x) \pm g(x)\} d x=\int_a^b f(x) d x \pm \int_a^b g(x) d x

  2. abkf(x)dx=kabf(x)dx(k\displaystyle \int_a^b k f(x) d x=k \int_a^b f(x) d x \quad(k : 定数 ))

  3. axb\displaystyle a \leqq x \leqq bf(x)0f(x) \geqq 0 ならば abf(x)dx0\int_a^b f(x) d x \geqq 0

  4. axb\displaystyle a \leqq x \leqq bf(x)g(x)f(x) \geqq g(x) ならば abf(x)dxabg(x)dx\int_a^b f(x) d x \geqq \int_a^b g(x) d x

  5. 平均値の定理:abf(x)dx=f(c)(ba)(a<c<b)\displaystyle \int_a^b f(x) d x=f(c)(b-a) \quad(a<c<b)

定数cRc\in\mathbb{R}との和 f(x)+cf(x) + c を区間[a,b][a,b]上で積分する場合を考える。

積分の性質 ab[f(x)+g(x)]dx=abf(x)dx+abg(x)dx\int_a^b [f(x) + g(x)] d x=\int_a^b f(x) d x + \int_a^b g(x) d xより、

ab[f(x)+c]dx=abf(x)dx+abcdx\int_a^b[f(x)+c] d x=\int_a^b f(x) d x+\int_a^b c d x

となる。また d(cx)dx=c\frac{d (c x)}{dx} = cなので

abcdx=[cx]ab=cbca=c(ba)\int_a^b c d x = [cx]_a^b = cb - ca = c \cdot (b - a)

である

定積分の計算

F(x)=f(x)F'(x) = f(x)を満たすある関数F(x)F(x)がわかったとき、定積分

abf(x)dx\int_a^b f(x) d x

はどのように求められるか。

下限を定数、上限を変数としたaxf(t)dt\int_a^x f(t) d tも原始関数であるから、

axf(t)dt=F(x)+C\int_a^x f(t) d t = F(x) + C

が成り立つ。

上の式でx=ax=aとおくと

0=F(a)+C0 = F(a) + C

なので

axf(t)dt=F(x)F(a)\int_a^x f(t) d t = F(x) - F(a)

であり、x=bx=bとおくと

abf(t)dt=F(b)F(a)\int_a^b f(t) d t=F(b)-F(a)

すなわち、「定積分の値は、原始関数の積分上限での値F(b)F(b)から、下限での値F(a)F(a)を引いたもの」となる。

定積分を表す記号として

[F(t)]ab=F(b)F(a)[F(t)]_a^b=F(b)-F(a)

abf(t)dt=[F(t)]ab\int_a^b f(t) d t=[F(t)]_a^b

abf(t)dt=F(t)ab\int_a^b f(t) d t=\left.F(t)\right|_a ^b

という記号が用いられる

広義積分

区間内で不連続点がある場合や、無限区間での積分へ拡張した定積分を 広義積分(improper integral)という。

2種類ある

  1. 被積分関数 f(x)f(x) が区間 axba \leqq x \leqq b で有限個の不連続点を持つ.

  2. 積分の上限, 下限の一方または両方が無限大である.

不連続な被積分関数

関数 f(x)f(x) が区間 a<xba < x \leqq b で連続であるとき、もし極限

limε+0a+εbf(x)dx\lim_{\varepsilon \rightarrow+0} \int_{a+\varepsilon}^b f(x) d x

が存在するならば、 f(x)f(x)axba \leqq x \leqq b で積分可能であるといい、この極限値を

abf(x)dx\int_a^b f(x) d x

で表わす。同様に、 f(x)f(x)ax<ba \leqq x<b で連続であるとき(下の式の右辺が存在するならば)、

abf(x)dx=limε+0abεf(x)dx\int_a^b f(x) d x=\lim _{\varepsilon \rightarrow+0} \int_a^{b-\varepsilon} f(x) d x

と表わす。

いま f(x)f(x)axba \leqq x \leqq b 内の 1 点 cc を除いて連続であるならば(下の式の右辺 の 2 つの極限が存在すると仮定して)

abf(x)dx=limε1+0acε1f(x)dx+limε2+0c+ε2bf(x)dx\int_a^b f(x) d x=\lim _{\varepsilon_1 \rightarrow+0} \int_a^{c-\varepsilon_1} f(x) d x+\lim _{\varepsilon_2 \rightarrow+0} \int_{c+\varepsilon_2}^b f(x) d x

区間axba\leq x \leq b 内に有限個の不連続点が存在するならば、この区間をいくつかの部分区間に分けて、そのいずれにもただ 1 つの不連続点があるようにできるので、同様に扱うことができる。

上記のような極限が存在するとき、 広義積分は収束する という。

無限区間の積分

関数f(x)f(x)xax\geq aで連続であって、極限

limb+abf(x)dx\lim _{b \rightarrow+\infty} \int_a^b f(x) d x

が存在するならば、この極限値を

af(x)dx\int_a^{\infty} f(x) d x

で表わす。同様にして、

bf(x)dx=limaabf(x)dxf(x)dx=limalimbabf(x)dx\begin{aligned} & \int_{-\infty}^b f(x) d x=\lim _{a \rightarrow-\infty} \int_a^b f(x) d x \\ & \int_{-\infty}^{\infty} f(x) d x=\lim _{a \rightarrow-\infty} \lim _{b \rightarrow \infty} \int_a^b f(x) d x \end{aligned}

が定義される。