現世代Javaの動向 1
at TECH
651:638ではないよ
08/05/24 13:07:27
誤解してる人が居ると思うのでテイラー展開の計算についてちょっと書いとく。
テイラー展開の計算は、nを順に大きくした結果を足していくシグマ計算でもって
もとの式を書き換える手法。
シグマ計算のnが大きくなるに連れて、その足し算の数は小さくなっていく。
つまりどんどん本当の結果に漸近するような感じ。
この形に展開することでnを現実的な数字、例えば1000まで計算することで
近似値を得る事ができるというもの。
で、その式はWikipediaでも見てもらうとして、ちょっとコンピュータ的に書くと
Sigma( f(n)(a) * (x-a)^n / n! )
で、これを見ると毎回の計算でベキ乗オーダの計算が必要に見えるけど
実は、n-1の時に (x-a)^(n-1) や、(n-1)! は計算できているし f(n)(a)も
頑張ればなんとかできる場合がある。つまりそのときはテイラー展開の計算量はo(n)となる
この最適化をするかしないかで議論が分かれてるように思ったのでちょっと説明してみた。
で、まあベキ乗とか計算するとき大変なのが有効数字の管理。
これが計算精度に関わってくるからね。コンピュータで計算する以上それは仕方がない。
なので計算プログラムの設計者は有効数字を見積もらなくてはいけない。
それは翻って、ループの数を増やして意味のある数字を出す為には有効数字を
ちゃんと管理しておかなくてはいけないということ。
なので1000回という数字がどういう意味で提示されたのかはっきりしないと話は発散したままです。
>>638
話の収拾宜しく。
ちなみに、Objectのnewは大してコストかからんですよ。
むしろ、BigDecimalは計算にコストがかかります。そこも話が食い違ってるのがあったっぽいね。
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5495日前に更新/239 KB
担当:undef