Solve Delay Differential Equations - Wolfram Mathematica

Решение дифференциальных уравнений с запаздывающим аргументом

Вы можете использовать стандартную функцию для решения дифференциальных уравнений, NDSolve, для численного решения дифференциальных уравнений с запаздывающим аргументом (ДУЗА) с фиксированными запаздываниями. При этом, NDSolve выдает результат в виде интерполирующей функции, которая затем может быть легко использована совместно с другими функциями.  

Возьмем дифференциальное уравнение первого порядка с запаздывающим аргументом, с задержкой 1 и функцией предистории SolveDelayDifferentialEquationsRU_1.gif. Воспользуемся функцией NDSolve для решения уравнения и сохраним решение под именем sol1. Первым аргументом функции NDSolve является ДУЗА, вторым аргументом является переменная, для которой находится решение, а третьим аргументом является диапазон значений переменной:

In[1]:=

SolveDelayDifferentialEquationsRU_2.gif

Out[1]=

SolveDelayDifferentialEquationsRU_3.gif

При помощи функции Plot построим график решения x[t] и его первой производной x'[t]. Для того, чтобы отобразить их графики разным цветом, во& #1089;пользуемся функцией Evaluate, "обернув" ее вокруг списка из функции и ее производной. Понадобится, также, загрузить модуль легенд (Plot Legends Package), если необходимо добавить пояснения к графику:

In[2]:=

SolveDelayDifferentialEquationsRU_4.gif

In[3]:=

SolveDelayDifferentialEquationsRU_5.gif

Out[3]=

SolveDelayDifferentialEquationsRU_6.gif

Воспользуемся Manipulate для изменения начальной функции:

In[4]:=

SolveDelayDifferentialEquationsRU_7.gif

Out[4]=

Решим ДУЗА первого порядка с двумя фиксированными запаздываниями, ? и 1, и функцией предистории cos(t):

In[5]:=

SolveDelayDifferentialEquationsRU_9.gif

Out[5]=

SolveDelayDifferentialEquationsRU_10.gif

При помощи функции Plot построим график решения x[t] и его первой производной x'[t]. Для того, чтобы отобразить их графики разным цветом, воспользуемся функцией Evaluate, "обернув" ее вокруг списка из функции и ее производной:

In[6]:=

SolveDelayDifferentialEquationsRU_11.gif

Out[6]=

SolveDelayDifferentialEquationsRU_12.gif

Решим ДУЗА второго порядка с фиксированным запаздыванием 1 и функцией предистории SolveDelayDifferentialEquationsRU_13.gif:

In[7]:=

SolveDelayDifferentialEquationsRU_14.gif

Out[7]=

SolveDelayDifferentialEquationsRU_15.gif

При помощи функции Plot построим график решения x[t] и его первых двух производных x'[t] и x''[t]. Для того, чтобы отобразить их графики разным цветом, воспользуемся функцией Evaluate, "обернув" ее вокруг списка из функции и ее производных:

In[8]:=

SolveDelayDifferentialEquationsRU_16.gif

Out[8]=

SolveDelayDifferentialEquationsRU_17.gif

Для более подробного описания терминов, связанных с дифференциальными уравнениями с запаздывающим аргументом, обратитесь к разделу Delay Differential Equations.