
времени для скорости, нужно будет вычислять в середине интервала (t + dt/2,t+
dt/2+dt), т.е. в момент t + dt, что нас тоже устраивает, так как это позволит
найти x(t + dt).
Таким образом, для увеличения точности достаточно вычислять значения коор-
динат в моменты времени
t, t + dt, t +2dt, t +3dt, ... ,
а значения скорости – в моменты
t + dt/2,t+3dt/2 ,t+5dt/2,t+7dt/2, ... .
Для оценки неточности расчета запишем (вновь только для x)
x(t + dt) ≈ x(t)+v(t + dt/2)dt ≈ x(t)+
v(t)+
dv
dt
dt/2
dt,
что совпадает с (∗). Неточность имеет порядок (dt)
3
.
Очевидно, что такой способ расчетов применим и для векторных величин.
Однако этот прием не срабатывает, если сила, действующая на частицу, зависит
не только от координат, но и от скорости.
B.2. Численное решение обыкновенных дифференциальных уравнений в
системе MATLAB
Выработано много удобных и относительно экономных способов проводить подоб-
ные вычисления. С ними вам предстоит познакомиться в курсе "Вычислительные
методы". В системе MATLAB существует целый пакет процедур, предназначен-
ных для решения систем обыкновенных дифференциальных уравнений, а если фор-
мулировать еще более точно, то для решения задачи Коши для системы обыкно-
венных дифференциальных уравнений (ОДУ). Причем этот пакет обеспечивает
по вашему выбору разные алгоритмы решения такой задачи, но для экономии уси-
лий и облегчения работы обращение и написание требуемого дополнительного кода
одинаково и не зависит от алгоритма. Поэтому рассмотрим здесь метод подготов-
ки M-файлов для решения таких систем независимо от используемого алгоритма
решения.
Из приведеных выше примеров понятно, что большой класс ОДУ, а именно
уравнения с одной независимой переменной, которую чаще всего именуют време-
нем t, разрешенные относительно старшей производной могут быть сведены к си-
стеме дифференциальных уравнений первого порядка вида
y
(t)=F(t, y(t))
83