リッシュのアルゴリズム
数学におけるリッシュのアルゴリズム(Risch Algorithm、リッシュの算法)とは不定積分を行う(すなわち、ある式の原始関数を求める)アルゴリズムであり、数学者ロバート・H・リッシュに因む。その鍵は不定積分の問題を微分代数の問題へと変換することである。代数学の一分野である微分代数においては、抽象的な微分操作の下での関数の振る舞いが考察される。このことは、不定積分を困難にしている指数関数、対数関数およびべき乗をブラックボックスとして扱う上で都合が良い。
リッシュは1968年にこのアルゴリズムを開発したが、それを決定手順と呼んでいた。このアルゴリズムは与えられた関数がその不定積分を初等関数の範囲に持つかどうかを決定するものだからである。そうして存在するのであれば、それを具体的に与える。
1976年には高速だが一般性の低いリッシュ=ノーマンのアルゴリズムが開発されている。
リッシュのアルゴリズムをプログラミング言語によりコンピュータで実行できる形に書き下すことは困難であり、ヒューリスティクスの利用を含めた多数の改変を施す必要がある。実際、2008年5月現在ではこれを完全に実装したソフトウェアは未だ存在しない。ただし、いくつかの計算機代数システムはこれを部分的に実装している。
以下に、(2008年5月現在で)既存のいかなるソフトウェアも不定積分を計算できないような例を示す:
f ( x ) = ( x + 1 ) 2 + ( 3 x + 1 ) x + ln  x x x + ln  x ( x + x + ln  x ) . {\displaystyle f(x)={\frac {(x+1)^{2}+(3x+1){\sqrt {x+\ln x}}}{x\,{\sqrt {x+\ln x}}(x+{\sqrt {x+\ln x}})}}.}
しかしこの式には短い不定積分が存在する:
F ( x ) = 2 ( x + ln  x + ln  ( x + x + ln  x ) ) + C .