tdcpy.ndde module#
NDDE - Neutral Delay Differential Equation#
TODO TODO TODO .. rubric:: Notes
As of now, only A and hA, rest of the implementation will follow
- class tdcpy.ndde.NDDE(A, hA, H, hH, B=None, hB=None, C=None, hC=None, D=None, hD=None, **kwargs)#
Bases:
TDSBaseNeutral Delay Differential Equaton
dxdt(t) = A[i]*x(t - hA[i]) + ... + A[mA]*x(t - hA[mA]) - H[0] * dxdt(t - hH[0]) - ... - H[mH] * dxdt(t - hH[mH])TODO documentation
- Parameters:
- __init__(A, hA, H, hH, B=None, hB=None, C=None, hC=None, D=None, hD=None, **kwargs)#
- Parameters:
**kwargs – dtype (): default np.float64 tol_singular (float): considering value singular, default 1e-12
- Return type:
None
- property E: ndarray[tuple[Any, ...], dtype[_ScalarT]]#
E matrix from TDS representation, shape (n, n)
- compress(inplace=False)#
Removes delay duplicates, sorts delays into ascending order
- Parameters:
- Returns:
compressed representation None: if inplace=True (current object is updated)
- Return type:
- to_ddae()#
Converts NDDE to DDAE
[0 I] [dxdt(t)] = [A0 0] [x(t)] + SUM [A[k] 0] [x(t-tau)] [0 0] [dadt(t)] = [I -I] [a(t)] k=1 [H[k-1] 0] [a(t-tau)]
- Return type:
- get_delay_difference_equation()#
Converts to Delay-difference Equation
For a NDDAE, the associated delay difference equation is given by
I*x(t) + H[0]*x(t-hH[0]) + ... + H[mH]*x(t-hH[mH]) = 0
- Return type:
- eval_char_matrix(s)#
Evaluate the characteristic matrix at
sM(s) = s*(E + H[0]*exp(-s*hH[0]) + ... + H[mH]*exp(-s*hH[mH])) - A[0]*exp(-s*hA[0]) - ... - A[mA]*exp(-s*hA[mA])
- eval_char_matrix_derivative(s)#
Derivative of the characteristic matrix with respect to s evaluated at s
dM(s) = E + (H[0]*exp(-s*H[0])+...+H[mH]*exp(-s*H[mH]) - s*(hH[0]*H[0]*exp(-s*H[0])+...+hH[mH]*H[mH]*exp(-s*H[mH]) + (hA[0]*A[0]*exp(-s*hA[0])+...+hA[mA]*A[mA]*exp(-s*hA[mA]))