- ベストアンサー
関数の近似を教えて下さい。
f(X)=ln(1±X)≒±X という近似を教えてください。 マクローリン展開をしてグラフを作図してみたのですが、-1<x<1 の範囲ではグラフからは成立しているように読み取れるのですが、その範囲を超えてしまうと、近似はズレてきます。 マクローリン展開以外の近似の方法があるのでしょうか? お願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
自然対数をマクローリン展開 ln(1+x) = x - x^2/2 + x^3/3 ... (*) したときの収束半径は1ですから、|x| < 1 の範囲で近似しようとするのは危ないと思います。また、右辺の収束はあまり速くありません。 次のような2段階の工夫をするとよいようです。 2の整数乗で x に最も近いものを 2^n で表し、x = (2^n)*t とすると、 ln(x) = n*ln(2) + ln(t) ( Sqrt(1/2) <= t < Sqrt(2) ) だから、ln(2) を定数として与えれば、ln(t) を計算すればよいことになります。 さらに、u = (1-t)/(1+t) とおくと、t = (1-u)/(1+u) で (*) を使うと、 ln(t) = ln(1+u) - (1-u) = 2*(u + u^3/3 + u^5/5 ... ) となります。 これで計算すると (*) よりずっとましになります。 また、連分数展開を利用する方法もあるようです。 以上、状況がよくわからないので適切な回答かどうか自信はありませんが、参考にしていただければ幸いです。 <参考図書> 奥村 晴彦 著「C言語による最新アルゴリズム事典」技術評論社(ISBN4-87408-414-1)
お礼
ご回答ありがとうございます。 参考にさせていただきます。