vpa
可変精度の演算 (任意精度の演算)
説明
例
入力引数
出力引数
ヒント
vpaは分数の指数を浮動小数点に変換しません。たとえば、vpa(a^sym(2/5))はa^(2/5)を返します。vpaは、内部的にはdigitsによって指定される桁数よりも多くの桁数を使用します。この追加の桁数は、その後の計算を丸め誤差から守ります。例については、vpa でのガード桁使用による精度の維持を参照してください。vpaを1/3、2^(-5)、sin(pi/4)などの数値入力に対して呼び出すと、まず式が 64 ビット (約 16 桁) の精度の倍精度数として評価されます。その後、vpaにより、指定の有効桁数まで精度が引き上げられます。より正確な結果を得るには、代わりにsymを使用してシンボリック入力を定義します。たとえば、exp(1)を有効桁数 32 桁で近似するには、vpa(exp(sym(1)))を使用します。既定では、
vpaは p/q、pπ/q、(p/q)1/2、2q、および 10q という形式に一致する数値入力の精度を引き上げます。ここで、p および q は適度なサイズの整数です。詳細については、一般的な倍精度入力の精度の維持を参照してください。可変精度演算は、以下の点において IEEE® の浮動小数点規格 754 と異なります。
計算の中で、ゼロ除算はエラーをスローします。
指数範囲は事前定義されたどの IEEE モードよりも広いです。
vpaはおよそ10^(-323228496)までアンダーフローします。非正規化された数値は実装されていません。
ゼロは符号が付きません。
結果の仮数内の "2" 進数の数は、可変精度演算と IEEE の事前定義された型とで異なることがあります。
NaNがただ 1 つ存在します。クワイエットとシグナリングのNaNの違いは識別されません。浮動小数点数の例外は使用できません。