浮動小数点数とそのコンストラクタ
使い方
Float(M, E)
SFloat(M, E)
x.yen
x.yEn
パラメータ
M - 表式
E - 表式
x - (オプション) 整数
y - (オプション) 正の整数
n - (オプション) 整数
|
説明
|
|
•
|
ソフトウェア浮動小数点数 (型 sfloat を持つオブジェクト) は、 Maple の内部表現では、対になった 2 個の整数 (仮数 M と指数 E) により表現されます。
|
•
|
コマンド Float(M, E) を浮動小数点数 M * 10^E を作成するために用いることができます。
|
|
仮数部 M が型 imaginary を持つ場合、 Float(M, E) は I * Float(Im(M), E) を返します。
|
|
仮数が型 nonreal を持つ場合、 Float(M, E) は Float(Re(M), E) + I * Float(Im(M), E) を返します。
|
|
コマンド SFloat(M, E) は関数 Float(M, E) と等価です。
|
•
|
ソフトウェア浮動小数点数の、仮数部の最大桁数、および指数部に対して許されている最大値と最小値を Maple_floats ルーチンにより得ることができます。
|
•
|
浮動小数点数は x.yEn または x.yen と入力することによっても作成することができます。ただし n は整数の指数です。これら 3 つのパラメータは、すべて呼び出し手順のオプションになっています。y を省略する場合には,小数点も省略しなくてはいけません (たとえば、1e0 はよくても 1.e0 はよくないのです)。
|
•
|
式中に浮動小数点数がある場合、一般的には、浮動小数点数を用いた計算を行うことになります。浮動小数点数による計算評価のための関数 evalf を用いると、強制的に浮動小数点数による計算をさせることができます。
|
•
|
浮動小数点数による四則演算において、仮数部の桁数は Maple の環境変数 Digits により決められています (デフォルトは 10)。
|
•
|
Maple には浮動小数点数を用いる各種の関数があります。
|
CopySign Default0 DefaultOverflow DefaultUnderflow denom
frem ilog10 ilog2 Im NextAfter
numer NumericClass OrderedNE Re Scale10
Scale2 SFloatExponent SFloatMantissa Unordered
|
量 Float(infinity) は「浮動小数点数の無限大」を表しています。この値は、大き過ぎて表すことができない浮動小数点値を示しています。必ずしも無限に関する数学的概念を表すものではありません。
|
|
Float(infinity) は、入力の被作用子が指定された関数または演算に桁あふれを生じさせるものだった場合に、関数や演算から返されます(すなわち、Float(a,b) フォーマットでは表せないような結果を生じた時に使われます)。
|
|
Float(infinity) は、複素数の実部と虚部のいずれにも使うことができます(たとえば、 Float(infinity) + 3.7*I, 0. + Float(infinity)*I)。実部と虚部が Float(infinity) である複素数を、 便宜上、Maple は1点「複素無限大」として扱います。これは便宜上のことだけで、そのようなオブジェクトの実部もしくは虚部の符号によるときは、ユーザ(とそのプログラム)で注意しなくてはいけません。type/cx_infinity を参照して下さい。
|
|
量 Float(undefined) は「浮動小数点数系における非数値オブジェクト」を表しています。この値は、入力された被作用子が関数や被作用子の定義されている領域外にある時、関数とか演算により返されてくることがあります。
|
|
Float(undefined) <> Float(undefined) は常に真であることに注意しておきます。したがって、ある式が Float(undefined) かどうかを調べるには、type(expr, undefined) を用いる必要があります。
|
|
表記 Float(undefined) を持つオブジェクトに対して Float(n,undefined) のようにして「タグ」を付けることができます。ただし n は整数です。 被作用子として関数または演算に引き渡されるとき、Maple はそうすることが意味があれば同じ値を返そうとするという意味において、Maple は可能な限りこのオブジェクトを保持しようとします。このようにして、オブジェクトが最初に出現した時点を正確に決定できるよう、遡及して解析することができます。
|
|
Float(undefined) は複素数の実部や虚部であり得ます(たとえば、 Float(undefined) + 1.*I, Float(infinity) + Float(undefined)*I)。型 ``undefined'' によりそのようなオブジェクトを認識することができます。
|
|
浮動小数点数のフォーマットにおいて、0 は符号を持っています。四則演算の際、標準的な代数の規則に従って、0 の符号は可能な限り保存されます。演算や関数は、定性的な情報の識別用に 0 の符号を使うことができますが (たとえば、 分岐を切断する閉包)、定量的な情報には使えません (たとえば、 -0.0 < +0.0 は false を返してきます)。
|
|
計算の結果が数学的には 0 になったとしても、普通の四則演算の規則を用いたのでは、その符号は確定できません。最も簡単な例として x - x があります。このような場合、 Maple では以下のような約束に従います。
|
|
丸め(rounding)モードが -infinity ではない限り、符号を特定しない場合の計算で得られた値が 0 ならば +0 が結果として返されます。丸めモードが -infinity ならば -0 となります。
|
|
上で述べたようにして、複素無限大に関する約束事に従い、2 つの成分が共に不動小数点数ゼロであるような複素数全般を Maple は取り扱っています。繰り返しますが、これは約束事であって、複素数 0. + 0.*I、 0. - 0.*I などの実部または虚部の符号をプログラムが常に引き継いで行かねばならないこという意味ではありません。
|
|
|
例
|
|
| (2.1) |
| (2.2) |
| (2.3) |
| (2.4) |
| (2.5) |
| (2.6) |
| (2.7) |
| (2.8) |
| (2.9) |
| (2.10) |
| (2.11) |
| (2.12) |
>
|
interface(prettyprint=0);
2.3;
|
|
|
参照
|
|
constant, convert, Default0, Digits, evalf, integer, op, type, type/cx_infinity, type[float], type[numeric], type[sfloat], UseHardwareFloats
|
|
Download Help Document
Was this information helpful?