WOLFRAM言語チュートリアル

Mathematica バージョン1以降の非互換変更

イントロダクション

Mathematica の新バージョンには,常に多くの新しい機能が含まれている.しかし当初からの周到なデザインにより,すべてのバージョン間でほぼ完全な互換性が保たれている.その結果,例えば1988年のバージョン1用に書かれたほとんどすべてのプログラムは,Mathematica バージョン7でもそのまま変更なしで走り,かつ実行速度も大いに向上している.

しかし不可避の問題として,プログラムで大文字で始まる名前が使用されている場合,そのプログラムが最初に書かれたバージョン以降に,その名前と競合するような組込み関数が Mathematica に追加された可能性もある.

さらに,Mathematica の全体を通した一貫性の保持のため,初期のバージョンの関数のうち,最初はアンドキュメント化,次に使用された場合に警告が発生し,段階的に削除されたものがある.さらに稀ではあるが,初期のバージョンと互換でない特定の関数に対して,変更を加えることも必要になった.

バージョン1とバージョン2

  • 260個の組込みオブジェクトが新たに追加された.名前がすでに使用されているものと競合するものもある.
  • Condition()は,完全な規則と同様に個別のパターンでも使用可能となり,デフォルトでは評価は実行されない.
  • Debugは,Traceおよび関連する関数に置き換えられた.
  • Powerは,もはやSqrt[x^2]x のような変換は自動的には実行しない.
  • Limitは,デフォルトでは未知の関数に対して評価を実行しない.
  • FontFormのフォント指定形式はわすかに異なる.
  • Framedは,Frameおよび関連する関数に置き換えられた.

バージョン2とバージョン3

  • 259個の組込みオブジェクトが追加された.すでに使用されている名前と競合するものもある.
  • N[expr,n]は,従来は n 桁精度で評価を開始しただけであったが,可能な限り常に n 桁精度での評価を試みる.
  • 近似数値を含む数値関数および数値定数だけの式は,常に近似数値形式に変換される.
  • 以前は評価されなかった厳密な数値を含む式が評価されるようになった.例:Floor[(7/3)^20]
  • PlusおよびTimesは,組込み規則がユーザ定義規則に優先して適用されるため,のような定義はできなくなった.
  • およびの演算子優先順位がともによりも低くなった.その結果,従来InputFormと書かれた式は,と書き直す必要がある.V2Get[file]は従来の演算子優先順位を使用してファイルを読む.
  • は,上付き文字生成の演算子となった.制御文字の入力には,の代りに,8進コードを使用する必要がある.
  • Mathematica ノートブック環境で,デフォルトで特殊文字を使用して出力される Mathematica 組込み関数がいくつかある.例: は,StandardForm と出力される.
  • 定積分はより洗練され,オプションでGenerateConditions->Falseを指定しない限り,条件別の積分結果をIf式で出力する.
  • WeierstrassP[u,{g2,g3}]は,および をリストとして引数に取る.
  • およびは,組込み値だけしか取れないが,Mathematica 文字すべてを扱うことができる.
  • は,サポートされていない.
  • 実数の近似精度は,InputFormのデフォルトで,数字精度(digits`prec)のように得ることができる.この動作は$NumberMarksでコントロールできる.
  • 近似された大きな実数は,InputFormではデフォルトで と与えられる.
  • 今日すべてのコンピュータシステムは,パイプとリンクをサポートしているため,およびはもはや必要ではなくなった.
  • SubscriptおよびSuperscriptは,単なる上付き文字,下付き文字ではなく,完全に上付きになった,あるいは下付きになった数を表す.

ノートブックフロントエンドでは,以下の変更がなされた.

  • ノートブックの新たな機能をサポートするため,ノートブックのファイルフォーマットが完全に変更された.
  • ノートブックファイルの拡張子は,従来の.maでなく,デフォルトで.nbとなった..mbファイルはもはや使用しない.
  • 旧式のノートブックを開くと,バージョン3のノートブックへの変換を実行するか否かについてフロントエンドは自動的に聞いてくるようになった.
  • カーネルコマンドNotebookConvertを使用して,バージョン2のノートブックファイルをバージョン3のフォーマットに変更できる.
  • 入力セルのデフォルトフォーマットタイプは,InputFormではなくStandardFormになった.
  • スタイルシートの構成およびデフォルトスタイルの設定も変更された.
  • メニュー項目に対応するキーコマンドも再編成された.

バージョン3とバージョン4

  • 61個の組込みオブジェクトが新たに追加された.すでに使用されている名前と競合するものもある.
  • N[0]は,厳密なゼロではなく,機械精度のゼロを返す.
  • Element[x,y]またはは,組込み評価規則を有する.
  • 記号IおよびEStandardFormで,それぞれ (\[ImaginaryI]), (\[ExponentialE])と出力されるようになった.
  • CompiledFunctionに新規に2番目の引数が新規に追加され,コンパイルされた関数の処理と作成が容易になった.

バージョン4とバージョン5

  • 44個の全く新しい組込みオブジェクトが加えられた.この中には名前がすでに使用されているものと競合するものもある.
  • PrecisionAccuracyが桁数の推定整数値だけでなく,数の不確定性の厳密な尺度も返すようになった.
  • FindRoot[f,{x,{x0,x1}}]が値のペアではなく x の初期ベクトルの指定に使われるようになった.FindMinimumも同様である.
  • 異なるコンピュータシステムに接続する際のWolfram Symbolic Transfer Protocol (WSTP) LinkProtocolオプションのデフォルト設定がではなくになった.

バージョン5とバージョン6

グラフィックス機能は大きく変更された.互換性のためには,を使い Mathematica 5のグラフィックス機能を復元する.Mathematica 6のグラフィックス機能に戻すには,を使う.

  • 800を超える全く新しい組込みオブジェクトが加わった.その名前の中には,すでに使用されているものに抵触するものもある可能性がある.
  • GraphicsオブジェクトあるいはGraphics3Dオブジェクトの出力形式が,のような出力ではなく描画されたグラフィックスになった.
  • $DisplayFunctionIdentityに設定されたため,グラフィックスを評価するときにデフォルトでは二次的出力が出なくなった.バージョン5の出力のような二次的出力が生成したい場合は,Printを使ってグラフィックスを出力することができる.
  • グラフィックスのデフォルトフォントがCourierからTimesに変更された.
  • Plot3D[{f,s},{x,xmin,xmax},{y,ymin,ymax}]:陰影付け指定 sMeshShadingに置き換えられた.
  • Plot3Dおよびその他の3Dプロット関数がPolygonプリミティブのリストではなくGraphicsComplexを出力するようになった.
  • ListPlotが点のリストを1つのPointプリミティブにまとめるようになった.
  • Lightingが,スポットライト,ポイント光源,指向性照明,アンビエント照明を含む異なる光源を指定するシンタックスをサポートするようになった.
  • グラフィックスプリミティブのがサポートされなくなった.
  • Rectangle[{xmin,ymin},{xmax,ymax},graphics]Insetに置き換えられた.

バージョン6とバージョン7

  • 400を超える全く新しい組込みオブジェクトが加わった.その名前の中には,すでに使用されている名前に抵触するものもある可能性がある.
  • ラスター画像形式では,Import[file]Graphics[Raster[]]の代りにImage[]が返され,新しい画像処理機能が利用できるようになった.fileGraphics式としてインポートするためにはImport[file, "Graphics"]を使う.
  • より正確な式構造を得るため,Import[file,"XML"]およびExport[file,"XML"]は常に記号的XML式だけをインポート・エキスポートするようになった.Import["file.xml"]では Mathematica 6のように,自動的にXML形式を決定する.
  • より広範なインタラクティブコントロールを実現するため,オプションの名前がTooltipDelayに変更された.使用法には変更はない.