双曲線関数 sinh, cosh, tanh の定義・性質・応用をわかりやすく解説

三角関数が単位円 $x^2 + y^2 = 1$ を媒介変数表示するのと同様に、双曲線関数(hyperbolic functions)は双曲線 $x^2 – y^2 = 1$ を媒介変数表示する関数です。双曲線関数は微分方程式の解、統計力学の分配関数、相対論的速度の加法則など、理工系のあらゆる場面で登場します。

三角関数との類似性が非常に高いため、三角関数を理解していれば双曲線関数の習得は効率的に進みます。

本記事の内容

  • 双曲線関数 $\sinh$, $\cosh$, $\tanh$ の定義
  • 指数関数との関係
  • 基本的な恒等式
  • 微分公式と積分公式
  • 逆双曲線関数
  • 懸垂線への応用
  • Pythonでの可視化

前提知識

この記事を読む前に、以下の記事を読んでおくと理解が深まります。

双曲線関数の定義

指数関数による定義

双曲線関数は指数関数 $e^x$ を用いて以下のように定義されます。

$$ \boxed{\sinh x = \frac{e^x – e^{-x}}{2}} $$

$$ \boxed{\cosh x = \frac{e^x + e^{-x}}{2}} $$

$$ \boxed{\tanh x = \frac{\sinh x}{\cosh x} = \frac{e^x – e^{-x}}{e^x + e^{-x}}} $$

「sinh」は「ハイパボリックサイン」、「cosh」は「ハイパボリックコサイン」、「tanh」は「ハイパボリックタンジェント」と読みます。

直感的には、$\cosh x$ は $e^x$ と $e^{-x}$ の平均、$\sinh x$ はその半差です。

その他の双曲線関数

三角関数と同様に、逆数関数も定義されます。

$$ \mathrm{csch}\, x = \frac{1}{\sinh x}, \quad \mathrm{sech}\, x = \frac{1}{\cosh x}, \quad \coth x = \frac{1}{\tanh x} $$

名前の由来:双曲線との関係

三角関数 $(\cos\theta, \sin\theta)$ が単位円 $x^2 + y^2 = 1$ 上の点を表すのと同様に、$(\cosh t, \sinh t)$ は直角双曲線 $x^2 – y^2 = 1$ 上の点を表します。実際に確認すると:

$$ \cosh^2 t – \sinh^2 t = \left(\frac{e^t + e^{-t}}{2}\right)^2 – \left(\frac{e^t – e^{-t}}{2}\right)^2 $$

分子を展開します:

$$ = \frac{e^{2t} + 2 + e^{-2t}}{4} – \frac{e^{2t} – 2 + e^{-2t}}{4} $$

$$ = \frac{(e^{2t} + 2 + e^{-2t}) – (e^{2t} – 2 + e^{-2t})}{4} $$

$$ = \frac{4}{4} = 1 $$

したがって:

$$ \boxed{\cosh^2 t – \sinh^2 t = 1} $$

これは三角関数の $\cos^2\theta + \sin^2\theta = 1$ に対応する双曲線関数の基本恒等式です。

基本的な性質

偶奇性

$\cosh x$ は偶関数、$\sinh x$ は奇関数です:

$$ \cosh(-x) = \frac{e^{-x} + e^x}{2} = \cosh x $$

$$ \sinh(-x) = \frac{e^{-x} – e^x}{2} = -\sinh x $$

$$ \tanh(-x) = \frac{\sinh(-x)}{\cosh(-x)} = \frac{-\sinh x}{\cosh x} = -\tanh x $$

特殊値

$$ \sinh 0 = 0, \quad \cosh 0 = 1, \quad \tanh 0 = 0 $$

極限での振る舞い

$x \to \infty$ のとき $e^{-x} \to 0$ なので:

$$ \sinh x \approx \frac{e^x}{2}, \quad \cosh x \approx \frac{e^x}{2} \quad (x \to \infty) $$

$$ \tanh x \to 1 \quad (x \to \infty), \quad \tanh x \to -1 \quad (x \to -\infty) $$

加法定理

三角関数と類似した加法定理が成り立ちます(符号に注意):

$$ \sinh(x + y) = \sinh x \cosh y + \cosh x \sinh y $$

$$ \cosh(x + y) = \cosh x \cosh y + \sinh x \sinh y $$

$$ \tanh(x + y) = \frac{\tanh x + \tanh y}{1 + \tanh x \tanh y} $$

$\cosh$ の加法定理では $\sinh x \sinh y$ の符号がプラスです。三角関数の $\cos(x+y) = \cos x \cos y – \sin x \sin y$ とは符号が異なる点に注意してください。

その他の恒等式

$$ 1 – \tanh^2 x = \mathrm{sech}^2\, x $$

$$ \cosh^2 x = \frac{\cosh 2x + 1}{2}, \quad \sinh^2 x = \frac{\cosh 2x – 1}{2} $$

$$ \sinh 2x = 2\sinh x \cosh x $$

微分公式

双曲線関数の微分は三角関数と非常に似ていますが、符号が異なる場合があります。

sinh x の微分

$$ \frac{d}{dx}\sinh x = \frac{d}{dx}\left(\frac{e^x – e^{-x}}{2}\right) = \frac{e^x + e^{-x}}{2} = \cosh x $$

$$ \boxed{\frac{d}{dx}\sinh x = \cosh x} $$

cosh x の微分

$$ \frac{d}{dx}\cosh x = \frac{d}{dx}\left(\frac{e^x + e^{-x}}{2}\right) = \frac{e^x – e^{-x}}{2} = \sinh x $$

$$ \boxed{\frac{d}{dx}\cosh x = \sinh x} $$

三角関数では $(\cos x)’ = -\sin x$ とマイナスが付きますが、双曲線関数では $(\cosh x)’ = \sinh x$ とマイナスが付かない点が重要な違いです。

tanh x の微分

商の微分法則を用います:

$$ \frac{d}{dx}\tanh x = \frac{d}{dx}\frac{\sinh x}{\cosh x} = \frac{\cosh^2 x – \sinh^2 x}{\cosh^2 x} = \frac{1}{\cosh^2 x} $$

$$ \boxed{\frac{d}{dx}\tanh x = \mathrm{sech}^2\, x = \frac{1}{\cosh^2 x}} $$

微分公式のまとめ

関数 導関数 三角関数との比較
$\sinh x$ $\cosh x$ $(\sin x)’ = \cos x$
$\cosh x$ $\sinh x$ $(\cos x)’ = -\sin x$
$\tanh x$ $\mathrm{sech}^2 x$ $(\tan x)’ = \sec^2 x$

積分公式

微分公式の逆から、以下の積分公式が得られます。

$$ \boxed{\int \sinh x \, dx = \cosh x + C} $$

$$ \boxed{\int \cosh x \, dx = \sinh x + C} $$

$$ \boxed{\int \tanh x \, dx = \ln(\cosh x) + C} $$

$\tanh x$ の積分は以下のように導出します:

$$ \int \tanh x \, dx = \int \frac{\sinh x}{\cosh x} dx $$

$u = \cosh x$ と置換すると $du = \sinh x \, dx$ なので:

$$ = \int \frac{du}{u} = \ln |u| + C = \ln(\cosh x) + C $$

$\cosh x > 0$ なので絶対値は不要です。

逆双曲線関数

定義

逆双曲線関数は双曲線関数の逆関数です。対数関数を用いて陽に表すことができます。

$\mathrm{arcsinh}$(逆 sinh)の導出

$y = \sinh x = \frac{e^x – e^{-x}}{2}$ を $x$ について解きます。$u = e^x$ と置くと:

$$ y = \frac{u – u^{-1}}{2} $$

$$ 2yu = u^2 – 1 $$

$$ u^2 – 2yu – 1 = 0 $$

二次方程式の解の公式より:

$$ u = \frac{2y \pm \sqrt{4y^2 + 4}}{2} = y \pm \sqrt{y^2 + 1} $$

$u = e^x > 0$ なので正の根を取ります。$\sqrt{y^2 + 1} > |y|$ より $y + \sqrt{y^2+1} > 0$ は常に成り立ちます:

$$ e^x = y + \sqrt{y^2 + 1} $$

$$ \boxed{\mathrm{arcsinh}\, y = \ln\left(y + \sqrt{y^2 + 1}\right)} $$

$\mathrm{arccosh}$(逆 cosh)の導出

同様に $y = \cosh x$ を解くと:

$$ u^2 – 2yu + 1 = 0 $$

$$ u = y \pm \sqrt{y^2 – 1} $$

$\cosh x \geq 1$ より $y \geq 1$ で定義され、$x \geq 0$ の枝を取ると:

$$ \boxed{\mathrm{arccosh}\, y = \ln\left(y + \sqrt{y^2 – 1}\right) \quad (y \geq 1)} $$

$\mathrm{arctanh}$(逆 tanh)の導出

$y = \tanh x = \frac{e^x – e^{-x}}{e^x + e^{-x}}$ を解きます。$u = e^{2x}$ と置くと:

$$ y = \frac{u – 1}{u + 1} $$

$$ y(u + 1) = u – 1 $$

$$ u(y – 1) = -1 – y $$

$$ u = \frac{1 + y}{1 – y} $$

$$ e^{2x} = \frac{1+y}{1-y} $$

$$ \boxed{\mathrm{arctanh}\, y = \frac{1}{2}\ln\frac{1+y}{1-y} \quad (|y| < 1)} $$

逆双曲線関数の微分

$$ \frac{d}{dx}\mathrm{arcsinh}\, x = \frac{1}{\sqrt{x^2 + 1}} $$

$$ \frac{d}{dx}\mathrm{arccosh}\, x = \frac{1}{\sqrt{x^2 – 1}} \quad (x > 1) $$

$$ \frac{d}{dx}\mathrm{arctanh}\, x = \frac{1}{1 – x^2} \quad (|x| < 1) $$

応用:懸垂線

懸垂線とは

一様な密度を持つ柔軟なケーブルを両端で吊るしたとき、重力によって形成される曲線を懸垂線(catenary)と呼びます。「catenary」はラテン語の catena(鎖)に由来します。

懸垂線の方程式の導出

ケーブルの線密度を $\rho$(kg/m)、重力加速度を $g$ とします。ケーブルの最下点を原点に取り、最下点での張力の水平成分を $T_0$ とします。

最下点から弧長 $s$ だけ離れた点 $P$ で、ケーブルの微小区間に作用する力の釣り合いを考えます。

水平方向の釣り合い:

$$ T\cos\theta = T_0 $$

鉛直方向の釣り合い:

$$ T\sin\theta = \rho g s $$

辺々割ると:

$$ \tan\theta = \frac{\rho g s}{T_0} $$

$\tan\theta = \frac{dy}{dx}$ であり、弧長と座標の関係 $\frac{ds}{dx} = \sqrt{1 + \left(\frac{dy}{dx}\right)^2}$ を用いると:

$$ \frac{dy}{dx} = \frac{\rho g s}{T_0} $$

両辺を $x$ で微分します:

$$ \frac{d^2y}{dx^2} = \frac{\rho g}{T_0}\frac{ds}{dx} = \frac{\rho g}{T_0}\sqrt{1 + \left(\frac{dy}{dx}\right)^2} $$

$a = T_0 / (\rho g)$ と置き、$p = dy/dx$ とすると:

$$ \frac{dp}{dx} = \frac{1}{a}\sqrt{1 + p^2} $$

変数分離します:

$$ \frac{dp}{\sqrt{1 + p^2}} = \frac{dx}{a} $$

左辺の積分は $\mathrm{arcsinh}$ です:

$$ \mathrm{arcsinh}\, p = \frac{x}{a} + C_1 $$

初期条件 $p(0) = dy/dx|_{x=0} = 0$(最下点で水平)より $C_1 = 0$。したがって:

$$ p = \frac{dy}{dx} = \sinh\frac{x}{a} $$

もう一度積分すると:

$$ y = a\cosh\frac{x}{a} + C_2 $$

$y(0) = a$ とする慣習(最下点の高さを $a$ とする)を採用すると $C_2 = 0$:

$$ \boxed{y = a\cosh\frac{x}{a}} $$

これが懸垂線の方程式です。$\cosh$ が自然に現れることが、双曲線関数の重要な応用例です。

Pythonでの可視化

import numpy as np
import matplotlib.pyplot as plt

fig, axes = plt.subplots(2, 2, figsize=(14, 11))

# --- (1) sinh, cosh, tanh のグラフ ---
x = np.linspace(-3, 3, 500)
axes[0, 0].plot(x, np.sinh(x), 'b-', lw=2, label=r'$\sinh x$')
axes[0, 0].plot(x, np.cosh(x), 'r-', lw=2, label=r'$\cosh x$')
axes[0, 0].plot(x, np.tanh(x), 'g-', lw=2, label=r'$\tanh x$')
axes[0, 0].axhline(1, color='gray', ls=':', alpha=0.5)
axes[0, 0].axhline(-1, color='gray', ls=':', alpha=0.5)
axes[0, 0].set_xlabel('$x$')
axes[0, 0].set_ylabel('$y$')
axes[0, 0].set_title('Hyperbolic functions', fontsize=13)
axes[0, 0].legend(fontsize=12)
axes[0, 0].set_ylim(-5, 5)
axes[0, 0].grid(True, alpha=0.3)

# --- (2) 双曲線 x^2 - y^2 = 1 上の点 ---
t = np.linspace(-2, 2, 300)
x_hyp = np.cosh(t)
y_hyp = np.sinh(t)
# 双曲線全体
x_curve = np.linspace(1, 4, 200)
y_upper = np.sqrt(x_curve**2 - 1)
axes[0, 1].plot(x_curve, y_upper, 'b--', alpha=0.5)
axes[0, 1].plot(x_curve, -y_upper, 'b--', alpha=0.5)
axes[0, 1].plot(x_hyp, y_hyp, 'r-', lw=2.5, label=r'$(\cosh t, \sinh t)$')
# 特定の点をマーク
for t_val in [0, 0.5, 1.0, 1.5]:
    axes[0, 1].plot(np.cosh(t_val), np.sinh(t_val), 'ko', ms=6)
    axes[0, 1].annotate(f'$t={t_val}$',
                        (np.cosh(t_val), np.sinh(t_val)),
                        textcoords="offset points", xytext=(10, 5), fontsize=9)
axes[0, 1].set_xlabel('$x$')
axes[0, 1].set_ylabel('$y$')
axes[0, 1].set_title(r'Hyperbola $x^2 - y^2 = 1$', fontsize=13)
axes[0, 1].set_aspect('equal')
axes[0, 1].set_xlim(-0.5, 4.5)
axes[0, 1].set_ylim(-3, 3)
axes[0, 1].legend(fontsize=11)
axes[0, 1].grid(True, alpha=0.3)

# --- (3) 微分の検証 ---
x = np.linspace(-3, 3, 500)
dx = 1e-7
sinh_deriv_numerical = (np.sinh(x + dx) - np.sinh(x)) / dx
cosh_deriv_numerical = (np.cosh(x + dx) - np.cosh(x)) / dx
axes[1, 0].plot(x, np.cosh(x), 'b-', lw=2, label=r"$\cosh x$ (analytical $\sinh'$)")
axes[1, 0].plot(x, sinh_deriv_numerical, 'r--', lw=2, label=r"numerical $\sinh'$")
axes[1, 0].plot(x, np.sinh(x), 'g-', lw=2, label=r"$\sinh x$ (analytical $\cosh'$)")
axes[1, 0].plot(x, cosh_deriv_numerical, 'm--', lw=2, label=r"numerical $\cosh'$")
axes[1, 0].set_xlabel('$x$')
axes[1, 0].set_title('Derivatives of hyperbolic functions', fontsize=13)
axes[1, 0].legend(fontsize=10)
axes[1, 0].set_ylim(-5, 5)
axes[1, 0].grid(True, alpha=0.3)

# --- (4) 懸垂線 ---
x = np.linspace(-3, 3, 500)
for a in [0.5, 1.0, 2.0, 3.0]:
    y = a * np.cosh(x / a)
    axes[1, 1].plot(x, y, lw=2, label=f'$a = {a}$')
axes[1, 1].set_xlabel('$x$')
axes[1, 1].set_ylabel('$y$')
axes[1, 1].set_title(r'Catenary $y = a\cosh(x/a)$', fontsize=13)
axes[1, 1].legend(fontsize=11)
axes[1, 1].set_ylim(0, 8)
axes[1, 1].grid(True, alpha=0.3)

plt.tight_layout()
plt.show()

左上のグラフから、$\sinh x$ は奇関数で原点を通り、$\cosh x$ は偶関数で最小値 1 を取り、$\tanh x$ は $\pm 1$ に漸近することが分かります。右下の懸垂線では、パラメータ $a = T_0/(\rho g)$ が大きいほど曲線が平坦になることが確認できます。

まとめ

本記事では、双曲線関数の定義から応用まで解説しました。

  • 定義: $\sinh x = (e^x – e^{-x})/2$, $\cosh x = (e^x + e^{-x})/2$
  • 基本恒等式: $\cosh^2 x – \sinh^2 x = 1$
  • 微分: $(\sinh x)’ = \cosh x$, $(\cosh x)’ = \sinh x$(符号に注意)
  • 逆双曲線関数: 対数関数を用いて陽に表せる
  • 懸垂線: $y = a\cosh(x/a)$ — 双曲線関数の代表的な応用

次のステップとして、以下の記事も参考にしてください。