Методы решения физических задач

 

Версия для печати

Уравнение Ньютона

Смысл уравнения .

Если задан закон для силы , то вектор координаты , вектор скорости и вектор ускорения образуют замкнутую систему дифференциальных уравнений, которая для данных начальных условий и имеет единственное решение.

Принято выделять несколько особых случаев записи закона силы:

  1. Постоянное ускорение (например, свободное падение): . Координата и скорость не зависят друг от друга.
  2. Закон Гука (гармоническая пружина): . Возвращающая сила зависит от координаты.
  3. Зависящая от скорости вынуждающая сила . Используется для описания сопротивления среды (например, воздуха): трение в осцилляторе, задача о парашюте, движение артиллерийского снаряда, капля масла в опыте Малликена (вязкое трение).
  4. Нелинейные силы, т. е. силы, пропорциональные какой-то (но не первой) степени: или/и . Пример – маятник. Зависящие от силы скорости могут приводить к несохранению энергии.

Уравнение Ньютона можно переписать как два ОДУ первого порядка (уравнения Гамильтона):

Если сила не зависит от координаты , делается так: сначала надо проинтегрировать второе уравнение, а затем – первое, взяв в качестве входных данных.

Пример 4.2.1

Рассмотрим задачу о пушечном ядре с учетом сопротивления воздуха. Гравитация постоянна, т. е. не зависит от координаты (кстати: если ядро летит на большой высоте, то это не так). Сопротивление воздуха зависит только от скорости, а не от координаты.

Следовательно, в этой задаче вначале следует интегрировать как пару ОДУ для вертикальной и горизонтальной проекций импульса (скорости) и .

Пример 4.2.2

Решим уравнение Ньютона для свободного падения на поверхность планеты (ускорение постоянно).

  • restart;
  • NE:=m*diff(v(t),t)=m*g;

Вначале запишем интегралы в невычисляемом виде (пишется Int вместо int). Временно введем новую переменную s, чтобы не ошибиться с пределом интегрирования. Используем команды lhs и rhs, чтобы выделить части уравнения. Массу m вынесем, разделив уравнения на нее:

  • NE1:=Int(lhs(NE/m),t=0..s)=Int(rhs(NE/m),t=0..s);

Интегрирование выполним с помощью команды value.

  • NE1:=value(NE1);

Теперь введем зависимость скорости от координаты (в s сохраняется как зависимость от времени).

  • NE2:=diff(x(s),s)=solve(NE1,v(s));

  • NE2:=Int(lhs(NE2),s=0..t)=Int(rhs(NE2),s=0..t);

  • sol:=value(NE2);

  • solve(sol,x(t));

Чтобы выделить x(t), применим команду solve.

Встроенная в Maple система решения ДУ способна решить большинство линейных ДУ (см. [1; 2]).

Вначале переопределим NE, записав ее как ДУ для зависимости координаты от времени:

  • NE:=m*diff(x(t),t$2)=m*g;

  • sol:=dsolve(NE,x(t));

Поскольку граничные (или начальные) условия не задавались, результат получаем в общем виде с двумя постоянными интегрирования, так как не было указано x(t). Есть две возможности. Удобнее не задавать x(t), а записать решение в виде выражения:

  • rhs(sol);

  • x(t);

  • assign(sol);
  • x(t);

Вспомним особенность Maple: если нам для чего-то снова понадобится переменная x(t), ее придется заново переопределить, для чего выполняется расприсваивание, чтобы очистить старое содержание переменной (именно поэтому удобнее вообще не делать присваивание, чтобы потом не запутаться в том, что именно содержит x(t) в данный момент):

  • x(t):='x(t)':

Можно получить особое решение, указав начальные условия (либо численно, либо символьно). Необходим дифференциальный оператор D, чтобы определить условия для производной:

  • IC:=x(0)=x0,D(x)(0)=v0;

Решаем набор ДУ с начальными условиями и применяем к переменной команду dsolve:

  • sol:=dsolve({NE,IC},x(t));

Такое присваивание удобно тем, что результат виден сразу: если возвращается пустой набор, то это означает, что решение не получено, а если его нет совсем, тогда получится пустая строка.