.. _asymptotics: ================================ 漸近解析 (Asymptotic analysis) ================================ .. list-table:: :header-rows: 1 :widths: 10 10 30 30 * - 記号 - - 定義 - 意味 * - :math:`f = O(g)` - :math:`f \lesssim g` - :math:`\limsup_{x \to \infty} |f(x)/g(x)| < \infty` - :math:`f` の増加は :math:`g` より遅いか同じ * - :math:`f = o(g)` - :math:`f \ll g` - :math:`\lim_{x \to \infty} f(x)/g(x) = 0` - :math:`f` の増加は :math:`g` より遅い * - --- - :math:`f \sim g` - :math:`\lim_{x \to \infty} f(x)/g(x) = 1` - :math:`f` が :math:`g` に漸近する * - :math:`f = \Theta(g)` - :math:`f \asymp g` - :math:`f \lesssim g \lesssim f` - :math:`f` と :math:`g` は同速度で増加 * - :math:`f = \Omega(g)` - :math:`f \gtrsim g` - :math:`g = O(f)` - :math:`f` の増加は :math:`g` より速いか同じ * - :math:`f = \omega(g)` - :math:`f \gg g` - :math:`g = o(f)` - :math:`f` の増加は :math:`g` より速い * どの変数 (例: :math:`x`) がどう変化 (例: :math:`x \to \infty`) するかを書かなければ厳密には漸近関係とは呼ばない. 例えば 「\ :math:`f(x) = O(g(x))`\ 」 は漸近関係ではなく, 正しくは 「\ :math:`f(x) = O(g(x))` (as :math:`x \to \infty`) 」などと書く 必要がある. * 表の定義ではすべて "as :math:`x \to \infty`" での漸近関係だが, 変数の収束先は何でも良い. * 記号 :math:`O`, :math:`o`, :math:`\Theta`, :math:`\Omega`, :math:`\omega` は :index:`ランダウの記号` (:index:`Landau symbol`) や :index:`O-記法` (:index:`big O notation`) と呼ばれる. 記号 :math:`\lesssim`, :math:`\ll`, :math:`\sim` は :index:`Vinogradov notation` と呼ばれる. * :math:`f \ll g` を :math:`f = O(g)` と定義するか, :math:`f = o(g)` と定義するかは 文献に依るようだ. ここでは, :math:`f \ll g` は :math:`f = o(g)` で定義し, :math:`f = O(g)` と同値の二項関係は :math:`f \lesssim g` と書く. しかし, この記法は 慣例的なものではない. * :math:`f \sim g` を :math:`f \lesssim g \lesssim f` で定義する流儀もある [#]_ ようだが, ここでの 定義とは違う. * 記号 :math:`\approx` や :math:`\lessapprox` は漸近関係では\ **無く**\ 荒い議論で発見的な説明するときなどに使う. .. [#] `254A, Notes 0: A review of probability theory | What's new `_ 漸近関係 ======== 漸近関係の例 ------------ 極限 :math:`x \to \infty` での漸近関係をいくつか示す. 末尾の "(as :math:`x \to \infty`)" は省略する. .. math:: x = O(5 x^2) .. math:: x = o(4 x^2) .. math:: x = \Theta(3 x) .. math:: x^3 + x \sim x^3 + \log x ランダウの記号 -------------- ランダウの記号が関数 :math:`q` の中に現れ .. math:: f(x) = q(O(g(x))) \quad \text{as } x \to \infty と書かれた漸近関係は, 「ある関数 :math:`z(x)` が 存在して :math:`f(x) \sim q(z(g(x)))` (as :math:`x \to \infty`)」 と定義される. また, ランダウの記号が左辺の関数 :math:`p` の中に現れ .. math:: p(O(f(x))) = g(x) \quad \text{as } x \to \infty と書かれた漸近関係は, 「いかなる関数 :math:`y(x)` についても, :math:`p(y(x)) \sim g(x)` (as :math:`x \to \infty`)」 と定義される. 他のランダウの記号についても同様である. ランダウの記号が左辺にあらわれた場合と右辺にあらわれた 場合の意味が異なることに注意せよ. 例えば, :math:`x = O(x)` (as :math:`x \to \infty`) は正しいが, :math:`O(x) = x` (as :math:`x \to \infty`) は正しくない. 上記のふたつの記法を組み合わせて使えば, ランダウの記号の「強さ」の 関係を完結に表すことが出来る [#]_: .. math:: o(f(x)) = O(f(x)), \enskip O(f(x)) = \Omega(f(x)), \enskip \Omega(f(x)) = \omega(f(x)), \Theta(f(x)) = O(f(x)), \Theta(f(x)) = \Omega(f(x)) . .. [#] さらに記法を乱用すると :math:`o(f) = O(f) = \Omega(f) = \omega(f)` とも書ける. .. _method-of-dominant-balance: 支配項均衡の方法 ================ :index:`支配項均衡の方法` (:index:`method of dominant balance`) とは, 3項以上がからんだ方程式のある少数の項 (例えば2項だけ) が 他の項に比べて非常に大きい場合に, その少数の項だけの方程式と みなして (漸近的な) 解を求める方法である. 二次方程式の解の公式を知らないふりをして .. math:: x^2 + C x + 1 = 0 の :math:`C \to \infty` についての漸近的な解を求めよう. 各項に :math:`a = x^2`, :math:`b = C x`, :math:`c = 1` と名前をつける. まず項 :math:`b = C x` がどのオーダーを持つか仮定し, それに基づいて計算した他の項のオーダーを使って一番 大きなオーダーが釣り合うか, つまり同じ大きさのオーダーが ふたつあるか, を確かめる. 釣り合いが示せたならば, 釣り合った項を漸近関係 :math:`\sim` で結んだ式を解く. 例えば, 項 :math:`b` と :math:`c` が釣り合い, 項 :math:`a` がそれらに比べて小さい, つまり :math:`a \ll b \asymp c` なら, :math:`b \sim - c` という式を解けばいい. 1. 仮定: :math:`C x \asymp 1` 仮定より :math:`x \asymp 1 / C` だから, :math:`x^2 \asymp (1 / C)^2` となる. 項 :math:`b` と :math:`c` が釣り合い, 項 :math:`a` はそれらに比べて小さいので無視できる. 方程式は :math:`C x \sim -1` と書くことが出来る. 解は :math:`x \sim - 1 / C` である. 2. 仮定: :math:`C x \asymp C` 仮定より :math:`x \asymp 1` だから, :math:`x^2 \asymp 1` となる. 項 :math:`a`, :math:`c` はともに 1 のオーダー であり, 項 :math:`b \asymp C` とは釣り合わない. 3. 仮定: :math:`C x \asymp C^2` 仮定より :math:`x \asymp C` だから, :math:`x^2 \asymp C^2` となる. 項 :math:`a`, :math:`b` はともに :math:`C^2` のオーダーで, 項 :math:`c` はそれらに比べて小さいので無視できる. 方程式は :math:`x^2 \sim - C x` と書くことが出来る. 解は :math:`0` か :math:`-C` が考えられるが, :math:`x = 0` は :math:`x \asymp C` を満たさないので, :math:`x \sim -C` が解である. 以上の考察から, 解は :math:`x \sim -1/C, -C` であることが分かった. 二次方程式の解の公式にあてはめると, 厳密解は .. math:: x_{\pm} = \frac{-C \pm \sqrt{C^2 - 4}}{2} となる. この厳密解が支配項均衡の方法で求めた漸近解に 漸近し :math:`x_- \sim -C`, :math:`x_+ \sim -1/C` となることは, .. math:: \lim_{C \to \infty} \frac{x_-}{-C} = \lim_{C \to \infty} \frac{-1 - \sqrt{1 - 4 / C^2}}{-2} = 1 .. math:: \lim_{C \to \infty} \frac{x_+}{-1/C} = \lim_{C \to \infty} \frac{-1 + \sqrt{1 - 4 / C^2}}{-2 / C^2} \overset{(1)} = \lim_{\epsilon \to 0} \frac{1 - \sqrt{1 - 4 \epsilon}}{2 \epsilon} \overset{(2)} = \lim_{\epsilon \to 0} \frac{1}{\sqrt{1 - 4 \epsilon}} = 1 より確かめられる. ただし, (1) :math:`\epsilon = 1/C^2` なる変数変換と, (2) ロピタルの定理__ を使った. 後者の計算から分かるように, :math:`x_+` のふるまいは, 厳密解 がわかっていても自明では無い. しかし, 支配項均衡の方法を 用いれば簡単に漸近解を導ける. __ http://ja.wikipedia.org/wiki/ロピタルの定理 .. seealso:: `Asymptotic analysis - Wikipedia `_ このページの `Method of dominant balance `_ という項目では, 常微分方程式を漸近解析を使って解く例が紹介されている. `Perturbation & Asymptotic Series - YouTube `_ 摂動法と漸近解析の講義ビデオ. 一部の応用例の紹介で量子力学などの物理学 の知識が必要な部分があるが, メインの流れは学部1年生のレベルの数学さえ 理解していれば追いかけられるだろう. 理論科学一般に興味のある人には 大変おすすめである.