{
"cells": [
{
"cell_type": "markdown",
"id": "eefca126-0432-4a34-810f-51b7fdac0c81",
"metadata": {},
"source": [
"### ガウス超幾何関数の2次変換公式\n",
"$${}_2F_1\\left(a,b;\\frac{a+b+1}{2};z\\right)={}_2F_1\\left(\\frac{a}{2},\\frac{b}{2}; \\frac{a+b+1}{2}; 4\\,z\\,(1-z)\\right)$$\n",
"を証明します。
\n",
"\n",
"証明の方針は公式の右辺と左辺が同じ微分方程式を満足すること、初期値が十分に等しいことを示すこととします。\n",
"この証明は[子葉さんの記事](https://mathlog.info/articles/1980)の定理4(2次変換公式)をほぼそのままMaximaの式変形コマンドに直したものになっています。
\n",
"\n",
"まず平行代入のための道具をロードしておきます。"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "30f10a0a-2f2c-4a45-bce0-fe495e0af88b",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{0}$}\\mbox{ /Users/yasube/Programming2/maxima-5.44.0-install/share/maxima/5.44.0/share/to\\_poly\\_solve/to\\_poly\\_solve\\_extra.lisp }\\]"
],
"text/plain": [
"(%o0) /Users/yasube/Programming2/maxima-5.44.0-install/share/maxima/5.44.0/sha\\\n",
"re/to_poly_solve/to_poly_solve_extra.lisp"
],
"text/x-maxima": [
"\"/Users/yasube/Programming2/maxima-5.44.0-install/share/maxima/5.44.0/share/to_poly_solve/to_poly_solve_extra.lisp\""
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"SB-KERNEL:REDEFINITION-WITH-DEFUN: redefining MAXIMA::$NONNEGINTEGERP in DEFUN\n",
"SB-KERNEL:REDEFINITION-WITH-DEFUN: redefining MAXIMA::$POLYNOMIALP in DEFUN\n",
"SB-KERNEL:REDEFINITION-WITH-DEFUN: redefining MAXIMA::POLYNOMIALP in DEFUN\n",
"SB-KERNEL:REDEFINITION-WITH-DEFMACRO: redefining MAXIMA::OPAPPLY in DEFMACRO\n",
"SB-KERNEL:REDEFINITION-WITH-DEFMACRO: redefining MAXIMA::OPCONS in DEFMACRO\n"
]
}
],
"source": [
"load(\"to_poly_solve_extra.lisp\");"
]
},
{
"cell_type": "markdown",
"id": "05b4b184-9cfb-463b-a3e9-c3c37a58fe2f",
"metadata": {},
"source": [
"以下のDFはガウス超幾何関数$F(x)={}_2F_1(a,b;c;z)$が満たす超幾何微分方程式です。"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "5689776d-5275-4243-9d79-a6535ccdabdc",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{1}$}\\left(x-x^2\\right)\\,\\left(\\frac{d^2}{d\\,x^2}\\,F\\left(x\\right)\\right)+\\left(\\left(-b-a-1\\right)\\,x+c\\right)\\,\\left(\\frac{d}{d\\,x}\\,F\\left(x\\right)\\right)-a\\,b\\,F\\left(x\\right)=0\\]"
],
"text/plain": [
" 2\n",
" 2 d d\n",
"(%o1) (x - x ) (--- (F(x))) + (((- b) - a - 1) x + c) (-- (F(x))) - a b F(x) = \n",
" 2 dx\n",
" dx\n",
" 0"
],
"text/x-maxima": [
"(x-x^2)*'diff(F(x),x,2)+(((-b)-a-1)*x+c)*'diff(F(x),x,1)-a*b*F(x) = 0"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"DF:(x-x^2)*diff(F(x),x,2)+((-b-a-1)*x+c)*diff(F(x),x)-a*b*F(x)=0;"
]
},
{
"cell_type": "markdown",
"id": "ce8ce8f2-7206-44b6-b586-23a6089e010d",
"metadata": {},
"source": [
"以下のDF1は公式の左辺$F(z)={}_2F_1\\left(a,b;\\frac{a+b+1}{2};z\\right)$が満たす微分方程式です。超幾何微分方程式の$c$に$\\frac{a+b+1}{2}$を代入して得られます。"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "62e9ee08-7bcf-4f65-983a-eb325a0adf23",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{2}$}\\left(z-z^2\\right)\\,\\left(\\frac{d^2}{d\\,z^2}\\,F\\left(z\\right)\\right)+\\left(\\left(-b-a-1\\right)\\,z+\\frac{b+a+1}{2}\\right)\\,\\left(\\frac{d}{d\\,z}\\,F\\left(z\\right)\\right)-a\\,b\\,F\\left(z\\right)=0\\]"
],
"text/plain": [
" 2\n",
" 2 d b + a + 1 d\n",
"(%o2) (z - z ) (--- (F(z))) + (((- b) - a - 1) z + ---------) (-- (F(z)))\n",
" 2 2 dz\n",
" dz\n",
" - a b F(z) = 0"
],
"text/x-maxima": [
"(z-z^2)*'diff(F(z),z,2)+(((-b)-a-1)*z+(b+a+1)/2)*'diff(F(z),z,1)-a*b*F(z) = 0"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"DF1:subst_parallel([c=(a+b+1)/2,x=z],DF);"
]
},
{
"cell_type": "markdown",
"id": "6f2cd188-977f-47bd-8097-197d5c80c98d",
"metadata": {},
"source": [
"公式の右辺を$G(z)={}_2F_1\\left(\\frac{a}{2},\\frac{b}{2}; \\frac{a+b+1}{2}; 4\\,z\\,(1-z)\\right)$とします。またこの右辺で$w=4\\,z\\,(1-z)$とした$g(w)={}_2F_1\\left(\\frac{a}{2},\\frac{b}{2}; \\frac{a+b+1}{2}; w\\right)$とします。次の式が成り立ちます。\n",
"$$G(z)=g(w)$$\n",
"以下のDF2は$g(w)$が満たす微分方程式です。"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "58e1479b-9393-4c4c-9b5d-70e6e4a20828",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{3}$}\\left(w-w^2\\right)\\,\\left(\\frac{d^2}{d\\,w^2}\\,g\\left(w\\right)\\right)+\\left(\\left(-\\frac{b}{2}-\\frac{a}{2}-1\\right)\\,w+\\frac{b+a+1}{2}\\right)\\,\\left(\\frac{d}{d\\,w}\\,g\\left(w\\right)\\right)-\\frac{a\\,b\\,g\\left(w\\right)}{4}=0\\]"
],
"text/plain": [
" 2\n",
" 2 d b a b + a + 1 d\n",
"(%o3) (w - w ) (--- (g(w))) + (((- -) - - - 1) w + ---------) (-- (g(w)))\n",
" 2 2 2 2 dw\n",
" dw\n",
" a b g(w)\n",
" - -------- = 0\n",
" 4"
],
"text/x-maxima": [
"(w-w^2)*'diff(g(w),w,2)+(((-b/2)-a/2-1)*w+(b+a+1)/2)*'diff(g(w),w,1)\n",
" -(a*b*g(w))/4\n",
" = 0"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"DF2:subst_parallel([F=g,a=a/2,b=b/2,c=(a+b+1)/2,x=w],DF);"
]
},
{
"cell_type": "markdown",
"id": "965b4d5f-c81d-42e0-b088-acd4024c50ee",
"metadata": {},
"source": [
"ここからは$G(z)$の1階微分、2階微分を計算し、それらをDF1の左辺の$F(z)$に代入して整理すると$0$になること、従って$G(z)$もDF1を満たすことを示します。
\n",
"\n",
"まず$\\frac{d}{d\\,z}\\,G(z)$を、合成関数の微分および$w=4\\,z\\,(1-z)$を使って計算し、結果をD1とします。"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "244f100b-0cd1-48e7-8e5f-e17c1cc39609",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{4}$}\\left[ w\\left(z\\right) \\right] \\]"
],
"text/plain": [
"(%o4) [w(z)]"
],
"text/x-maxima": [
"[w(z)]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{5}$}G\\left(z\\right)=g\\left(w\\right)\\]"
],
"text/plain": [
"(%o5) G(z) = g(w)"
],
"text/x-maxima": [
"G(z) = g(w)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{6}$}\\frac{d}{d\\,z}\\,G\\left(z\\right)=\\frac{d}{d\\,z}\\,w\\,\\left(\\frac{d}{d\\,w}\\,g\\left(w\\right)\\right)\\]"
],
"text/plain": [
" d dw d\n",
"(%o6) -- (G(z)) = -- (-- (g(w)))\n",
" dz dz dw"
],
"text/x-maxima": [
"'diff(G(z),z,1) = 'diff(w,z,1)*'diff(g(w),w,1)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{7}$}\\frac{d}{d\\,z}\\,G\\left(z\\right)=\\frac{d}{d\\,w}\\,g\\left(w\\right)\\,\\left(4\\,\\left(1-z\\right)-4\\,z\\right)\\]"
],
"text/plain": [
" d d\n",
"(%o7) -- (G(z)) = (-- (g(w))) (4 (1 - z) - 4 z)\n",
" dz dw"
],
"text/x-maxima": [
"'diff(G(z),z,1) = 'diff(g(w),w,1)*(4*(1-z)-4*z)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"depends(w,z);\n",
"D0:G(z)=g(w);\n",
"diff(G(z),z)=diff(g(w),w)*diff(w,z);\n",
"D1:%,diff(w,z)=diff(4*(1-z)*z,z);"
]
},
{
"cell_type": "markdown",
"id": "60dd9d04-d5c9-41ca-bacb-2fe649170876",
"metadata": {},
"source": [
"D1を微分することで$G(z)$の2階微分を計算します。またこの段階で$z$と$w$の関係式を使うことで計算結果から$z$を消去しておきます。その結果をD2とします。"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "7e954208-4065-407f-9550-d455b9dddf4e",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{8}$}\\frac{d^2}{d\\,z^2}\\,G\\left(z\\right)=\\frac{d^2}{d\\,w\\,d\\,z}\\,g\\left(w\\right)\\,\\left(4\\,\\left(1-z\\right)-4\\,z\\right)-8\\,\\left(\\frac{d}{d\\,w}\\,g\\left(w\\right)\\right)\\]"
],
"text/plain": [
" 2 2\n",
" d d d\n",
"(%o8) --- (G(z)) = (----- (g(w))) (4 (1 - z) - 4 z) - 8 (-- (g(w)))\n",
" 2 dw dz dw\n",
" dz"
],
"text/x-maxima": [
"'diff(G(z),z,2) = 'diff(g(w),w,1,z,1)*(4*(1-z)-4*z)-8*'diff(g(w),w,1)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{9}$}\\frac{d^2}{d\\,z^2}\\,G\\left(z\\right)=\\frac{d^2}{d\\,w^2}\\,g\\left(w\\right)\\,\\left(4\\,\\left(1-z\\right)-4\\,z\\right)^2-8\\,\\left(\\frac{d}{d\\,w}\\,g\\left(w\\right)\\right)\\]"
],
"text/plain": [
" 2 2\n",
" d d 2 d\n",
"(%o9) --- (G(z)) = (--- (g(w))) (4 (1 - z) - 4 z) - 8 (-- (g(w)))\n",
" 2 2 dw\n",
" dz dw"
],
"text/x-maxima": [
"'diff(G(z),z,2) = 'diff(g(w),w,2)*(4*(1-z)-4*z)^2-8*'diff(g(w),w,1)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{10}$}\\left[ 16-16\\,w \\right] \\]"
],
"text/plain": [
"(%o10) [16 - 16 w]"
],
"text/x-maxima": [
"[16-16*w]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{11}$}\\frac{d^2}{d\\,z^2}\\,G\\left(z\\right)=\\left(16-16\\,w\\right)\\,\\left(\\frac{d^2}{d\\,w^2}\\,g\\left(w\\right)\\right)-8\\,\\left(\\frac{d}{d\\,w}\\,g\\left(w\\right)\\right)\\]"
],
"text/plain": [
" 2 2\n",
" d d d\n",
"(%o11) --- (G(z)) = (16 - 16 w) (--- (g(w))) - 8 (-- (g(w)))\n",
" 2 2 dw\n",
" dz dw"
],
"text/x-maxima": [
"'diff(G(z),z,2) = (16-16*w)*'diff(g(w),w,2)-8*'diff(g(w),w,1)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"diff(D1,z);\n",
"DD:%,diff(diff(g(w),w),z)=diff(diff(g(w),w),w)*diff(4*(1-z)*z,z);\n",
"EL:eliminate([k=(4*(1-z)-4*z)^2,w=4*z-4*z^2],[z,k]);\n",
"D2:subst(EL[1],(4*(1-z)-4*z)^2,DD);"
]
},
{
"cell_type": "markdown",
"id": "56251a14-5138-48ab-90ff-10f7ecb54f11",
"metadata": {},
"source": [
"DF1の左辺の$F(z)$に$G(z)$を代入してみます。"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "f74d7372-dc49-46bc-9b69-8c36245b4c69",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{12}$}\\left(z-z^2\\right)\\,\\left(\\frac{d^2}{d\\,z^2}\\,G\\left(z\\right)\\right)+\\left(\\left(-b-a-1\\right)\\,z+\\frac{b+a+1}{2}\\right)\\,\\left(\\frac{d}{d\\,z}\\,G\\left(z\\right)\\right)-a\\,b\\,G\\left(z\\right)\\]"
],
"text/plain": [
" 2\n",
" 2 d b + a + 1 d\n",
"(%o12) (z - z ) (--- (G(z))) + (((- b) - a - 1) z + ---------) (-- (G(z)))\n",
" 2 2 dz\n",
" dz\n",
" - a b G(z)"
],
"text/x-maxima": [
"(z-z^2)*'diff(G(z),z,2)+(((-b)-a-1)*z+(b+a+1)/2)*'diff(G(z),z,1)-a*b*G(z)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lhs(DF1),F=G;"
]
},
{
"cell_type": "markdown",
"id": "610e1089-0e5b-465e-8a2a-086405d34073",
"metadata": {},
"source": [
"すでに求めた$G(z)$の1階微分、2階微分、及び定義式そのものを上記の式に代入し、DF3とします。"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "2c627d4a-ac10-4cbe-a5f3-b47439ef9906",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{13}$}\\left(\\left(16-16\\,w\\right)\\,\\left(\\frac{d^2}{d\\,w^2}\\,g\\left(w\\right)\\right)-8\\,\\left(\\frac{d}{d\\,w}\\,g\\left(w\\right)\\right)\\right)\\,\\left(z-z^2\\right)+\\frac{d}{d\\,w}\\,g\\left(w\\right)\\,\\left(4\\,\\left(1-z\\right)-4\\,z\\right)\\,\\left(\\left(-b-a-1\\right)\\,z+\\frac{b+a+1}{2}\\right)-a\\,b\\,g\\left(w\\right)\\]"
],
"text/plain": [
" 2\n",
" d d 2\n",
"(%o13) ((16 - 16 w) (--- (g(w))) - 8 (-- (g(w)))) (z - z )\n",
" 2 dw\n",
" dw\n",
" d b + a + 1\n",
" + (-- (g(w))) (4 (1 - z) - 4 z) (((- b) - a - 1) z + ---------) - a b g(w)\n",
" dw 2"
],
"text/x-maxima": [
"((16-16*w)*'diff(g(w),w,2)-8*'diff(g(w),w,1))*(z-z^2)\n",
" +'diff(g(w),w,1)*(4*(1-z)-4*z)*(((-b)-a-1)*z+(b+a+1)/2)-a*b*g(w)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"DF3:%,D1,D2,D0;"
]
},
{
"cell_type": "markdown",
"id": "0b959882-69b2-4948-bb18-ba7a0a2dd4cd",
"metadata": {},
"source": [
"DF3は3つの項の和になっています。それぞれの項に含まれる変数$z$を$w$の式に置き換えることで消去します。"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "079ec7ea-766b-4554-b020-1b92c4bd49f3",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{14}$}\\left(4\\,w-4\\,w^2\\right)\\,\\left(\\frac{d^2}{d\\,w^2}\\,g\\left(w\\right)\\right)-2\\,w\\,\\left(\\frac{d}{d\\,w}\\,g\\left(w\\right)\\right)\\]"
],
"text/plain": [
" 2\n",
" 2 d d\n",
"(%o14) (4 w - 4 w ) (--- (g(w))) - 2 w (-- (g(w)))\n",
" 2 dw\n",
" dw"
],
"text/x-maxima": [
"(4*w-4*w^2)*'diff(g(w),w,2)-2*w*'diff(g(w),w,1)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"DF31:args(DF3)[1],z-z^2=w/4,ratsimp;"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "4466a3ce-b2c2-4db8-960d-296dd10fb352",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{15}$}2\\,\\left(b+a+1\\right)\\,\\left(\\frac{d}{d\\,w}\\,g\\left(w\\right)\\right)\\,\\left(2\\,z-1\\right)^2\\]"
],
"text/plain": [
" d 2\n",
"(%o15) 2 (b + a + 1) (-- (g(w))) (2 z - 1)\n",
" dw"
],
"text/x-maxima": [
"2*(b+a+1)*'diff(g(w),w,1)*(2*z-1)^2"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{16}$}2\\,\\left(b+a+1\\right)\\,\\left(1-w\\right)\\,\\left(\\frac{d}{d\\,w}\\,g\\left(w\\right)\\right)\\]"
],
"text/plain": [
" d\n",
"(%o16) 2 (b + a + 1) (1 - w) (-- (g(w)))\n",
" dw"
],
"text/x-maxima": [
"2*(b+a+1)*(1-w)*'diff(g(w),w,1)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"factor(args(DF3)[2]);\n",
"DF32:%,(2*z-1)^2=1-w;"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "4dc95ff3-eef5-43a8-be7c-d41a95b60854",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{17}$}-a\\,b\\,g\\left(w\\right)\\]"
],
"text/plain": [
"(%o17) - a b g(w)"
],
"text/x-maxima": [
"-a*b*g(w)"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"DF33:args(DF3)[3];"
]
},
{
"cell_type": "markdown",
"id": "0fb88307-036a-40c6-85bb-0611a4e89915",
"metadata": {},
"source": [
"等式変形の結果のDF31, DF32, DF33を足すことでDF3と等しい式を求めます。"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "0dbc4df3-50cc-4ff8-8085-ea5fd9129575",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{18}$}\\left(4\\,w-4\\,w^2\\right)\\,\\left(\\frac{d^2}{d\\,w^2}\\,g\\left(w\\right)\\right)-2\\,w\\,\\left(\\frac{d}{d\\,w}\\,g\\left(w\\right)\\right)+2\\,\\left(b+a+1\\right)\\,\\left(1-w\\right)\\,\\left(\\frac{d}{d\\,w}\\,g\\left(w\\right)\\right)-a\\,b\\,g\\left(w\\right)\\]"
],
"text/plain": [
" 2\n",
" 2 d d\n",
"(%o18) (4 w - 4 w ) (--- (g(w))) - 2 w (-- (g(w)))\n",
" 2 dw\n",
" dw\n",
" d\n",
" + 2 (b + a + 1) (1 - w) (-- (g(w))) - a b g(w)\n",
" dw"
],
"text/x-maxima": [
"(4*w-4*w^2)*'diff(g(w),w,2)-2*w*'diff(g(w),w,1)\n",
" +2*(b+a+1)*(1-w)*'diff(g(w),w,1)-a*b*g(w)"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"DF31+DF32+DF33;"
]
},
{
"cell_type": "markdown",
"id": "7f1fa2b3-09d3-4553-a455-d71006c05291",
"metadata": {},
"source": [
"上記の式からDF2の左辺を4倍した式(それはゼロなのですが)を引いてみます。"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "56bc2ead-5317-49ee-815b-7a2664fbe926",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{19}$}-4\\,\\left(\\left(w-w^2\\right)\\,\\left(\\frac{d^2}{d\\,w^2}\\,g\\left(w\\right)\\right)+\\left(\\left(-\\frac{b}{2}-\\frac{a}{2}-1\\right)\\,w+\\frac{b+a+1}{2}\\right)\\,\\left(\\frac{d}{d\\,w}\\,g\\left(w\\right)\\right)-\\frac{a\\,b\\,g\\left(w\\right)}{4}\\right)+\\left(4\\,w-4\\,w^2\\right)\\,\\left(\\frac{d^2}{d\\,w^2}\\,g\\left(w\\right)\\right)-2\\,w\\,\\left(\\frac{d}{d\\,w}\\,g\\left(w\\right)\\right)+2\\,\\left(b+a+1\\right)\\,\\left(1-w\\right)\\,\\left(\\frac{d}{d\\,w}\\,g\\left(w\\right)\\right)-a\\,b\\,g\\left(w\\right)\\]"
],
"text/plain": [
" 2\n",
" 2 d b a b + a + 1\n",
"(%o19) (- 4 ((w - w ) (--- (g(w))) + (((- -) - - - 1) w + ---------)\n",
" 2 2 2 2\n",
" dw\n",
" 2\n",
" d a b g(w) 2 d d\n",
" (-- (g(w))) - --------)) + (4 w - 4 w ) (--- (g(w))) - 2 w (-- (g(w)))\n",
" dw 4 2 dw\n",
" dw\n",
" d\n",
" + 2 (b + a + 1) (1 - w) (-- (g(w))) - a b g(w)\n",
" dw"
],
"text/x-maxima": [
"(-4*((w-w^2)*'diff(g(w),w,2)+(((-b/2)-a/2-1)*w+(b+a+1)/2)*'diff(g(w),w,1)\n",
" -(a*b*g(w))/4))\n",
" +(4*w-4*w^2)*'diff(g(w),w,2)-2*w*'diff(g(w),w,1)\n",
" +2*(b+a+1)*(1-w)*'diff(g(w),w,1)-a*b*g(w)"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%-lhs(DF2)*4;"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "04c96484-20a2-4695-80d6-58cc3fa51648",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{20}$}0\\]"
],
"text/plain": [
"(%o20) 0"
],
"text/x-maxima": [
"0"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ratsimp(%);"
]
},
{
"cell_type": "markdown",
"id": "e14f35c2-deae-416d-a292-fd6875394253",
"metadata": {},
"source": [
"これでDF3が実は$0$と等しいこと、従って$G(z)$はDF1を満たすことが証明できました。"
]
},
{
"cell_type": "markdown",
"id": "09a94616-8569-4769-881c-6b6f5ee443a1",
"metadata": {},
"source": [
"最後に$F(0)=G(0), F'(0)=G'(0), F''(0)=G''(0)$を示します。これらは定義に戻って示しても良いのですが、面倒なので、これらの微分係数を全てMaximaで数式計算して等しいことを示します。"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "c6b85ada-3f46-4276-81c2-9b8777609239",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{42}$}F\\left(x\\right):=F\\left( \\left. \\begin{array}{c}a,\\;b\\\\\\frac{a+b+1}{2}\\end{array} \\right |,x\\right)\\]"
],
"text/plain": [
" a + b + 1\n",
"(%o42) F(x) := hypergeometric([a, b], [---------], x)\n",
" 2"
],
"text/x-maxima": [
"F(x):=hypergeometric([a,b],[(a+b+1)/2],x)"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{43}$}{\\it DF}\\left(x\\right):=\\frac{2\\,a\\,F\\left( \\left. \\begin{array}{c}a+1,\\;b+1\\\\\\frac{b+a+1}{2}+1\\end{array} \\right |,x\\right)\\,b}{b+a+1}\\]"
],
"text/plain": [
" b + a + 1\n",
" 2 a hypergeometric([a + 1, b + 1], [--------- + 1], x) b\n",
" 2\n",
"(%o43) DF(x) := --------------------------------------------------------\n",
" b + a + 1"
],
"text/x-maxima": [
"DF(x):=(2*a*hypergeometric([a+1,b+1],[(b+a+1)/2+1],x)*b)/(b+a+1)"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{44}$}{\\it DDF}\\left(x\\right):=\\frac{2\\,a\\,\\left(a+1\\right)\\,F\\left( \\left. \\begin{array}{c}a+2,\\;b+2\\\\\\frac{b+a+1}{2}+2\\end{array} \\right |,x\\right)\\,b\\,\\left(b+1\\right)}{\\left(b+a+1\\right)\\,\\left(\\frac{b+a+1}{2}+1\\right)}\\]"
],
"text/plain": [
"(%o44) DDF(x) := \n",
" b + a + 1\n",
" 2 a (a + 1) hypergeometric([a + 2, b + 2], [--------- + 2], x) b (b + 1)\n",
" 2\n",
" ------------------------------------------------------------------------\n",
" b + a + 1\n",
" (b + a + 1) (--------- + 1)\n",
" 2"
],
"text/x-maxima": [
"DDF(x):=(2*a*(a+1)*hypergeometric([a+2,b+2],[(b+a+1)/2+2],x)*b*(b+1))\n",
" /((b+a+1)*((b+a+1)/2+1))"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{45}$}\\left[ 1 , \\frac{2\\,a\\,b}{b+a+1} , \\frac{\\left(4\\,a^2+4\\,a\\right)\\,b^2+\\left(4\\,a^2+4\\,a\\right)\\,b}{b^2+\\left(2\\,a+4\\right)\\,b+a^2+4\\,a+3} \\right] \\]"
],
"text/plain": [
" 2 2 2\n",
" 2 a b (4 a + 4 a) b + (4 a + 4 a) b\n",
"(%o45) [1, ---------, --------------------------------]\n",
" b + a + 1 2 2\n",
" b + (2 a + 4) b + a + 4 a + 3"
],
"text/x-maxima": [
"[1,(2*a*b)/(b+a+1),((4*a^2+4*a)*b^2+(4*a^2+4*a)*b)/(b^2+(2*a+4)*b+a^2+4*a+3)]"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"F(x):=hypergeometric([a,b],[(a+b+1)/2],x);\n",
"define(DF(x),diff(F(x),x));\n",
"define(DDF(x),diff(F(x),x,2));\n",
"[F(0),DF(0),DDF(0)],ratsimp;"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "58f56405-b360-4b87-a2fa-45dc779bacd6",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{38}$}G\\left(x\\right):=F\\left( \\left. \\begin{array}{c}\\frac{a}{2},\\;\\frac{b}{2}\\\\\\frac{a+b+1}{2}\\end{array} \\right |,4\\,x\\,\\left(1-x\\right)\\right)\\]"
],
"text/plain": [
" a b a + b + 1\n",
"(%o38) G(x) := hypergeometric([-, -], [---------], 4 x (1 - x))\n",
" 2 2 2"
],
"text/x-maxima": [
"G(x):=hypergeometric([a/2,b/2],[(a+b+1)/2],4*x*(1-x))"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{39}$}{\\it DG}\\left(x\\right):=\\frac{F\\left( \\left. \\begin{array}{c}\\frac{a}{2}+1,\\;\\frac{b}{2}+1\\\\\\frac{b+a+1}{2}+1\\end{array} \\right |,4\\,\\left(1-x\\right)\\,x\\right)\\,a\\,b\\,\\left(4\\,\\left(1-x\\right)-4\\,x\\right)}{2\\,\\left(b+a+1\\right)}\\]"
],
"text/plain": [
" a b b + a + 1\n",
"(%o39) DG(x) := (hypergeometric([- + 1, - + 1], [--------- + 1], 4 (1 - x) x) a\n",
" 2 2 2\n",
" b (4 (1 - x) - 4 x))/(2 (b + a + 1))"
],
"text/x-maxima": [
"DG(x):=\n",
" (hypergeometric([a/2+1,b/2+1],[(b+a+1)/2+1],4*(1-x)*x)*a*b*(4*(1-x)-4*x))\n",
" /(2*(b+a+1))"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{40}$}{\\it DDG}\\left(x\\right):=\\frac{F\\left( \\left. \\begin{array}{c}\\frac{a}{2}+2,\\;\\frac{b}{2}+2\\\\\\frac{b+a+1}{2}+2\\end{array} \\right |,4\\,\\left(1-x\\right)\\,x\\right)\\,\\left(\\frac{a}{2}+1\\right)\\,a\\,\\left(\\frac{b}{2}+1\\right)\\,b\\,\\left(4\\,\\left(1-x\\right)-4\\,x\\right)^2}{2\\,\\left(b+a+1\\right)\\,\\left(\\frac{b+a+1}{2}+1\\right)}-\\frac{4\\,F\\left( \\left. \\begin{array}{c}\\frac{a}{2}+1,\\;\\frac{b}{2}+1\\\\\\frac{b+a+1}{2}+1\\end{array} \\right |,4\\,\\left(1-x\\right)\\,x\\right)\\,a\\,b}{b+a+1}\\]"
],
"text/plain": [
" a b b + a + 1\n",
"(%o40) DDG(x) := (hypergeometric([- + 2, - + 2], [--------- + 2], 4 (1 - x) x)\n",
" 2 2 2\n",
" a b 2 b + a + 1\n",
" (- + 1) a (- + 1) b (4 (1 - x) - 4 x) )/(2 (b + a + 1) (--------- + 1))\n",
" 2 2 2\n",
" a b b + a + 1\n",
" 4 hypergeometric([- + 1, - + 1], [--------- + 1], 4 (1 - x) x) a b\n",
" 2 2 2\n",
" - ------------------------------------------------------------------\n",
" b + a + 1"
],
"text/x-maxima": [
"DDG(x):=\n",
" (hypergeometric([a/2+2,b/2+2],[(b+a+1)/2+2],4*(1-x)*x)\n",
" *(a/2+1)*a*(b/2+1)*b*(4*(1-x)-4*x)^2)\n",
" /(2*(b+a+1)*((b+a+1)/2+1))\n",
" -(4*hypergeometric([a/2+1,b/2+1],[(b+a+1)/2+1],4*(1-x)*x)*a*b)/(b+a+1)"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/latex": [
"\\[\\tag{${\\it \\%o}_{41}$}\\left[ 1 , \\frac{2\\,a\\,b}{b+a+1} , \\frac{\\left(4\\,a^2+4\\,a\\right)\\,b^2+\\left(4\\,a^2+4\\,a\\right)\\,b}{b^2+\\left(2\\,a+4\\right)\\,b+a^2+4\\,a+3} \\right] \\]"
],
"text/plain": [
" 2 2 2\n",
" 2 a b (4 a + 4 a) b + (4 a + 4 a) b\n",
"(%o41) [1, ---------, --------------------------------]\n",
" b + a + 1 2 2\n",
" b + (2 a + 4) b + a + 4 a + 3"
],
"text/x-maxima": [
"[1,(2*a*b)/(b+a+1),((4*a^2+4*a)*b^2+(4*a^2+4*a)*b)/(b^2+(2*a+4)*b+a^2+4*a+3)]"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"G(x):=hypergeometric([a/2,b/2],[(a+b+1)/2],4*x*(1-x));\n",
"define(DG(x),diff(G(x),x));\n",
"define(DDG(x),diff(G(x),x,2));\n",
"[G(0),DG(0),DDG(0)],ratsimp;"
]
},
{
"cell_type": "markdown",
"id": "85172302-bfaf-4da7-93f6-38de3886a541",
"metadata": {},
"source": [
"確かに[F(0),DF(0),DDF(0)]と[G(0),DG(0),DDG(0)]は一致していますから、これで全ての証明が終了しました。"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "325a9c94-3f20-439f-917c-644295a31b86",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Maxima",
"language": "maxima",
"name": "maxima"
},
"language_info": {
"codemirror_mode": "maxima",
"file_extension": ".mac",
"mimetype": "text/x-maxima",
"name": "maxima",
"pygments_lexer": "maxima",
"version": "5.44.0"
}
},
"nbformat": 4,
"nbformat_minor": 5
}