Slode package for Maple V Release 4 This package proposes tools to construct formal power series solutions of linear ordinary differential equations with polynomial (over the rational number field) coefficients. The package lets one find power series solutions with nice coefficients. Slode package contains procedures to find series solutions with hypergeometric, polynomial and rational coefficients, m-sparse and m-sparse m-hypergeometric series solutions. #------------------------------------------------------------------ The data representations. The differential equations are represented by usual Maple way: in the diff notation or in the D operator notation. #----------------------------- The formal power series is represented by list with two elements: 1. The expression in the form: v0+v1*(x-x0)+...+vM*(x-x0)^M + Sum(v(n)*(x-x0)^n,n=M+1..infinity) 2. The recurrence for v(n): p[0]*v(n)+p[1]*v(n-1)+...+p[r]*v(n-r) Where x is the independent variable; x0 is the expansion point; v(n) is the name of the sequence of series' coefficients; v0,v1,...,vM are initial elements of sequence v(n); p[0],p[1]...p[r] are polynomial on n over field Q(x0); r is the recurrence's order. The number M of initial elements is such that it is possible to calculate any series' coefficient for the initial coefficients and the recurrence (taking into account the order and the zeros of the leading coefficients of the recurrence). #----------------------------- The m-sparse power series is represented by list with two elements: 1. The expression in the form: v0+v1*(x-x0)+...+vM*(x-x0)^M + Sum(v(m*n+N)*(x-x0)^(m*n+N),n=s..infinity) 2. The m-sprarse recurrence for v(n): p[0]*v(m*n+N)+p[1]*v(m*(n-1)+N)+...+p[r]*v(m*(n-r)+N) Where x is the independent variable; x0 is the expansion point; v(n) is the name of the sequence of series' coefficients; v0,v1,...,vM are initial elements of sequence v(n); m is the sparse-order; N: 0 <= N < m; s: (M+1-N)/m; p[0],p[1]...p[r] are polynomial on n over field Q(x0). The number of initial elements is determined similarly the above cases and, additionally, taking into account that for all n > M the sequence v(n) satisfies the condition: v(n) <> 0 ==> (n = N) mod m. #----------------------------- The power series with hypergeometric coefficients is represented by the follow expression: v0+v1*(x-x0)+...+vM*(x-x0)^M + Sum(F(n)*(x-x0)^n,n=M+1..infinity) Where x is the independent variable; x0 is the expansion point; v0,v1,...,vM are initial series' coefficients; F(n) is a function such that F(n+1)/F(n) is rational on n. The number of initial elements is determined such that F(n) <> 0 for all n > M. #----------------------------- The power series with rational coefficients is represented by the follow expression: v0+v1*(x-x0)+...+vM*(x-x0)^M + Sum(F(n)*(x-x0)^n,n=M+1..infinity) Where x is the independent variable; x0 is the expansion point; v0,v1,...,vM are initial series' coefficients; F(n) is a rational function of n. The number of initial elements is determined such that the denominator of F(n) is not zero for all n > M. #----------------------------- The power series with polynomial coefficients is represented by the follow expression: v0+v1*(x-x0)+...+vM*(x-x0)^M + Sum(F(n)*(x-x0)^n,n=M+1..infinity) Where x is the independent variable; x0 is the expansion point; v0,v1,...,vM are initial series' coefficients; F(n) is a polynomial in n. #----------------------------- The m-sparse m- hypergeometric power series is represented by the follow expression: v0+v1*(x-x0)+...+vM*(x-x0)^M + Sum(F(n)*(x-x0)^(m*n+N),n=s..infinity) Where x is the independent variable; x0 is the expansion point; v0,v1,...,vM are initial elements of sequence v(n); m is the sparse-order; N: 0 <= N < m; s: (M+1-N)/m; F(n) is a function such that F(n+1)/F(n) is rational on n. The number of initial elements is determined such that F(n) <> 0 for all n >= s. #------------------------------------------------------------------ The main procedures. `Slode/series`(eq,fn,vn,C,x0,M1) eq - a linear ordinary differential equation with polynomial coefficients and polynomial right hand side: fn - the unknown function in the form y(x) vn - a new function in the form v(n) C - a name of arbitrary constants (optional), _C by default x0 - a point (optional argument), 0 by default M1 - the required number of initial elements of the series solutions (optional argument) This procedure returns a formal power series solution at the given point x0. The solutions involve arbitrary constants in the form C[j] (where 'i' is some integer). #----------------------------- `Slode/msparse_at_point`(eq,fn,vn,m,x0,C) eq - a homogeneous linear ordinary differential equation with polynomial coefficients fn - the unknown function in the form y(x) vn - the new function of the recurrence in the form v(n) m - a sparse-order x0 - an m-point C - the name of arbitrary constants (optional argument), _C by default This procedure returns a set m-sparse power series solution at the given m-point x0. The solutions involve arbitrary constants in form C[j] (where 'i' is some integer). #----------------------------- `Slode/msparse`(eq,fn,vn,C) eq - a homogeneous linear ordinary differential equation with polynomial coefficients fn - the unknown function in the form y(x) vn - the new function of the recurrence in the form v(n) C - the name of arbitrary constants (optional argument), _C by default This procedure returns a set of m-sparse power series solution for all possible number m. The m-points of these series are chosen automatically. The solutions involve arbitrary constants in form C[i] (where 'i' is some integer). #----------------------------- `Slode/hyper_at_point`(eq,fn,C,x0) `Slode/rat_at_point`(eq,fn,C,x0) `Slode/poly_at_point`(eq,fn,C,x0) eq - a homogeneous linear ordinary differential equation with polynomial coefficients fn - the unknown function in the form y(x) C - a name of arbitrary constants (optional argument) (not _C), _B by default x0 - a point (optional argument), 0 by default These procedures return a power series solution with hypergeometric (polynomial, rational, correspondingly) coefficients at the given point x0. The solutions may involve arbitrary constants in form _C[i], C[j] (where i,j are some integer). #----------------------------- `Slode/mhyper_at_point`(eq,fn,m,x0,C) eq - a homogeneous linear ordinary differential equation with polynomial coefficients: fn - the unknown function in the form y(x) m - a sparse-order x0 - an m-point C - a name of arbitrary constants (optional argument) (not _C), _B by default This procedure returns a set m-sparse power series solution with m-hypergeometric coefficients at the given m-point x0. The solutions may involve arbitrary constants in form _C[i], C[j] (where i,j are some integer). #----------------------------- `Slode/hypercoeffs`(eq ,fn,C) `Slode/ratcoeffs`(eq,fn,C) `Slode/polycoeffs`(eq,fn,C) eq - a homogeneous linear ordinary differential equation with polynomial coefficients fn - the unknown function in the form y(x) C - a name of arbitrary constants (optional argument) (not _C), _B by default These procedures return a set of power series solutions with hypergeometric (polynomial, rational, correspondingly) coefficients. The points of these series are chosen automatically. The solutions may involve arbitrary constants in form _C[i], C[j] (where i,j are some integer). #----------------------------- `Slode/mhypercoeffs`(eq,fn,C) eq - a homogeneous linear ordinary differential equation with polynomial coefficients fn - the unknown function in the form y(x) C - the name of arbitrary constants (optional argument) (not _C), _B by default This procedure returns a set of m-sparse power series solution with m-hypergeometric coefficients for all possible number m. The m-points of these series are chosen automatically. The solutions may involve arbitrary constants in form _C[i], C[j] (where i,j are some integer). #------------------------------------------------------------------