import scipy as sp
import matplotlib.pyplot as plt
新訂微分積分I p.38-39
$f(x)$が開区間$(a,b)$で微分可能とし,$f(a) = f(b)$が成り立つとする. $f(x)$が定数関数でない場合は,$a,b$間のいずれかの点$c$で最大値または最小値をとり,
$$ f'(c) = 0 $$が成り立つ.
また,$f(x)$が定数関数の場合は, すべての点で$f'(x)=0$である.
以上からロルの定理が成り立つ.
\begin{theorem}\label{theo:} ロルの定理 関数$f(x)$が閉区間$[a,b]$で連続で,開区間$(a,b)$で微分可能であり,さらに, $f(a)=f(b)$であるとき, \begin{eqnarray} f'(c) = 0, (a < c < b) \end{eqnarray} を満たす点が少なくとも1つ存在する. \end{theorem}関数$f(x) = \sin{x}$ は,$[0, 2\pi]$でロルの定理の条件を満たす. 実際,$f'(x) = \cos{x}$ より,$f'(c) = 0$を満たす点は$\frac{\pi}{2}, \frac{3}{2}\pi$ である.
x = sp.linspace(0, 2 * sp.pi)
y = sp.sin(x)
plt.plot(x, y)
plt.plot(x, sp.cos(x), "--")
plt.hlines(
[sp.sin(sp.pi / 2), sp.sin(3 * sp.pi / 2)],
[sp.pi / 2 - 1, 3 * sp.pi / 2 - 1], [sp.pi / 2 + 1, 3 * sp.pi / 2 + 1],
colors="red")
plt.grid()
plt.show()
関数$f(x)=x^3-x$ について$f(-1) = f(1)$であることを確認せよ.
$$ f(1) = 1^3 - 1 = 0\\ f(-1) = (-1)^3 - (-1) = 0\\ $$f = lambda x: x**3 - x
f(1), f(-1)
(0, 0)
$f'(c) = 0, (-1<c<c)$を満たす点$c$を求める.
$$ f'(x) = 3x^2 - 1 = 0\\ 3x^2=1\\ x=\pm \frac{1}{\sqrt{3}} $$x = sp.linspace(-1.5, +1.5)
y = x**3 - x
plt.plot(x, y)
plt.plot(x, 3 * x**2 - 1, "--")
plt.hlines(
[f(-1. / sp.sqrt(3)), f(1. / sp.sqrt(3))],
[-1. / sp.sqrt(3) - .3, 1. / sp.sqrt(3) - .3],
[-1. / sp.sqrt(3) + .3, 1. / sp.sqrt(3) + .3],
colors="red")
plt.grid()
plt.show()
関数$f(x)$ が閉区間$[a, b]$ で連続で,開区間$(a,b)$で微分可能であるとする. 2点$A(a, f(a)), B(b, f(b))$ を通る直線の傾きを$m$とおく.
$$ m = \frac{f(b) - f(a)}{b - a} $$このとき, $$ f'(c)=m, (a<c<b) $$
を満たす点$c$が存在することを,ロルの定理を用いて示す.
2つの関数$y = f(x)$と$y=f(a) + m(x-a)$の差を$F(x)$とおくと,
$$ F(x) = f(x) - (f(a) + m(x-a)) = f(x) - f(a) - m(x-a)\\ = f(x) - f(a) - \frac{f(b)-f(a)}{b-a}(x-a) $$$F(x)$は区間$[a, b]$ で連続で,区間$(a,b)$ で微分可能であり,
$$ F'(x) = f'(x) - m = f'(x) - \frac{f(b)-f(a)}{b-a} $$また, $$ F(a) = f(a) - f(a) - m(a-a)=0 $$
$$ F(b) = f(b) - f(a) - m(b-a) = f(b) - f(a) - \frac{f(b)-f(a)}{b-a}(b-a) = f(b) - f(a) - (f(b)-f(a)) = 0 $$であるから,ロルの定理より,
$$ F'(c) = f'(c) - m = f'(c) - \frac{f(b)-f(a)}{b-a} = 0, (a < c < b) $$を満たす点$c$が少なくとも1つ存在する.
平均値の定理より, \begin{theorem}\label{theo:} 平均値の定理
関数$f(x)$が閉区間$[a,b]$で連続で,開区間$(a,b)$で微分可能であるとき,
$$ \frac{f(b)-f(a)}{b-a} = f'(c), (a < c <b) $$を満たす点$c$が少なくとも1つ存在する.
平均値の定理は,接線の傾きが直線$AB$の傾きと一致するような点が少なくとも1つ存在する. \end{theorem}
平均値の定理は1次微分だが, n次微分まで拡張すると,テイラーの定理になる.
関数$f(x) = x^3$ を区間$[1,4]$で考え,平均値の定理を満たす点$c$を求める.
$$ \frac{4^3 - 1^3}{4-1} = \frac{63}{3} = 21\\ f'(x)=3x^2 \\ f'(c) = 3c^2 = 21\\ c^2 = 7 \\ c = \sqrt{7}\\ $$f = lambda x: x**3
x = sp.linspace(1, 4)
y = f(x)
plt.plot(x, y)
plt.plot(x, 3 * x**2, "--")
# 直線
a, b = 1, 4
m = (f(b)-f(a))/(b-a)
y = f(a) + m*(x-a)
plt.plot(x, y, "--")
plt.scatter(sp.sqrt(7), f(sp.sqrt(7)))
# 直線
y = f(sp.sqrt(7)) + m*(x-sp.sqrt(7))
plt.plot(x, y, "--")
plt.grid()
plt.show()
関数$f(x) = x^2$ を区間$[a,b]$で考え,平均値の定理を満たす点$c$を求める.
$$ \frac{b^2 - a^2}{b-a} = \frac{(b-a)(b+a)}{b-a}=b+a\\ f'(x)=2x \\ f'(c) = 2c = a+b\\ c = \frac{a+b}{2} \\ $$f = lambda x: x**2
a, b = -1, +2
x = sp.linspace(a, b)
y = f(x)
plt.plot(x, y)
plt.plot(x, 2 * x, "--")
# 直線
m = (f(b)-f(a))/(b-a)
y = f(a) + m*(x-a)
plt.plot(x, y, "--")
plt.scatter((a+b)/2, f((a+b)/2))
# 直線
y = f((a+b)/2) + m*(x-(a+b)/2)
plt.plot(x, y, "--")
plt.grid()
plt.show()
平均値の定理を使って不等式の証明を行う問題は超頻出です。
2001年名古屋大学理系第1問
\begin{problem}\label{prob:} 例題 $e$ を自然対数の底とする。 $e< p < q$ のとき以下の不等式を証明せよ: $$ \log{(\log{q})} − \log{(\log{p})} < \frac{q−p}{e} $$ \end{problem}q = sp.linspace(3.1, 6)
p = 3
y = sp.log(sp.log(q)) - sp.log(sp.log(p))
plt.plot(q, y, label="$\log{(\log{q})} − \log{(\log{p})}$")
plt.plot(q, (q-p)/sp.e, label="$\\frac{q-p}{e}$")
plt.xlabel("q")
plt.legend()
plt.grid()
plt.show()
解答
$$ f(x)=\log{(\log{x})} $$とおくと,証明すべき不等式は,
$$ f(q)−f(p)<\frac{q−p}{e}\\ \frac{f(q)−f(p)}{q-p} < \frac{1}{e} $$となる。 ここで平均値の定理より, $$ \frac{f(q)−f(p)}{q-p} = f'(c) $$ となる $c$ が $p$ と $q$ の間に存在する。
合成関数の微分公式を用いて $f(x)$ の導関数を計算すると $$ f'(x)=\frac{d\log{y}}{dy}\frac{d\log{x}}{dx}=\frac{1}{\log{x}}\frac{1}{x} = \frac{1}{x \log{x}} $$
であるので,証明すべき不等式は, $$ f'(c) = \frac{1}{c \log{c}} < \frac{1}{e}\\ c \log{c} > e $$
ここで $g(x)=x\log{x}$ について考える. いま,$e < p < x < q$ より,
$$ x > e \\ \log{x} > 1 $$よって,
$$ c \log{c} > e $$が成り立つ.
x = sp.linspace(sp.e+0.1, 10)
y = x * sp.log(x)
plt.plot(x, y, label="$x \log{x}$")
plt.hlines(sp.e, 0, 10)
plt.ylim(0, 30)
plt.legend()
plt.grid()
plt.show()
$a_{n+1}=f(a_n)$ 型の漸化式で表される数列の極限を求める問題にも平均値の定理は活躍します。このタイプの問題の基本的な考え方は漸化式で表される数列の極限で詳しく解説しています。
平均値の定理を使うことで所望の不等式: $|a_n+1−\alpha|< k |a_n−\alpha|$ を示しにいきます。
2005年東京大学理系第3問です。
問題
$$ f(x)=\frac{x}{2}(1+e^{−2(x−1)}) $$とする。
$x > \frac{1}{2}$のとき, $$ x-\frac{1}{2} > 0\\ e^{−2(x−1)} > 0 $$
よって,$x > \frac{1}{2}$のとき,
$$ 0 <= f'(x) < \frac{1}{2} $$x = sp.linspace(0, 5)
y = x / 2. * (1 + sp.exp(-2. * (x - 1)))
plt.plot(x, y, label="$f(x)$")
y_=1./2 - (x - 1./2)*sp.exp(-2*(x-1))
plt.plot(x, y_, label="$f'(x)$")
plt.hlines(1./2, 0, 5)
# plt.ylim(0, 30)
plt.legend()
plt.grid()
plt.show()
数列 $\{x_n\}$ を $x_{n+1}=f(x_n)$ で定める。 このとき $\lim_{n\to \infty}x_n=1$を証明せよ。
解答
$f(1)$を計算する.
$$ f(1) = \frac{1}{2}(1 + 1\cdot e^{−2(1−1)}) = \frac{1}{2}2 = 1 $$平均値の定理より,($x_n\neq 1$ のもとで) $[x_n, 1]$の範囲で,
$$ \frac{f(x_n)−f(1)}{x_n−1}=f'(c) $$となる $c$ が $1$と$x_n$ の間に存在する。 よって,(1)と合わせると「 $x_n>\frac{1}{2},x_n\neq 1$ 」のもとで
$$ 0 \leq f'(c) < \frac{1}{2} \\ 0 \leq \frac{f(x_n)−f(1)}{x_n−1} < \frac{1}{2}\\ 0 \leq \frac{x_{n+1}−1}{x_n − 1} < \frac{1}{2}\\ |\frac{x_{n+1}−1}{x_n − 1}| < \frac{1}{2}\\ \frac{|x_{n+1}−1|}{|x_n − 1|} < \frac{1}{2}\\ |x_{n+1}−1| < \frac{1}{2} |x_n − 1|\\ $$$x_0=1$ のとき,数列 $\{x_n\}$ の各項は全て $1$ なのでOK。
$x_0 \neq 1$ のとき,数列 $\{x_n\}$ の各項は$x_n > 1/2$
「 $x_n>1/2,x_n\neq 1$」を満たす(数学的帰納法で簡単に証明できる)ので, 上記の不等式を繰り返し適用できる:
$$ |x_{1}−1| < \frac{1}{2} |x_0 − 1|\\ |x_{2}−1| < \frac{1}{2} |x_1 − 1| < \frac{1}{2} \frac{1}{2} |x_0 − 1|\\ \vdots \\ |x_{n}−1| < \frac{1}{2^n} |x_0 − 1| \\ $$ここで $n\to \infty$ とすると,右辺 →0 なので
$$ \lim_{n\to \infty}|x_{n}−1| < \frac{1}{2^n} |x_0 − 1| \\ =|x_n|=1\\ $$x = 9/10
for i in sp.arange(10):
x = x / 2. * (1 + sp.exp(-2. * (x - 1)))
print(x)
0.999631241172 0.999999999983 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0