投稿者:nu
投稿日:2015年 6月12日(金)07時42分35秒
|
|
|
積分計算をするのに多桁計算を行う方法を教えてください。
ロング数の四則演算までは理解しております。
gnuutera2012もといnuもといun
|
|
|
投稿者:白石 和夫
投稿日:2015年 6月12日(金)17時29分5秒
|
|
|
> No.3752[元記事へ]
nuさんへのお返事です。
> 積分計算をするのに多桁計算を行う方法を教えてください。
> ロング数の四則演算までは理解しております。
> gnuutera2012もといnuもといun
十進1000桁モードを使うのが簡単です。
十進1000桁モードだと四則と開平ができます。
有理数モードは四則のみですが、計算誤差を生じません。
|
|
|
投稿者:nu
投稿日:2015年 6月13日(土)16時35分42秒
|
|
|
白石 和夫さんへのお返事です。
積分計算をするのに多桁計算を行う方法を教えてくださいという質問で、十進1000桁モードの使用をおすすめいただいたのですが、実はExcelのchiinvで表現されるχ二乗分布の求値にとりかかっていましたところ、超越関数については十進1000桁モードが使用できないとコンピューターに表示がありました。どうにか通常モードでごまかして計算させておりますが、グラフの形状から計算精度が自由度に依存するようです。つまり、私の勘によって被積分関数の場合分けをしなくてはなりません。ただ高精度計算サイトのようにはいかないのがくやしいです。せいぜい数表程度の桁くらいなので、アルゴリズムに手を加えて、ロング数の加算方法を用いようと覚悟を固めているところです。ただ、私の方法では配列が大量に必要なため、実験に時間がかかります。なので、類似の方法をご存じでしたらご教授いただけませんでしょうか。お願い致します。
gnuutera2012もといnuもといun
|
|
|
投稿者:白石 和夫
投稿日:2015年 6月13日(土)17時07分3秒
|
|
|
十進BASICがインストールされたフォルダにある
Libraryフォルダに1000桁モード用の超越関数計算ルーチンのサンプルをおいてあります。
計算結果の正確さの評価などはしてないので推奨できるレベルのものではありませんが,
とりあえず使ってみることはできると思います。
10進1000桁モードで実行してください。
DECLARE EXTERNAL FUNCTION EXP
PRINT EXP(1)
END
! 1000桁モードで利用する指数関数
EXTERNAL FUNCTION EXP(x)
FUNCTION s(y,n)
LET t=y*x/n
IF ABS(t)<=EPS(0) THEN
LET s=y+t
ELSE
LET s=y+s(t,n+1)
END IF
END FUNCTION
LET EXP=s(1,1)
END FUNCTION
補足
カイ2乗分布の定義式にΓ関数がでてきますが,nが自然数のときのΓ(n+1/2)は簡単に計算できるので,
あまり面倒なことをしなくてすむと思います。
|
|
|
投稿者:nu
投稿日:2015年 6月13日(土)20時51分0秒
|
|
|
白石 和夫さんへのお返事です。
> 十進BASICがインストールされたフォルダにある
> Libraryフォルダに1000桁モード用の超越関数計算ルーチンのサンプルをおいてあります。
> 計算結果の正確さの評価などはしてないので推奨できるレベルのものではありませんが,
> とりあえず使ってみることはできると思います。
>
> 10進1000桁モードで実行してください。
>
> DECLARE EXTERNAL FUNCTION EXP
> PRINT EXP(1)
> END
>
> ! 1000桁モードで利用する指数関数
> EXTERNAL FUNCTION EXP(x)
> FUNCTION s(y,n)
> LET t=y*x/n
> IF ABS(t)<=EPS(0) THEN
> LET s=y+t
> ELSE
> LET s=y+s(t,n+1)
> END IF
> END FUNCTION
> LET EXP=s(1,1)
> END FUNCTION
>
> 補足
> カイ2乗分布の定義式にΓ関数がでてきますが,nが自然数のときのΓ(n+1/2)は簡単に計算できるので,
> あまり面倒なことをしなくてすむと思います。
>
>
ありがとうございます。これでなんとかなりそうです。感謝いたします。
http://yutorinonatuyasumi.blog.fc2.comにはExcelのnorminvで表現される正規分布の求値が二分法にて解決されております。もしかすると、白石先生のご回答により、こちらは桁数を増やすことができそうです。いつか多桁計算ができるように実力をつけていきたいと思います。
北海道産小豆宇治抹茶練乳白玉かき氷の季節が始まりそうです。
お身体に気をつけてこれからもご指導くださいませ。
gnuutera2012もといnuもといun
|
|
|
戻る