[過去ログ] 分からない問題はここに書いてね449 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
943(1): 132人目の素数さん [sage] 2018/12/27(木) 07:04:09.42 ID:vQyXIR+c(1) AAS
>>934
この場合の近似式は、指数関数のよく知られた級数:
e^x=1+x+x^2/2!+x^3/3!+…
やそのPade近似を使うよりもtanhの連分数:
(e^(2x)-1)/(e^(2x)+1)=x/(1+x^2/(3+x^2/(5+x^2/(7+x^2/(9+…)))))
を通分しないでそのまま計算する方がはるかに速くなります。
この連分数を6項で打ち切ればe^(-2)からe^(2)までを10桁の精度で計算できます。
(ただし割り算の苦手な普通の計算機ではこの方法は使いません)
区間縮小の基本は加法定理e^(x+y)=e^x*e^yを利用して、
xからある数(整数or log2,log10の整数倍)を引いて近似後に補正する方法です。
xを1/2倍して近似後に2乗する方法などは精度が落ちるので要注意です。
区間分割・縮小方法はlibcなどの具体的なコードを見た方が分かりやすいと思います。
大型計算機などに実装されている極端な例では、
細かい区間に分割された低い次数(2次か3次)の近似式を大量に(数百から数千)
持っていて、xのビットパターンから近似式の番号(整数値)を割り出し参照するという
方法をとっています。この方法だとメモリの許す限りの高速化ができます。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.035s