okahijiki2021/04/17 07:57ご回答ありがとうございますー。 np.exp(1) == np.e True 念のため... np.exp(1)-np.e == 0 True となりました。 >np.expは、指数関数の級数展開を使った近似式で計算しているためです。 ただ四捨五入で、小数点が丸められていると思っていたのですが、違うみたいな...検索してみると「オイラー」とか出てきたりして。そこまで勉強を広げていくと(個人的に)たいへんなことになりそう...
ppaul2021/04/17 13:31現在のコンピュータで数について気を付けなければならないことは、 - 通常コンピュータは二進数で計算をしている。 -コンピュータは無限のデータを扱うことはできない。 の2点です。 浮動小数点数を使う場合には、上記に加えて -有効数字は桁数が決まっている にも注意が必要です。。 また、数学的には等しくなるはずの数が等しくないことは普通です。 >>> math.sin(math.pi) 1.2246467991473532e-16 とかですね。
okahijiki2021/04/17 23:43ありがとうございます。 たとえば、print(1/3) 0.3333333333333333 というふうに、小数点17以下は、まるめられます (ppaulさんのおっしゃることろの「有効数字の桁数が決まっている」ですね) そもそも少数点は、ネイピアによる対数のアイデアと、同じくらいの時代に出てきた、という本を読んだことがあります。それ以前の(ギリシア時代からの?)1/3(比率)の方が、コンピュータより豊かに表現できたりするのは、なんというか、心づよい感じもします〜 ありがとうございます。
ppaul2021/04/18 09:20どうでもよい話ですが、 1/3のように比で表せる数のことを英語ではrational numberといいます。ratioは比率のことなので比率数と翻訳すべきなのですが、辞書に載っているrationalが「合理的」であるためか「有理数」と訳されてしまいました。そのため比率で表せない円周率(π)とかネイピア数(e)とかが「無理数」という意味の分からない日本語になっています。困ったものです。
okahijiki2021/04/19 01:56ほんらいratio/比率であるところを、rational 合理的=>有理数(理が有る数)と訳されてしまっているのですね。直観的にも1/3は、比率数の方がピンと来ますー ありがとうございます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/17 07:57
2021/04/17 13:31
2021/04/17 23:43
2021/04/18 09:20
2021/04/19 01:56