導関数の表し方
Mathematica の導関数は標準的な数学に現れる導関数と同じように使える.ただし,通常の数学表記は細かい点が省略されており,Mathematica における導関数の表し方を理解するには,細かい点も含めて考察する必要がある.
数学表記で導関数を
と書くとき,正式には,
を「ダミー変数」とした
を意味する.同様に,
と書けば,
を意味する.
の記述が示唆するように,オブジェクト
は「純粋な関数」とみなせ,その値はパラメータ
の値が決まると計算することができる.ある関数
を微分するということを,通常
と呼ばれる新たな関数を与える演算ととらえてもよい.
関数が複数の引数を持つときは,ダッシュ(
)を使った簡単な記述ができない.無理に,例えば,
と記述しても,それが
を表しているのか,または,
なのか分からずじまいになってしまう.また,これらのオブジェクトは
として実際に使う関数により値が違ってくるだろう.繰り返すようだが,
とはダミー変数であり,それを使う理由は単に「どの位置」の変数に対して
を微分するかを指定することにある.
特殊な数学の分野でそうであるように,Mathematica でも式ではなく関数に作用するとした微分操作を想定すると便利である.必要な操作内容は,関数
を抽出し,
の導関数
を返すというものである.このように変数ではなく関数を操作することを数学用語で演算子と呼ぶ.
つまり,Mathematica で得られるオブジェクト
とは,微分演算子を関数
に適用した結果を示している.
を完全形で見ると,Derivative[1][f]となっている.Derivative[1]の部分が微分演算子に相当する.
演算子Derivative[n1, n2, ...]に与える引数は,引数と同じ「位置」の変数に対して何階の微分を行うか指定する.演算子を使い微分を表しているので,Mathematica では特別な「ダミー変数」を導入する必要はない.
| In[1]:= |
Out[1]//FullForm= | |
| In[2]:= |
Out[2]//FullForm= | |
| In[3]:= |
Out[3]//FullForm= | |
| In[4]:= |
| Out[4]= |
| In[5]:= |
Out[5]//FullForm= | |
| In[6]:= |
Out[6]//FullForm= | |
| In[7]:= |
Out[7]//FullForm= | |
| In[8]:= |
Out[8]//FullForm= | |
| In[9]:= |
| Out[9]= |
| In[10]:= |
Out[10]//FullForm= | |
は,基本的に他のMathematica の関数と同様に機能する.この関数は引数が何であっても評価可能だし,Mathematica の置換記号
を使い引数を変えることも可能である.(ただし,微分の過程でダミー変数が特別に導入されるとこの操作は使えなくなる.)
| In[11]:= |
Out[11]//FullForm= | |
| In[12]:= |
| Out[12]= |
| In[13]:= |
| Out[13]= |
のような関数の定義をもとに
の値を決定するには,多少面倒な処理が必要になる.
| In[14]:= |
| In[15]:= |
| Out[15]= |
| In[16]:= |
| Out[16]= |
| In[17]:= |
| Out[17]= |
導関数
は,関数
の持つ構造により完全に決定される.
のような関数の定義は,そのままでは
のような式に適用できない.これは,完全形では
がDerivative[1][f][x]と表されるために
のパターンにマッチできないからである.それでも,多くの場合,
を単独の関数として扱い,引数を付けないでおいた方が便利である.
Mathematica で関数の微分をすると,
を表す純関数の明示的な定義を検索しようと試みる.例えば,Derivative[1][f]の式を与えると,これがD[f[#], #]&という明示的な形にまず変換され,続いて,可能であれば導関数が評価される.明示的な形ができれば,直ちに
のような関数定義が使われ導関数が構成される.この微分操作がうまくいけば,関数定義をもとにした導関数が返ってくる.一方,微分演算がうまくいかないと,もとの
のままで返される.
| In[18]:= |
| Out[18]= |
| In[19]:= |
| Out[19]= |
