|
|
以下是MATLAB的帮助文档,你程序的格式应该没问题。
>> help dde23
DDE23 Solve delay differential equations (DDEs) with constant delays.
SOL = DDE23(DDEFUN,LAGS,HISTORY,TSPAN) integrates a system of DDEs
y'(t) = f(t,y(t),y(t - tau_1),...,y(t - tau_k)). The constant, positive
delays tau_1,...,tau_k are input as the vector LAGS. DDEFUN is a function
handle. DDEFUN(T,Y,Z) must return a column vector corresponding to
f(t,y(t),y(t - tau_1),...,y(t - tau_k)). In the call to DDEFUN, a scalar T
is the current t, a column vector Y approximates y(t), and a column Z(:,j)
approximates y(t - tau_j) for delay tau_j = LAGS(J). The DDEs are
integrated from T0=TSPAN(1) to TF=TSPAN(end) where T0 < TF. The solution
at t <= T0 is specified by HISTORY in one of three ways: HISTORY can be
a function handle, where for a scalar T, HISTORY(T) returns a column
vector y(t). If y(t) is constant, HISTORY can be this column vector.
If this call to DDE23 continues a previous integration to T0, HISTORY
can be the solution SOL from that call.
DDE23 produces a solution that is continuous on [T0,TF]. The solution is
evaluated at points TINT using the output SOL of DDE23 and the function
DEVAL: YINT = DEVAL(SOL,TINT). The output SOL is a structure with
SOL.x -- mesh selected by DDE23
SOL.y -- approximation to y(t) at the mesh points of SOL.x
SOL.yp -- approximation to y'(t) at the mesh points of SOL.x
SOL.solver -- 'dde23'
SOL = DDE23(DDEFUN,LAGS,HISTORY,TSPAN,OPTIONS) solves as above with default
parameters replaced by values in OPTIONS, a structure created with the
DDESET function. See DDESET for details. Commonly used options are
scalar relative error tolerance 'RelTol' (1e-3 by default) and vector of
absolute error tolerances 'AbsTol' (all components 1e-6 by default).
DDE23 can solve problems with discontinuities in the solution prior to T0
(the history) or discontinuities in coefficients of the equations at known
values of t after T0 if the locations of these discontinuities are
provided in a vector as the value of the 'Jumps' option.
By default the initial value of the solution is the value returned by
HISTORY at T0. A different initial value can be supplied as the value of
the 'InitialY' property.
With the 'Events' property in OPTIONS set to a function handle EVENTS,
DDE23 solves as above while also finding where event functions
g(t,y(t),y(t - tau_1),...,y(t - tau_k)) are zero. For each function
you specify whether the integration is to terminate at a zero and whether
the direction of the zero crossing matters. These are the three column
vectors returned by EVENTS: [VALUE,ISTERMINAL,DIRECTION] = EVENTS(T,Y,Z).
For the I-th event function: VALUE(I) is the value of the function,
ISTERMINAL(I) = 1 if the integration is to terminate at a zero of this
event function and 0 otherwise. DIRECTION(I) = 0 if all zeros are to
be computed (the default), +1 if only zeros where the event function is
increasing, and -1 if only zeros where the event function is decreasing.
The field SOL.xe is a row vector of times at which events occur. Columns
of SOL.ye are the corresponding solutions, and indices in vector SOL.ie
specify which event occurred.
Example
sol = dde23(@ddex1de,[1, 0.2],@ddex1hist,[0, 5]);
solves a DDE on the interval [0, 5] with lags 1 and 0.2 and delay
differential equations computed by the function ddex1de. The history
is evaluated for t <= 0 by the function ddex1hist. The solution is
evaluated at 100 equally spaced points in [0 5]
tint = linspace(0,5);
yint = deval(sol,tint);
and plotted with
plot(tint,yint);
DDEX1 shows how this problem can be coded using subfunctions. For
another example see DDEX2. |
|