MATHEMATICAチュートリアル

例:独自の積分関数の定義

Mathematica におけるパターンの基本的な機能が導入されたので,これをほぼ完璧な例題に使ってみる.簡単な積分関数を Mathematica でどのように定義するかを見てみることにする.

数学的な見地からすると,積分関数は一連の数学的な関係によって定義される.パターンに関する変形規則を設定することで,これらの数学的な関係をきわめて直接的に Mathematica に実装することができる.

数学形式Mathematica における定義
integrate[y_+z_,x_]:=integrate[y,x]+integrate[z,x]
に独立)integrate[c_y_,x_]:=c integrate[y,x]/;FreeQ[c,x]
integrate[c_,x_]:=cx/;FreeQ[c,x]
, integrate[x_^n_.,x_]:=x^(n+1)/(n+1)/;FreeQ[n,x]&&n!=-1
integrate[1/(a_.x_+b_.),x_]:=Log[ax+b]/a/;FreeQ[{a,b},x]
integrate[Exp[a_.x_+b_.],x_]:=Exp[ax+b]/a/;FreeQ[{a,b},x]

積分関数の定義

以下で積分に線形性の関係 を実装する.
In[1]:=
Click for copyable input
Plusの結合性により,総和の中にいくつの項があろうとも線形性の関係が機能する.
In[2]:=
Click for copyable input
Out[2]=
これは,が積分変数に依存しない因子を取り出すようにする.
In[3]:=
Click for copyable input
Mathematica は各積の各項がFreeQの条件を満足するかどうか,すなわち取り出せるかどうかをテストする.
In[4]:=
Click for copyable input
Out[4]=
これは,定数の積分 を与える.
In[5]:=
Click for copyable input
これで,総和の中の定数項が積分できる.
In[6]:=
Click for copyable input
Out[6]=
これは, の積分の標準的な形式を与える.ではなくというパターンを使うことで, という場合を含むようにする.
In[7]:=
Click for copyable input
これで,完全に積分することができる.
In[8]:=
Click for copyable input
Out[8]=
もちろん,組込みの積分関数IntegrateIは大文字)を使っても積分できる.
In[9]:=
Click for copyable input
Out[9]=
次は,線形関数の逆数の積分規則である.いうパターンは,の任意の線形関数を表す.
In[10]:=
Click for copyable input
ここではもデフォルト値を取っている.
In[11]:=
Click for copyable input
Out[11]=
次は,より複雑な例である.ここでは,という記号がにマッチしている.
In[12]:=
Click for copyable input
Out[12]=
さらに多くの積分規則を加えることもできる.次は指数積分の規則である.
In[13]:=
Click for copyable input
New to Mathematica? Find your learning path »
Have a question? Ask support »