- •Предисловие
- •Глава 1. Дифференциальные уравнения в частных производных, их классификация и методы решения. Задача Коши
- •Дифференциальные уравнения в частных производных
- •Дифференциальные уравнения в частных производных второго порядка
- •Понятие об общем решении уравнения в частных производных
- •Начальные и граничные условия
- •Задача Коши для дифференциальных уравнений первого порядка
- •Задача Коши для дифференциальных уравнений второго порядка
- •Классификация уравнений второго порядка в частных производных
- •Численные методы решения дифференциальных уравнений в частных производных
- •Использование метода сеток для решения параболических уравнений в частных производных
- •Использование метода сеток для решения гиперболических уравнений
- •Использование метода сеток для решения эллиптических уравнений
- •Глава 2. Уравнение колебания струны
- •Вывод уравнения колебания струны
- •Методы решения уравнения колебания струны
- •Метод Даламбера (метод бегущих волн) для бесконечной струны
- •Фазовая плоскость
- •Метод продолжений для полубесконечной струны
- •Метод продолжения для конечной струны (начальная и конечная точки жёстко закреплены)
- •Метод Фурье (метод стоячих волн) или метод разделения переменных
- •Упражнения
- •Глава 3. Решение уравнений теплопроводности и Лапласа методом Фурье
- •Вывод уравнения теплопроводности
- •Метод Фурье для конечного стержня
- •Упражнения.
- •Уравнение Лапласа
- •Задача Дирихле для уравнения Лапласа в круге
- •Задача Дирихле для уравнения Лапласа в кольце
- •Уравнение Лапласа в прямоугольнике
- •Приложения
- •Практикум в среде matlab
- •Лабораторная работа № 1
- •Задача Коши для систем обыкновенных дифференциальных уравнений
- •1. Метод Эйлера.
- •2. Решение уравнений p-го порядка и систем обыкновенных дифференциальных уравнений.
- •3. Методы Рунге–Кутты.
- •4. Решение задачи Коши с помощью встроенных функций matlab.
- •Задания для выполнения лабораторной работы
- •Лабораторная работа № 2 Волновые уравнения
- •1. Задача Коши для неограниченной струны.
- •2. Задача Коши для полуограниченной струны. Метод продолжений.
- •3. Создание анимации средствами matlab.
- •4. Фазовая плоскость. Бегущие волны.
- •Индивидуальные задания
- •Рекомендуемая литература
- •Оглавление
4. Решение задачи Коши с помощью встроенных функций matlab.
В MATLAB для решения задачи Коши для системы дифференциальных уравнений реализован набор процедур (встроенных функций): ode23, ode45, ode113, ode15s, ode23s, ode23t, ode23tb.
Процедура ode23 реализует метод Рунге-Кутты 2-го порядка, ode45 – метод Рунге–Кутты 4-го порядка, остальные процедуры используют другие алгоритмы, не описанные выше, которые адаптированы под задачи с разрывными функциями и другими особенностями. Руководство MATLAB рекомендует в первую очередь использовать процедуру ode45, а другие процедуры применять в случае, если эта функция не справляется с задачей.
Подробное описание процедур и их параметров с примерами использования можно посмотреть в MATLAB, набрав в командном окне doc ode45.
Упражнение 4. Используя процедуру ode45, найти решение задач Коши для уравнений 1-го и 2-го порядка (в соответствии с Вашим номером варианта).
Задания для выполнения лабораторной работы
Номер варианта |
1-й порядок |
2-й порядок |
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
Лабораторная работа № 2 Волновые уравнения
В этой лабораторной работе мы переходим к изучению методов решения уравнений в частных производных. Рассмотрим задачу Коши для уравнения колебаний струны (волнового уравнения).
Нашей целью будет познакомиться с аналитическими методами решения данной задачи и провести расчеты в среде MATLAB.
1. Задача Коши для неограниченной струны.
Рассмотрим одномерную бесконечную струну. Пусть в начальный момент времени струну отклонили от равновесного положения (придали некоторую начальную форму) и/или приложили некоторый распределенный импульс к точкам струны.
Последующие колебания струны описываются следующей системой уравнений, получившей название задачи Коши для волнового уравнения:
Известно, что решение данной задачи можно найти с помощью формулы Даламбера:
Для упрощения вычислений по данной формуле воспользуемся средствами MATLAB.
Пример П.1. Дана задача Коши для неограниченной струны:
Найти решение задачи при x = 4 в момент времени t = 2.
Сначала создадим две вспомогательные файл-функции для вычисления начального отклонения φ(x) и начальной скорости ψ(x).
Функция для начального отклонения будет иметь вид:
function u = u0(x)
u=zeros(size(x));
L = abs(x) <= 2;
u(L) = 1;
end
Функция для начальной скорости будет иметь вид:
function u = u_t0(x)
u=zeros(size(x));
L = abs(x) <= 2;
u(L) = 2-abs(x(L));
end
Обратите внимание, что созданные функции будут работать правильно и в том случае, если х будет являться не числом, а массивом чисел. Данное свойство понадобится нам в дальнейшем при вычислении интеграла от начальной скорости (второе слагаемое в формуле Даламбера).
Сохраним написанные функции в файлы с именами u0.m и u_t0.m, соответственно.
Выполним расчет по формуле Даламбера при заданных параметрах x, t, a:
x = 4;
t = 2;
a = 2;
u = (u0(x-a*t)+u0(x+a*t))/2+quad(@u_t0,x-a*t,x+a*t)/(2*a)
Для удобства последующего использования реализацию вычислений по формуле можно поместить в отдельный файл-функцию с параметрами x, t, a.
Для реализации интегрирования мы воспользовались встроенной функцией численного вычисления интеграла (quad), которая дает приближенное значение интеграла. Первым недостатком данной встроенной функции является возможность появления шума, связанного с ошибками интегрирования, иногда приводящего к неожиданным результатам.
Для повышения точности в случае относительно простых функций можно вычислять интеграл аналитически с помощью символьных функций, либо вычислить его точное значение вручную.
Вторым существенным недостатком функции quad является то, что ее параметры x и t обязательно должны быть скалярными величинами. В результате для вычисления зависимости решения от x при фиксированном t (или наоборот) требуются вычисления решения в цикле.
Пример П.2. Для задачи Коши из примера П.1 найти решение при произвольном значении xϵ[–3,3] в момент времени t = 2.
Создадим файл-функцию для реализации вычисления решения по формуле Даламбера с учетом того, что переменная x может быть задана в виде массива.
function u = dalamber(a,x,t)
u = [ ];
for i=x
u_i = (u0(i- a*t)+u0(i + a*t))/2 + quad(@u_t0, i - a*t, i + a*t)/(2*a);
u = [u, ui];
end
end
Вызов написанной функции для расчета будет достаточно простой:
u = dalamber(2,-3:0.01:3,2)
Упражнение 1. В области –∞<x<+∞, 0≤t<+∞ найти решение уравнения колебания струны (a = 2, l = 2), удовлетворяющее условиям
С помощью скрипта из примера П.2 решить данную задачу Коши для произвольных x и моментов времени t = 1, 2, 5, 10. Построить графики, отображающие полученные решения.
Замечания. 1. При выборе отрезка по x необходимо задавать его границы так, чтобы на данном отрезке была представлена вся ненулевая часть решения в заданный момент времени.
2. На всех графиках желательно задать одинаковые границы по обеим осям для корректного сравнения результатов.
3. В этом и последующих упражнениях вместо данной задачи Коши можно использовать задачу из индивидуального задания (по согласованию с преподавателем).
