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

 

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

Заголовок подглавы

Рассмотрим двумерную задачу о движении пушечного ядра в гравитационном поле с учетом сопротивления воздуха. Уравнение Ньютона запишем в виде ДУ первого порядка для координат-импульса (уравнение Гамильтона), где m – масса ядра, g – ускорение свободного падения, b – коэффициент сопротивления воздуха, пропорциональный скорости ядра.

Сопротивление воздуха действует только в направлении x, а гравитация – только в направлении y.

  • restart;
  • Momx:=m*diff(vx(t),t)=-b*vx(t);

  • Momy:=m*diff(vy(t),t)=-m*g-b*vy(t);

Начальные условия задаются параметрами:

  • IC:=vx(0)=v0*cos(theta),vy(0)=v0*sin(theta);

  • sol:=dsolve({Momx,Momy,IC},{vx(t),vy(t)});

  • assign(sol);

Можно проверить, что найденные решения на самом деле удовлетворяют дифференциальным уравнениям:

  • simplify(Momx);

  • evalb(%);

  • simplify(Momy);

  • evalb(%);

Разложим решение в ряд Тейлора вблизи t = 0. Это покажет, как скорость начинает отличаться от ее начального значения:

  • taylor(vx(t),t=0,3);

  • taylor(vy(t),t=0,3);

Изменение зависит линейно от времени, причем в нем есть вклад от гравитации. В части, описывающей сопротивление, есть зависимость от компонент начальной скорости. Квадратичные члены – сложнее.

Интересно изучить это решение. Наиболее общая проблема – зависимость траектории от наклона ядра при фиксированном сопротивлении b. В реальности нужно еще учитывать скорость и направление ветра.

Размерности параметров – в СИ (или в СГС). Имеем:

  • g:=9.81;

Масса = 1 кг:

  • m:=1;

Коэффициент сопротивления (в кг/с):

  • b:=0.5;

  • vx(t);

  • simplify(%);

  • simplify(vy(t));

Пусть угол наклона можно изменять, а начальная скорость фиксирована. Ее значения будем измерять в м/с (система СИ):

  • v0:=50;

Выберем параметр наклона:

  • simplify(vy(t));

Чтобы получить функцию, а не выражение, применим команду unapply:

  • Vy:=unapply(simplify(vy(t)),theta,t);

Теперь можно проинтегрировать уравнение движения для компонент вектора. Переменную для времени обозначим s вместо t. Применим команду unapply, чтобы отобразить результат:

  • X:=unapply(int(Vx(theta,s),s=0..t),theta,t);

  • X(0.5,1);

  • Y:=unapply(int(Vy(theta,s),s=0..t),theta,t);

(Результат вычислений посмотрите сами.)

  • Y(0.5,1);

Получили функцию, которая для заданных значений угла наклона θ (в радианах) и времени t (в секундах) генерирует вектор положения ядра. После этого траекторию можно строить как параметрический график. Пример показан на рис. 4.5.1:

  • plot([X(0.5,t),Y(0.5,t),t=0..10],x=0..X(0.5,10),y=0..20);

Рис. 4.5.1

Рис. 4.5.1

Пределы для осей подобраны вручную. Если нужно автоматизировать процесс, это делается до тех пор, пока ядро не пересечет поверхность (см. ниже).

Можно поупражняться с сопротивлением воздуха. При малых b получится параболическая траектория, как в книгах.

Пересечение с поверхностью получается из условия

  • t0:=solve(Y(0.5,t)=0,t);

Конечно, в начале движения есть пересечение с y = 0. Порядок, в котором ищутся два решения, можно изменять. Для параметрического графика неважно, в каком порядке отслеживается траектория. Не надо указывать пределы осей, которые автоматически подгоняются под решение. Пример показан на рис. 4.5.2.

  • plot([X(0.5,t),Y(0.5,t),t=t0[1]..t0[2]]);

Рис. 4.5.2

Рис. 4.5.2

Нарисуем семейство решений для разного наклона ядра. Цель – определить диапазон и максимально высоту, достигаемую осколками.

  • with(plots):
  • imax:=5;

Чтобы различать решения, задаем цветовую шкалу (рис. 4.5.3):

  • coltab:=[maroon,red,magenta,yellow,green,blue,violet,
    brown,gray,black];
  • for i from 1 to imax do:
  • theta:=evalf((i-0.5)/imax*Pi/2);
  • t0:=solve(Y(theta,t),t);
  • P[i]:=plot([X(theta,t),Y(theta,t),t=t0[1]..t0[2]],
    color=coltab[i]): od:
  • display(seq(P[i],i=1..imax));

Рис. 4.5.3

Рис. 4.5.3

Можно построить последовательность графиков как анимацию.

  • display(seq(P[i],i=1..imax),insequence=true);
Задание 4.5.1

Постройте решения задачи при условии, что сопротивление воздуха зависит от высоты (например, когда плотность воздуха экспоненциально уменьшается с высотой). Закон изменения плотности задайте самостоятельно. Проанализируйте, при каких условиях допустимы упрощенные расчеты с постоянным сопротивлением воздуха. Подумайте, как может влиять влажность? Обсудите получившиеся результаты.