Метод разделения переменных в уравнениях теплопроводности

 

Государственное образовательное учреждение

высшего профессионального образования

«Московский государственный технический университет им. Н.Э. Баумана»

Калужский филиал

Факультет "Фундаментальных Наук"

Кафедра "Программного обеспечения ЭВМ, информационных технологий и прикладной математики" (ФН1-КФ)







РАСЧЕТНО-ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

К КУРСОВОЙ РАБОТЕ

По курсу «Моделирование»

На тему «Метод разделения переменных в уравнениях теплопроводности»





Студент: Шагаев М.В.

Группа: ИТД - 82

Преподаватель:

Гинзгеймер С.А.





Калуга 2010

Содержание


1. Техническое задание на разработку пакета программ

.1 Введение

.2 Требования к программе

.3 Условия эксплуатации

.4 Требования к программной документации

.5 Стадии и этапы разработки

. Исследовательская часть

.1 Общие сведения о программной платформе и среде разработки

.2 Обоснование выбора темы

.3 Метод разделения переменных

. Конструкторская часть

.1 Описание логической структуры программы

.1.1 Метод разделения переменных для бесконечного стержня

.1.2 Метод разделения переменных для полубесконечного стержня

.1.3 Метод разделения переменных для ограниченного стержня

. Технологическая часть

.1 Назначение программы

.2 Запуск и выполнение

.3 Системные требования

Литература

Приложение


1. Техническое задание на разработку пакета программ


.1 Введение


Данный курсовой проект представляет собой моделирования процесса распространения тепла в стержне (бесконечном, полубесконечном и ограниченном) методом разделения переменных.

Назначение и область применения

Проект предназначен для расчета распространения тепла в стержне. Возможно использование в различных процессах моделирования.


.2 Требования к программе


Требования к функциональным характеристикам

Программа должна обеспечивать возможность моделирования распространения тепла методом разделения переменных в:

. Бесконечном стержне

. Полубесконечном стержне

. Ограниченном стержне

Требования к надежности

Требования к обеспечению надежного функционирования программы

Надежное функционирование программы должно быть обеспечено выполнением Заказчиком совокупности организационно-технических мероприятий, перечень которых приведен ниже:

а) организацией бесперебойного питания технических средств;

б) использованием лицензионного программного обеспечения;

в) регулярным выполнением требований ГОСТ 51188-98. Защита информации.

Отказы из-за некорректных действий пользователей системы

Отказы программы вследствие некорректных действий пользователя при взаимодействии с программой недопустимы.


.3 Условия эксплуатации


Требования к составу и параметрам технических средств

В состав технических средств должен входить IВМ-совместимый персональный компьютер (ПЭВМ) включающий в себя:

. процессор Pentium-4, не менее 1800MHz;

. оперативную память объемом, 512 Мегабайт, не менее;

. HDD, 2 Гигабайт, не менее;

. операционную систему семейства Windows, начиная с версии Windows XP;

. Монитор, поддерживающий разрешение от 1280х1024 и выше;

. DirectX 9 или выше;

. Клавиатура и мышь;


.4 Требования к программной документации


Предварительный состав программной документации

Состав программной документации должен включать в себя:

. Должны быть разработаны следующие программные документы:

. Техническое задание (ГОСТ 34.602-89).

. Исследовательская часть (ГОСТ 19.506-79).

. Процесс распространения тепла в бесконечном стержне (диаграмма)

. Метод разделения переменных для бесконечного, полубесконечного и конечного стержня (диаграмма)

. Примеры (диаграмма)


1.5 Стадии и этапы разработки


Стадии разработки

Разработка должна быть проведена в три стадии:

. разработка технического задания;

. проектирование программы;

. реализация программы;

Этапы разработки

На стадии разработки технического задания должен быть выполнен этап разработки, согласования и утверждения настоящего технического задания.

На стадии рабочего проектирования должны быть выполнены перечисленные ниже этапы работ:

. выбор средств для создания;

. проектирование всей системы;

. разработка программной документации;

На последней стадии, выполняется написание/испытание программы, которая была спроектированная на втором этапе.

Содержание работ по этапам

На этапе разработки технического задания должны быть выполнены перечисленные ниже работы:

. постановка задачи;

. определение и уточнение требований к техническим средствам;

. определение требований к программе;

. определение стадий, этапов и сроков разработки программы и документации на неё;

. согласование и утверждение технического задания. На этапе проектирования программы должна быть выполнена работа по выбору средств для выполнения проекта, и описание назначения основных модулей программы.

На этапе разработки программной документации должна быть выполнена разработка программных документов в соответствии с требованиями к составу документации.

На этапе испытания программы должны быть выполнены перечисленные ниже виды работ:

. разработка, согласование и утверждение и методики испытаний;

. проведение приемо-сдаточных испытаний;

. корректировка программы и программной документации по результатам испытаний.


2. Исследовательская часть


.1 Общие сведения о программной платформе и среде разработки

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

Казалось бы, нелепо называть такую мощную систему, как Maple 13 математической системой «для всех». Однако по мере ее распространения она становится полезной для многих пользователей ПК, вынужденных в силу обстоятельств (работа, учеба, хобби) заниматься математическими вычислениями и всем, что с ними связано. А все это простирается от решения учебных задач в вузах до моделирования сложных физических объектов, систем и устройств, и даже создания художественной графики (например, фракталов).

Для наших читателей (в том числе и для математиков-профессионалов) возможности систем символьной математики, реализованных на массовых ПК класса IBM PC, порой являются полной неожиданностью и вызывают вполне заслуженное удивление и восхищение, но иногда и резкое отрицание. Впрочем, последнее характерно скорее для тех, кто с системой Maple просто не работал и относится к ней, как дама из анекдота о паровозе - увидев паровоз впервые, она воскликнула: «Не может быть, что он едет без лошадей!» Maple - тщательно и всесторонне продуманная система компьютерной математики. Она с равным успехом может использоваться как для простых, так и для самых сложных вычислений и выкладок. Заслуженной популярностью системы Maple (всех версий) пользуются в университетах - свыше 300 самых крупных университетов мира (включая и наш МГУ) взяли эту систему на вооружение. А число только зарегистрированных пользователей системы уже давно превысило один миллион. Ядро системы Maple используется в ряде других математических систем, например в MATLAB и Mathcad, для реализации в них символьных вычислений.

Добавьте к этому куда большее число незарегистрированных пользователей - ведь система записана на многих компакт-дисках, лихо продаваемых в России по вполне доступным ценам. Если учесть все это, то оказывается, что популярность системы Maple ничуть не ниже, а то и выше, чем у гораздо более простых систем, таких как Derive и Mathcad. Вот и решайте, какая из систем и впрямь рассчитана на всех!- типичная интегрированная система. Она объединяет в себе:

·мощный язык программирования (он же язык для интерактивного общения с системой);

·редактор для подготовки и редактирования документов и программ;

·современный многооконный пользовательский интерфейс с возможностью работы в диалоговом режиме;

·мощную справочную систему со многими тысячами примеров;

·ядро алгоритмов и правил преобразования математических выражений;

·численный и символьный процессоры;

·систему диагностики;

·библиотеки встроенных и дополнительных функций;

·пакеты функций сторонних производителей и поддержку некоторых других языков программирования и программ.

Ко всем этим средствам имеется полный доступ прямо из программы. Maple - одна из самых мощных и «разумных» интегрированных систем символьной математики, созданная фирмой Waterloo Maple, Inc. (Канада).

Во многих обзорах систем компьютерной алгебры Maple справедливо считается одним из первых кандидатов на роль лидера среди них. Это лидерство она завоевывает в честной конкурентной борьбе с другой замечательной математической системой - Mathematica 4.1. Каждая из данных двух систем имеет свои особенности, но в целом эти две лидирующие системы практически равноценны. Однако надо отметить, что появление новейшей версии Maple 13 означает очередной виток в соревновании этих систем за место лидера мирового рынка. Причем виток на этот раз раньше сделала система Maple 13.

Система Maple прошла долгий путь развития и апробации. Она реализована на больших ЭВМ, рабочих станциях Sun, ПК, работающих с операционной системой Unix, ПК класса IBM PC, Macintosh и др. Все это самым положительным образом повлияло на ее отработку и надежность (в смысле высокой вероятности правильности решений и отсутствия сбоев в работе). Не случайно ядро системы Maple V используется целым рядом других мощных систем компьютерной математики, например системами класса Mathcad и MATLAB. А совсем недавно упрощенная версия Maple для операционной системы Windows СЕ стала использоваться в миниатюрных компьютерах фирмы Casio - Cassiopeia


.2 Обоснование выбора темы


Поскольку метод разделения переменных позволяет решать различные дифференциальные уравнения, а большинство задач уравнений математической физики сводится к решению дифференциальных уравнений, то изучение метода является необходимым для улучшения знаний в области дифференциальных уравнений и уравнений математической физики.


2.3 Метод разделения переменных


Изложение этого метода мы проведем для задачи о колебаниях струны, закрепленной на концах.

Итак, будем искать решение уравнения


,(1)

удовлетворяющее однородным граничным условиям


U(0, t) = U(l, t) = 0((2)

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


((3)

Уравнение (1) линейно и однородно, поэтому сумма частных решений также является решением этого уравнения. Будем искать решение уравнения в виде


,((4)

где X(x)- функция только переменного , T(t)- функция только переменного .

Подставим (4) в уравнение (1), получим:

.((5)

Чтобы функция (4) была решением уравнения (1), равенство (5) должно удовлетворяться тождественно, то есть для всех значений независимых переменных , . Правая часть равенства (5) является функцией только переменного x, а левая- только .

Фиксируя, например, некоторое значение х и меняя t (или наоборот), получим, что правая и левая части (5) при изменении своих аргументов сохраняют постоянное значение, то есть


.((6)

Из соотношения (6) получаем обыкновенные дифференциальные уравнения для определения функций X(x) и T(t).


(7) (8)

Граничные условия (2) дают:


.


Отсюда следует, что функция X(x) должна удовлетворять дополнительным условиям


X(0) =X(l) =0,((9)

так как иначе мы имели бы T(t)?0 и U(x, t)?0, в то время как задача состоит в нахождении нетривиального решения.

Таким образом, в связи с нахождением функции X(x) мы приходим к простейшей задаче о собственных значениях: найти такие значения параметра ?, при которых существуют нетривиальные решения задачи:


((10)

а также найти эти решения. Такие значения параметра называются собственными значениями, а соответствующие им нетривиальные решения - собственными функциями задачи (10).

Итак, найдем знак :

1., например, .Запишем характеристическое уравнение для (10):


=> .


Общее решение уравнения может быть записано в виде


.


Граничные условия дают:


,

то есть и .

Но в рассмотренном случае - действительно и положительно, так что .

Поэтому , и, следовательно, , а мы ищем нетривиальное решение.

2.Пусть .

При также не существует нетривиальных решений. Действительно, в этом случае общее решение уравнения (7) имеет вид


.


Граничные условия дают:



то есть A=0 и B=0 и, следовательно, .

3. , например .

Характеристическое уравнение имеет вид


.


Общее решение уравнения:


.


Граничные условия дают:

.


Если , то . Поэтому


,


где n- любое целое число. Обозначим p через ,


.

- нетривиальное решение задачи (10),((11)

определяемое с точностью до произвольного множителя, который мы положили равным единице. Этим же значениям соответствуют решения уравнения (8).


,((12)

где и - произвольные постоянные.

Возвращаясь к задаче (1) - (3), заключаем, что функции



являются частными решениями уравнения (1), удовлетворяющими граничным условиям (3) и представимыми в виде произведения (4) двух функций.

Обратимся к решению в общем случае. В силу линейности и однородности уравнения (1) сумма частных решений


((13)

также удовлетворяет этому уравнению и граничным условиям (2).

Начальные условия позволяют определить и . Потребуем, чтобы функция (13) удовлетворяла условиям (3):


.((14)

Если функции и удовлетворяют условиям разложения в ряд Фурье, то


.((15)

Подставив (15) в (13), мы удовлетворим краевым условиям и получим решение уравнения.


3. Конструкторская часть


.1 Описание логической структуры программы


.1.1 Метод разделения переменных для бесконечного стержня

В самом начале задается уравнение тепловроподности


,


с начальным условием .

Затем указывается что решение будет искаться в виде:



Далее производится замена = = - , в следствие чего имеем:



Откуда получаем, что общее решение имеет вид:



Функция - есть решение уравнения для любого (где - непрерывно меняющейся параметр со значениями в интервале от - до + ), причем для каждого будут соответствующие коэффициенты и .

Поэтому имеем:


Далее интегрируем по :



Для определения и пользуемся начальными условиями и получаем:



Это выражение соответствует разложению в интеграл Фурье, которое имеет следующий вид:



Таким образом коэффициенты и можно представить как:



Подставляем выраженные коэффициенты в , получаем:


Или


Рассмотрим интеграл:



После чего сделаем замену переменной и упростим:

Подставим в рассматриваемый интеграл, имеем:


Или


В итоге получаем, получаем решение задачи в виде:



Пример 1. Начальное условие задано в виде функции, имеющий вид:


График этой функции:



В результате подстановки начального условия, получим решение в виде:



График которой имеет вид:


Пример 2. Начальное условие задано в виде кусочно-заданной функции, имеющий вид:



График этой функции:



В результате подстановки начального условия, получим решение в виде:



График которой имеет вид:



.1.2 Метод разделения переменных для полубесконечного стержня

В самом начале задается уравнение:



с начальным условием и граничным условием:

. Конец стержня в точке теплоизолирован:


.


или

. Конец стержня в точке поддерживается при постоянной температуре:

Далее аналогично, как для бесконечного стержня полчаем решение в виде:


. После чего рассматривается случай, когда конец стержня в точке теплоизолирован:


.


В этом случае необходимо продолжить на отрицательную полуось четным образом: = .

Затем, уравнение u(t,x) дифференцируется по х, и получаем:



Переменную x приравниваем к 0:



Здесь подынтегральная функция нечетна; поэтому интеграл равен нулю и граничное условие в точке выполнено.

При этом решение может быть записано в виде:



. После чего рассматривается случай, когда конец стержня в точке поддерживается при постоянной температуре ():

Для решения этой задачи преобразуем граничное условие к однородному :



При этом необходимо продолжить на отрицательную полуось нечетным образом: = .

В этом случае решение задачи - функция:



В результате имеем:



Учитывая нечетность функции , получаем:

Или

Где


Для вычисления этих интегралов производятся замены:


, .


После подстановки и упращения получим:



Таким образом, имеем:



Пример 1. Начальное условие задано в виде кусочно-заданной функции, имеющий вид:


График этой функции:


моделирование тепло стержень переменная

А граничные условия имеют вид:


.


То есть конец стержня в точке теплоизолирован.

В результате подстановки начального и граничного условия, получим решение в виде:



График которой имеет вид:



Пример 2. Начальное условие задано в виде кусочно-заданной функции, имеющий вид:



График этой функции:



А граничные условия имеют вид: .

То есть конец стержня в точке поддерживается при постоянной температуре ().

В результате подстановки начального и граничного условия, получим решение в виде:



График которой имеет вид:



3.1.3 Метод разделения переменных для ограниченного стержня

В самом начале задается уравнение:



с начальным условием и граничными условиями:



( - коэффициент теплопроводности, и - коэффициенты теплообмена на концах стержня, и - температуры на концах стержня).

Далее аналогично, как для бесконечного стержня получаем общее решение в виде:



Чтобы применить метод Фурье, необходимо свести исходную задачу к случаю однородных граничных условий.

Для этого введем функцию :



Здесь и - постоянные коэффициенты. Тогда:



Граничные условия при этом запишутся:



Поскольку для предполагаются однородные граничные условия, получаем:



Отсюда имеем:



В этом случае граничные условия для действительно примут вид однородных:



Начальное условие для запишется:


или


При этом функция удовлетворяет тому же уравнению, что и :



Поэтому для функция общее решение имеет вид:


Учтем однородные граничные условия для :



Решаем полученные уравнения относительно С1 и получаем, что С1 равняется:


или


Отсюда имеем уравнение, определяющее :



Или если упростить, получим:



Далее рассматривается несколько режимов.

. Концы стержня в одинаковом режиме; концы стержня теплоизолированы:



Приравниваем x к L и к нулю:



Из первого уравнения видно, что , тогда:



Общее решение имеет вид:



При подстановки начального условия:



Поэтому коэффициенты определяются согласно формулам преобразования Фурье:


Общее решение.



Таким образом, общее решение имеет вид:



. Концы стержня в разных режимах; один конец стержня теплоизолирован, температура на втором конце постоянна:



Приравниваем x к L и к нулю:


Откуда, тогда:



Общее решение имеет вид:



Подставляя начальные условия:



Поэтому коэффициенты определяются согласно формулам преобразования Фурье:



Выпишем общее решение.


Пример 1. Начальное условие задано в виде кусочно-заданной функции, имеющий вид:



График этой функции:



А граничные условия имеет вид первого типа.

В результате подстановки начального и граничного условия, получим решение в виде:



График которой имеет вид:



Пример 2. Начальное условие задано в виде кусочно-заданной функции, имеющий вид:



График этой функции:



А граничные условия имеет вид третьего типа.

В результате подстановки начального и граничного условия, получим решение в виде:



График которой имеет вид:


4. Технологическая часть


.1 Назначение программы


Данная программа представляет собой моделирования процесса распространения тепла в стержне (бесконечном, полубесконечном и ограниченном) методом разделения переменных


.2 Запуск и выполнение


Для запуска необходим программный пакет Maple 13. После чего выбрать файл (для бесконечного, полубесконечно, ограниченного стержня), и произвести запуск.


.3 Системные требования


·Процессор семейства Pentium - 4

·Операционная система Windows XP/Vista/Seven

·Оперативная память 512 Мб

·Видеокарта SVGA

·Монитор, поддерживающий разрешение 1280х1024

·Манипулятор типа мышь

·Клавиатура

·2 Гб места на жестком диске


Литература


1.Применение пакета Maple в курсе Уравнения математической физики. Часть 2. Уравнения параболического типа / А.В.Тихоненко.

2.А.Н.Тихонов, А.А.Самарский. Уравнения математической физики. М. Издательство Московского университета. 1999.

.Н.С. Кошляков, Э.Б. Глинер, М.М. Смирнов. Уравнения в частных производных математической физики. М. Высшая школа. 1970

.И.Г. Араманович, В.И. Левин. Уравнения математической физики. М. Наука. 1964.

.В.Я. Арсенин. Математическая физика. М. Наука. 1966.


Приложение


#для бесконечного стержня;

Задаем уравнение теплопроводности


PDE:=diff(u(t,x),t)=a^2*diff(u(t,x),x,x);


решение будем искать в виде T(t)*X(x)


struc:=pdsolve(PDE,HINT=T(t)*X(x));


Находим решения T(t) и X(x)


>dsolve(diff(T(t),t)=_c[1]*T(t));

dsolve(diff(X(x),`$`(x,2))=_c[1]*X(x)/a^2);(diff(T(t),t)=-lambda^2*T(t)*a^2);(diff(X(x),`$`(x,2))=-lambda^2*X(x));


В результате общее решение:


> u(t,x):=(C1*sin(lambda*x)+C2*cos(lambda*x))*exp(-lambda^2*a^2*t);

u[lambda](t,x):=(C1(lambda)*sin(lambda*x)+C2(lambda)*cos(lambda*x))*exp(-lambda^2*a^2*t);


Далее интегрируем по :


> u(t,x):=int(u[lambda](t,x), lambda=-infinity..infinity);


Для определения и пользуемся начальными условиями:

> u_0(t,x):=eval(subs(t=0, u(t,x)))=f(x);


Это выражение соответствует разложению в интеграл Фурье:


> f(x)=(1/(2*Pi))*int(int(f(xi)*cos(lambda*(xi-x)),xi=-infinity..infinity), lambda=-infinity..infinity);


Таким образом коэффициенты и можно представить как:


> C1(lambda):=(1/(2*Pi))*int(f(xi)*sin(lambda*xi),xi=-infinity..infinity);(lambda):=(1/(2*Pi))*int(f(xi)*cos(lambda*xi),xi=-infinity..infinity);


Подставляем выраженные коэффициенты в


u(t,x):=int((C1(lambda)*sin(lambda*x)+C2(lambda)*cos(lambda*x))*exp(-lambda^2*a^2*t),lambda = -infinity.. infinity);(t,x):=combine(int((C1(lambda)*sin(lambda*x)+C2(lambda)*cos(lambda*x))*exp(-lambda^2*a^2*t),lambda = -infinity.. infinity));


Рассмотрим интеграл:


> int(exp(-lambda^2*a^2*t)*cos(-lambda*x+lambda*xi), lambda = -infinity.. infinity);


Сделаем замену переменной и упростим:


> simplify(subs({xi=-v*a*t^(1/2)+x,lambda=w/(a*sqrt(t))},exp(-lambda^2*a^2*t)*cos(-lambda*x+lambda*xi)));

> Int(exp(-lambda^2*a^2*t)*cos(-lambda*x+lambda*xi),lambda = -infinity.. infinity)=(1/(a*sqrt(t)))*int(exp(-w^2)*cos(w*v),w = -infinity.. infinity);

> Int(exp(-lambda^2*a^2*t)*cos(-lambda*x+lambda*xi),lambda=-infinity..infinity)= subs(v=(x-xi)/a/t^(1/2),1/a/t^(1/2)*Pi^(1/2)*exp(-1/4*v^2));


В результате решение примет вид:


> u(t,x):=(1/(2*a*sqrt(Pi*t)))*int(f(xi)*exp(-1/4*(x-xi)^2/a^2/t),xi = -infinity.. infinity);


Пример 1


> restart;

> a:=1;L:=1;alpha:=1;l:=L/3;(xi):=u0*exp(-gamma^2*xi^2);

> u0:=1;gamma:=0.5;(f(xi), xi=-15..15, color=red,thickness=3);

> u(t,x):=1/2*1/a/(Pi*t)^(1/2)*int(f(xi)*exp(-1/4*(x-xi)^2/a^2/t),xi = -infinity.. infinity);

> u0:=1;beta:=0.5; a:=1;

> with(plots):(t,x):=(1/(2*a*sqrt(Pi*t)))*exp(1/(-4*beta^2*a^2*t-1)*x^2*beta^2)*u0/((4*beta^2*a^2*t+1)/a^2/t)^(1/2);

> animate(plot,[u(t,x),x=-15..15], t=0.0001..60, frames=30,thickness=3);


Пример 2


> restart;

> a:=1;L:=2;alpha:=1;(x):=x->piecewise(x<-L,0, x<0,alpha*(1+x/L),x<L,alpha*(1-x/L), x>L,0);

> plot(f(x),-10..10,-0.1..1.1, numpoints=400,color=blue,thickness=3);

> restart;(xi):=xi->piecewise(xi<-L,0, xi<0,alpha*(1+xi/L),xi<L,alpha*(1-xi/L), x>L,0);

> u(t,x):=simplify(1/2*1/a/(Pi*t)^(1/2)*int(alpha*(1+xi/L)*exp(-1/4*(x-xi)^2/a^2/t),xi = -L.. 0)+1/2*1/a/(Pi*t)^(1/2)*int(alpha*(1-xi/L)*exp(-1/4*(x-xi)^2/a^2/t),xi = 0.. L));

> a:=1;L:=2;alpha:=1;

> with(plots):(t,x):=-1/2*alpha*(-Pi^(1/2)*t^(1/2)*erf(1/2*(L+x)/a/t^(1/2))*L-2*a*t*exp(-1/4*(L+x)^2/a^2/t)-t^(1/2)*x*Pi^(1/2)*erf(1/2*(L+x)/a/t^(1/2))+4*a*t*exp(-1/4/a^2/t*x^2)+2*t^(1/2)*x*Pi^(1/2)*erf(1/2/a/t^(1/2)*x)-Pi^(1/2)*t^(1/2)*erf(1/2*(L-x)/a/t^(1/2))*L-2*a*t*exp(-1/4*(L-x)^2/a^2/t)+t^(1/2)*x*Pi^(1/2)*erf(1/2*(L-x)/a/t^(1/2)))/Pi^(1/2)/t^(1/2)/L;(plot,[u(t,x),x=-15..15], t=0.0001..15, frames=30,thickness=3);


#для полубесконечного стержня

> restart;

Однородное уравнение и его решение:


> PDE:=diff(u(t,x),t)=a^2*diff(u(t,x),x,x);

struc:=pdsolve(PDE,HINT=T(t)*X(x));

> dsolve(diff(T(t),t)=_c[1]*T(t));(diff(X(x),`$`(x,2))=_c[1]*X(x)/a^2);

> dsolve(diff(T(t),t)=-lambda^2*T(t)*a^2);(diff(X(x),`$`(x,2))=-lambda^2*X(x));


В результате общее решение имеет вид:


> u(t,x):=(C1*sin(lambda*x)+C2*cos(lambda*x))*exp(-lambda^2*a^2*t);

Имеем:


u[lambda](t,x):=(C1(lambda)*sin(lambda*x)+C2(lambda)*cos(lambda*x))*exp(-lambda^2*a^2*t);


В результате решение линейного однородного уравнения можно представить в виде суперпозиции решений, зависящих от параметра :


> u(t,x):=int(u[lambda](t,x), lambda=-infinity..infinity);


Для определения коэффициентов и воспользуемся начальными условиями:


> u_0(t,x):=eval(subs(t=0, u(t,x)))=f(x);


Это выражение соответствует разложению функции в интеграл Фурье:


> f(x)=(1/(2*Pi))*int(int(f(xi)*cos(lambda*(xi-x)),xi=-infinity..infinity), lambda=-infinity..infinity);


Значит, коэффициенты и выражаются:


> C1(lambda):=(1/(2*Pi))*int(f(xi)*sin(lambda*xi),xi=-infinity..infinity);(lambda):=(1/(2*Pi))*int(f(xi)*cos(lambda*xi),xi=-infinity..infinity);(t,x):=int((C1(lambda)*sin(lambda*x)+C2(lambda)*cos(lambda*x))*exp(-lambda^2*a^2*t),lambda = -infinity.. infinity);(t,x):=combine(int((C1(lambda)*sin(lambda*x)+C2(lambda)*cos(lambda*x))*exp(-lambda^2*a^2*t),lambda = -infinity.. infinity));

Полученное выражение можно преобразовать.

Для этого рассмотрим интеграл:


> int(exp(-lambda^2*a^2*t)*cos(-lambda*x+lambda*xi), lambda = -infinity.. infinity);


Сделаем замену переменной и преобразование подынтегральной функции:


> simplify(subs({xi=-v*a*t^(1/2)+x,lambda=w/(a*sqrt(t))},exp(-lambda^2*a^2*t)*cos(-lambda*x+lambda*xi)));

> Int(exp(-lambda^2*a^2*t)*cos(-lambda*x+lambda*xi),lambda = -infinity.. infinity)=(1/(a*sqrt(t)))*int(exp(-w^2)*cos(w*v),w = -infinity.. infinity);

> Int(exp(-lambda^2*a^2*t)*cos(-lambda*x+lambda*xi),lambda=-infinity..infinity)= subs(v=(x-xi)/a/t^(1/2),1/a/t^(1/2)*Pi^(1/2)*exp(-1/4*v^2));


В результате решение примет вид:


> u(t,x):=(1/(2*a*sqrt(Pi*t)))*int(f(xi)*exp(-1/4*(x-xi)^2/a^2/t),xi = -infinity.. infinity);


. Конец стержня в точке теплоизолирован:


.


В этом случае необходимо продолжить на отрицательную полуось четным образом:


= .

> u_x(t,x):=diff(u(t,x),x);


Сделаем замену переменной:


> u0_x:=subs(x=0,u_x(t,x));


Здесь подынтегральная функция нечетна; поэтому интеграл равен нулю и граничное условие в точке выполнено.

При этом решение может быть записано в виде:


> u(t,x):=1/2*1/a/(Pi*t)^(1/2)*int(f(xi)*(exp(-1/4*(-xi+x)^2/a^2/t)+exp(-1/4*(xi+x)^2/a^2/t)),xi=-infinity..infinity);


. Конец стержня в точке поддерживается при постоянной температуре (): .

Для решения этой задачи преобразуем граничное условие к однородному :


> U(t,x)=u(t,x)-T0;(x)=f(x)-T0;


При этом необходимо продолжить на отрицательную полуось нечетным образом:


= .


В этом случае решение задачи - функция:


> U(t,x):=1/2*1/a/(Pi*t)^(1/2)*int(F(xi)*exp(-1/4*(-xi+x)^2/a^2/t),xi = -infinity.. infinity);

В результате имеем:


> F(xi):=f(xi)-T0;(t,x):=T0+1/2*1/a/(Pi*t)^(1/2)*int((f(xi)+T0)*exp(-1/4*(-xi+x)^2/a^2/t),xi = -infinity.. infinity);


Учитывая нечетность функции , получаем:


> u(t,x):=T0+1/2*1/a/(Pi*t)^(1/2)*int((f(xi)-T0)*exp(-1/4*(-xi+x)^2/a^2/t),xi = -infinity.. 0)+1/2*1/a/(Pi*t)^(1/2)*int((f(xi)-T0)*exp(-1/4*(xi+x)^2/a^2/t),xi = 0.. infinity);

или > u(t,x):=T0+1/2*1/a/(Pi*t)^(1/2)*int((f(xi))*(exp(-1/4*(-xi+x)^2/a^2/t)-exp(-1/4*(xi+x)^2/a^2/t)),xi=0..infinity)-T0*Integr;

где: > Integr:=1/2/a/(Pi*t)^(1/2)*Int((T0)*exp(-1/4*(-xi+x)^2/a^2/t),xi = -infinity.. 0)-1/2/a/(Pi*t)^(1/2)*Int((T0)*exp(-1/4*(xi+x)^2/a^2/t),xi = 0.. infinity);


Для вычисления этих интегралов сделаем замены:


, .

> subs(xi=x-2*a*t^(1/2)*y,exp(-1/4*(-xi+x)^2/a^2/t));(xi=-x+2*a*t^(1/2)*y,exp(-1/4*(xi+x)^2/a^2/t));

> I1:=simplify((1/a/(Pi*t)^(1/2))*int(exp(-y^2),y = -infinity.. x/(2*a*t^(1/2)))*2*a*t^(1/2))/2;

I2:=simplify((1/a/(Pi*t)^(1/2))*int(exp(-y^2),y = x/(2*a*t^(1/2))..infinity) *2*a*t^(1/2))/2;

> Integr:=simplify(I1-I2);


Таким образом, имеем:

> u(t,x):=collect(T0+1/2*1/a/(Pi*t)^(1/2)*int((f(xi))*(exp(-1/4*(-xi+x)^2/a^2/t)-exp(-1/4*(xi+x)^2/a^2/t)),xi=0..infinity)-T0*Integr,T0);


Пример 1


> restart;

> a:=1;l:=4;L:=6;alpha:=1;(x):=x->piecewise(x<l,0, x<L,alpha, x>L,0);

> plot(f(x),0..10,-0.1..1.1, numpoints=400,color=blue,thickness=3);

> restart;(xi):=xi->piecewise(xi<l,0, xi<L,alpha, xi>L,0);

> u(t,x):=simplify(1/2*1/a/(Pi*t)^(1/2)*int(f(xi)*(exp(-1/4*(-xi+x)^2/a^2/t)+exp(-1/4*(xi+x)^2/a^2/t)),xi = l.. L));

> a:=1;l:=4;L:=6;alpha:=1;


Решение уравнения:


> with(plots):(t,x):=-1/2*(erf(1/2*(l-x)/a/t^(1/2))+erf(1/2*(l+x)/a/t^(1/2))+erf(1/2*(-L+x)/a/t^(1/2))-erf(1/2*(L+x)/a/t^(1/2)));


Представим решения в виде анимированного графика:


> animate(plot,[u(t,x),x=0..25], t=0.00000001..12, frames=60,thickness=3);


Пример 2


> restart;

> T0:=0; a:=1;l:=4;L:=6;alpha:=1;(x):=x->piecewise(x<l,T0, x<L,alpha+T0, x>L,0);

> plot(f(x),0..10,-0.1..1.1, numpoints=400,color=blue,thickness=3);

> restart;(xi):=xi->piecewise(xi<l,T0, xi<L,alpha+T0, xi>L,0);

> u(t,x):=simplify((-erf(1/2*x/a/t^(1/2))+1)*T0+1/2*1/a/(Pi*t)^(1/2)* int(f(xi)*(exp(-1/4*(-xi+x)^2/a^2/t)-exp(-1/4*(xi+x)^2/a^2/t)),xi = l.. L));

> T0:=0; a:=1;l:=4;L:=6;alpha:=1;


Решение уравнения:


> with(plots):(t,x):=-T0*erf(1/2*x/a/t^(1/2))+T0+1/2*erf(1/2*(-l+x)/a/t^(1/2))+1/2*erf(1/2*(l+x)/a/t^(1/2))+1/2*erf(1/2*(L-x)/a/t^(1/2))-1/2*erf(1/2*(L+x)/a/t^(1/2));


Представим решения в виде двумерного анимированного графика:


> animate(plot,[u(t,x),x=0..25, y=-0.1..1.1], t=0.0000001..12, frames=60,thickness=3);


#для ограниченного стержня

> restart;

Однородное уравнение и его решение методом разделения переменных:


> PDE:=diff(u(t,x),t)=a^2*diff(u(t,x),x,x);

struc:=pdsolve(PDE,HINT=T(t)*X(x));

> dsolve(diff(T(t),t)=_c[1]*T(t));(diff(X(x),`$`(x,2))=_c[1]*X(x)/a^2);

> dsolve(diff(T(t),t)=-lambda^2*T(t)*a^2);(diff(X(x),`$`(x,2))=-lambda^2*X(x));

В результате общее решение имеет вид:


> u(t,x):=(C1*sin(lambda*x)+C2*cos(lambda*x))*exp(-lambda^2*a^2*t);

> restart;

> k*diff(u(t,x),x)=h1*(u(t,x)-T1);

k*diff(u(t,x),x)=h2*(u(t,x)-T2);


Чтобы применить метод Фурье, необходимо свести исходную задачу к случаю однородных граничных условий.

Для этого введем функцию :


> u(t,x):=U(t,x)+kappa+sigma*x;


Здесь и - постоянные коэффициенты.


> u_x(t,x):=diff(u(t,x),x);

> u_x(t,x) := U_x(t,x) +sigma;


Граничные условия при этом запишутся:


> subs(x=0,k*u_x(t,x)=h1*(u(t,x)-T1));

subs(x=L,-k*u_x(t,x)=h2*(u(t,x)-T2));


Поскольку для предполагаются однородные граничные условия, получаем:


> k*sigma=h1*(kappa-T1);

-k*sigma=h2*(kappa+sigma*L-T2);


Отсюда имеем:

> solve({k*sigma=h1*(kappa-T1),-k*sigma=h2*(kappa+sigma*L-T2)}, {kappa,sigma});


В этом случае граничные условия для действительно примут вид однородных:


> simplify(subs({x = 0, kappa = (k*h2*T2-k*h1*T1+h2*L*h1*T1)/(k*h2-k*h1+h2*L*h1), sigma = -h1*h2*(-T2+T1)/(k*h2-k*h1+h2*L*h1)}, (U_x(t,0)+sigma-h1*(U(t,0)+kappa-T1)/k)*k = 0)); simplify(subs({x = 0, kappa = (k*h2*T2-k*h1*T1+h2*L*h1*T1)/(k*h2-k*h1+h2*L*h1), sigma = -h1*h2*(-T2+T1)/(k*h2-k*h1+h2*L*h1)},(U_x(t,L)-sigma+h2*(U(t,L)+kappa+sigma*L-T2)/k)*k = 0));


Начальное условие для запишется:


> u(t,x):=U(t,x)+kappa+sigma*x;

subs(t=0,u(t,x)=f(x));

или

> F(x)=f(x)-kappa-sigma*x;(t=0,U(t,x)=F(x));


При этом функция удовлетворяет тому же уравнению, что и :


> u(t,x):=U(t,x)+kappa+sigma*x;

diff(u(t,x),t)=a^2*diff(u(t,x),x,x);(U(t,x),t)=a^2*diff(U(t,x),x,x);


Поэтому для функции общее решение имеет вид:

> U(t,x):=(C1*sin(lambda*x)+C2*cos(lambda*x))*exp(-lambda^2*a^2*t);

> U_x(t,x):=diff(U(t,x),x);


Учтем однородные граничные условия для :


> eval(subs(x=0,U(t,x)*k=h1*U_x(t,x)));

eval(subs(x=L,U(t,x)*k=-h2*U_x(t,x)));

> solve(C2*k=h1*C1*lambda,C1);

solve(C1*sin(lambda*L)+C2*cos(lambda*L)*k=-h2*(C1*cos(lambda*L)* lambda-C2*sin(lambda*L)*lambda),C1);


Отсюда имеем уравнение, определяющее :


> k/h1/lambda=-(cos(lambda*L)*k-h2*sin(lambda*L)*lambda)/ (sin(lambda*L)+h2*cos(lambda*L)*lambda);

> k/h1/lambda = -(k-h2*tan(lambda*L)*lambda)/(tan(lambda*L)+ h2*lambda);

> solve(k/h1/lambda = -(k-h2*G*lambda)/(G+h2*lambda), G);

> tan(lambda*L)=-k*lambda*(h1+h2)/(k-h1*lambda^2*h2);


. Концы стержня в одинаковом режиме; концы стержня теплоизолированы:


> restart;

> subs({h1=0, h2=0},tan(lambda*L) = -k*lambda*(h1+h2)/(k-h1* lambda^2*h2));


2. Концы стержня в разных режимах; один конец стержня теплоизолирован, температура на втором конце постоянна:

> restart;(tan(lambda*L) = -k*lambda*(h1+h2)/(k-h1*lambda^2*h2), h1=0);


При h2 --> имеем:


> cot(lambda*L)=0;

> _EnvAllSolutions := true:(cot(lambda*L)=0,lambda);


или, в обычном виде,


> lambda=1/2*Pi*(1+2*n)/L;


Для симметричного случая результат аналогичен.

Таим образом, общее решение для , соответствующее параметру имеет вид:


> restart;[n](t,x):=(C1[n]*sin(lambda[n]*x)+C2[n]*cos(lambda[n]*x))*exp(-lambda[n]^2*a^2*t);


Теперь определим коэффициенты и выпишем общие решения.

. Концы стержня в одинаковом режиме; концы стержня теплоизолированы:


> restart;

> lambda[n]:=Pi*n/L;[n](t,x):=(C1[n]*sin(lambda[n]*x)+C2[n]*cos(lambda[n]*x))*exp(-lambda[n]^2*a^2*t);_x[n](t,x):=diff(U[n](t,x),x);

> eval(subs(x=0,U_x[n](t,x)*k=0));(subs(x=L,U_x[n](t,x)*k=0));

> simplify((C1[n]*cos(Pi*n)*Pi*n/L-C2[n]*sin(Pi*n)*Pi*n/L)*exp(-Pi^2*n^2/L^2*a^2*t)*k = 0) assuming n::integer;


Откуда:


> U[n](t,x):=C2[n]*cos(lambda[n]*x)*exp(-lambda[n]^2*a^2*t);


Общее решение имеемт вид:


> U(t,x):=sum(U[n](t,x), n=0..infinity);

> eval(subs(t=0,U(t,x)=F(x)));


Поэтому коэффициенты определяются согласно формулам преобразования Фурье:


> C2[n]:=(2/L)*int(F(xi)*cos(Pi*n/L*xi), xi=0..L);


Выпишем общее решение.


> F(xi):=f(xi);(t,x):=sum(C2[n]*cos(Pi*n/L*x)*exp(-Pi^2*n^2/L^2*a^2*t),n= 0..infinity);


Таким образом, общее решение имеет вид:


> u(t,x):=subs(F(xi)=f(xi),U(t,x));


. Концы стержня в разных режимах.

> restart;

> lambda[n]:=1/2*Pi*(1+2*n)/L;[n](t,x):=(C1[n]*sin(lambda[n]*x)+C2[n]*cos(lambda[n]*x))*exp(-lambda[n]^2*a^2*t);_x[n](t,x):=diff(U[n](t,x),x);

> eval(subs(x=0,U_x[n](t,x)*k=0));(subs(x=L,U[n](t,x)*k=0));

>simplify((C1[n]*sin(1/2*Pi*(1+2*n))+C2[n]*cos(1/2*Pi*(1+2*n)))*exp(-1/4*Pi^2*(1+2*n)^2/L^2*a^2*t)*k = 0) assuming n::integer;

> U[n](t,x):=C2[n]*cos(lambda[n]*x)*exp(-lambda[n]^2*a^2*t);


Общее решение имеет вид:


> U(t,x):=sum(U[n](t,x), n=1..infinity);

> eval(subs(t=0,U(t,x)=F(x)));


Поэтому коэффициенты определяются согласно формулам преобразования Фурье:


> C2[n]:=(2/L)*int(F(xi)*cos(1/2*Pi*(1+2*n)/L*xi), xi=0..L);


Выпишем общее решение.


> h1:=0;:= -h1*h2*(-T2+T1)/(k*h2+k*h1+h2*L*h1);:= limit((k*h2*T2+k*h1*T1+h2*L*h1*T1)/(k*h2+k*h1+h2*L*h1), h2=infinity);(xi):=f(xi)-kappa-sigma*xi;(t,x) := sum(C2[n]*cos(1/2*Pi*(1+2*n)/L*x)*exp(-1/4*Pi^2*(1+2*n)^ 2/L^2*a^2*t),n =0..infinity);

Таким образом, общее решение имеет вид:


> u(t,x):=U(t,x)+kappa+sigma*x;


ПРИМЕР 1


> restart;

> T0:=1; a:=1;L:=12;(x):=x->piecewise(x<L/2,T0, x<L,0);

> plot(f(x),0..12,-0.1..1.1, numpoints=400,color=blue,thickness=3);

> restart;(xi):=xi->piecewise(xi<L/2,T0, xi<L,0);

> C2_0 := 2/L*int(T0,xi = 0.. L/2);(t,x):=sum(2/L*cos(Pi*n/L*x)*exp(-Pi^2*n^2/L^2*a^2*t)*int(T0*cos (Pi*n/L*xi),xi=0..L/2),n = 0..infinity);


Решение уравнения:


> u(t,x):=C2_0/2+sum(2*(-1)^n*cos(Pi*(2*n+1)/L*x)*exp(-Pi^2*(2*n+1)^ 2/L^2*a^2*t)*T0/Pi/(2*n+1),n=0..infinity);

> with(plots)::=1; a:=1;L:=12;(t,x):=1/2*T0+sum(2*(-1)^n*cos(Pi*(2*n+1)/L*x)*exp(-Pi^2*(2*n+1)^2/L^2*a^2*t)*T0/Pi/(2*n+1),n=0..1000):


Представим полученные решения в виде двумерных анимированных графиков:


> animate(plot,[u(t,x),x=0..12, y=-0.1..1.1], t=0.0001..30, frames=30,thickness=3);

ПРИМЕР 2_


> restart;

> T0:=1; a:=1;L:=12;(x):=x->piecewise(x<L,T0);

> plot(f(x),0..13,-0.1..1.1, numpoints=400,color=blue,thickness=3);

> restart;(x):=x->piecewise(x<L,T0);


Для решения воспользуемся полученной в пункте 1.3. (граничное условие 3) формулой:


> u(t,x):=sum(2/L*cos(1/2*Pi*(1+2*n)/L*x)*exp(-1/4*Pi^2*(1+2*n)^ 2/L^2*a^2*t)*int((T0-T2)*cos(1/2*Pi*(1+2*n)/L*xi),xi = 0.. L),n = 1.. infinity)+T2;

> u(t,x):=sum(4*cos(1/2*Pi*(1+2*n)/L*x)*exp(-1/4*Pi^2*(1+2*n)^2/L^ 2*a^2*t)*(-1)^n*(T0-T2)/Pi/(1+2*n),n=0..infinity)+T2;

> with(plots)::=1; a:=1.5;L:=12;T2:=T0/4;(t,x):=sum(4*cos(1/2*Pi*(1+2*n)/L*x)*exp(-1/4*Pi^2*(1+2*n)^2/L^2*a^2*t)*(-1)^n*(T0-T2)/Pi/(1+2*n),n=0..1000)+T2:


Представим полученные решения в виде двумерных анимированных графиков:


> animate(plot,[u(t,x),x=0..12, y=-0.1..1.1], t=0.0001..30, frames=30, thickness=3);


Государственное образовательное учреждение высшего профессионального образования «Московский государственный технический университет им. Н.Э. Баумана

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ