テクノロジーガイド--この技術が違いを生み出す
タスク指向のスーパー関数(TOSF: Task-oriented Superfunctions)

Mathematica のタスク指向の強力な関数は,その各々が Mathematica 以外のシステムにおける多数のアルゴリズムベース関数の機能を有しています.

他の計算システムとは異なり,Mathematica の関数は「タスク指向」です.これはどのアルゴリズムを使ってタスクを行うかではなく,どのタスクを行うかがベースとなっていることを表しています.

この特徴により,Mathematica の「スーパー関数」と呼ばれる関数で操作する高レベル,多段階,マルチアルゴリズムのタスクが特に影響を受けます.例として,微分方程式の数値解法を考えます.これは,Mathematica ではNDSolveを使うだけで行えます.このタスク指向のスーパー関数は,適用すると自動的に方程式を分析し,ユーザが特に指定しない限り,数多くのアルゴリズムやコントローラメソッドから,素早く正確な解を求めるためのものを選びます.これらは計算の途中で,さらなる最適化のために変更されることもあります.

一方,Mathematica 以外の計算システムでは,方程式を手動で分析して,どの関数を適用するかを自分で決めます.例えばMatlabでは,NDSolveの代りにode45,ode23,ode113,ode15s,bvp4c,pdepe等の中から自分で1つ選びます.選択を誤ると,計算が非効率になったり,すべて失敗に終ったり,なお悪いことに,不正確な解を返したりします.また,計算途中での変更はできません.

TOSFのもうひとつの決定的な利点として,将来に渡って保障されていることが挙げられます.アルゴリズムの革新に伴って,TOSFも改善されますが,入出力形式には影響しません.従って,水面下で最新の計算技術を取り入れながらも,互換性は維持できるのです.

この図は,タスク指向のスーパー関数が,Mathematica 以外のシステムにおける多数の関数に取って代る様子を表しています.



Select Language: en