aboutsummaryrefslogtreecommitdiffstats
path: root/buch/chapters/050-differential/w.maxima
diff options
context:
space:
mode:
authorAndreas Müller <andreas.mueller@ost.ch>2021-12-31 22:55:49 +0100
committerAndreas Müller <andreas.mueller@ost.ch>2021-12-31 22:55:49 +0100
commita08ceeb804e40e13673339aace0c554eb50e921a (patch)
treec371665d6d66f6328af30b33ac989afccc5561d6 /buch/chapters/050-differential/w.maxima
parentMerge branch 'master' of github.com:AndreasFMueller/SeminarSpezielleFunktionen (diff)
downloadSeminarSpezielleFunktionen-a08ceeb804e40e13673339aace0c554eb50e921a.tar.gz
SeminarSpezielleFunktionen-a08ceeb804e40e13673339aace0c554eb50e921a.zip
complete stuff on hypergeometric differential equations
Diffstat (limited to '')
-rw-r--r--buch/chapters/050-differential/w.maxima101
1 files changed, 101 insertions, 0 deletions
diff --git a/buch/chapters/050-differential/w.maxima b/buch/chapters/050-differential/w.maxima
new file mode 100644
index 0000000..24dd91d
--- /dev/null
+++ b/buch/chapters/050-differential/w.maxima
@@ -0,0 +1,101 @@
+
+z: s*x^2;
+equation: z*(1-z)*Ypp + (c-(a+b+1)*z)*Yp-a*b*Y;
+
+gradef(w(x), wp(x));
+gradef(wp(x), wpp(x));
+
+g: w(z);
+gp: diff(g, x);
+gpp: diff(gp, x);
+
+Ag: matrix(
+[ coeff(g, w(z)), coeff(g, wp(z)), coeff(g, wpp(z)) ],
+[ coeff(gp, w(z)), coeff(gp, wp(z)), coeff(gp, wpp(z)) ],
+[ coeff(gpp,w(z)), coeff(gpp,wp(z)), coeff(gpp,wpp(z)) ]
+);
+Agi: invert(Ag);
+W: Agi.matrix([G],[Gp],[Gpp]);
+
+eg: subst(W[1,1], Y, equation);
+eg: subst(W[2,1], Yp, eg);
+eg: subst(W[3,1], Ypp, eg);
+eg: 4*s*x*eg;
+eg: expand(ratsimp(eg));
+ratsimp(subst(0, G, subst(0, Gp, eg)) / Gpp);
+ratsimp(subst(0, G, subst(0, Gpp, eg)) / Gp);
+ratsimp(subst(0, Gp, subst(0, Gpp, eg)) / G);
+
+
+u: x*w(z);
+up: diff(u, x);
+upp: diff(up, x);
+
+Au: matrix(
+[ coeff(u, w(z)), coeff(u, wp(z)), coeff(u, wpp(z)) ],
+[ coeff(up, w(z)), coeff(up, wp(z)), coeff(up, wpp(z)) ],
+[ coeff(upp,w(z)), coeff(upp,wp(z)), coeff(upp,wpp(z)) ]
+);
+Aui: invert(Au);
+W: Aui.matrix([U],[Up],[Upp]);
+
+eu: subst(W[1,1], Y, equation);
+eu: subst(W[2,1], Yp, eu);
+eu: subst(W[3,1], Ypp, eu);
+eu: 4*s*x^3*eu;
+eu: expand(ratsimp(eu));
+display2d: false$
+ratsimp(subst(0, U, subst(0, Up, eu)) / Upp);
+ratsimp(subst(0, U, subst(0, Upp, eu)) / Up);
+ratsimp(subst(0, Up, subst(0, Upp, eu)) / U);
+
+display2d: true$
+
+/* allgemeiner Fall, f(x) = x^nu w(s * x^rho) */
+
+z: s*x^nu;
+f: x^rho * w(z);
+fp: diff(f, x);
+fpp: diff(fp, x);
+
+Af: ratsimp(matrix(
+[ coeff(f, w(z)), coeff(f, wp(z)), coeff(f, wpp(z)) ],
+[ coeff(fp, w(z)), coeff(fp, wp(z)), coeff(fp, wpp(z)) ],
+[ coeff(fpp,w(z)), coeff(fpp,wp(z)), coeff(fpp,wpp(z)) ]
+));
+Afi: invert(Af);
+Afi: ratsimp(Afi);
+W: Afi.matrix([F],[Fp],[Fpp]);
+
+ef: subst(W[1,1], Y, equation);
+ef: subst(W[2,1], Yp, ef);
+ef: subst(W[3,1], Ypp, ef);
+ ef: s * nu^2 * ef;
+ef: expand(ratsimp(ef));
+display2d: true$
+c2: ratsimp(subst(0, F, subst(0, Fp, ef)) / Fpp);
+c1: ratsimp(subst(0, F, subst(0, Fpp, ef)) / Fp);
+c0: ratsimp(subst(0, Fp, subst(0, Fpp, ef)) / F);
+
+ratsimp(subst(1, s, subst(3/2, c, subst(1/2, b, subst(1/2, a,
+ subst(2, nu, subst(1, rho, c2)))))));
+ratsimp(subst(1, s, subst(3/2, c, subst(1/2, b, subst(1/2, a,
+ subst(2, nu, subst(1, rho, c1)))))));
+ratsimp(subst(1, s, subst(3/2, c, subst(1/2, b, subst(1/2, a,
+ subst(2, nu, subst(1, rho, c0)))))));
+
+
+/* Differentialgleichung von 0F1 */
+
+display2d: true$
+equation0f1: z*Ypp + beta*Yp - Y;
+e0f1: subst(W[1,1], Y, equation0f1);
+e0f1: subst(W[2,1], Yp, e0f1);
+e0f1: subst(W[3,1], Ypp, e0f1);
+e0f1: s*nu^2*x^(rho+nu) * e0f1;
+e0f1: expand(ratsimp(e0f1));
+display2d: false$
+ratsimp(subst(0, F, subst(0, Fp, e0f1)) / Fpp);
+ratsimp(subst(0, F, subst(0, Fpp, e0f1)) / Fp);
+ratsimp(subst(0, Fp, subst(0, Fpp, e0f1)) / F);
+