---
title: "AsymptoticDSolveValue"
language: "en"
type: "Symbol"
summary: "AsymptoticDSolveValue[eqn, f, x -> x0] computes an asymptotic approximation to the differential equation eqn for f[x] centered at x0. AsymptoticDSolveValue[{eqn1, eqn2, ...}, {f1, f2, ...}, x -> x0] computes an asymptotic approximation to a system of differential equations. AsymptoticDSolveValue[eqn, f, x, \\[Epsilon] -> \\[Epsilon]0] computes an asymptotic approximation of f[x, \\[Epsilon]] for the parameter \\[Epsilon] centered at \\[Epsilon]0. AsymptoticDSolveValue[eqn, f, ..., {\\[Xi], \\[Xi]0, n}] computes the asymptotic approximation to order n."
keywords: 
- series dsolve
- series solution
- asymptotic solution
- asymptotic series
- approximate solution
- Taylor series
- analytic solution
- Frobenius series
- Frobenius solution
- Birkhoff series
- Birkhoff solution
- ordinary point
- singular point
- regular singular point
- irregular singular point
- singularities of the first kind
- singularities of the second kind
- perturbation series
- regular perturbation
- Poincare-Lindstedt
- secular terms
- singular perturbation
- WKB
- WKB approximation
- WKB method
- WKBJ approximation
- WKBJ method
- leading order approximation
- dominant balance
- multiple scales
- turning points
- boundary layer
- matched asymptotic expansion
- differential equation
canonical_url: "https://reference.wolfram.com/language/ref/AsymptoticDSolveValue.html"
source: "Wolfram Language Documentation"
related_guides: 
  - 
    title: "Asymptotics"
    link: "https://reference.wolfram.com/language/guide/Asymptotics.en.md"
  - 
    title: "Equation Solving"
    link: "https://reference.wolfram.com/language/guide/EquationSolving.en.md"
  - 
    title: "Calculus"
    link: "https://reference.wolfram.com/language/guide/Calculus.en.md"
  - 
    title: "Fractional Calculus"
    link: "https://reference.wolfram.com/language/guide/FractionalCalculus.en.md"
  - 
    title: "Symbolic Vectors, Matrices and Arrays"
    link: "https://reference.wolfram.com/language/guide/SymbolicArrays.en.md"
related_functions: 
  - 
    title: "Asymptotic"
    link: "https://reference.wolfram.com/language/ref/Asymptotic.en.md"
  - 
    title: "DSolveValue"
    link: "https://reference.wolfram.com/language/ref/DSolveValue.en.md"
  - 
    title: "AsymptoticLess"
    link: "https://reference.wolfram.com/language/ref/AsymptoticLess.en.md"
  - 
    title: "Series"
    link: "https://reference.wolfram.com/language/ref/Series.en.md"
  - 
    title: "NDSolveValue"
    link: "https://reference.wolfram.com/language/ref/NDSolveValue.en.md"
  - 
    title: "ParametricNDSolveValue"
    link: "https://reference.wolfram.com/language/ref/ParametricNDSolveValue.en.md"
  - 
    title: "AsymptoticIntegrate"
    link: "https://reference.wolfram.com/language/ref/AsymptoticIntegrate.en.md"
  - 
    title: "AsymptoticRSolveValue"
    link: "https://reference.wolfram.com/language/ref/AsymptoticRSolveValue.en.md"
  - 
    title: "AsymptoticSolve"
    link: "https://reference.wolfram.com/language/ref/AsymptoticSolve.en.md"
related_tutorials: 
  - 
    title: "Introduction to Fractional Calculus"
    link: "https://reference.wolfram.com/language/tutorial/FractionalCalculus.en.md"
---
# AsymptoticDSolveValue

AsymptoticDSolveValue[eqn, f, x -> x0] computes an asymptotic approximation to the differential equation eqn for f[x] centered at x0.

AsymptoticDSolveValue[{eqn1, eqn2, …}, {f1, f2, …}, x -> x0] computes an asymptotic approximation to a system of differential equations.

AsymptoticDSolveValue[eqn, f, x, ϵ -> ϵ0] computes an asymptotic approximation of f[x, ϵ] for the parameter ϵ centered at ϵ0.

AsymptoticDSolveValue[eqn, f, …, {ξ, ξ0, n}] computes the asymptotic approximation to order n.

## Details and Options

* Asymptotic approximations to differential equations are also known as asymptotic expansions, perturbation solutions, regular perturbations and singular perturbations, etc. They are also known by specific methods used to compute some of them, such as Frobenius series, WKB, boundary-layer method, etc.

* Asymptotic approximations are typically used to solve problems for which no exact solution can be found or to get simpler answers for computation, comparison and interpretation.

* ``AsymptoticDSolveValue[eqn, …, x -> x0]`` computes the leading term in an asymptotic expansion for ``eqn``. Use ``SeriesTermGoal`` to specify more terms.

* If the exact result is ``g[x]`` and the asymptotic approximation of order ``n`` at ``x0`` is ``gn[x]``, then the result is ``AsymptoticLess[g[x] - gn[x], gn[x] - gn - 1[x], x -> x0]`` or ``g[x] - gn[x]∈o[gn[x] - gn - 1[x]]`` as ``x -> x0``.

[image]

* The asymptotic approximation ``gn[x]`` is often given as a sum ``gn[x] == ∑k = 1nαkϕk[x]``, where ``{ϕ1[x], …, ϕn[x]}`` is an asymptotic scale ``ϕ1[x]≻ϕ2[x]≻⋯ > ϕn[x]`` as ``x -> x0``. Then the result is ``AsymptoticLess[g[x] - gn[x], ϕn[x], x -> x0]`` or ``g[x] - gn[x]∈o[ϕn[x]]`` as ``x -> x0``.

* Common asymptotic scales include:

|     |     |
| --- | --- |
| $\left(x-x_0\right){}^0\succ \left(x-x_0\right){}^1\succ \left(x-x_0\right){}^2\succ \cdots$ | Taylor scale when x -> x0 |
| $\left(x-x_0\right){}^{-3}\succ \left(x-x_0\right){}^{-2}\succ \left(x-x_0\right){}^{-1}\succ \cdots$ | Laurent scale when x -> x0 |
| $x^{-1}\succ x^{-2}\succ x^{-3}\succ \cdots$ | Laurent scale when x -> ±∞ |
| $\left(x-x_0\right){}^{1/p}\succ \left(x-x_0\right){}^{2/p}\succ \left(x-x_0\right){}^{3/p}\succ \ldots$ | Puiseux scale when x -> x0 |

* The scales used to express the asymptotic approximation are automatically inferred from the problem and can often include more exotic scales.

* The center ``x0`` can be any finite or infinite real or complex number.

* The order ``n`` must be a positive integer and specifies order of approximation for the asymptotic solution. It is not related to polynomial degree.

* The specification ``u∈Vectors[n]`` or ``u∈Matrices[{m, n}]`` can be used to indicate that the dependent variable ``u`` is a vector-valued or a matrix-valued variable, respectively. Alternatively, ``u`` can be specified as a ``VectorSymbol`` or ``MatrixSymbol``.  »  »

* The following options can be given:

|                      |                   |                                                                    |
| -------------------- | ----------------- | ------------------------------------------------------------------ |
| AccuracyGoal         | Automatic         | digits of absolute accuracy sought                                 |
| Assumptions          | \$Assumptions     | assumptions to make about parameters                               |
| GenerateConditions   | Automatic         | whether to generate answers that involve conditions on parameters  |
| GeneratedParameters  | None              | how to name generated parameters                                   |
| Method               | Automatic         | method to use                                                      |
| PerformanceGoal      | \$PerformanceGoal | aspects of performance to optimize                                 |
| PrecisionGoal        | Automatic         | digits of precision sought                                         |
| SeriesTermGoal       | Automatic         | number of terms in the approximation                               |
| WorkingPrecision     | Automatic         | the precision used in internal computations                        |

* Possible settings for ``PerformanceGoal`` include ``\$PerformanceGoal``, ``"Quality"`` and ``"Speed"``. With the ``"Quality"`` setting, ``AsymptoticDSolve`` typically solves more problems or produces simpler results, but it potentially uses more time and memory.

---

## Examples (64)

### Basic Examples (3)

Compute an asymptotic approximation for a differential equation:

```wl
In[1]:= AsymptoticDSolveValue[{y''[x] - y[x] == 0, y[0] == 0, y'[0] == 1}, y[x], x -> 0]

Out[1]= x
```

---

Find a series solution for a differential equation:

```wl
In[1]:= AsymptoticDSolveValue[{y''[x] + y[x] == 0, y[0] == 1, y'[0] == 0}, y[x], {x, 0, 10}]

Out[1]= 1 - (x^2/2) + (x^4/24) - (x^6/720) + (x^8/40320) - (x^10/3628800)
```

Plot the solution:

```wl
In[2]:= Plot[%, {x, 0, 3π / 2}]

Out[2]= [image]
```

---

Find an asymptotic expansion for a perturbation problem:

```wl
In[1]:= AsymptoticDSolveValue[{ϵ y''[x] + y'[x] + x  y[x] == 0, y[0] == 0, y[1] == 1 / 2}, y[x], x, {ϵ, 0, 1}]

Out[1]= (1/2) E^(1/2) - (x^2/2) - (1/2) E^(1/2) - (x/ϵ)
```

Plot the solution:

```wl
In[2]:= Plot[Evaluate[Table[%, {ϵ, {1 / 30, 1 / 10, 1 / 5}}]], {x, 0, 1}]

Out[2]= [image]
```

### Scope (49)

#### Basic Uses (8)

Compute a series solution of order 10 for an ODE around ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[{y''[x] + x y[x] == 0, y[0] == 0, y'[0] == 1}, y[x], {x, 0, 10}]

Out[1]= x - (x^4/12) + (x^7/504) - (x^10/45360)
```

---

Plot the successive approximations for an asymptotic solution:

```wl
In[1]:= sol = AsymptoticDSolveValue[{y'[x] - y[x] == 0, y[0] == 1}, y[x], {x, 0, 4}]

Out[1]= 1 + x + (x^2/2) + (x^3/6) + (x^4/24)
```

Use ``Accumulate`` to build the list of approximations:

```wl
In[2]:= accum = Accumulate[List@@sol]

Out[2]= {1, 1 + x, 1 + x + (x^2/2), 1 + x + (x^2/2) + (x^3/6), 1 + x + (x^2/2) + (x^3/6) + (x^4/24)}
```

Obtain the required plot:

```wl
In[3]:= Plot[Evaluate[accum], {x, 0, 5}, PlotLegends -> "Expressions"]

Out[3]= [image]
```

---

Compute a series solution around ``x = 3`` :

```wl
In[1]:= AsymptoticDSolveValue[{y''[x] + 2 y[x] == 0, y[3] == 1, y'[3] == 0}, y[x], {x, 3, 10}]

Out[1]= 1 - (-3 + x)^2 + (1/6) (-3 + x)^4 - (1/90) (-3 + x)^6 + ((-3 + x)^8/2520) - ((-3 + x)^10/113400)
```

---

Obtain a series approximation for the general solution:

```wl
In[1]:= AsymptoticDSolveValue[y''[x] + y[x] == 0, y[x], {x, 0, 8}]

Out[1]= (1 - (x^2/2) + (x^4/24) - (x^6/720) + (x^8/40320)) C[1] + (x - (x^3/6) + (x^5/120) - (x^7/5040)) C[2]
```

---

Obtain series approximations with different numbers of terms:

```wl
In[1]:= AsymptoticDSolveValue[{ y'[x] + 3y[x] == 1, y[0] == 2}, y[x], {x, 0, 3}]

Out[1]= 2 - 5 x + (15 x^2/2) - (15 x^3/2)

In[2]:= AsymptoticDSolveValue[{ y'[x] + 3y[x] == 1, y[0] == 2}, y[x], {x, 0, 5}]

Out[2]= 2 - 5 x + (15 x^2/2) - (15 x^3/2) + (45 x^4/8) - (27 x^5/8)
```

---

Compute a series solution for a system of ODEs:

```wl
In[1]:= AsymptoticDSolveValue[{y'[x] == z[x] + 3, z'[x] == -y[x], y[0] == 1, z[0] == 5}, {y[x], z[x]}, {x, 0, 5}]

Out[1]= {1 + 8 x - (x^2/2) - (4 x^3/3) + (x^4/24) + (x^5/15), 5 - x - 4 x^2 + (x^3/6) + (x^4/3) - (x^5/120)}
```

---

Compute a series solution for a perturbation problem:

```wl
In[1]:= AsymptoticDSolveValue[{y'[x] + ϵ y[x] == Cos[x], y[0] == 0}, y[x], x, {ϵ, 0, 1}]

Out[1]= ϵ (-1 + Cos[x]) + Sin[x]
```

Vary the number of terms:

```wl
In[2]:= AsymptoticDSolveValue[{y'[x] + ϵ y[x] == Cos[x], y[0] == 0}, y[x], x, {ϵ, 0, 2}]

Out[2]= ϵ (-1 + Cos[x]) + ϵ^2 (x - Sin[x]) + Sin[x]

In[3]:= AsymptoticDSolveValue[{y'[x] + ϵ y[x] == Cos[x], y[0] == 0}, y[x], x, {ϵ, 0, 3}]

Out[3]= (1/2) ϵ^3 (2 - x^2 - 2 Cos[x]) + ϵ (-1 + Cos[x]) + ϵ^2 (x - Sin[x]) + Sin[x]
```

---

Find an asymptotic solution for a perturbation problem:

```wl
In[1]:= AsymptoticDSolveValue[{ y''[x] + ϵ y'[x] + y[x] == 0, y[0] == 1, y'[0] == 0}, y[x], x, {ϵ, 0, 2}]//Simplify

Out[1]= (1/8) ((8 - 4 x ϵ + x^2 ϵ^2) Cos[x] + ϵ (4 - x ϵ) Sin[x])
```

Plot the successive approximations given by the solution:

```wl
In[2]:= Plot[Evaluate[Accumulate[CoefficientList[%, ϵ] /. {ϵ -> 1 / 100}]], {x, 0, π / 2}]

Out[2]= [image]
```

#### Ordinary Points (7)

Find a Taylor series solution for a linear first-order ODE at the ordinary point ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[{ y'[x] - x  y[x] == 0, y[0] == 1}, y[x], {x, 0, 10}]

Out[1]= 1 + (x^2/2) + (x^4/8) + (x^6/48) + (x^8/384) + (x^10/3840)
```

Plot the successive approximations given by the solution:

```wl
In[2]:= Plot[Evaluate[Accumulate[List@@%]], {x, 0, 3}, PlotLegends -> "Expressions"]

Out[2]= [image]
```

---

Series solution for a linear second-order ODE at the ordinary point ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[{y''[x] + x y'[x] - y[x] == 0, y[0] == 1, y'[0] == 0}, y[x], {x, 0, 10}]

Out[1]= 1 + (x^2/2) - (x^4/24) + (x^6/240) - (x^8/2688) + (x^10/34560)
```

Plot the successive approximations given by the solution:

```wl
In[2]:= Plot[Evaluate[Accumulate[List@@%]], {x, 0, 3}, PlotLegends -> "Expressions"]

Out[2]= [image]
```

---

Series solution for an inhomogeneous linear ODE at the ordinary point ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[{y'[x] + 7y[x] == E ^ x, y[0] == 1}, y[x], {x, 0, 5}]

Out[1]= 1 - 6 x + (43 x^2/2) - 50 x^3 + (2101 x^4/24) - (2451 x^5/20)
```

---

Series solution for a linear ODE with nonrational coefficients at the ordinary point ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[{y''[x] + E ^ x y'[x]  + 7 Sin[x] ^ 2  y[x] == Cos[2x], y[0] == 1, y'[0] == 5}, y[x], {x, 0, 5}]

Out[1]= 1 + 5 x - 2 x^2 - (x^3/6) - (7 x^4/12) - (31 x^5/20)
```

---

Series solution for a linear higher-order ODE at the ordinary point ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[{y''''[x] + 26 y''[x] + 25 y[x] == 0, y[0] == 1, Derivative[1][y][0] == 0, Derivative[2][y][0] == -1, Derivative[3][y][0] == 5}, y[x], {x, 0, 8}]

Out[1]= 1 - (x^2/2) + (5 x^3/6) + (x^4/24) - (13 x^5/12) - (x^6/720) + (31 x^7/48) + (x^8/40320)
```

---

Series solution for a linear ODE at the ordinary point ``x = 1`` :

```wl
In[1]:= AsymptoticDSolveValue[{y''[x] + 5y[x] == Cos[2x], y[1] == 1, y'[1] == 5}, y[x], {x, 1, 3}]

Out[1]= 1 + 5 (-1 + x) + (1/2) (-1 + x)^2 (-5 + Cos[2]) + (1/6) (-1 + x)^3 (-25 - 2 Sin[2])
```

---

Series approximation for the general solution for a linear ODE at an ordinary point:

```wl
In[1]:= AsymptoticDSolveValue[{y''[x] + 5y[x] == 0}, y[x], {x, 1, 3}]

Out[1]= (1 - (5/2) (-1 + x)^2) C[1] + (-1 - (5/6) (-1 + x)^3 + x) C[2]
```

#### Regular Singular Points (5)

Find a Frobenius series solution for a linear first-order ODE at the regular singular point ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[Sin[x] y'[x] + y[x] == 0, y[x], {x, 0, 7}]

Out[1]= ((1 - (x^2/12) - (x^4/720) - (x^6/30240)) C[1]/x)
```

Plot the successive approximations given by the solution:

```wl
In[2]:= Plot[Evaluate[Accumulate[List@@(Expand[% /. {C[1] -> 1}])]], {x, 0, 3}, PlotLegends -> "Expressions"]

Out[2]= [image]
```

---

Series solution for a linear second-order ODE at the regular singular point ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[2 x ^ 2 y''[x] + 3x y'[x] - (x ^ 2 + 1)y[x] == 0, y[x], {x, 0, 5}]

Out[1]= Sqrt[x] (1 + (x^2/14) + (x^4/616)) C[1] + ((1 + (x^2/2) + (x^4/40)) C[2]/x)
```

---

Find a series solution for a linear higher-order ODE at the regular singular point ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[x ^ 4 y''''[x] + y[x] == 0, y[x], {x, 0, 4}]//FullSimplify

Out[1]= x^(3/2) - (Sqrt[5]/2) (C[1] + C[2] Log[x] + x^Sqrt[5] (C[3] + C[4] Log[x]))
```

The series solution is an exact solution in this case:

```wl
In[2]:= (x ^ 4 y''''[x] + y[x] == 0 /. {y -> Function[{x}, Evaluate[%]]})//Simplify

Out[2]= True
```

---

Series solution for a linear ODE at the regular singular point ``x = 1`` :

```wl
In[1]:= AsymptoticDSolveValue[(x - 1)y''[x] + y[x] == 0, y[x], {x, 1, 2}]

Out[1]= (-1 - (1/2) (-1 + x)^2 + x) C[2] + C[1] (x - (-1 + x) Log[-1 + x])
```

---

Series solution for a linear ODE with nonrational coefficients at the regular singular point ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[Sin[x] ^ 2 * y''[x] + x  y[x] == 0, y[x], {x, 0, 2}]

Out[1]= (x - (x^2/2)) C[2] + C[1] (1 + x - x Log[x])
```

#### Irregular Singular Points (3)

Find an asymptotic solution for a linear first-order ODE at the irregular singular point ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[x ^ 2  y'[x] + (x ^ 2 + 1)y[x] == 0, y[x], {x, 0, 4}]

Out[1]= E^(1/x) (1 - x + (x^2/2) - (x^3/6) + (x^4/24)) C[1]
```

Plot the successive approximations given by the solution:

```wl
In[2]:= Plot[Evaluate[Accumulate[List@@(Expand[% /. {C[1] -> 1}])]], {x, 0, 3}, PlotLegends -> "Expressions"]

Out[2]= [image]
```

---

Series solution for a linear second-order ODE at the irregular singular point ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[x ^ 3 y''[x] + y[x] == 0, y[x], {x, 0, 2}]

Out[1]= E^-(2 I/Sqrt[x]) x^3 / 4 (1 - (3 I Sqrt[x]/16) + (15 x/512) + (105 I x^3 / 2/8192) - (4725 x^2/524288)) C[1] + E^(2 I/Sqrt[x]) x^3 / 4 (1 + (3 I Sqrt[x]/16) + (15 x/512) - (105 I x^3 / 2/8192) - (4725 x^2/524288)) C[2]
```

---

Series solution for a linear higher-order ODE at the irregular singular point ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[x ^ 4 y'''[x] - 2 y'[x] + y[x] == 0, y[x], {x, 0, 2}]

Out[1]= (1 + (x/2) + (x^2/8)) C[1] + E^-(Sqrt[2]/x) x^3 (1 + (1/4) (-1 - 6 Sqrt[2]) x + (1/32) (193 + 24 Sqrt[2]) x^2) C[2] + E^(Sqrt[2]/x) x^3 (1 + (1/4) (-1 + 6 Sqrt[2]) x + (1/32) (193 - 24 Sqrt[2]) x^2) C[3]
```

#### Nonlinear ODEs (7)

Find a series solution for a nonlinear first-order ODE at ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[{ y'[x] - x y[x] ^ 3 == 0, y[0] == 1}, y[x], {x, 0, 8}]

Out[1]= 1 + (x^2/2) + (3 x^4/8) + (5 x^6/16) + (35 x^8/128)
```

Plot the successive approximations given by the solution:

```wl
In[2]:= Plot[Evaluate[Accumulate[List@@%]], {x, 0, 1}, PlotLegends -> "Expressions"]

Out[2]= [image]
```

---

Series solution for a nonlinear second-order ODE at ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[{y''[x] + 2y'[x] - y[x] ^ 2 == 0, y[0] == 1, y'[0] == 0}, y, {x, 0, 6}]

Out[1]= 1 + (x^2/2) - (x^3/3) + (x^4/4) - (2 x^5/15) + (5 x^6/72)
```

Plot the successive approximations given by the solution:

```wl
In[2]:= Plot[Evaluate[Accumulate[List@@%]], {x, 0, 3}, PlotLegends -> "Expressions"]

Out[2]= [image]
```

---

Series solution for an inhomogeneous nonlinear ODE at the ordinary point ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[{y'[x] + y[x] ^ 2 == E ^ (2x), y[0] == 1}, y[x], {x, 0, 5}]

Out[1]= 1 + x^2 + (x^4/3) - (x^5/5)
```

---

Series solution for a nonlinear ODE with nonrational coefficients at ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[{y''[x] + y'[x]  ^ 2 + 7 Sin[x] ^ 2  y[x] == Cos[2x], y[0] == 1, y'[0] == 5}, y[x], {x, 0, 5}]

Out[1]= 1 + 5 x - 12 x^2 + 40 x^3 - (595 x^4/4) + (2335 x^5/4)
```

---

Series solution for a nonlinear higher-order ODE at ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[{y''''[x] + y''[x] ^ 2 + 3y[x] == 0, y[0] == 1, Derivative[1][y][0] == 0, Derivative[2][y][0] == -1, Derivative[3][y][0] == 5}, y[x], {x, 0, 8}]

Out[1]= 1 - (x^2/2) + (5 x^3/6) - (x^4/6) + (x^5/12) - (11 x^6/144) + (25 x^7/1008) - (33 x^8/2240)
```

---

Series solution for a nonlinear ODE at ``x = 1`` :

```wl
In[1]:= AsymptoticDSolveValue[{y''[x] + 7y[x] ^ 2 == Cos[2x], y[1] == 1, y'[1] == 5}, y[x], {x, 1, 3}]

Out[1]= 1 + 5 (-1 + x) + (1/2) (-1 + x)^2 (-7 + Cos[2]) + (1/3) (-1 + x)^3 (-35 - Sin[2])
```

---

Series approximation for the general solution of a nonlinear ODE:

```wl
In[1]:= AsymptoticDSolveValue[{y''[x] + 3y[x] ^ 3 == 0}, y[x], {x, 0, 3}]

Out[1]= C[1] - (3 x^2 C[1]^3/2) + x C[2] - (3/2) x^3 C[1]^2 C[2]
```

#### Solutions at Infinity (4)

Find a series solution for a linear ODE at the ordinary point ``x = ∞`` :

```wl
In[1]:= AsymptoticDSolveValue[x ^ 2 y'[x] + y[x] == 0, y[x], {x, ∞, 4}]

Out[1]= (1 + (1/24 x^4) + (1/6 x^3) + (1/2 x^2) + (1/x)) C[1]
```

Plot the successive approximations given by the solution:

```wl
In[2]:= Plot[Evaluate[Rest@Accumulate[List@@(% /. {C[1] -> 1})]], {x, 0, 60}, PlotLegends -> "Expressions"]

Out[2]= [image]
```

---

Find a series solution for a linear ODE at the regular singular point ``x = ∞`` :

```wl
In[1]:= AsymptoticDSolveValue[x ^ 3 y''[x] + x * y'[x] + y[x] == 0, y[x], {x, ∞, 3}]

Out[1]= (1 - (1/2 x)) C[2] + C[1] (3 - (4/x) + x + 2 Log[x] - (Log[x]/x))
```

---

Find a series solution for a linear ODE at the irregular singular point ``x = ∞`` :

```wl
In[1]:= AsymptoticDSolveValue[y''[x] - x ^ 2 y[x] == 0, y[x], {x, ∞, 2}]

Out[1]= E^-(x^2/2) (-(3/16 x^5 / 2) + (1/Sqrt[x])) C[1] + E^(x^2/2) ((3/16 x^5 / 2) + (1/Sqrt[x])) C[2]
```

---

Find a series solution for a nonlinear ODE at ``x = ∞`` :

```wl
In[1]:= AsymptoticDSolveValue[{x ^ 2 y'[x] - 5y[x] ^ 2 == 0, y[∞] == 1}, y[x], {x, ∞, 4}]

Out[1]= 1 + (625/x^4) - (125/x^3) + (25/x^2) - (5/x)
```

#### Systems of ODEs (7)

Find a series solution for a linear system of first-order ODEs at the ordinary point ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[{u'[x] == x v[x] + 3, v'[x] == -x u[x], u[0] == 1, v[0] == 3}, {u[x], v[x]}, {x, 0, 5}]

Out[1]= {1 + 3 x + (3 x^2/2) - (x^4/8) - (x^5/5), 3 - (x^2/2) - x^3 - (3 x^4/8)}
```

Plot the approximation given by the solution:

```wl
In[2]:= ParametricPlot[Evaluate[%], {x, 0, 2}]

Out[2]= [image]
```

---

Series solution for a linear system of higher-order ODEs at the ordinary point ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[{y''[x] == z[x], z'[x] == -y[x], y[0] == 1, z[0] == 3, y'[0] == 4}, {y[x], z[x]}, {x, 0, 3}]

Out[1]= {1 + 4 x + (3 x^2/2) - (x^3/6), 3 - x - 2 x^2 - (x^3/2)}
```

---

Series solution for an inhomogeneous system of linear ODEs at the ordinary point ``x = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[{y'[x] + z[x] == E ^ x, z'[x] == 5y[x] + 1, y[0] == 1, z[0] == 3}, {y[x], z[x]}, {x, 0, 5}]

Out[1]= {1 - 2 x - (5 x^2/2) + (11 x^3/6) + (13 x^4/12) - (9 x^5/20), 3 + 6 x - 5 x^2 - (25 x^3/6) + (55 x^4/24) + (13 x^5/12)}
```

---

Series solution for a linear system of ODEs at the ordinary point ``x = 1`` :

```wl
In[1]:= AsymptoticDSolveValue[{y'[x] == x z[x] + 2, z'[x] == -x y[x], y[1] == 1, z[1] == 3}, {y[x], z[x]}, {x, 1, 3}]

Out[1]= {1 + 5 (-1 + x) + (-1 + x)^2 - (4/3) (-1 + x)^3, 4 - 3 (-1 + x)^2 - 2 (-1 + x)^3 - x}
```

---

Series approximation to the general solution for a linear system of ODEs at an ordinary point:

```wl
In[1]:= AsymptoticDSolveValue[{y'[x] == 3 z[x], z'[x] == y[x]}, {y[x], z[x]}, {x, 1, 3}]

Out[1]= {(1 + (3/2) (-1 + x)^2) C[1] + (3 (-1 + x) + (3/2) (-1 + x)^3) C[2], (-1 + (1/2) (-1 + x)^3 + x) C[1] + (1 + (3/2) (-1 + x)^2) C[2]}
```

---

Series solution for a linear system of ODEs at the ordinary point ``x = 0`` using vector variables:

```wl
In[1]:= m = {{0, 1}, {-1, 0}};

In[2]:= AsymptoticDSolveValue[{y'[x] == m.y[x], y[0] == {1, 1}}, Element[y[x], Vectors[2]], {x, 0, 3}]

Out[2]= {1 + x - (x^2/2) - (x^3/6), 1 - x - (x^2/2) + (x^3/6)}
```

Alternatively, define $y$ as a ``VectorSymbol`` :

```wl
In[3]:= y = VectorSymbol["y", 2]

Out[3]= VectorSymbol["y", 2]

In[4]:= AsymptoticDSolveValue[{y'[x] == m.y[x], y[0] == {1, 1}}, y[x], {x, 0, 3}]

Out[4]= {1 + x - (x^2/2) - (x^3/6), 1 - x - (x^2/2) + (x^3/6)}
```

---

Series solution for a linear system of ODEs at the ordinary point ``x = 0`` using matrix variables:

```wl
In[1]:=
m = {{0, 1}, {-1, 0}};
x0 = {{1, 2}, {3, 4}};

In[2]:= AsymptoticDSolveValue[{y'[x] == m.y[x], y[0] == x0}, Element[y[x], Matrices[{2, 2}]], {x, 0, 3}]//MatrixForm

Out[2]//MatrixForm=
(⁠|                             |                           |
| --------------------------- | ------------------------- |
| 1 + 3 x - (x^2/2) - (x^3/2) | 2 + 4 x - x^2 - (2 x^3/3) |
| 3 - x - (3 x^2/2) + (x^3/6) | 4 - 2 x - 2 x^2 + (x^3/3) |⁠)
```

Alternatively, define $y$ as a ``MatrixSymbol`` :

```wl
In[3]:= y = MatrixSymbol["y", {2, 2}]

Out[3]= MatrixSymbol["y", {2, 2}]

In[4]:= AsymptoticDSolveValue[{y'[x] == m.y[x], y[0] == x0}, y[x], {x, 0, 3}]//MatrixForm

Out[4]//MatrixForm=
(⁠|                             |                           |
| --------------------------- | ------------------------- |
| 1 + 3 x - (x^2/2) - (x^3/2) | 2 + 4 x - x^2 - (2 x^3/3) |
| 3 - x - (3 x^2/2) + (x^3/6) | 4 - 2 x - 2 x^2 + (x^3/3) |⁠)
```

#### Regular Perturbations (2)

Find a series solution for a regular linear perturbation problem at ``ϵ = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[{y''[x] - y'[x] - ϵ x y[x] == 0, y[0] == 0, y'[0] == 1}, y[x], x, {ϵ, 0, 3}]//Simplify

Out[1]= -1 + E^x + (1/2) x (2 + E^x (-2 + x) + x) ϵ + (1/24) (-240 - 120 x - 60 x^2 - 20 x^3 - 3 x^4 + E^x (240 - 120 x + 60 x^2 - 20 x^3 + 3 x^4)) ϵ^2 + (1/48) x (3360 + 1680 x + 480 x^2 + 100 x^3 + 14 x^4 + x^5 + E^x (-3360 + 1680 x - 480 x^2 + 100 x^3 - 14 x^4 + x^5)) ϵ^3
```

Plot the successive approximations given by the solution:

```wl
In[2]:= Plot[Evaluate[CoefficientList[%, ϵ] /. {ϵ -> 1 / 10}], {x, 0, 3}, PlotLegends -> "Expressions"]

Out[2]= [image]
```

---

Find a series solution for a regular nonlinear perturbation problem at ``ϵ = 0`` :

```wl
In[1]:= AsymptoticDSolveValue[{u''[x] + u[x] + ϵ u[x] ^ 2 == 0, u[0] == 1, u'[0] == 2}, u[x], x, {ϵ, 0, 2}]//Simplify

Out[1]= (1/144) (-360 ϵ - 48 ϵ^2 + (144 + 432 ϵ - (191 + 600 x) ϵ^2) Cos[x] + 8 ϵ (-9 + 34 ϵ) Cos[2 x] - 33 ϵ^2 Cos[3 x] + 288 Sin[x] - 192 ϵ Sin[x] + 170 ϵ^2 Sin[x] + 300 x ϵ^2 Sin[x] + 96 ϵ Sin[2 x] + 224 ϵ^2 Sin[2 x] - 6 ϵ^2 Sin[3 x])
```

Plot the approximation given by the solution:

```wl
In[2]:= Plot[Evaluate[% /. {ϵ -> 1 / 100}], {x, 0, 10}]

Out[2]= [image]
```

#### Singular Perturbations (3)

Find a first-order approximation for a singular boundary value problem:

```wl
In[1]:= AsymptoticDSolveValue[{ϵ y''[x] + (x + 1) y[x] == 0, y[0] == 1, y[1] == 0}, y[x], x, {ϵ, 0, 1}]

Out[1]= -((-1)^1 / 4 E^(8 I Sqrt[2]/3 Sqrt[ϵ]) - (2 I (-1 + (1 + x)^3 / 2)/3 Sqrt[ϵ])/(E^(4 I/3 Sqrt[ϵ]) - E^(8 I Sqrt[2]/3 Sqrt[ϵ])) (-1 - x)^1 / 4) + ((-1)^1 / 4 E^(4 I/3 Sqrt[ϵ]) + (2 I (-1 + (1 + x)^3 / 2)/3 Sqrt[ϵ])/(E^(4 I/3 Sqrt[ϵ]) - E^(8 I Sqrt[2]/3 Sqrt[ϵ])) (-1 - x)^1 / 4)
```

Plot the approximation for different values of the parameter:

```wl
In[2]:= Plot[% /. {ϵ -> 1 / 500}, {x, 0, 1}]

Out[2]= [image]
```

Compare with a numerical solution:

```wl
In[3]:= NDSolveValue[{(1 / 500) y''[x] + (x + 1) y[x] == 0, y[0] == 1, y[1] == 0}, y[x], {x, 0, 1}];

In[4]:= Plot[%, {x, 0, 1}]

Out[4]= [image]
```

---

Find a second-order approximation for a singular boundary value problem:

```wl
In[1]:= AsymptoticDSolveValue[{ϵ y''[x] - (2x + 1) y[x] == 0, y[0] == 1 / 3, y[1] == 0}, y[x], x, {ϵ, 0, 2}]

Out[1]= -(E^(1/3 Sqrt[ϵ]) + (2 Sqrt[3]/Sqrt[ϵ]) - ((1 + 2 x)^3 / 2/3 Sqrt[ϵ]) + (5 Sqrt[ϵ]/24) + (5 Sqrt[ϵ]/36 Sqrt[3]) - (5 Sqrt[ϵ]/24 (1 + 2 x)^3 / 2)/3 (E^(2/3 Sqrt[ϵ]) + (5 Sqrt[ϵ]/12) - E^(2 Sqrt[3]/Sqrt[ϵ]) + (5 Sqrt[ϵ]/36 Sqrt[3])) (1 + 2 x)^1 / 4) + (E^(1/3 Sqrt[ϵ]) + ((1 + 2 x)^3 / 2/3 Sqrt[ϵ]) + (5 Sqrt[ϵ]/24) + (5 Sqrt[ϵ]/24 (1 + 2 x)^3 / 2)/3 (E^(2/3 Sqrt[ϵ]) + (5 Sqrt[ϵ]/12) - E^(2 Sqrt[3]/Sqrt[ϵ]) + (5 Sqrt[ϵ]/36 Sqrt[3])) (1 + 2 x)^1 / 4)
```

Plot the approximation for different values of the parameter:

```wl
In[2]:= Plot[Table[%, {ϵ, {1 / 10, 1 / 30, 1 / 50}}]//Evaluate, {x, 0, 1}]

Out[2]= [image]
```

---

Find a second-order perturbation approximation at ``λ = ∞`` :

```wl
In[1]:= AsymptoticDSolveValue[{y''[x] + λ (x + 1) ^ 2y[x] == 0, y[0] == 1, y[1] == 0}, y[x], x, {λ, ∞, 2}]

Out[1]= ((-1)^1 / 4 E^(3 I/Sqrt[(1/λ)]) + (x (1 + x) (2 + x)/2 Sqrt[-(1 + x)^2] Sqrt[(1/λ)]) + (3/32) I Sqrt[(1/λ)] + (3 Sqrt[-(1 + x)^2] Sqrt[(1/λ)]/16 (1 + x)^3)/(-1 + E^(3 I/Sqrt[(1/λ)]) + (9/32) I Sqrt[(1/λ)]) (-(1 + x)^2)^1 / 4) - ((-1)^1 / 4 E^-(x (1 + x) (2 + x)/2 Sqrt[-(1 + x)^2] Sqrt[(1/λ)]) + (3/16) I Sqrt[(1/λ)] + (3 (-(1 + x)^2)^3 / 2 Sqrt[(1/λ)]/16 (1 + x)^5)/(-1 + E^(3 I/Sqrt[(1/λ)]) + (9/32) I Sqrt[(1/λ)]) (-(1 + x)^2)^1 / 4)
```

Plot the approximation for a large value of the parameter:

```wl
In[2]:= Plot[% /. {λ -> 160}, {x, 0, 1}, WorkingPrecision -> 20]

Out[2]= [image]

In[3]:= NDSolveValue[{y''[x] + 160(x + 1) ^ 2y[x] == 0, y[0] == 1, y[1] == 0}, y[x], {x, 0, 1}]

Out[3]=
InterpolatingFunction[{{0., 1.}}, {5, 7, 2, {198}, {4}, 0, 0, 0, 0, Automatic, {}, {}, False}, 
 CompressedData["«2200»"], 
 {Developer`PackedArrayForm, CompressedData["«517»"], CompressedData["«6501»"]}, {Automatic}][x]

In[4]:= Plot[%, {x, 0, 1}]

Out[4]= [image]
```

#### Fractional ODEs (3)

Find the series solution for a linear fractional ODE of order 0.7:

```wl
In[1]:= AsymptoticDSolveValue[{CaputoD[y[x], {x, 0.7}] + 3 y[x] == 0, y[0] == 1}, y[x], {x, 0, 5}]

Out[1]= 1.  - 3.30164 x^7 / 10 + 7.24539 x^7 / 5 - 12.286 x^21 / 10 + 17.2554 x^14 / 5 - 20.8911 x^7 / 2 + 22.377 x^21 / 5 - 21.5957 x^49 / 10 + 19.0338 x^28 / 5
```

Solve the same ODE using ``DSolveValue`` :

```wl
In[2]:= dsol = DSolveValue[{CaputoD[y[x], {x, 0.7}] + 3 y[x] == 0, y[0] == 1}, y[x], x]

Out[2]= 1. MittagLefflerE[0.7, -3. x^0.7]
```

Compare exact solution with asymptotic solutions for various values of approximation of order $n$ :

```wl
In[3]:= asol[n_] := AsymptoticDSolveValue[{CaputoD[y[x], {x, 0.7}] + 3 y[x] == 0, y[0] == 1}, y[x], {x, 0, n}];

In[4]:= Plot[Evaluate[{dsol, asol[5], asol[10], asol[15], asol[20]}], {x, 0, 2}, PlotLegends -> {"Exact", "n=5", "n=10", "n=15", "n=20"}]

Out[4]= [image]
```

---

Find the series solution for a linear fractional ODE with nonconstant coefficients:

```wl
In[1]:= sol = AsymptoticDSolveValue[{CaputoD[y[x], {x, 1 / 2}] - x y[x] == 0, y[0] == 1}, y[x], {x, 0, 15}]

Out[1]= 1 + (4 x^3 / 2/3 Sqrt[π]) + (5 x^3/12) + (64 x^9 / 2/189 Sqrt[π]) + (11 x^6/144) + (256 x^15 / 2/5265 Sqrt[π]) + (187 x^9/20736) + (2048 x^21 / 2/420147 Sqrt[π]) + (391 x^12/497664) + (8192 x^27 / 2/21815325 Sqrt[π])
```

---

Find a series solution for a system of two linear fractional ODEs:

```wl
In[1]:= eqns = {CaputoD[x1[t], {t, 0.95}] == 2x1[t] - x2[t], CaputoD[x2[t], {t, 0.95}] == 4x1[t] - 3x2[t], x1[0] == 1.2, x2[0] == 4.2};

In[2]:= asol = AsymptoticDSolveValue[eqns, {x1, x2}, {t, 0, 15}]

Out[2]= {1.2  - 1.83696 t^19 / 20 + 2.2984 t^19 / 10 - 1.56446 t^57 / 20 + 0.908181 t^19 / 5 - 0.403633 t^19 / 4 + 0.155295 t^57 / 10 - 0.0509197 t^133 / 20 + 0.0148176 t^38 / 5 - 0.0038433 t^171 / 20 + 0.00090375 t^19 / 2 - 0.000193994 t^209 / 20 + 0.0000 ... 20 + 0.0592357 t^38 / 5 - 0.0153777 t^171 / 20 + 0.00361447 t^19 / 2 - 0.000776035 t^209 / 20 + 0.000153444 t^57 / 5 - 0.0000281219 t^247 / 20 + 4.80435017517135`*^-6 t^133 / 10 - 7.687889455664014`*^-7 t^57 / 4 + 1.1571814308369838`*^-7 t^76 / 5}
```

Plot the solution:

```wl
In[3]:= Plot[asol, {t, 0, 2}, PlotRange -> All]

Out[3]= [image]
```

### Options (1)

#### GeneratedParameters (1)

Use differently named constants:

```wl
In[1]:= AsymptoticDSolveValue[y''[x] == y[x], y[x], {x, 0, 3}, GeneratedParameters -> d]

Out[1]= (1 + (x^2/2)) d[1] + (x + (x^3/6)) d[2]
```

Use subscripted constants:

```wl
In[2]:= AsymptoticDSolveValue[y''[x] == y[x], y[x], {x, 0, 3}, GeneratedParameters -> (Subscript[c, #]&)]

Out[2]= (1 + (x^2/2)) Subscript[c, 1] + (x + (x^3/6)) Subscript[c, 2]
```

### Applications (7)

Compute a Taylor polynomial approximation for ``Cos`` :

```wl
In[1]:= sol1 = AsymptoticDSolveValue[{y''[x] + y[x] == 0, y[0] == 1, y'[0] == 0}, y[x], {x, 0, 8}]

Out[1]= 1 - (x^2/2) + (x^4/24) - (x^6/720) + (x^8/40320)

In[2]:= Plot[{sol1, Cos[x]}, {x, 0, 3Pi}, PlotRange -> {-2, 5}]

Out[2]= [image]
```

Improve the range of the approximation by specifying a higher order:

```wl
In[3]:= sol2 = AsymptoticDSolveValue[{y''[x] + y[x] == 0, y[0] == 1, y'[0] == 0}, y[x], {x, 0, 16}]

Out[3]= 1 - (x^2/2) + (x^4/24) - (x^6/720) + (x^8/40320) - (x^10/3628800) + (x^12/479001600) - (x^14/87178291200) + (x^16/20922789888000)

In[4]:= Plot[{sol2, Cos[x]}, {x, 0, 3Pi}, PlotRange -> {-2, 5}]

Out[4]= [image]
```

Study the variation of range with the order of the approximation:

```wl
In[5]:= sol[n_] := AsymptoticDSolveValue[{y''[x] + y[x] == 0, y[0] == 1, y'[0] == 0}, y[x], {x, 0, n}]

In[6]:= Plot[{sol[4], sol[8], sol[12], sol[16], sol[24], Cos[x]}//Evaluate, {x, 0, 3Pi}, PlotRange -> {-2, 5}]

Out[6]= [image]
```

---

Solve Bessel's equation of order $1/2$ around the regular singular point ``x = 0`` :

```wl
In[1]:= sol = AsymptoticDSolveValue[x ^ 2 y''[x] + x y'[x] + (x ^ 2 - 1 / 4)y[x] == 0, y[x], {x, 0, 24}]

Out[1]= ((1/Sqrt[x]) - (x^3 / 2/2) + (x^7 / 2/24) - (x^11 / 2/720) + (x^15 / 2/40320) - (x^19 / 2/3628800) + (x^23 / 2/479001600) - (x^27 / 2/87178291200) + (x^31 / 2/20922789888000) - (x^35 / 2/6402373705728000) + (x^39 / 2/2432902008176640000) - (x^43 /  ...  (x^13 / 2/5040) + (x^17 / 2/362880) - (x^21 / 2/39916800) + (x^25 / 2/6227020800) - (x^29 / 2/1307674368000) + (x^33 / 2/355687428096000) - (x^37 / 2/121645100408832000) + (x^41 / 2/51090942171709440000) - (x^45 / 2/25852016738884976640000)) C[2]
```

Plot the two components of the general solution:

```wl
In[2]:= Plot[{(sol /. {C[1] -> 1, C[2] -> 0}), (sol /. {C[1] -> 0, C[2] -> 1})}, {x, 0, 3π}, PlotRange -> {-2, 2}]

Out[2]= [image]
```

---

The Airy equation has an irregular singular point at ``x = ∞`` :

```wl
In[1]:= airyode = y''[x] - x y[x] == 0;
```

Compute an asymptotic expansion at the irregular singular point:

```wl
In[2]:= sol = AsymptoticDSolveValue[airyode, y[x], {x, ∞, 3}]

Out[2]= E^-(2 x^3 / 2/3) ((385/4608 x^13 / 4) - (5/48 x^7 / 4) + (1/x^1 / 4)) C[1] + E^(2 x^3 / 2/3) ((385/4608 x^13 / 4) + (5/48 x^7 / 4) + (1/x^1 / 4)) C[2]
```

Compare with the expansions for the Airy functions at ``Infinity`` :

```wl
In[3]:= s1 = Series[AiryAi[x], {x, ∞, 4}]//Normal

Out[3]= E^-(2 x^3 / 2/3) ((385/9216 Sqrt[π] x^13 / 4) - (5/96 Sqrt[π] x^7 / 4) + (1/2 Sqrt[π] x^1 / 4))

In[4]:= s2 = Series[AiryBi[x], {x, ∞, 4}]//Normal

Out[4]= E^(2 x^3 / 2/3) ((385/4608 Sqrt[π] x^13 / 4) + (5/48 Sqrt[π] x^7 / 4) + (1/Sqrt[π] x^1 / 4))
```

Plot the Airy functions and the approximations:

```wl
In[5]:=
Plot[Evaluate[{AiryAi[x], AiryBi[x], (sol  /. {C[1] -> 1 / (2 Sqrt[Pi]), C[2] -> 0}), (sol  /. {C[1] -> 0, C[2] -> 1 / Sqrt[Pi]}) }], {x, -3, 3}, PlotLegends -> {AiryAi[x], AiryBi[x], "sol1", "sol2"}, 
	 PlotStyle -> Thickness[0.008]]

Out[5]= [image]
```

---

Compute an exact polynomial solution of a nonlinear first-order ODE:

```wl
In[1]:= ode = 3y'[x] ^ 2 + 4x y'[x] - y[x] + x ^ 2 == 0;

In[2]:= sol = AsymptoticDSolveValue[ode, y[x], {x, 0, 4}]//Quiet

Out[2]= -(x^2/4) - (x Sqrt[C[1]]/Sqrt[3]) + C[1]
```

Verify that this is a solution of the ODE:

```wl
In[3]:= ode /. y -> Function[{x}, Evaluate[sol]]//Simplify

Out[3]= True
```

---

Compute an equilibrium solution for a system of first-order ODEs:

```wl
In[1]:= odes = {u'[t] == u[t] ^ 2 / v[t] - u[t], v'[t] == u[t] ^ 2 - v[t]};
```

Visualize the vector field defined by the system:

```wl
In[2]:= StreamPlot[{u ^ 2 / v - u, u ^ 2 - v}, {u, -2, 2}, {v, -2, 2}]

Out[2]= [image]
```

Solve the system with general initial conditions:

```wl
In[3]:= sol = AsymptoticDSolveValue[{odes, u[0] == a, v[0] == b}, {u[t], v[t]}, {t, 0, 5}];
```

Find the equilibrium solution:

```wl
In[4]:= sol /. {a -> 1, b -> 1}

Out[4]= {1, 1}
```

---

Find a first-order perturbation expansion for the Duffing equation:

```wl
In[1]:= eqn = {u''[x] + u[x] + ϵ u[x] ^ 3 == 0, u[0] == 3, u'[0] == 0};

In[2]:= psol = AsymptoticDSolveValue[eqn, u[x], x, {ϵ, 0, 1}]

Out[2]= 3 Cos[x] + (3/32) ϵ (-9 Cos[x] + 9 (Cos[3 x] - 12 x Sin[x]))
```

Plot the approximate solution:

```wl
In[3]:= Plot[psol /.  {ϵ -> 1 / 800}, {x, 0, 20}, PlotPoints -> 100, WorkingPrecision -> 20]

Out[3]= [image]
```

Compare with the exact solution:

```wl
In[4]:= dsol = DSolveValue[eqn /.  {ϵ -> (1/800)}, u[x], x]

Out[4]= I Sqrt[1609] JacobiSN[(3 I x/40) - InverseJacobiSN[(3 I/Sqrt[1609]), -(1609/9)], -(1609/9)]

In[5]:= Plot[dsol // Evaluate, {x, 0, 20}, PlotPoints -> 100, WorkingPrecision -> 20]

Out[5]= [image]
```

---

Find the approximate eigenfunctions for the Sturm–Liouville problem corresponding to $y''(x)+\lambda  (x+1)^2 y(x)=0$, for large values of $\lambda$. Rewrite the problem using a small parameter $\epsilon =1/\lambda$ :

```wl
In[1]:= eqns = {ϵ y''[x] + (x + 1) ^ 2y[x] == 0, y[0] == A, y[1] == B};
```

Obtain a first-order asymptotic approximation:

```wl
In[2]:= sol = FullSimplify[AsymptoticDSolveValue[eqns, y[x], x, {ϵ, 0, 1}], 0 < x < 1]

Out[2]= (Csc[(3/2 Sqrt[ϵ])] (Sqrt[2] B Sin[(x (2 + x)/2 Sqrt[ϵ])] - A Sin[((-1 + x) (3 + x)/2 Sqrt[ϵ])])/Sqrt[1 + x])
```

Construct the eigenfunctions after ignoring the constant ``Csc`` factor, using $\epsilon =1\left/\left(4 \pi ^2 n^2\right)\right.$ :

```wl
In[3]:= eigfuns = Simplify[(Sqrt[2] B Sin[(x (2 + x)/2 Sqrt[ϵ])] - A Sin[((-1 + x) (3 + x)/2 Sqrt[ϵ])]/Sqrt[1 + x]) /.  {B -> 1, A -> 0, ϵ -> (9/4 n^2 π^2)}, n∈ℤ && n > 0]

Out[3]= (Sqrt[2] Sin[(1/3) n π x (2 + x)]/Sqrt[1 + x])
```

Plot the approximate eigenfunctions:

```wl
In[4]:= Plot[Table[eigfuns, {n, 1, 4}]//Evaluate, {x, 0, 1}]

Out[4]= [image]
```

### Properties & Relations (3)

Solutions satisfy the differential equation up to a given order:

```wl
In[1]:= sol = AsymptoticDSolveValue[{y'[x] + y[x] == 0, y[0] == 1}, y[x], {x, 0, 8}]

Out[1]= 1 - x + (x^2/2) - (x^3/6) + (x^4/24) - (x^5/120) + (x^6/720) - (x^7/5040) + (x^8/40320)

In[2]:= {y'[x] + y[x], y[0] == 1} /. y -> Function[{x}, Evaluate[sol]]

Out[2]= {(x^8/40320), True}
```

---

Use ``DSolveValue`` to find an exact solution:

```wl
In[1]:= asol = AsymptoticDSolveValue[{y'[x] - 2y[x] == 0, y[0] == 1}, y[x], {x, 0, 4}]

Out[1]= 1 + 2 x + 2 x^2 + (4 x^3/3) + (2 x^4/3)

In[2]:= dsol = DSolveValue[{y'[x] - 2y[x] == 0, y[0] == 1}, y[x], x]

Out[2]= E^2 x

In[3]:= Series[%, {x, 0, 4}]//Normal

Out[3]= 1 + 2 x + 2 x^2 + (4 x^3/3) + (2 x^4/3)
```

---

Use ``NDSolveValue`` to find a numerical solution:

```wl
In[1]:= asol = AsymptoticDSolveValue[{y'[x] + 2y[x] == 0, y[0] == 1}, y[x], {x, 0, 10}]

Out[1]= 1 - 2 x + 2 x^2 - (4 x^3/3) + (2 x^4/3) - (4 x^5/15) + (4 x^6/45) - (8 x^7/315) + (2 x^8/315) - (4 x^9/2835) + (4 x^10/14175)

In[2]:= Table[%, {x, 0, 1, 0.2}]

Out[2]= {1., 0.67032, 0.449329, 0.301194, 0.2019, 0.135379}

In[3]:= dsol = NDSolveValue[{y'[x] + 2y[x] == 0, y[0] == 1}, y[x], {x, 0, 1}]

Out[3]=
InterpolatingFunction[{{0., 1.}}, {5, 7, 1, {34}, {4}, 0, 0, 0, 0, Automatic, {}, {}, False}, 
 {{0., 0.00007258344207780268, 0.00014516688415560535, 0.002403810523376665, 0.004662454162597725, 
   0.006921097801818784, 0.014046425017804894, 0.0211 ... 9746059, 0.9415529949873029, 1.}}, 
 {Developer`PackedArrayForm, {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 
   36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68}, 
  CompressedData["«791»"]}, {Automatic}][x]

In[4]:= Table[%, {x, 0, 1, 0.2}]

Out[4]= {1., 0.67032, 0.449329, 0.301194, 0.201896, 0.135335}
```

### Possible Issues (1)

The expansion returned for this example has fewer than four terms:

```wl
In[1]:= AsymptoticDSolveValue[{y''[x] + y[x] == 0, y[0] == 0, y'[0] == 1}, y[x], {x, 0, 4}]

Out[1]= x - (x^3/6)
```

The missing terms are present in the expansion for a more general problem:

```wl
In[2]:= AsymptoticDSolveValue[{y''[x] + a y'[x] + y[x] == 0, y[0] == b, y'[0] == 1}, y[x], {x, 0, 4}]

Out[2]= b + x + (1/2) (-a - b) x^2 + (1/6) (-1 - a (-a - b)) x^3 + (1/12) (-(1/2) a (-1 - a (-a - b)) + (a + b/2)) x^4

In[3]:= % /. {a -> 0, b -> 0}

Out[3]= x - (x^3/6)
```

## See Also

* [`Asymptotic`](https://reference.wolfram.com/language/ref/Asymptotic.en.md)
* [`DSolveValue`](https://reference.wolfram.com/language/ref/DSolveValue.en.md)
* [`AsymptoticLess`](https://reference.wolfram.com/language/ref/AsymptoticLess.en.md)
* [`Series`](https://reference.wolfram.com/language/ref/Series.en.md)
* [`NDSolveValue`](https://reference.wolfram.com/language/ref/NDSolveValue.en.md)
* [`ParametricNDSolveValue`](https://reference.wolfram.com/language/ref/ParametricNDSolveValue.en.md)
* [`AsymptoticIntegrate`](https://reference.wolfram.com/language/ref/AsymptoticIntegrate.en.md)
* [`AsymptoticRSolveValue`](https://reference.wolfram.com/language/ref/AsymptoticRSolveValue.en.md)
* [`AsymptoticSolve`](https://reference.wolfram.com/language/ref/AsymptoticSolve.en.md)

## Tech Notes

* [Introduction to Fractional Calculus](https://reference.wolfram.com/language/tutorial/FractionalCalculus.en.md)

## Related Guides

* [`Asymptotics`](https://reference.wolfram.com/language/guide/Asymptotics.en.md)
* [Equation Solving](https://reference.wolfram.com/language/guide/EquationSolving.en.md)
* [`Calculus`](https://reference.wolfram.com/language/guide/Calculus.en.md)
* [Fractional Calculus](https://reference.wolfram.com/language/guide/FractionalCalculus.en.md)
* [Symbolic Vectors, Matrices and Arrays](https://reference.wolfram.com/language/guide/SymbolicArrays.en.md)

## History

* [Introduced in 2018 (11.3)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn113.en.md) \| [Updated in 2020 (12.1)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn121.en.md) ▪ [2022 (13.2)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn132.en.md) ▪ [2025 (14.2)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn142.en.md)