# ode::series

Series solutions of an ordinary differential equation

### Use only in the MuPAD Notebook Interface.

This functionality does not run in MATLAB.

## Syntax

```ode::series(`Ly`, y(`x`), `x | x = x0`, <`order`>)
ode::series(`{Ly, <inits>}`, y(`x`), `x | x = x0`, <`order`>)
```

## Description

`ode::series(Ly, y(x), x = x0)` computes the first terms of the series expansions of the solutions of `Ly` with respect to the variable `x` around the point `x0`.

`ode::series` tries to compute either the Taylor series, the Laurent series or the Puiseux series of the solutions of the differential equation `Ly` around the point `x=x0`.

Suppose that `Ly` is a nonlinear differential equation. If `x0` is an ordinary point of `Ly` then a Taylor series is computed otherwise an expression of type `"series"` is returned. If initial conditions are given at the point `x0` then the answer is expressed in terms of the function `y(x)` and its derivatives evaluated at the point `x0`. See Example 1.

Suppose that `Ly` is a linear differential equation. If `x0` is an ordinary point of `Ly` then a Taylor series is computed, if `Ly` is furthermore homogeneous and `x0` is a regular point then a Puiseux series is computed (containing possible logarithmic terms), otherwise an expression of type `"series"` is returned. If initial conditions are given at the point `x0` then the answer is either expressed in terms of the function `y(x)` and its derivatives evaluated at the point `x0` or it may be expressed in terms of arbitrary constants.

## Examples

### Example 1

Consider the following nonlinear differential equation:

`Ly := x^2*diff(y(x),x)+y(x)-x`

We compute the series solutions at the point 0 which is a singular point:

`ode::series(Ly, y(x), x=0)`

Then we compute the series solutions at the regular point 1:

`ode::series(Ly, y(x), x=1)`

And we can also put some initial conditions at the point 1:

`ode::series({y(1)=1, Ly}, y(x), x=1)`

### Example 2

Consider the following linear differential equation:

`Ly := (2*x+x^3)*diff(y(x),x\$2)-diff(y(x),x)-6*x*y(x)`

We compute the series solutions at the regular point 1:

`ode::series(Ly, y(x), x=1)`

The series solutions at the regular singular point 0:

`ode::series(Ly, y(x), x=0)`

An also the series solutions at the regular singular point infinity:

`ode::series(Ly, y(x), x=infinity)`

### Example 3

Consider the following linear differential equation:

`Ly := x^2*diff(y(x),x\$2)-x*diff(y(x),x)+(1-x)*y(x)`

We compute the series solutions at the regular singular point 0:

`ode::series(Ly, y(x), x)`

And at the same point we look for solutions satisfying the initial condition y(0) = 1 and y(0) = 0:

`ode::series({y(0)=1, Ly}, y(x), x)`

`ode::series({y(0)=0, Ly}, y(x), x)`

## Parameters

 `Ly` An ordinary differential equation. `y(x)` The dependent function of `Ly`. `x` The independent variable of `Ly`. `x0` The expansion point: an arithmetical expression. If not specified, the default expansion point 0 is used . `inits` The initial or boundary conditions: a sequence of equations. `order` The number of terms to be computed: a nonnegative integer. The default order is given by the environment variable `ORDER` (default value 6).

## Return Values

Either a `list`, maybe empty, of objects of type `Series::Puiseux` or an expression of type `"series"`.