Maple Professional
Maple Academic
Maple Student Edition
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professional
MapleSim Academic
Maple T.A. - Testing & Assessment
Maple T.A. MAA Placement Test Suite
Möbius - Online Courseware
Machine Design / Industrial Automation
Aerospace
Vehicle Engineering
Robotics
Power Industries
System Simulation and Analysis
Model development for HIL
Plant Modeling for Control Design
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematics Education
Engineering Education
High Schools & Two-Year Colleges
Testing & Assessment
Students
Financial Modeling
Operations Research
High Performance Computing
Physics
Live Webinars
Recorded Webinars
Upcoming Events
MaplePrimes
Maplesoft Blog
Maplesoft Membership
Maple Ambassador Program
MapleCloud
Technical Whitepapers
E-Mail Newsletters
Maple Books
Math Matters
Application Center
MapleSim Model Gallery
User Case Studies
Exploring Engineering Fundamentals
Teaching Concepts with Maple
Maplesoft Welcome Center
Teacher Resource Center
Student Help Center
Maple の数値計算
このドキュメントでは、Maple の数値計算環境について説明します。以下のトピックごとに解説します。
数値計算環境の目的
数値形式
特殊値
環境変数
演算方式
イベント、例外、状態フラグ
型検証機能
関数と述語
入力と出力の書式設定
参考資料
Mapl における数値計算環境の目的
Maple の数値計算環境は、以下の目標を達成するために設計されたものです。
1. IEEE 規格に準拠
2. 各種の数値計算間で整合性を保つ (ハードウェア、ソフトウェア、厳密)
3. 例外イベントの処理を直接的にサポート
4. Numerical Algorithms Group (NAG) のルーチンの統合化
5. 環境に対する調整および拡張を追加する機能
IEEE 規格と Maple の数値計算
浮動小数点演算の IEEE/754 および IEEE/854 の規格では、Maple のような 任意精度の計算環境に自然な一般化を行います。このような自然な一般化を適用することにより、Maple はハードウェア計算 (固定精度)、ソフトウェア計算 (任意精度)、および厳密な数値計算の各環境で均一な表示を提供します。これに加え、コンピューター業界で IEEE/754 は広く採用されており、今では IEEE/754 に明確に準拠しているマシン上でのみ Maple がサポートされるまでになっています。
詳細については、IEEEdiffs を参照してください。
業界標準からの拡張
Maple の浮動小数点計算環境には、以下の機能を含む、IEEE/754 基準とは異なる点があります。
1. 記号データに関する拡張事項
2. 複素数に関する拡張事項
3. 平方根は基本演算とはみなされず、負の引数に対する 無効 の指示はしません。
4. RealToComplex イベントは、real (実数) 入力を受け取って結果を complex (複素数) で返す演算処理を含みます。
Maple の数値計算環境では、以下の数値形式をサポートします。各形式には当該の コンストラクタ 関数と 型検証 関数があります。詳細については、constructor と type-checking の各ヘルプページを参照してください。
形式
コンストラクタ
型検証関数
整数
Integer
type[integer]
有理数
Fraction
type[fraction]
浮動小数点
Float
type[float]
ソフトウェア浮動小数点
SFloat
type[sfloat]
Maple ハードウェア浮動小数点
該当なし
type[hfloat]
複素数
Complex
type[complex]
ソフトウェア の浮動小数点 (sfloat 型) および一般の浮動小数点 (float 型) は、同じオブジェクトとみなされます。
Maple ハードウェアの浮動小数点 は、rtables (Maple V Release 5 および 5.1 では、ハードウェア浮動小数点要素を持つ rtables は hfarrays でした) として評価器 evalhf 内部にのみ存在できます。rtables にハードウェア浮動小数点エントリを持つ特殊な Matrix および Vector では、NAG ライブラリルーチンを呼び出す線形代数計算を行う方法が一般的です。この方法は、記号計算分野で実施される同様の計算でかなり高い効率性が得られます (UseHardwareFloats も参照してください)。
上記の任意の形式における数値オブジェクトが式での構造単位です。つまり、これらは map() から見た 最小単位 です。これらのオブジェクト (分子、分母、符号、仮数、指数、実数部、虚数部) の演算コンポーネントを抽出するために標準関数が与えられます。セクション 関数と述語 を参照してください。
上記のセクションで示した各種の数値形式では、次の特殊記号を使用します。
無限 (+infinity と -infinity の両方)
未定義 (IEEE/754 NaN ("Not a Number"「数でない」) を表す)
両方の無限性と少なくとも 1 つの未定義が、それぞれの数値形式で表現されます (前セクションに一覧した当該コンストラクタに関するヘルプページを参照してください)。これらの特殊記号の詳細については、無限 および 未定義 の各ヘルプページを参照してください。
数値環境での演算を制御する環境変数は 4 種類あります。環境変数の機能の詳細については、それぞれのヘルプページを参照してください。
Digits
計算時の精度を制御
浮動小数点演算
Rounding
浮動小数点の演算結果の丸めを制御
NumericEventHandlers
有効化された数値イベントハンドラプロシージャを含む
UseHardwareFloats
ハードウェアまたはソフトウェア環境で浮動小数点演算を実施するかどうかを決定
標準演算
標準的な演算で、加算、減算、乗算、ゼロ以外の数値の除算、整数の指数計算などを行います。
複雑な演算
複雑な演算は標準の公式に従って実装され、現在の数値環境で表現可能な計算結果の場合、正しく丸められて無限に精密な結果が生成されます。さらに、少なくとも 1 つのオペランドが複素数の場合は、演算処理の結果すべての複素数オペランドが純粋に虚数でない限り、演算結果は実数になります (この場合は Maple の結果は実数です (Complex(1)^2 = Integer(-1)など))。
注意: 実数の複素共役は、虚数部 0 を持つ複素数ではなく、その実数です。
演算に 0、無限、未定義が含まれる場合
A. 実数の場合
少なくとも 1 つのオペランドが 無限、0 または 未定義 で、例外が提示されていない場合、実数のオペランドに対する累乗以外の演算処理におけるデフォルト結果には、次の規則が指定されます (イベント、例外、状態フラグを参照してください)。 この規則は順番にチェックされます。x は先の規則に含まれていない複素数以外の値を表し、sgn(x) は記号 x を意味します。
1. 任意の基本演算は、いずれかのオペランドが未定義の場合、未定義の結果が返されます (通常、いずれかの入力が未定義の場合)。
2. ()
3. ()
4.
5. 丸めモードが Round toward -infinity に設定されている場合を除き、結果は丸めモードにかかわらず -0; になります。
6.
7.
8.
9. if および if になります。
B. 複素数の場合
複素数演算の規則は、これに相当する実数演算の規則から継承されます。このような規則に含まれるのは、無限、未定義、0 に対する演算の規則ですが、例外は、ある演算のオペランドが 2 つの引数を取る複素数値で、そのうち確実に 1 つのコンポーネントが 0 の場合です (つまり、+0.0 か -0.0)。このような場合は、0 コンポーネントによって 量的情報ではなく質的情報が提供されると解釈する必要があります。とりわけ、このような 0 コンポーネントを無限小の値と解釈するべきではありません。この場合の演算では、関連するオペランドが演算上等価の純粋な虚数値と置き換えられた場合と質的に同じ結果が生成されます。現実には、通常の演算規則に従って符号情報が取得され、0 コンポーネント、undefined または infinity の積は 0 になります。
関数の評価でもこの解釈が継承されます。
たとえば、 とした場合、次のようになります。
*
ただし、
となります。これは、それぞれの結果における虚数部によっては z が分岐の場合とそうでない場合があるためです。
無限を含む演算も同様です。
0 に等価の任意の実数または複素数と任意の無限との積の場合、次のように標準の規則が適用されます。
複素数のいずれかの要素が無限の場合、数値計算の便宜上、この数字は無限とみなされます。
Maple は例外イベントを処理するための直接的なサポートを提供します。環境変数 NumericEventHandlers は、有効な数値イベントハンドラプロシージャを保持します。イベントと状態フラグの詳細については、以下の各種ヘルプページを参照してください。
events
NumericEvent
NumericEventLocation
NumericEventHandler
NumericStatus
Maple の数値計算環境には型検証機能があります。
注意: IEEE/754 では 述部 (IsFinite(expr) など) を使用することから演算の失敗が許容されます (符号 Invalid) が Maple では通常 types (type(expr, finite) など) を使用し、true を返すことができないときは false を返す必要があります。
さまざまな数値の型については、numeric_types ヘルプページを参照してください。
関数と述部
Maple の数値演算環境には、以下の関数と述部が用意されています。これらは IEEE/754 Standard を拡張した関数と述部です。特定の関数または述部の詳細については、当該ヘルプページを参照してください。
関数
conjugate
CopySign
Default0
DefaultOverflow
DefaultUnderflow
denom
ilog10
Im
NextAfter
numer
NumericClass
Re
Scale10
SFloatExponent
SFloatMantissa
sqrt
述部
relational operators
Unordered
OrderedNE
Maple でサポートする数値形式は、さまざまな種類の書式で設定することができます。数値の入力および出力の書式設定の詳細については、ヘルプページの printf と scanf を参照してください。
Maple 数値計算環境の開発に利用されている IEEE 規格および他の参考資料の詳細については、numericrefs のヘルプページを参照してください。
Download Help Document