今回は大学初年度の数学で登場するランダウの記号と漸近展開について扱います。漸近展開を簡単に求める方法に関する備忘録です。
※漸近展開の計算のコツについては「合成関数の漸近展開を簡単に求める方法」も参考にして下さい!
ランダウの記号のおさらい
ランダウの記号とは
・増減量が微小な項は無視する
・係数は無視する(オーダーにのみ注目する)
以下、表記法の意味について大雑把に説明していきます。
ビッグオー(ラージオー)表記:
これは
関数
という意味です。より正確には、
ということを意味しています。ビッグオー記号は以下のように使います。
使用例
なお、この定義に基づけば
スモールオー(リトルオー)表記:
ということを意味しています。つまり「
使用例
漸近展開のおさらい
ある関数
ここで関数列について、任意の負でない整数
漸近展開をマクローリン展開に応用してみます。
漸近展開
ランダウの記号を用いて
これにより例えば、
もちろんラージオー記号も使うことができて、これを使うと
大雑把な印象としては
ラージオー記号
スモールオー記号
という捉え方でOKです。漸近展開など微小量を扱う場合は、ラージオー記号
※注:ここでは考えていませんが、
漸近展開の求め方①:愚直に微分
ここでは
まずは愚直に微分していく方法で漸近展開を行ってみます。
となるので、
この方法はごく一般的な方法ですが、計算量がやや多く、ケアレスミスをしてしまう可能性があります。
漸近展開の求め方②:漸近展開を合成
今度は「漸近展開を合成する」という別の方法で求めてみます。
となりますので、
ということで早速代入してみましょう。計算途中で
この方法は見た目こそ複雑そうに見えますが、括弧内をすべて計算する必要は無いので、実際の計算はそこまで大変ではありません。合成関数の漸近展開を求める際は非常に有効です。今回は4次の項までの展開ですが、この方法だとそれ以上の高次の項まで比較的簡単に求められます。
※漸近展開の計算のコツについては「合成関数の漸近展開を簡単に求める方法」も参考にして下さい!
演習例題
以下の与えられた関数
(1)
» 答え合わせ
4次までの漸近展開は
※
» 閉じる
(2)
» 答え合わせ
4次までの漸近展開は
※
» 閉じる
(3)
» 答え合わせ
4次までの漸近展開は
※
» 閉じる
合成関数の漸近展開を求める際、煩雑な微分計算が苦手な方や、より速く計算を済ませたい方は漸近展開の和や積、代入などで求めてしまうのが良いでしょう。そのためにも、基本的な関数のマクローリン展開の表式は事前に覚えておきたいですね。なお、漸近展開の合成が数学的に正当な操作であることはきちんと証明することが可能です。
(2020/08/06 書式を一部変更)
(2021/07/29 表現を一部修正)
(2021/12/20 表現を一部修正)
スモールoのところの
x→0のときg(x)が0に近づくスピードはf(x)よりも速い
という文は
x→0のときf(x)が0に近づくスピードはg(x)よりも速い
の間違いではないですか?
大隈直人 さん
初めまして。管理人の pencil です。
コメント頂きありがとうございます。
ご指摘の通り、スモールオーについては後者の意味が正しいです。
その他の不自然な表現も修正しました。ご指摘に感謝します。
今後とも当サイトをよろしくお願いします。
漸近展開について調べていて、参考にさせていただいています。
ビッグオーの使用例の指数関数で O(x^3) の部分の意味がよく分かりません。
O(x^3)は、発散のスピードが x^3 と同じくらいか、それより遅いということでしょうか?
1+x+x^2/2 のあとには発散スピードが x^3 より速い項が続きそうな気がするのですが、ビックオーの使い方がよく分からないのでお教えください。
よろしくお願いします。
いえやす さん
初めまして。管理人の pencil です。
コメント頂きありがとうございます。また、お返事が遅くなってしまい申し訳ありません。
以下に管理人自身なりの説明を書きましたので、疑問解消の一助になれば幸いです。
~~~~~
まず、漸近展開の際にはビッグオーもスモールオーも微小項を評価するために用いられています。例として という関数 を考えてみます。いま、 です。これを2次の項まで、何らかの別の関数で評価したいとします。
このビッグオー は【収束のスピードが と同じくらいか、それより速い】という意味を表しています。 は【収束のスピードが より速い】という意味を表しています。 という の近傍において微小となる部分を で評価するか で評価するかという違いしかありません。
一方でスモールオー
ここでは
~~~~~
さて、ここまでは「漸近展開」の話で、関数が「収束」する場合の取り扱いについて述べたものです。
記事を改訂してしまったので今の版の文章には残っていませんが、特にビッグオー記号は「発散」する関数のオーダーを見積もる場合にも使われることがあります。(これが古い版のビッグオー記号の解説がややこしくなっていた原因だと思います…)
アルゴリズムの計算量のオーダーが大体どのくらいかを示す際に、ビッグオー記号が登場することがあります。(スモールオー記号がこのような使い方をされることは(定義上は可能ですが)ほぼありません) を素因数分解するアルゴリズムとして、 以下のすべての素数で割っていく「試し割り法」というものがあります。試し割り法の計算量のオーダーは と表現されます。 と同じくらいか、それより少ない】という意味を表しています。
例えば、ある正の整数
これは【計算量が
このようにビッグオー記号は中身が に近付かない場合にも使われるのでややこしいのですが、基本は【大きく見積もっても大体このくらい】というニュアンスで使われています。
~~~~~
具体的な数字で考えると分かり易いかもしれません。もう一度、関数 を考えてみます。
逆に が とか とかどんどん大きくなるとき、 (というより関数 そのもの)の大きさは大体 くらいと見積もられます。 の項がオーダーに効いてくるので、このときは で代表させなければなりません。
つまり、 と表記すべきだということです。 の場合のみを考えるので、 の動き(発散or収束)を明示する必要は無いように感じられます。しかし記号の解釈に関わる情報を落とすのは厳密には不適切と言えます。
培風館の教科書でもそうですが、漸近展開では基本的に
~~~~~
このようにランダウの記号には、中身が発散するのか収束するのかによってその都度、記号の解釈を変えなければならないややこしさがあります。恐らくこれが混乱の元になっていたのだと思います。
極限を用いた定義に忠実にランダウの記号を使っていれば混乱することは無いはずですが、微小項の評価だけでなく増大する項の評価にもランダウの記号が使われることがあるというのは覚えておいて下さい。
ありがとうございました
ご丁寧な解答ありがとうございます。
ビックOの使い方がよく分かりました。
ベッセル関数の漸近級数(発散する場合)を考えていたので、ビックOの使い方で混乱していたようです。
発散する場合と収束する場合では、その解釈を変えなければならないことがよく分かりました。
ありがとうございました。
f(x) = o(g(x)) の使用例の下の lim の式
= 0
でしょうか?
「lim_{x→0} \frac{sin(x) – x}{x^2} なので」
では意味が分かりません。。。
通りすがり さん
初めまして。管理人の pencil です。
コメント頂き、ありがとうございます。
該当箇所について「=0」が抜け落ちているのを確認し、修正しました。
ご指摘に感謝申し上げます。
他にも誤植を見逃してしまっている部分があるかと思います。
もし発見された際は、お手数ですがご連絡下さいますと大変有難いです。
今後とも当サイトを宜しくお願いいたします。
漸近展開を関数の合成で求める方法に関して、途中式付きで詳しく解説されているのはとても珍しいありがたい記事だと思っております。
ただ、気になった点がありました。
「漸近展開の求め方②:漸近展開を合成」の箇所のsin2xの漸近展開の1項目は(2x)^2ではなく2xかと思います。
また、それに伴って後ろの途中計算も全て修正が必要になりそうでした。
せっかく良い記事ですので、お時間の許す際には、ここも直していただけたらと思っておりました。
よろしくお願いいたします。
siruku6 さん
初めまして、管理人の pencil です。
嬉しいコメントありがとうございます!
ご指摘の箇所について確認の上、修正いたしました。
他にも誤植等あるかもしれません。見つけた際はお手数ですが、今回のようにご連絡いただけますと幸いです。
ご協力に感謝申し上げます。
初めまして。大変丁寧な解説で参考にしています。
例題e^sin2xの漸近展開のやり方2で{}^2を展開する時に4乗の項が多分抜け落ちています。最終的な式では復活しているみたいなので結果は同じだと思います。
抹茶 さん
初めまして、管理人の pencil です。
当サイトをご覧いただき、ありがとうございます。
ご指摘の通り、途中式に不備がありましたので修正しました。
ご協力に感謝いたします。