Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Решение обыкновенных дифференциальных уравнений в системах компьютерной математики. Учебное пособие
.pdf
31
выполняться равенство
или
Учитывая, что точка (x0, y0) произвольная, дифференциальное уравнение
этой кривой имеет вид:
или
Решением этого уравнения служат функции
В частности, чтобы найти ту кривую, которая проходит через точку (2,3),
подставим эти числа в уравнение кривой и найдем С=6.
Ответ: y=6/x.
2.1.4. Решение обыкновенных дифференциальных уравнений с
разделяющимися переменными в системах компьютерной математики
Наряду с набором встроенных функций в Mathcad можно строить
аналитическое решение дифференциальных уравнений с разделяющимися
переменными, используя простейшие приемы типа интегрирования и
решения линейных алгебраических уравнений. Рассмотрим несколько
примеров.
Пример 2.8. Решить дифференциальное уравнение
начальном условии .
Решение данного уравнения приведено на рис. 13.
Рассматриваемый метод называется методом непосредственного
интегрирования. К недостаткам данного метода относится громоздкость
вычислений, к достоинствам – возможность отслеживания этапов решения
уравнения, исправление ошибок, а самое главное получение вывода
аналитического решения результирующей функции.
Построив график функции, можно убедиться в том, что выполняется
начальное условие, т.е. график функции y(x) проходит через точку (0;1).
.
.
.
при

32
Рис. 13
Символьный процессор Mathcad, который по сути является системой
искусственного интеллекта, позволяет решать математические задачи
аналитически, без применения численных методов и, соответственно, без
погрешностей вычислений. Символьное решение подразумевает

33
возможность вычислять и преобразовывать выражения с буквенными
параметрами, не подставляя при этом их значения, и в итоге получать
результат в виде аналитической зависимости от этих параметров (а не число
или набор чисел, как при стандартных численных расчетах).
Одним из вариантов осуществления данных вычислений является
использование оператора символьного вывода, обычных формул и
ключевых слов символьного процессора. Следует отметить, что оператор
символьного вывода учитывает все предыдущее содержимое документа и
выдает результат с его учетом, в частности ему доступны и функции
пользователя.
Для реализации выше названного способа в Mathcad используем панель
Math, на которой расположены панели для численных вычислений
(Calculator (Калькулятор), Evaluation (Выражения), Calculus
(Вычисления) и т. д.) и кнопка Symbolic Keyword Toolbar (Панель
символики) для вызова специальной математической панели инструментов
Symbolic (Символика), на которой находятся кнопки, соответствующие
специфическим командам символьных преобразований. При вводе
ключевых слов с панели Symbolic (Символика) вместе с ними вставляется и
знак символьного вывода, т.е. вводить его отдельно перед вставкой
ключевого слова не следует.
Вычисление определенного интеграла в Mathcad осуществляется
нажатием комбинации клавиш Shift+& или кнопки со значком интеграла на
панели Calculus (Вычисления). Появится символ интеграла с несколькими
местозаполнителями (рис. 14), в которые вводим подынтегральную
функцию, переменную интегрирования, нижний и верхний пределы
интегрирования. Чтобы получить результат интегрирования, следует ввести
знак символьного равенства , в результате будет найдено точное значение
интеграла с помощью символьного процессора Mathcad. Символьное
интегрирование возможно только для небольшого круга несложных
подынтегральных функций.
Рис. 14

34
С помощью символьного процессора можно вычислить аналитически
значение переменной, при котором выражение обращается в ноль. Для этого
нужно нажать кнопку на панели Symbolic (Символика) (рис. 15).
Рис. 15
Появится специальный оператор символьного решения solve в сочетании
со знаком символьного равенства. В местозаполнители нужно ввести
уравнение и переменную, относительно которой ищется решение данного
уравнения.
Чтобы избежать громоздких вычислений, в Mathcad для решения
дифференциального уравнения с разделяющимися переменными
используют функцию odesolve, недостатком которой является отсутствие
вывода аналитического выражения решения дифференциального уравнения.
Но полученным результатом (как ранее объявленной функцией) можно
пользоваться: находить для нее производную, определенный и
неопределенный интегралы.
Пример такого решения приведен ниже (рис. 16).

35
Рис. 16
Пример 2.9. Найти общее решение дифференциального уравнения
.
Введем исходную функцию и с помощью встроенной функции collect
приведем подобные слагаемые относительно dx и dy. Затем, используя
функцию coeffs, выделим коэффициенты при dx и dy, которые разложим на
множители с помощью функции factor (рис. 17). Перечисленные функции
можно вызвать, нажав соответствующие кнопки на специальной
математической панели инструментов Symbolic (Символика).
Перенеся члены с dx и dy в разные части равенства, получим уравнение с
разделяющимися переменными.

36
Рис. 17
Методом непосредственного интегрирования найдем аналитическое
решение дифференциального уравнения (рис. 18). Для проверки
полученного решения на предмет потери части решений решим уравнения:
и . Как видим, решения данных уравнений не являются
действительными числами, значит потери решений исходного
дифференциального уравнения не произошло. Далее записываем ответ в
форме .

37
Рис. 18
Рассмотрим решение уравнений с разделяющимися переменными в
системе Maple.
Пример 2.10. Решить дифференциальное уравнение
при
начальном условии .
Для классификации уравнения в соответствии со стандартами,
изложенными в справочниках по ОДУ, в Maple используют функцию
odeadvisor из пакета DEtools. Команда odeadvisor имеет формат
odeadvisor(ode, y(x), [type1,type2,…], help),
где ode— дифференциальное уравнение;
y(x) – (необязательный параметр) неизвестная функция;
type1,type2 – (необязательное) подмножество типов классификации
обыкновенных дифференциальных уравнений, которые будут проверены;
help – (необязательный параметр) отображает справочную страницу,
содержащую информацию для решения уравнения.
В нашем примере функция odeadvisor определила, что искомое
уравнение принадлежит к классу уравнений с разделяющимися
переменными (рис. 19). Возвращенный результат функцией odetest означает,
что полученное решение дифференциального уравнения является верным.

38
Рис. 19
Пример 2.11. Исследовать дифференциальное уравнение .
Очевидно, что это данное уравнение является линейным. Далее решаем
его как линейное уравнение, не вычисляя при этом интеграл (рис. 20). Сделав
запрос на вычисление интеграла, находим окончательное решение
уравнения.
Затем определяем, что данное уравнение является одновременно и
уравнением с разделяющимися переменными. Далее решаем его как
уравнение с разделяющимися переменными, не вычисляя при этом интеграл.
Вычисляем интеграл и находим окончательное решение уравнения в
неявном виде. Явное решение найдем с помощью функции isolate.
Поскольку C1 – произвольная постоянная, то полученное решение можно
записать в виде
,
что совпадает с точностью до постоянного множителя с вариантом
рассмотренного решения в случае линейного уравнения.

39
Рис. 20
Для вычисления значения выражений использую функцию
value(выражение), где выражение – выражение, подлежащее вычислению.
Функция simplify, как и функция value, располагается в системном ядре
Maple. Она предназначена для упрощения выражений, составленных из
чисел, переменных и элементарных функций. и имеет формат
simplify(выражение, n1, n2, ...),
где выражение – выражение, подлежащее упрощению;
n1, n2, .. – (необязательный параметр) имена процедур упрощения
GAMMA, polar, radical и др. Полную информацию о формулах упрощения
при использовании перечисленных значений параметров можно получить с
помощью команды ?simplify[имя], где имя — одно из значений параметров
функции упрощения.
Команда isolate выделяет подвыражение и имеет формат
isolate(выражение, параметр выражения),
где выражение – параметр, определяющий исходное выражение;

40
параметр выражения – параметр, подлежащий выделению из
заданного выражения.
В нашем случае из неявного вида общего решения дифференциального
уравнения (первый параметр) мы выделили выражение для y(x) (второй
параметр).
Задачи для самостоятельного решения
Найти общие решения уравнений с разделяющимися переменными:
1. .
2. .
3.
4. .
5.
6. .
7. .
8. .
9. .
10.
11.
12.
13.
14. .
Найти частные решения уравнений:
1. y(2)=1.
2. y(1)=4.
3.
4.
Найти общие решения уравнений методом замены параметра:
1. .
2.
3. .
4.
5. .
.
.
.
.
.
.
.
.
.
.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
