Рассмотрим уравнение линейного гармонического осциллятора (попросту -- колебания груза на пружине) без учёта трения
Запишем это уравнение в системе Maxima:
assume(k>0,m>0)$
eq1:ode2(m*'diff(x,t,2)+k*x,x,t);
В функции assume()
перечислены предположения относительность параметров уравнения: жёсткость пружины и масса груза положительны. ;
означает вывод, а $
-- запрет вывода результатов выполнения команды на экран.
Функция ode2()
находит аналитическое решение данного уравнения. Её общий вид:
ode2(ДУ,искомая_функция,независимая переменная)
Выражение, служащее решением уравнения, сохраняется в переменной eq1
. Двоеточие :
задаёт операцию присваивания.
Вот как выглядит выполнение этих команд в системе Maxima:
Решение ОДУ при заданных начальных условиях (решение задачи Коши) получаем с помощью функции ic2()
. Двойка в имени функции означает, что она предназначена для работы с уравнениями 2-го порядка.
ic2(решение_ДУ,нач_значение_независимой_переменной,нач_усл_1,нач_усл_2)
Таким образом, начальная координата груза равна {\(x=-2\)} (пружина сжата), а начальная скорость его движения {\(\dot x = - 0.1\)} (то есть направлена в сторону сжатия пружины).
Построим график решения при заданных начальных условиях
plot2d(rhs(sol2),[t,0,50]);
Функция rhs()
нужна, чтобы выбрать из выражения {\(x = f(x,t)\)} его правую часть -- {\(f(x,t)\)}. [t,0,50]
означает, что независимая переменная t изменяется на интервале [0,50]. Однако, на этом интервале не видно уменьшения координаты {\(x\)}, которое должно наблюдаться в самом начале движения. Поэтому рассмотрим более короткий интервал -- первые полсекунды
plot2d(rhs(sol2),[t,0,.5]);
Теперь рассмотрим уравнение осциллятора с учётом трения
Добавочное предположение о положительности коэффициента трения {\(f\)} не избавляет от вопросов системы. Нужно указать знак дискриминанта характеристического уравнения
Найдём решение задачи Коши и построим его график
Комментарии
comments powered by Disqus