diff options
Diffstat (limited to '')
-rw-r--r-- | buch/chapters/050-differential/Makefile.inc | 2 | ||||
-rw-r--r-- | buch/chapters/050-differential/besselhyper.maxima | 37 | ||||
-rw-r--r-- | buch/chapters/050-differential/uebungsaufgaben/airy.cpp | 4 |
3 files changed, 40 insertions, 3 deletions
diff --git a/buch/chapters/050-differential/Makefile.inc b/buch/chapters/050-differential/Makefile.inc index b72a275..7151c07 100644 --- a/buch/chapters/050-differential/Makefile.inc +++ b/buch/chapters/050-differential/Makefile.inc @@ -4,7 +4,7 @@ # (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule # -CHAPTERFILES = $(CHAPTERFILES) \ +CHAPTERFILES += \ chapters/050-differential/beispiele.tex \ chapters/050-differential/potenzreihenmethode.tex \ chapters/050-differential/bessel.tex \ diff --git a/buch/chapters/050-differential/besselhyper.maxima b/buch/chapters/050-differential/besselhyper.maxima new file mode 100644 index 0000000..0a67819 --- /dev/null +++ b/buch/chapters/050-differential/besselhyper.maxima @@ -0,0 +1,37 @@ +/* + * besselhyper.maxima + */ +gradef(y(x), yp(x)); +gradef(yp(x), ypp(x)); + +w(x) := x^alpha * y(-x^2/4); + +/* Zusammenhang zwischen Y und W */ +Y: x^(-alpha) * W; + +/* erste Ableitung Yp ausgedrückt durch W und W' */ +e: Wp=diff(w(x),x) $ +e: ratsimp(e); +e: subst(W * x^(-alpha), y(-x^2/4), e) $ +e: subst(Yp, yp(-x^2/4), e) $ +s: solve(e, Yp) $ +Yp: rhs(s[1]) $ +Yp: ratsimp(Yp); +ratsimp(subst(0,W,Yp)); +ratsimp(subst(0,Wp,Yp)); + +/* zweite Ableitung Yp ausgedrückt durch W, W' und W'' */ +e: Wpp = ratsimp(diff(diff(w(x),x),x)); +e: subst(W * x^(-alpha), y(-x^2/4), e) $ +e: subst(Yp, yp(-x^2/4), e) $ +e: subst(Ypp, ypp(-x^2/4), e) $ +e: ratsimp(e) $ +Ypp: rhs(solve(e, Ypp)[1]) $ +Ypp: ratsimp(Ypp); +ratsimp(subst(0, W, subst(0, Wp, Ypp))); +ratsimp(subst(0, W, subst(0, Wpp, Ypp))); +ratsimp(subst(0, Wp, subst(0, Wpp, Ypp))); + + +B: (-x^2/4) * Ypp + (alpha+1)*Yp - Y; +expand(-x^(alpha+2) * B); diff --git a/buch/chapters/050-differential/uebungsaufgaben/airy.cpp b/buch/chapters/050-differential/uebungsaufgaben/airy.cpp index e4df8e1..eb5c6be 100644 --- a/buch/chapters/050-differential/uebungsaufgaben/airy.cpp +++ b/buch/chapters/050-differential/uebungsaufgaben/airy.cpp @@ -44,8 +44,8 @@ double h0f1(double c, double x) { double f1(double x) { // unfortunately, gsl_sf_hyperg_0F1 does not work if c<1, because // it uses a relation to the bessel functions - //return gsl_sf_hyperg_0F1(2/3, x*x*x/9.); - return h0f1(2./3., x*x*x/9.); + return gsl_sf_hyperg_0F1(2/3, x*x*x/9.); + //return h0f1(2./3., x*x*x/9.); } double f2(double x) { |