LoginSignup
4
2

More than 3 years have passed since last update.

片対数グラフを読む

Last updated at Posted at 2019-01-24

片対数グラフを使って,$y=Ca^{x}$の関係にあるデータの,$C$や$a$を求める方法のメモ.
$y=e^{x}$を例に,片対数グラフから底$e=2.718...$を求めてみます.

手順

1. 片対数グラフにデータをプロット
2. 直線の傾き・切片を読み取る
3. 指数の底やべきを求める

手順1 片対数グラフを用意

$y=e^{x}$のデータとグラフを作ります.
実際は,次に示すグラフが実験などから得られたという想定です.

import numpy as np
from matplotlib import pyplot as plt

x = np.arange(0, 10, 0.1)
y = np.exp(x)
plt.plot(x, y)
plt.show()

次に片対数グラフを描画します.

plt.yscale('log') # y軸を対数表示に
plt.plot(x, y)
plt.show()

片対数グラフで描画すると直線になりました.
この直線の傾きと切片から,本来未知である$y=Ca^x$の$C$と$a$がわかります.

手順2 傾きと切片を求める

片対数グラフでは,y座標の間隔が調整されているだけで値は変わってません.そのため,このまま直線の傾きを求めようとしても,傾き一定に見えているだけなので増加率は場所によって異なってきます.

ではどうするかというと,グラフから読み取れる2つの座標$(x_1, y_1)$,$(x_2, y_2)$のうち,y座標に常用対数$\log_{10}$をとった上で傾き$a$を計算します.

\begin{equation}
a = \frac{\log_{10} y_1-\log_{10} y_2}{x_1-x_2} \\
\end{equation}

実際にグラフを読み,適当な二点を取り出してみます.

In [92]: x[10], np.log10(y[10])
Out[92]: (1.0, 0.4342944819032518)

In [93]: x[35], np.log10(y[35])
Out[93]: (3.5, 1.5200306866613813)

直線の式を$Y=ax+b\quad(Y=\log_{10} y)$とすれば,通る2点の座標から
$a=0.434...$
$b= 2.220\times 10^{-16}\cong0$
と求まります.

手順3 指数のべきと底を求める

直線の式を$(y=)$と書き直せば

\begin{eqnarray*}
\log_{10}y &=& ax+b \\
y &=& 10^{ax}10^{b} \\
&=& 10^{0.434x} \\
&=& (10^{0.434})^{x}
\end{eqnarray*}

$10^{0.434}=2.716...$なので,だいたい$e=2.718...$に近い値を求めることができました.

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2