主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

高精度の数値計算

この例では符号数学工具箱™を使った可変精度の演算により,高精度の計算を得る方法を説明します。

ほとんど整数を表す式を求めます。典型的な例は次になります。 经验值 1 6 3. π を30桁まで計算します。結果は,丸め誤差を伴って表示されますが,整数になるように見えます。

数字(30);f = exp (sqrt(信谊(163))*符号(π));vpa (f)
ans =
                
                 
                  
                   
                    262537412640768743.999999999999
                  
                  
                   vpa(“262537412640768743.999999999999”)
                 
                

同じ値を40桁まで計算します。これが整数にはならないことがわかります。

数字(40);vpa (f)
ans =
                
                 
                  
                   
                    262537412640768743.9999999999992500725972
                  
                  
                   vpa(“262537412640768743.9999999999992500725972”)
                 
                

この現象をさらに調査します。以下では,最大 经验值 1 0 0 0 になる数値が出現します。そのため,調査には,小数点以下の正しい桁数が必要です。必要な作業精度を計算します。

d = log10 (exp (vpa (1000)))
d =
                
                 
                  
                   
                    434.2944819032518276511289189166050822944
                  
                  
                   vpa(“434.2944819032518276511289189166050822944”)
                 
                

必要な精度を設定した後はじめて,それに左右される関数を呼び出します。他には,vpaおよびがそのような関数です。

数字(装天花板(d) + 50);

经验值 n π という形式に類似した例を探します。163年もちろんの平方根を乗算して,そのような数値nを多数求めることができます。しかし,それ以外にも,この形式の数値の多くが何らかの整数に近い値を取ります。このことは,小数部のヒストグラムプロットからわかります。

一个= exp(π* sqrt (vpa (1:1000)));B =一个圆(一个);柱状图(双(B), 50)

图中包含一个坐标轴。坐标轴包含一个直方图类型的对象。

ほとんど整数となる式 经验值 n があるかどうかを計算します。

一个= exp (vpa (1:1000));B =一个圆(一个);找到(abs (B) < 1/1000)
Ans = 1x0空双行向量

今度は,一个の要素の小数部がかなり均等に分布していることがわかります。

柱状图(双(B), 50)

图中包含一个坐标轴。坐标轴包含一个直方图类型的对象。