BUILT-IN MATHEMATICA SYMBOL
NDSolveValue
NDSolveValue[eqns, expr, {x, xmin, xmax}]
gives the value of expr with functions determined by a numerical solution to the ordinary differential equations eqns with the independent variable x in the range
to
.
NDSolveValue[eqns, expr, {x, xmin, xmax}, {t, tmin, tmax}]
uses a numerical solution to the partial differential equations eqns.
- NDSolveValue[eqns, y[x], {x, xmin, xmax}] gives solutions for
rather than for the function y itself.
- Differential equations must be stated in terms of derivatives such as
, obtained with D, not total derivatives obtained with Dt.
- NDSolveValue solves a wide range of ordinary differential equations as well as many partial differential equations.
- NDSolveValue can also solve many delay differential equations.
- In ordinary differential equations, the functions
must depend only on the single variable x. In partial differential equations, they may depend on more than one variable.
- The differential equations must contain enough initial or boundary conditions to determine the solutions for the
completely.
- Initial and boundary conditions are typically stated in the form
,
, etc., but may consist of more complicated equations.
- The
,
, etc. can be lists, specifying that
is a function with vector or general list values.
- Periodic boundary conditions can be specified using
.
- The point
that appears in the initial or boundary conditions need not lie in the range
to
over which the solution is sought.
- In delay differential equations, initial history functions are given in the form
, where
is in general a function of x.
- WhenEvent[event, action] may be included in the equations eqns to specify an action that occurs when event becomes True.
- The differential equations in NDSolveValue can involve complex numbers.
- NDSolveValue can solve many differential-algebraic equations, in which some of the eqns are purely algebraic, or some of the variables are implicitly algebraic.
- The
can be functions of the dependent variables, and need not include all such variables.
- The following options can be given:
-
- NDSolveValue adapts its step size so that the estimated error in the solution is just within the tolerances specified by PrecisionGoal and AccuracyGoal.
- The option NormFunction->f specifies that the estimated errors for each of the
should be combined using
.
- AccuracyGoal effectively specifies the absolute local error allowed at each step in finding a solution, while PrecisionGoal specifies the relative local error.
- If solutions must be followed accurately when their values are close to zero, AccuracyGoal should be set larger, or to Infinity.
- The default setting of Automatic for AccuracyGoal and PrecisionGoal is equivalent to WorkingPrecision/2.
- The setting for MaxStepFraction specifies the maximum step to be taken by NDSolve as a fraction of the range of values for each independent variable.
- With DependentVariables->Automatic, NDSolve attempts to determine the dependent variables by analyzing the equations given.
- NDSolveValue typically solves differential equations by going through several different stages depending on the type of equations. With Method->{s1->m1, s2->m2, ...}, stage
is handled by method
. The actual stages used and their order are determined by NDSolve, based on the problem to solve.
- Possible solution stages are:
-
| "TimeIntegration" | time integration for systems of differential equations |
| "BoundaryValues" | ordinary differential equation boundary value solutions |
| "DiscontinuityProcessing" | symbolic processing for handling of discontinuous differential equations |
| "EquationSimplification" | simplification of equation form for numerical evaluation |
| "IndexReduction" | symbolic index reduction for differential algebraic equations |
| "DAEInitialization" | consistent initialization for differential algebraic equations |
| "PDEDiscretization" | discretization for partial differential equations |
- With Method->m1 or Method->{m1, s2->m2, ...}, the method
is assumed to be for time integration, so Method->m1 is equivalent to Method->{"TimeIntegration"->m1}.
- Possible explicit time integration settings for the Method option include:
-
| "Adams" | predictor-corrector Adams method with orders 1 through 12 |
| "BDF" | implicit backward differentiation formulas with orders 1 through 5 |
| "ExplicitRungeKutta" | adaptive embedded pairs of 2(1) through 9(8) Runge-Kutta methods |
| "ImplicitRungeKutta" | families of arbitrary-order implicit Runge-Kutta methods |
| "SymplecticPartitionedRungeKutta" |
| | interleaved Runge-Kutta methods for separable Hamiltonian systems |
- With Method->{"controller", Method->"submethod"} or Method->{"controller", Method->{m1, m2, ...}}, possible controller methods include:
-
| "Composition" | compose a list of submethods |
| "DoubleStep" | adapt step size by the double-step method |
| "EventLocator" | respond to specified events |
| "Extrapolation" | adapt order and step size using polynomial extrapolation |
| "FixedStep" | use a constant step size |
| "OrthogonalProjection" | project solutions to fulfill orthogonal constraints |
| "Projection" | project solutions to fulfill general constraints |
| "Splitting" | split equations and use different submethods |
| "StiffnessSwitching" | switch from explicit to implicit methods if stiffness is detected |
- Methods used mainly as submethods include:
-
| "ExplicitEuler" | forward Euler method |
| "ExplicitMidpoint" | midpoint rule method |
| "ExplicitModifiedMidpoint" | midpoint rule method with Gragg smoothing |
| "LinearlyImplicitEuler" | linearly implicit Euler method |
| "LinearlyImplicitMidpoint" | linearly implicit midpoint rule method |
| "LinearlyImplicitModifiedMidpoint" |
| | linearly implicit Bader-smoothed midpoint rule method |
| "LocallyExact" | numerical approximation to locally exact symbolic solution |
- The setting InterpolationOrder->All specifies that NDSolve should generate solutions that use interpolation of the same order as the underlying method used. »
Solve a first-order ordinary differential equation:
| Out[1]= |  |
Use the solution in a plot:
| Out[2]= |  |
Use the function and its derivative in a plot:
| Out[3]= |  |
Find specific values:
| Out[4]= |  |
Second-order nonlinear ordinary differential equation:
| Out[1]= |  |
Plot the function and its first two derivatives:
| Out[2]= |  |
System of ordinary differential equations:
| Out[1]= |  |
| Out[2]= |  |
This solves the heat equation in one dimension:
| Out[1]= |  |
| Out[2]= |  |
Alternative form of equation:
| Out[3]= |  |
New in 9