Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Решение обыкновенных дифференциальных уравнений в системах компьютерной математики. Учебное пособие
.pdf
91
Пример 3.22. Решить уравнение
Рассмотрим решение в системе Maple (рис. 44).
Запишем характеристическое уравнение и найдем его
корни:
. В данном случае общее решение исходного
уравнения имеет вид:
.
Рис. 44
Для нахождения корней характеристического уравнения применили
функцию solve(Λ, λ). В соответствие с типом найденных характеристических
чисел записали вектор функций w, образующих ФСР, и вектор констант C.
Скалярное произведение векторов w и C даст общее решение
дифференциального уравнения.

92
Буква
Название
Буква
Название
Буква
Название
alpha
ita sigma
beta kappa
upsilon
gamma
lambda
phi
delta nu chi
epsilon
mu
psi
zeta
xi omega
eta p pi
theta rho
В Maple греческие буквы также можно набирать с помощью
специального меню Greek (см. рис. 45), расположенного в списке слева от
Рис. 45
рабочей области или писать их в полиграфическом виде (таблица). Для этого
название буквы набирается в командной строке. Если набирать название
греческой буквы с заглавной, например, Omega, на экране отобразится
заглавная греческая буква .
Таблица
Строчные греческие буквы и их названия

93
Для создания векторов (одномерных массивов) в Maple служит функция
array, которая используется в следующей форме array(a..b, [s1]) и
возвращает вектор с целочисленными индексами от а до b и значениями в
одномерном списке s1. Например, array(1..3,[х, у, х+у]) создает вектор с
элементами x, у и х+y.
Переменной y(x) присвоим скалярное произведение двух векторов,
которое получим, выполнив команду evalm(w&*c). Затем полученное
решение y(x) подставим в исходное уравнение, используя функцию diff,
которая выполняет дифференцирование (в нашем случае от y(x) по x) для
второй и первой производных соответственно. Результат равный нулю
говорит о том, что решение построено правильно. Таким образом, мы
получили общее решение однородного уравнения с точностью до
неопределённых коэффициентов C1 и C2.
Рис. 46

94
Далее, используя найденное общее решение, запишем систему
алгебраических уравнений {q, q2} для нахождения неизвестных
коэффициентов C1 и C2 для заданных начальных условий (рис. 46).
Команда subs осуществляет подстановки, то есть служит для замены
одной части выражения на другую или для замены одной переменной на
другую, символьного значения переменной ее численным значением.
Команда subs может использоваться в следующих форматах:
subs(x=a, w) — в выражении w заменяет подвыражение х на
подвыражение а;
subs(s1,…, sn, w) — в выражении w заменяет одни подвыражения на
другие, выбирая их из списков s1, .., sn вида х=а;
subsop(eq1, eq2, …, eqi, …, eqn, w) — в выражении e заменяет указанные в
eqi операнды другими, указанными в правой части равенств eqi вида ni=wi,
где ni — номер операнда, ei — выражение для замены.
Применив команду subs(res, y(x)), подставим найденные Ci в общее
решение и получим частное решение для заданных начальных условий. В
переменные y1 и y2 присвоим выражения решения задачи Коши (y(x)) и
производную от частного решения (y’(x)) соответственно. Построим
графики y(x) и y’(x) (рис. 47) и фазовую траекторию на плоскости [y(x), y’(x)].
Пример 3.23. Решить уравнение
Рассмотрим решение в системе Maple.
Запишем характеристическое уравнение и найдем его
корни (рис. 48):
Уравнение имеет два действительных корня. Тогда общее решение
дифференциального уравнения имеет вид
Для нахождения частного решения, удовлетворяющего начальным
условиям, решим систему уравнений:
Решив систему, получим (рис. 49). Тогда частное решение
имеет вид
.
.

95
Рис. 47
Рис. 48

96
Рис. 49

97
Пример 3.24. Решить уравнение
Рассмотрим решение в системе Maple.
Запишем характеристическое уравнение и найдем его
корни:
. Уравнение имеет один действительный корень
(кратности 2) (рис. 50). Для нахождения частного решения,
удовлетворяющего начальным условиям, решим систему уравнений:
Решив систему, получим . Тогда частное решение имеет
вид
(рис. 51).
.
Рис. 50

98
Рис. 51
Пример 3.25. Решить уравнение с
граничными условиями .
Рассмотрим решение в системе Maple.
Определим начальные условия a=0, b=0,5, y0=0, и yn=0,5*cos(0,5), а
также p(x)=-4x, q(x)=3 и f(x)=5(x2+7). Применив функцию dsolve с
параметром numeric, получим численное решение дифференциального
уравнения Y, которое при помощи команды eval преобразуем к виду Y1,
пригодному для построения графика решения.
Рассмотрим решение данного уравнения методом итераций. Заменим
производные y’’(x) и y’(x) соответствующими выражениями:

99
где yi=yi(x), xi=a+ih, h=(b-a)/n. Сделаем подстановку в исходное
дифференциальное уравнение
Приведя подобные слагаемые, получим систему для итерационного
решения
В качестве начального приближения выберем
Тогда j-ое приближение определяется следующими выражениями:
В переменных N и M определим количество точек и количество итераций
соответственно. При наборе имен переменных нужно учитывать
чувствительность Maple к регистру.
Чтобы построить график и вывести на экран таблицу значений
полученного итерационного решения y2, сохраняем его в массив Dat. Нужно
+

100
отметить, что в Maple нумерация элементов массива начинается с 1.
Функция pointplot позволяет строить двумерный график функции по
точкам. Точки, которые должны отображаться на плоскости, берутся из
набора, списка, векторов или матрицы.
Матрица должна быть размера n на 2, где n - любое положительное целое
число. Каждая строка матрицы содержит x- и y-координаты точки. Если
задана матрица 2 на n, где n не равно 2, то она будет автоматически
транспонирована.
Векторы, представляющие x-координаты и y-координаты
соответственно, могут иметь любую длину, но оба должны иметь
одинаковую длину между собой. Распространенной ошибкой является
предоставление последовательности точек без внесения их в список.
Обратите внимание, что pointplot(([1,2], [3,4]) интерпретируется как точки
(1,3) и (2,4), а не как точки (1,2) и (3,4).
Команда seq используется для создания последовательности значений.
Например, seq(f (i), i=1..n) генерирует последовательность f(1), f(2), ..., f(n).
С помощью команды display выводим графики Plot1 и Plot2 на одной
координатной плоскости (рис. 52). Команда convert позволила вывести
данные массива в виде таблицы (рис. 53).
Для организации повторяющихся вычислений использовали
арифметический цикл for/from, который имеет следующую структуру:
for < var > from < exp1 > by < exp2 > to < exp3 > do < block > od,
где var – переменная цикла;
exp1 – начальное значение переменной цикла;
exp2 – шаг изменения переменной цикла;
exp3 – конечное значение переменной цикла;
block - группа команд, выполняемая циклом.
Начальное и конечное значение переменной цикла, а также ее шаг,
должны быть числами или переменными с числовыми значениями. Шаг
может быть как положительным, так и отрицательным числом. Если
конструкция from < exp1 > и/или by < exp2 > отсутствует, то
соответствующие им выражения принимаются равными 1. Отметим, что
переменная цикла может изменять свое значение не только при переходе к
следующему шагу цикла, но и внутри тела цикла.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
