Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Решение командой pdsolve.






Обратимся к тому же примеру 1-мерного волнового уравнения, что и в п. 18.1 (см. pde1). Формальное применение команды решения даёт суперпозицию двух функций, отличающихся знаком при х, что обычно истолковывают как 2 волны, распространяющиеся в противоположных направлениях.

> pdsolve(pde1);

Задача состоит в отыскании этих двух функций конкретно. Для этого используем развёрнутую команду pdsolve с дополнительными параметрами (см. Help). Параметры INTEGRATE и build уточняют задание для программы. Параметр HINT (подсказка) предлагает программе искать решение в виде произведения (`*`), как и в п. 18.1.

> pdsolve(pde1, f(x, t), HINT= `*`, INTEGRATE, build); (1)

Выражение (1) содержит 4 константы интегрирования, заданный параметр v и неопределённый параметр, обозначенный программой _с1 (вообще, комплексный). Обозначим (1) (ниже ряд промежуточных результатов не выводятся на экран):

> F: =exp(_c[1]^(1/2)*x)*_C1*_C3*exp(_c[1]^(1/2)*v*t)+exp(_c[1]^(1/2)*x)*_C1*_C4/exp(_c[1]^(1/2)*v*t)+1/exp(_c[1]^(1/2)*x)*_C2*_C3*exp(_c[1]^(1/2)*v*t)+ 1/exp(_c[1]^(1/2)*x)*_C2*_C4/exp(_c[1]^(1/2)*v*t):

Константы _С1 -_С4 найдём из Н.У., которые наложим на F и её производные по x и t. Ниже dx и dt - не дифференциалы, а просто обозначения!

> Fdx: =diff(F, x): Fdt: =diff(F, t):

Эти условия зададим несколько по-иному, чем в п. 18.1, что упрощает запись, но не имеет принципиального значения. Именно, потребуем, чтобы при (t=0, x=0) искомая функция равнялась А, а обе производных - нулю:

> subs([x=0, t=0], F): subs(exp(0)=1, %): eq1: =%=A;

> subs([x=0, t=0], Fdx): subs(exp(0)=1, %): simplify(%): eq2: =%=0;

> subs([x=0, t=0], Fdt): subs(exp(0)=1, %): simplify(%): eq3: =%=0;

(Для упрощения сделана подстановка exp(0)=1, что программа сама не делает, но знает). Получили систему 3-х уравнений, позволяющих выразить три константы через одну, напр. _С1 (см. п. 9), что и подставим в F. (Надо точно сохранять введённые программой обозначения констант!)

> solve({eq1, eq2, eq3}, {_C2, _C3, _C4});

> subs([_C2=_C1, _C3=1/4*A/_C1, _C4=1/4*A/_C1], F): simplify(%): expand(%): combine(%); (2)

В итоге _C1 выпало из решения, вместо него вошло заданное А. Решение (2) описывает весьма широкий класс функций, отличающихся параметром _с1. Будем искать периодические решения, для чего положим _с1< 0, так что корень из этой величины - мнимый.

> factor(%);

> subs(_c[1]^(1/2)=I*k, %); convert(%, trig);

> y: =simplify(1/4*A*(2*cos(k*(v*t+x))+2*cos(k*(v*t-x))));

Полученное решение согласно с решением, данным программой в ответе на самую первую команду, и отличается от решения, найденного в п. 18.1 только сдвигом по фазе. Дополнительное определение k - как в п. 18.1.

Решение ДУЧП с заданными граничными условиями здесь не обсуждается.

>






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.