アルゴリズムのモニターと選択

Mathematica の関数は内部がどのような仕組みになっているのかを知る必要がないように注意深く設定されている.しかし,特に反復アルゴリズムを使用する数値計算の場合には,アルゴリズムの内部過程がモニターできると便利なことがある.

StepMonitorステップが成功した場合に常に評価される式
EvaluationMonitor入力からの関数が評価された場合に常に評価される式

数値関数の過程のモニター

これはステップが取られる度にの値を出力する.
In[1]:=
Click for copyable input
Out[1]=

ではなく を使うのが重要であることに注意されたい.expr が規則が与えられたときだけではなく,使われる度に評価されるためには遅延型の規則が必要である.

ReapSowは取るステップのリストを作る便利な方法を提供する.
In[2]:=
Click for copyable input
Out[2]=
これでステップを数える.
In[3]:=
Click for copyable input
Out[3]=

解へ向けて着実にステップを重ねるために,反復的な数値アルゴリズムが与えられた関数を数回評価しなければならないことがある.これは例えば各ステップが関数の値の差分によって導関数を推定しなければならないからだったり,ステップが成功するためにはいくつかの試みが必要だったりするからである.

これは解に到達するための有効なステップを示す.
In[4]:=
Click for copyable input
Out[4]=
これは関数が評価されたすべての場合を示す.
In[5]:=
Click for copyable input
Out[5]=
Mathematica のアルゴリズムによる評価パターンは非常に複雑なことがある.
In[6]:=
Click for copyable input
Out[6]=
Method->Automatic自動的にメソッドを選択する(デフォルト)
Method->"name"明示的に使用メソッドを指定する
Method->{"name",{"par1"->val1,...}}メソッドをより詳細に指定する

Methodオプション

特定のタイプの数値計算のため複数の異なるメソッドが知られていることがある.そのような場合に Mathematica は普通文献で説明されているもの,説明されていないものの中で一般に最も成功率が高いものをサポートする.特定の問題に対し,最良のメソッドを自動的に選択するのには多大な努力が必要である.しかし,問題をよく知っていれば,あるいは数値メソッドについて研究しているのであれば,使うべきメソッドを Mathematica に明示的に与えてみてもよいだろう.関数レファレンスページには Mathematica に組込まれているメソッドのいくつかが載っている.その他のメソッドについては「数値および関連関数」あるいは拡張ドキュメントで説明してある.

これはメソッド 使って微分方程式を解き,必要なステップと評価を返す.
In[7]:=
Click for copyable input
自動選択されたメソッドの場合,これは必要なステップと評価の数になる.
In[8]:=
Click for copyable input
Out[8]=
これは他のいくつかのメソッドではどうなるかを示している.自動的に選択されたアダムス(Adams)法が最も速い.
In[9]:=
Click for copyable input
Out[9]=
これは差分次数のパラメータが変更された場合に陽的ルンゲ・クッタ(Runge-Kutta)法を使ったらどうなるかを示している.
In[10]:=
Click for copyable input
Out[10]=
New to Mathematica? Find your learning path »
Have a question? Ask support »