- ベストアンサー
自然対数
はじめまして、よろしくお願いします プログラミングに頻繁に出てくる自然対数について調べていたのですが、調べてみてもeやら何やらの底だの出てきて中学生の私には何がなんだかさっぱりです(汗 そこで質問なのですがこの自然対数というのはどのような時に使うのかを簡単に説明していただきたいです。 また自然対数についてわかりやすく解説しているサイトがあれば教えてください。 なんどか自然対数について質問すると思いますがよろしくお願いします
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
対数というのは,掛け算を足し算に変換する術です。 たとえばx*yを計算したいときにぞれぞれの対数を取っておいてlog(x)とlog(y)にしておきます。それからlog(x)+log(y)を計算するとlog(x*y)に等しくなっています。対数をもとに戻せばx*yというわけです。 9の放射性物質が7年掛けて8になるというのなら,1年でr倍になるとして 8=9*r^7です。半減期をnとすると9/2=9*r^nです。それぞれを対数の世界にもっていけば log(8)=log(9)+7*log(r) log(9)-log(2)=log(9)+n*log(r) ですからn=-log(2)/log(r)=-log(2)/(log(8)-log(9))*7=7*log(2)/(log(9)-log(8)) =7 / log(9/8, 2) です。 最初の高さh=2で,跳ね返りの割合r=0.5であれば,n回目の跳ね返りでは高さは h*r^nになっています。これが1以下になるとしたらh*r^n<=1 r^n<=1/h 対数にするとn*log(r)<=log(1/h) n<=log(1/h)/log(r) これはn<=log(h)/log(1/r)=log(h,1/r)と同じことです。
その他の回答 (1)
- nan93850673
- ベストアンサー率32% (179/553)
>中学生の私には何がなんだかさっぱりです そりゃそうでしょ。 高校でやる指数関数、対数関数、微分・積分、極限値、無限級数(しかも、私の頃は極限値と無限級数は数IIIで扱う内容だった)をベースにした内容だから。 >プログラミングに頻繁に出てくる自然対数 私は35年プログラマやってるけど、自然対数を扱った事は一度も無いので「頻繁に」と言われる事が理解できないですね。 ひょっとして自然対数の底”e”と浮動小数点表記の”E”を取り違えてないですか。
お礼
ところがどっこい回答者さんと興味の有る分野が別なのかpythonをやってると頻繁にlogという関数がでてくるんですよね 例えば 10の放射性物質が1年掛けて5になる場合の半減期を調べるプログラムをつくりなさいとか 単純な計算と思いました? 9の放射性物質が7年掛けて8になる場合の半減期を調べなさい 7 / math.log(9/8, 2) となるわけで 答えは 41.19464434653203になるようです 例2 もう少し簡単な例を上げると 与えられた高さからボールを落とし 、ボールは前の高さの一定の割合に戻ります。 ボールが高さ1以下でバンドすると、バウンスが止まったとみなされます。 ボールの移動を停止させるために必要なバウンド回数を計算しなさい。 math.ceil(math.log(最初の高さ, 1/跳ね返りの割合)) つまり math.ceil(math.log(2, 1/0.5)) で1になるわけです このような時にlog関数が必要になるのですが・・・って なんで質問する立場の私が教えてあげなきゃいけない? これはあくまでも一例ですがこのような場合に使われるわけですがどのような仕組みになっているのかがわからない段階です
補足
紹介頂いたサイト、解りやすく面白かったです ありがとうございました。
お礼
ありがとうございました。 頂いた解答をじっくりと検証して身につけたいと思います。