Материал: Matlab. Практический подход. Самоучитель

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Самоучитель Matlab

От предыдущего случая отличие в том, что коэффициент r равен единице. На этом процесс определения граничных условий закончен. Следующий шаг – определение начальных условий. Для этого в меню Solve выбираем команду Parameters (рис. 7.22).

Рис. 7.22. Переход в режим определения начальных условий

Открывается окно Solve Parameters, в котором задаются параметры начального распределения для искомой функции (рис. 7.23).

Рис. 7.23. Определение начальных условий

Окно содержит несколько полей, которые необходимо заполнить. В поле Time указываем диапазон (список) значений по времени 0:0.01:1, для которых вычисляется решение. В поле u(t0) указываем значение 1, что означает равенство единице искомой функции во всех точках геометрической области в начальный момент времени. Значения в полях Relative tolerance и Absolute tolerance для относительной и абсолютной ошибок соответственно можно оставить без изменений (по умолчанию это 0.01 и 0.001).

Перед тем, как приступить к поиску решения, можно (и нужно) определиться со способом представления результата. Мы хотим создать цветовую анимацию. В этом случае геометрическая область закрашивается цветом в зависимости от температуры. Другими словами, поле температур отобра-

296

Глава 7. Уравнения математической физики

жается в виде цветовой гаммы. Поскольку температура меняется со временем, меняется и раскраска образца. Чтобы задать параметры анимации, выбираем команду Plot Parameters (рис. 7.24).

Рис. 7.24. Определение графических параметров для отображения результата

Откроется диалоговое окно Plot Selection, представленное на рис. 7.25.

Рис. 7.25. Переход в режим определения параметров анимации

В этом окне устанавливаем флажок опции Animation для создания в результате поиска решения анимации и щелкаем кнопку Options, чтобы задать параметры анимации. После этого в окне Animation Options в поле Animation rate

указываем количество кадров, отображаемых в секунду, а в поле Number of repeats указываем количество повторов анимационного цикла. Выполненные настройки показаны на рис. 7.26.

Наконец, все настройки выполнены, и можно приступить к поиску решения.

Рис. 7.26. Окно для настройки параметров анимации

297

Самоучитель Matlab

На заметку

Строго говоря, надо было бы выполнить еще триангуляцию – покрыть геометрическую область такой специфической сеткой с треугольными ячейками розного размера. Узлы этой сетки используются в качестве реперных точек при числовом решении задачи. Чем мельче сетка, тем точнее вычисления. Правда, на мелкой сетке вычисления проводятся дольше. Если триангуляцию не выполнить вручную (используются команды меню Mesh и кнопка с изображением разграфленного треугольника), то триангуляция будет выполнена автоматически. Правда сетка будет достаточно крупной. Но мы здесь за качеством не гонимся, нам важен принцип. Поэтому процесс явного выполнения триангуляции проигнорируем.

Для решения задачи выбираем команду Solve Solve PDE (рис. 7.27).

Рис. 7.27. Запуск утилиты решения задачи

Рис. 7.28. Один из начальных кадров, полученных при решении задачи

298

Глава 7. Уравнения математической физики

В результате создаются кадры анимации, и затем анимация отображается в графическом окне. На рис. 7.28 показан один из начальных кадров анимации, когда распределение температуры в образце близко к начальному.

С течением времени картина меняется. Один из последних кадров представлен на рис. 7.29.

Рис. 7.29. Один из последних кадров, полученных при решении задачи

Хотя в черно-белом цвете эффект не так очевиден, как в цвете, разницу увидеть все же можно.

На заметку

В рассмотренном примере мы использовали абсолютно банальные граничные и начальное условия – это были константы. В общем случае в начальный момент времени распределение функции неоднородно. Другими словами, начальное распределение искомой функции зависит от координат. Это же замечание относится к граничным условиям. При работе со средой PDETool это немаловажное обстоятельство можно учесть. При вводе граничных и начальных условий в соответствующих полях указываются выражения, определяющие пространственное распределение того или иного параметра. При этом по умолчанию в качестве пространственных координат используются переменные x и y. Подразумевается, что переменные x и y являются массивами с координатами точек. Поэтому все формулы должны вводиться так, чтобы соответствующие операции могли выполняться с массивами.

299

Самоучитель Matlab

Обработка аналитических результатов

Ватсон, я просто скрыл от Вас логическую цепь рассуждений и предложил Вам только выводы. От этого Вы мне не верите.

К/ф "Приключения Шерлока Холмса и доктора Ватсона. Кровавая надпись"

Выше мы кратко познакомились со средой PDETool, которая позволяет решать уравнения в частных производных в числовом виде. Часто это единственно возможный подход. Но "часто" еще не означает "всегда". Здесь проиллюстрируем полезность приложения Matlab даже в том случае, когда известно точное аналитическое решение. Для иллюстрации рассмотрим задачу о колебаниях прямоугольной мембраны с закрепленными краями. Задача формулируется так: необхо-

 

 

 

2

 

 

2

 

 

2

 

 

 

 

 

U(x,y,t)

2 U(x,y,t) ∂ U(x,y,t)

димо

решить уравнение

 

 

= a

 

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

t

2

 

x

2

 

y

2

 

 

 

 

 

 

 

 

 

 

с граничными

условиями U(x = 0,y,t) =U(x = L1,y,t) = 0

и

U(x,y = 0,t) =U(x,y = L2,t) = 0 , а

также

начальными усло-

виями

U(x,y,t = 0) =U0 (x L1 )(1 −x L1 )(y L2 )(1 −y L2 )

 

и

U(x,y,t = 0) = 0

(пространственные

переменные

0 ≤ x L

и

 

t

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

0 ≤ y L2 ). Здесь функция U(x,y,t) имеет смысл отклонения мембраны от положения равновесия в соответствующей точке для данного момента времени. Именно эту функцию нам нужно найти.

Перед решением обезразмериваем задачу. Вводим новые пространствен-

ные координаты ξ = x L

и

η = y L2 , время

τ = at L1

и функцию

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

u(ξ, η, τ) =U(x,y,t) U0 . Тогда задача будет сформулирована следующим

образом.

Решаем

уравнение

 

2u(ξ, η, τ)

=

2u(ξ, η, τ)

+ k

2

2u(ξ, η, τ)

 

 

τ2

 

 

ξ2

 

 

η2

 

 

k = L1

L2 ).

 

 

 

 

(параметр

Граничные

условия

остаются

 

нулевыми

(u(ξ = 0, η, τ) = u(ξ = 1, η, τ) = 0 и u(ξ, η = 0, τ) = u(ξ, η = 1, τ) = 0 ),

а начальные условия имеют

 

вид

u(ξ, η, τ = 0) = ξ(1 − ξ)η(1 − η) и

u(ξ, η, τ = 0) = 0 .

τ

Эта задача имеет аналитическое решение, которое может быть представлено в виде бесконечного ряда

 

64

∞ ∞

cos(πτ

(2m +1)2 +(2n +1)2k2 )sin((2m +1)πξ)sin((2n +1)πη)

 

u(ξ, η, τ) =

 

 

∑ ∑

 

 

 

 

.

π

6

 

3

3

 

 

 

m=0 n=0

 

(2m +1) (2n +1)

 

300

Источник: https://studfile.net/preview/16433384/