• ベストアンサー

関数の近似を教えて下さい。

f(X)=ln(1±X)≒±X という近似を教えてください。 マクローリン展開をしてグラフを作図してみたのですが、-1<x<1 の範囲ではグラフからは成立しているように読み取れるのですが、その範囲を超えてしまうと、近似はズレてきます。 マクローリン展開以外の近似の方法があるのでしょうか? お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Nandayer
  • ベストアンサー率47% (20/42)
回答No.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)

DSGR
質問者

お礼

ご回答ありがとうございます。 参考にさせていただきます。

関連するQ&A