Mathematica バージョン1以降の非互換変更
イントロダクション
Mathematica の新バージョンには,常に多くの新しい機能が含まれている.しかし当初からの周到なデザインにより,すべてのバージョン間でほぼ完全な互換性が保たれている.その結果,例えば1988年のバージョン1用に書かれたほとんどすべてのプログラムは,Mathematica バージョン7でもそのまま変更なしで走り,かつ実行速度も大いに向上している.
しかし不可避の問題として,プログラムで大文字で始まる名前が使用されている場合,そのプログラムが最初に書かれたバージョン以降に,その名前と競合するような組込み関数が Mathematica に追加された可能性もある.
さらに,Mathematica の全体を通した一貫性の保持のため,初期のバージョンの関数のうち,最初はアンドキュメント化,次に使用された場合に警告が発生し,段階的に削除されたものがある.さらに稀ではあるが,初期のバージョンと互換でない特定の関数に対して,変更を加えることも必要になった.
バージョン1とバージョン2
260個の組込みオブジェクトが新たに追加された.名前がすでに使用されているものと競合するものもある.
Accumulateは,FoldListに置き換えられ,Foldが追加された.
Condition(
)は,完全な規則と同様に個別のパターンでも使用可能となり,デフォルトでは評価は実行されない.
Releaseの機能は,EvaluateとReleaseHoldとに分割された.
Composeは,Compositionに置き換えられた.
Debugは,Traceおよび関連する関数に置き換えられた.
Powerは,もはやSqrt[x^2]→x のような変換は自動的には実行しない.
Limitは,デフォルトでは未知の関数に対して評価を実行しない.
Modは数値だけを処理し,PolynomialModは多項式を処理する.
CellArrayは,RasterおよびRasterArrayに置き換えられた.
FontFormのフォント指定形式はわすかに異なる.
Framedは,Frameおよび関連する関数に置き換えられた.
ContourLevelsおよびContourSpacingは,Contoursに置き換えられた.
Plot3Matrix は,ViewCenterおよびViewVerticalに置き換えられた.
FromASCIIおよびToASCIIは,それぞれFromCharacterCodeとToCharacterCodeに置き換えられた.
Aliasは,$PreReadに置き換えられた.
ResetMediumは,SetOptionsに抱合され,$$MediaはStreamsに置き換えられた.
StartProcessは,Installおよび MathLink に置き換えられた.
バージョン2とバージョン3
259個の組込みオブジェクトが追加された.すでに使用されている名前と競合するものもある.
N[expr, n]は,従来は n 桁精度で評価を開始しただけであったが,可能な限り常に n 桁精度での評価を試みる.
近似数値を含む数値関数および数値定数だけの式は,常に近似数値形式に変換される.
以前は評価されなかった厳密な数値を含む式が評価されるようになった.例:Floor[(7/3)^20]
PlusおよびTimesは,組込み規則がユーザ定義規則に優先して適用されるため,
のような定義はできなくなった.
および
の演算子優先順位がともに
よりも低くなった.その結果,従来InputFormで
と書かれた式は,
と書き直す必要がある.V2Get[file]は従来の演算子優先順位を使用してファイルを読む.
は,上付き文字生成の演算子となった.制御文字の入力には,
の代りに,8進コードを使用する必要がある.
Mathematica ノートブック環境で,デフォルトで特殊文字を使用して出力される Mathematica 組込み関数がいくつかある.例:
は,StandardFormで
と出力される.
定積分はより洗練され,オプションでGenerateConditions->Falseを指定しない限り,条件別の積分結果をIf式で出力する.
HeldPart[expr, i, j, ...]は,Extract[expr, {i, j, ...}, Hold]に置き換えられた.
Literal[pattern]は,HoldPattern[pattern]に置き換えられた.Verbatim[pattern]が新たに導入された.DownValuesに代表される関数は,結果をLiteralではなくHoldPatternで包んで返す.
ReplaceHeldPart[expr, new, pos]が,ReplacePart[expr, Hold[new], pos, 1]に置き換えられた.
ToHeldExpression[expr]が,ToExpression[expr, form, Hold]に置き換えられた.
関数数式処理でオプションだったTrigは,明示的関数TrigExpand,TrigFactorおよびTrigReduceに置き換えられた.
AlgebraicRulesは,PolynomialReduceに置き換えられた.
オプションLegendreTypeは,LegendrePおよびLegendreQへの付加的なオプション引数に置き換えられた.
WeierstrassP[u, {g2, g3}]は,
および
をリストとして引数に取る.
および
は,組込み値だけしか取れないが,Mathematica 文字すべてを扱うことができる.
は,サポートされていない.
実数の近似精度は,InputFormのデフォルトで,数字精度(digits`prec)のように得ることができる.この動作は$NumberMarksでコントロールできる.
近似された大きな実数は,InputFormではデフォルトで
と与えられる.
HomeDirectory[ ]は,$HomeDirectoryに置き換えられた.
Dumpは,DumpSaveに置き換えられた.
今日すべてのコンピュータシステムは,パイプとリンクをサポートしているため,
および
はもはや必要ではなくなった.
LinkOpenは,LinkCreate,LinkConnectおよびLinkLaunchに置き換えられた.
Subscriptedは,RowBox,SubscriptBox等に置き換えられた.
SubscriptおよびSuperscriptは,単なる上付き文字,下付き文字ではなく,完全に上付きになった,あるいは下付きになった数を表す.
FontFormおよびDefaultFontは,StyleFormとTextStyleに置き換えられた.
ノートブックフロントエンドでは,以下の変更がなされた.
ノートブックの新たな機能をサポートするため,ノートブックのファイルフォーマットが完全に変更された.
ノートブックファイルの拡張子は,従来の.maでなく,デフォルトで.nbとなった..mbファイルはもはや使用しない.
旧式のノートブックを開くと,バージョン3のノートブックへの変換を実行するか否かについてフロントエンドは自動的に聞いてくるようになった.
カーネルコマンドNotebookConvertを使用して,バージョン2のノートブックファイルをバージョン3のフォーマットに変更できる.
入力セルのデフォルトフォーマットタイプは,InputFormではなくStandardFormになった.
スタイルシートの構成およびデフォルトスタイルの設定も変更された.
メニュー項目に対応するキーコマンドも再編成された.
バージョン3とバージョン4
61個の組込みオブジェクトが新たに追加された.すでに使用されている名前と競合するものもある.
N[0]は,厳密なゼロではなく,機械精度のゼロを返す.
は,Optionsと同じ形式の結果を返すAbsoluteOptionsに置き換えられた.
Element[x, y]または
は,組込み評価規則を有する.
記号IおよびEがStandardFormで,それぞれ
(\[ImaginaryI]),
(\[ExponentialE])と出力されるようになった.
CompiledFunctionに新規に2番目の引数が新規に追加され,コンパイルされた関数の処理と作成が容易になった.
バージョン4とバージョン5
44個の全く新しい組込みオブジェクトが加えられた.この中には名前がすでに使用されているものと競合するものもある.
PrecisionとAccuracyが桁数の推定整数値だけでなく,数の不確定性の厳密な尺度も返すようになった.
Precisionが機械数については数値$MachinePrecisionではなくシンボルMachinePrecisionを返すようになった.
N[expr, MachinePrecision]が機械数の数値評価に使われるようになった.N[expr, $MachinePrecision]は任意精度数を生成する.
ConstrainedMinとConstrainedMaxがMinimize,Maximize,NMinimize,NMaximizeに置き換えられた.
SingularValuesはSingularValueListとSingularValueDecompositionに置き換えられた.SingularValueDecompositionは以前とは異なったより完全な定義を使う.
LUBackSubstitutionが,より一般的なLinearSolveFunctionの使用に置き換えられた.
FindRoot[f, {x, {x0, x1}}]が値のペアではなく x の初期ベクトルの指定に使われるようになった.FindMinimumも同様である.
DSolveConstantsがより一般的なオプションGeneratedParametersに置き換えられた.
TensorRankがArrayDepthに置き換えられた.
$TopDirectoryが$InstallationDirectoryと$BaseDirectoryに置き換えられた.
異なるコンピュータシステムに接続する際のMathLink LinkProtocolオプションのデフォルト設定が
ではなく
になった.
バージョン5とバージョン6
グラフィックス機能は大きく変更された.互換性のためには,
を使い Mathematica 5のグラフィックス機能を復元する.Mathematica 6のグラフィックス機能に戻すには,
を使う.
800を超える全く新しい組込みオブジェクトが加わった.その名前の中には,すでに使用されているものに抵触するものもある可能性がある.
GraphicsオブジェクトあるいはGraphics3Dオブジェクトの出力形式が,
のような出力ではなく描画されたグラフィックスになった.
$DisplayFunctionがIdentityに設定されたため,グラフィックスを評価するときにデフォルトでは二次的出力が出なくなった.バージョン5の出力のような二次的出力が生成したい場合は,Printを使ってグラフィックスを出力することができる.
グラフィックスのデフォルトフォントがCourierからTimesに変更された.
GraphicsArrayがGraphicsGridとGridに置き換えられた.
GraphicsとParametricPlotのAspectRatioのデフォルト値がAutomaticになった.
PlotのオプションのPlotDivisionが,MaxRecursionに置き換えられた.
ListPlotのPlotJoinedオプションがListLinePlotに置き換えられた.
Plot3D[{f, s}, {x, xmin, xmax}, {y, ymin, ymax}]:陰影付け指定 s がMeshShadingに置き換えられた.
オプションHiddenSurface->FalseがPlotStyle -> FaceForm[ ]に置き換えられた.
ContourGraphicsがListContourPlotとGraphicsComplexに置き換えれらた.
DensityGraphicsがListDensityPlotとGraphicsComplexに置き換えられた.
Plot3Dおよびその他の3Dプロット関数がPolygonプリミティブのリストではなくGraphicsComplexを出力するようになった.
ListPlotが点のリストを1つのPointプリミティブにまとめるようになった.
MeshRangeオプションがDataRangeに置き換えられた.
DensityPlotとListDensityPlotがデフォルトでメッシュを描かなくなった.
ListPlot3D[array, shades]がMeshShadingで置き換えられた.
3DグラフィックスのSurfaceColorが,明示的な色指定および指示子Specularity,Glowで置き換えられた.
Lightingが,スポットライト,ポイント光源,指向性照明,アンビエント照明を含む異なる光源を指定するシンタックスをサポートするようになった.
グラフィックスプリミティブの
がサポートされなくなった.
オプションRenderAllとPolygonIntersectionsがサポートされなくなった.
Rectangle[{xmin, ymin}, {xmax, ymax}, graphics]がInsetに置き換えられた.
StyleFormとStylePrintがStyleに置き換えられた.
TextStyleは,一般的なBaseStyleのメカニズムに置き換えられた.
SequenceFormはRowに置き換えられた.
バージョン6とバージョン7
400を超える全く新しい組込みオブジェクトが加わった.その名前の中には,すでに使用されている名前に抵触するものもある可能性がある.
ラスター画像形式では,Import[file]でGraphics[Raster[...]]の代りにImage[...]が返され,新しい画像処理機能が利用できるようになった.file をGraphics式としてインポートするためにはImport[file, "Graphics"]を使う.
より正確な式構造を得るため,Import[file, "XML"]およびExport[file, "XML"]は常に記号的XML式だけをインポート・エキスポートするようになった.Import["file.xml"]では Mathematica 6のように,自動的にXML形式を決定する.
より広範なインタラクティブコントロールを実現するため,オプション
の名前がTooltipDelayに変更された.使用法には変更はない.