超幾何関数が満たす微分方程式を超幾何微分方程式と呼びます。具体的には $$F(x)=_{2}F_1\left(a,b;c;x\right)$$ の時、 $$x\,(1-x)\frac{d^2\,F(x)}{d\,x^2}+(c-(a+b+1)\,x)\,\frac{d\,F(x)}{d\,x}-a\,b\,F(x)=0$$ が成り立ちます。これを証明していきます。
証明の方針としては$A_n=\frac{(a)_n\,(b)_n}{(c)_n}$として、 $$F(x)=\sum_{n=0}^{\infty}\frac{A_n\,x^n}{n!}$$ から$\frac{d}{dx}F(x), \frac{d^2}{dx^2}F(x)$の級数展開を、係数に$A_{n+1}$が現れる場合と$A_n$が現れる場合と2通り計算します。
次に上記の$A_n$の定義から自明に導かれる漸化式$A_{n+1}=\frac{(a+n)\,(b+n)}{c+n}\,A_n$から$(c+n)\,A_{n+1}=(a+n)\,(b+n)\,A_n$の両辺を展開して、さらに両辺の総和を取ります。その各項を先ほど求めた微分に置き換えていくことでこの微分方程式を求めます。
準備としてout1stTerm()という関数を定義します。総和の式を引数としてとり、総和の最初の項を取り出し、それと第2項以降の総和の和にします。その際に第2項以降の総和を$n=0$から始まるように調整します。
out1stTerm(sumexp):=block([ar:args(sumexp),exp,varname,initvalue,finvalue],
[exp,varname,initvalue,finvalue]:ar,
subst(0,varname,exp)+apply(sum,[subst(varname+1,varname,exp),varname,initvalue,finvalue]))$
まず$F(x)$を級数展開の形で定義します。
F0:F(x)=sum(A[n]/n!*x^n,n,0,inf);
このまま微分します。
FD1_1:'diff(F(x),x)=diff(rhs(F0),x);
右辺にout1stTerm()を使って$n=0$の場合を外に出し、第2項以降の総和のインデックスを調整します。
FD1_2:lhs(FD1_1)=ev(out1stTerm(rhs(FD1_1)),factorial_expand:true);
FD2_1:'diff(F(x),x,2)=diff(rhs(FD1_1),x);
FD2_2:lhs(FD2_1)=ev(out1stTerm(rhs(FD2_1)),factorial_expand:true);
$A_n$の定義から次の漸化式が自明に成り立ちます。
Acond:A[n+1]=(a+n)*(b+n)/(c+n)*A[n];
expand(%*(n+c));
両辺に$\frac{x^n}{n!}$をかけた式について$n=0$から$\infty$まで総和を取ります。
SUM:factor(sum(%*x^n/n!,n,0,inf));
上記の式の左辺をじっと睨んでから、FD2_2式の両辺に$x$をかけた式およびFD1_2の両辺に$c$をかけた式の和を計算してみます。
LDE:factor(sumcontract(intosum(FD2_2*x+c*FD1_2)));
SUMの左辺とLDEの右辺が等しいことが見て取れます。
同様にFD2_1に$x^2$, FD1_1に$x\,(1+a+b)$, F0に$a\,b$をかけて足した式を計算します。
RDE:factor(sumcontract(intosum(FD2_1*x^2+FD1_1*x*(1+a+b)+a*b*F0)));
RDEの右辺とSUMの右辺が等しいことが見て取れます。
従ってLDEの左辺とRDEの左辺が等しいことがわかり、次の微分方程式が得られます。
lhs(LDE)=lhs(RDE);
%-args(rhs(%))[1]-args(lhs(%))[2];
%-rhs(%),ratsimp;
少し整理して所望の形の微分方程式を得ることができました。
display2d;
display2d:false;
print(%o13);