Maple 9 互換性の変更点
以下では、Maple 8 からMaple 9 にアップグレードする際の互換性の問題を簡単に述べます。
|
自動簡単化
|
|
•
|
Mapleの評価モデルは、必ずしもすべての状況で成り立たない式についても、しばしば仮定を行い、仮定が満たされない場合には数学的に正しくない結果を返します。例えば、x*0 => 0 という簡単化を、x が、浮動小数点数 (floating point number), 行列 (Matrix), 未定義(undefined), あるいは、無限大 (infinity) の場合に評価することです。
|
|
これらの変換を自動的に行うアプリケーションは、これまで、変換はほとんど常に正しいものであり、それらを適用しないと表現が長くなるために使用されていました。自動変換の賛否いずれも何らかの利点をもつ一方、不満の声やバグ報告も数多くあります。従って、変更することが必要になりました。
|
|
Maple 9 では、いくつかの仮定が削除されました。x*0 と 0/x は、xの値により、この簡単化が正しくない場合、0 に自動的に簡単化されません。しかし、x が割り当てられていない名前 (unassigned name) である場合、簡単化が実行されます。
|
|
同様に、0^x は、現在は自動的に 0 に簡単化されません。しかし、x が割り当てられていない名前 (unassigned name) である場合、簡単化が実行されます。x/xについても同じことが成り立ち、現在は自動的に 1 に簡単化されません。また、x*x については、現在は自動的にx^2と簡単化されません。x が乱数を生成する関数である場合、x^2は 、正しくありません。
|
|
さらに、定数演算子は、数に簡単化されません。たとえば、x -> 1 は、1と簡単化されません。また、 x -> f(x) のような式は、f に簡単化されません。 f が、1 つの引数の他にも引数をとることができる場合、これは正しくないことに注意してください。
|
|
関連する問題として、プロシージャの簡単化では、変換時に、変換を正しく適用することが問題となります。これらの変換は、たとえば、プロシージャに渡される特別な引数に対して、あるいは、プロシージャがコールされる環境に対して、プロシージャが実行される時点に正しくない可能性があります。特に、Digits の値は、異なる可能性があります。従って、計算が浮動小数点数を伴うプロシージャを簡単化することは避けます。
|
|
|
プロッティング
|
|
•
|
ルーチン plots[cylinderplot] と plots[sphereplot] が廃止されました。これと同じ機能は、コマンド plot3d で、coords=cylindrical あるいは、coords=spherical オプションを使用することにより実現できます。様々な座標系でのプロットについての詳細は、?plot3d[coords] を参照してください。
|
|
|
OLE オブジェクトと組み込みのMetafiles
|
|
•
|
Windows のMaple 8 ワークシートインタフェースでは、 ワークシートは、OLE オブジェクトと組み込みの Metafiles を含むことができます。これらの種類のファイルは、どのプラットフォームでも Standard Maple 9 ワークシートで利用することができません。このようなワークシートを開くと、ワーニングのダイアログが表示されます。この場合、Standard ワークシートインタフェースを用いてワークシートを保存すると、組み込みデータは保存されません。
|
|
Standard Maple 9 ワークシートインタフェースでは、 挿入>画像 メニューの項目を使用して、画像を挿入することができます。OLE オブジェクトとは異なり、画像はどのプラットフォームでも見ることができます。
|
|
|
線形代数
|
|
•
|
LinearAlgebra ルーチン MatrixInverse に対するプログラマのエントリポイントのための呼び出しのシークエンス、LinearAlgebra:-LA_Main:-MatrixInverse が変更され、Moore-Penrose ソルバのよりロバストな使用が可能になりました。利点は、オプションにより、provisoの出力をリクエストすることができる点で、出力値が小さくなければ、結果の正しさを保証することができます。浮動小数点の場合、許容誤差は、現在、オプションにより提供されます。計算を実行する際、許容誤差の指定より小さい特異値は許容されます。この内部エントリポイントに対する、新しいコーリングシークエンスは、MatrixInverse( A :: {Matrix,list}, method :: identical(method) = symbol, methopts :: identical(methodoptions) = list, conj :: identical(conjugate) = truefalse, outpt :: identical(output) = list, outopts :: identical(outputoptions) = list ) :: Matrixです。 最も重要なユーザエントリポイントLinearAlgebra:-MatrixInverseは、以前のコーリングシークエンスを保持し、新たな引数は、必要としません。
|
|
|
XMLTools
|
|
•
|
関数 JoinEntities, SeparateEntities, MakeElement, DocumentIterator は、廃止されました。
|
|
|
Worksheet パッケージ
|
|
•
|
関数 Process と Validate は、Maple 9 では必要ありません。これらは、廃止されました。
|
|
|