Maple für Professional
Maple für Akademiker
Maple für Studenten
Maple Personal Edition
Maple Player
Maple Player für iPad
MapleSim für Professional
MapleSim für Akademiker
Maple T.A. - Testen & beurteilen
Maple T.A. MAA Placement Test Suite
Möbius - Online-Courseware
Machine Design / Industrial Automation
Luft- und Raumfahrt
Fahrzeugtechnik
Robotics
Energiebranche
System Simulation and Analysis
Model development for HIL
Anlagenmodelle für den Regelungsentwurf
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematikausbildung
Technik
Allgemein- und berufsbildende Schulen
Testen und beurteilen
Studierende
Finanzmodelle
Betriebsforschung
Hochleistungsrechnen
Physik
Live-Webinare
Aufgezeichnete Webinare
Geplante Veranstaltungen
MaplePrimes
Maplesoft-Blog
Maplesoft-Mitgliedschaft
Maple Ambassador Program
MapleCloud
Technische Whitepapers
E-Mail Newsletters
Maple-Bücher
Math Matters
Anwendungs-Center
MapleSim Modell-Galerie
Anwenderberichte
Exploring Engineering Fundamentals
Lehrkonzepte mit Maple
Maplesoft Welcome-Center
Resource-Center für Lehrer
Help-Center für Studierende
浮動小数点数とそのコンストラクタ
使い方
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 9.5 においては、ソフトウェア浮動小数点数 (type[sfloat] 参照) と一般的に使われている浮動小数点数 (type[float] 参照) は同じオブジェクトとみなされています。Maple における機械精度浮動小数点数は rtable (Arrays、Matrices および Vectors) の要素としてのみ存在し、内部的には評価関数 evalhf において使われます。UseHardwareFloats を参照して下さい。
ソフトウェア浮動小数点数の、仮数部の最大桁数、および指数部に対して許されている最大値と最小値を Maple_floats ルーチンにより得ることができます。
浮動小数点数は x.yEn または x.yen と入力することによっても作成することができます。ただし n は整数の指数です。これら 3 つのパラメータは、すべて呼び出し手順のオプションになっています。y を省略する場合には,小数点も省略しなくてはいけません (たとえば、1e0 はよくても 1.e0 はよくないのです)。
ソフトウェア浮動小数点数の仮数部と指数部を得るためには、 それぞれについて SFloatMantissa および SFloatExponent を用いれば良いでしょう。
式中に浮動小数点数がある場合、一般的には、浮動小数点数を用いた計算を行うことになります。浮動小数点数による計算評価のための関数 evalf を用いると、強制的に浮動小数点数による計算をさせることができます。
浮動小数点数による四則演算において、仮数部の桁数は Maple の環境変数 Digits により決められています (デフォルトは 10)。
Maple には浮動小数点数を用いる各種の関数があります。
CopySign Default0 DefaultOverflow DefaultUnderflow denom frem ilog10 ilog2 Im NextAfter numer NumericClass OrderedNE Re Scale10 Scale2 SFloatExponent SFloatMantissa Unordered
infinity に関する注意
量 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 を参照して下さい。
undefined についての注意
量 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 となります。
この約束は Default0 関数により実現されています。
上で述べたようにして、複素無限大に関する約束事に従い、2 つの成分が共に不動小数点数ゼロであるような複素数全般を Maple は取り扱っています。繰り返しますが、これは約束事であって、複素数 0. + 0.*I、 0. - 0.*I などの実部または虚部の符号をプログラムが常に引き継いで行かねばならないこという意味ではありません。
例
2.3;
2.;
-.3;
-2.3e4;
% * 1.2e5;
Default0();
Rounding := -infinity;
2. - 2.;
Float(23,-45);
SFloat(23,-45);
2e-3;
interface(prettyprint=0); 2.3;
2.3
-.23e5
-.276e10
.23e-43
参照
constant, convert, Default0, Digits, evalf, integer, op, type, type/cx_infinity, type[float], type[numeric], type[sfloat], UseHardwareFloats
Download Help Document