はじめに
相加・相乗平均は、不等式の証明などに多用される。証明方法としては、左辺-右辺が0以上になることを示すのだが、それには、実数の2乗は0以上であるという条件を使用する。そこで今回は、3パターンの証明方法で相加・相乗平均を証明した後に、Pythonを用いてグラフ化することで、視覚的に不等式が成立することを体感することを目的とする。
導入
以下に相加・相乗平均の定義を述べる。
まず、$a>0,b>0$としたとき以下の式が成立する。
\frac{a+b}{2}\ge \sqrt{ab}
ただし$a=b$のとき等号が成立する。
この式では、分数がややこしいので、以下の形に変形したものが多用される。
a+b\ge 2 \sqrt{ab}
証明
今回は、以下の3パターンで考えた。ただし、いずれの証明も実数の2乗は0以上であるという原則を用いる。
2変数関数
左辺から右辺を引くことにより証明することができる。ただし、a,bは正なので、$\sqrt{a},\sqrt{b}$は実数の領域に存在する。
(a+b)-2\sqrt{ab}=\sqrt{a}^2+\sqrt{b}^2-2\sqrt{ab}= (\sqrt{a}-\sqrt{b})^2\ge 0
1つの変数
左辺から右辺を引いたものをaで除する。これによって、$\sqrt{\frac{b}{a}}$という一つの変数によって$f(a,b)$の正負が決定される。($a>0$より)
したがって、以下のようになる。
f(a,b)=(a+b)-2\sqrt{ab}=a(1+\frac{b}{a}-2\sqrt{\frac{b}{a}})=a(1-\sqrt{\frac{b}{a}})^2\ge 0
ただし、等号成立は$a=b$のとき
微分法
$b$を定数とし$a$を変数として$f(a,b)$を$a$で微分する。
\frac{df}{da}=1-\sqrt{\frac{b}{a}}
ここで、以下の場合について考える。
$0<a<b$のとき
\frac{df}{da}<0
$a\ge b$のとき
\frac{df}{da}\ge 0
したがって、$a=b$のときこの関数は最小値を取ることが分かる。したがって、
f(a,b)\ge f(a=b,b)=0
グラフ化
さて、今度は$f(a,b)=(a+b)-\sqrt{ab}$を$a,b,f$空間に描写してみよう。
import matplotlib.pyplot as plt
import math
import numpy as np
import japanize_matplotlib
n=100
a=np.linspace(0,10,n)
b=np.linspace(0,10,n)
a,b= np.meshgrid(a,b)
plt.contourf(a,b,(a+b)/2-(a*b)**0.5)
plt.colorbar()
plt.show()
$f(a,b)$ は$a,b$に関して対称なので、$a=b$に関して対称である。また、そのとき最小値0を取ることも分かる。
一方で、3次元のグラフを描くプログラムは以下の通りである。
import matplotlib.pyplot as plt
import math
import numpy as np
import japanize_matplotlib
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize=(6, 6))
ax = fig.add_subplot(111, projection='3d')
n=100
a=np.linspace(0,10,n)
b=np.linspace(0,10,n)
a,b= np.meshgrid(a,b)
c=(a+b)/2-(a*b)**0.5
surface = ax.plot_surface(a,b,c, rstride=1, cstride=10, cmap='jet', alpha=0.4)
# カラーバーを設定
fig.colorbar(surface, ax=ax, shrink=0.5)
plt.show()
これは、ある意味で放物線に似ている。ということを考えると、相加・相乗平均はある意味で、$y=x^2$の最小値が(0,0)であるということを3次元に拡張したモデルであると考えることができるかもしれない。
まとめ
今回は、相加・相乗平均を理解するために公式の証明をした後、グラフ化することを試みた。結果、左辺引く右辺を描写した場合、$a=b$で対称のグラフが描けた。また、最小値は0以上であることも分かった。ただし、相加・相乗平均は、$a>0,b>0$という前提の上でしか議論できないことに注意したい。