А. В. Анкилов, П. А. Вельмисов, А. С. Семёнов
АЛГ ОР ИТ МЫ МЕ Т О Д О В ВЗВЕ Ш Е ННЫ Х НЕВЯЗОК ДЛЯ РЕШЕНИЯ ЛИНЕЙНЫХ ЗАД...
46 downloads
274 Views
1MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
А. В. Анкилов, П. А. Вельмисов, А. С. Семёнов
АЛГ ОР ИТ МЫ МЕ Т О Д О В ВЗВЕ Ш Е ННЫ Х НЕВЯЗОК ДЛЯ РЕШЕНИЯ ЛИНЕЙНЫХ ЗАДАЧ МАТЕМАТИЧЕСКОЙ ФИЗИКИ И ИХ РЕАЛИЗАЦИЯ В СИСТЕМЕ MATHCAD Учебное пособие
Ульяновск 2006
УДК 519.6 (075) ББК 22.311 я7 A 67 Рецензенты: Кафедра прикладной математики Ульяновского государственного университета (зав. кафедрой доктор физико-математических наук, профессор А. А. Бутов); Доктор физико-математических наук, проф. УлГУ В. Л. Леонтьев. Утверждено редакционно-издательским советом университета в качестве учебного пособия.
A 67
Анкилов, А. В. Алгоритмы методов взвешенных невязок для решения линейных задач математической физики и их реализация в системе MathCAD: учебное пособие / А. В. Анкилов, П. А. Вельмисов, А. С. Семёнов. – Ульяновск : УлГТУ, 2006. – 168 с.
ISBN 5-89146-913-8 Пособие содержит изложение алгоритмов численного решения некоторых линейных краевых или начально-краевых задач математической физики. Приведены постановки лабораторных работ, с использованием математически ориентированного пакета M athCAD. Даны примеры. Пособие предназначено для студентов, изучающих специальные курсы современных численных методов, для аспирантов и инженеров, применяющих численные методы к решению прикладных задач. Работа выполнена на кафедре «Высшая математика» УлГТУ. Печатается в авторской редакции.
УДК 519.6 (075) ББК 22.311 я7 Учебное издание АНКИЛОВ Андрей Владимирович ВЕЛЬМ ИСОВ Петр Александрович СЕМ ЁНОВ Алексей Степанович Алгоритмы методов взвешенных невязок для решения линейных задач математической физики и их реализация в системе MathCAD Учебное пособие Подписано в печать 20.12.2006. Формат 60 × 84/16. Бумага офсетная. Усл. печ. л. 10,00. Тираж 200 экз. Заказ Ульяновский государственный технический университет 432027, Ульяновск, ул. Северный Венец, 32. Типография УлГТУ, 432027, Ульяновск, ул. Северный Венец, 32. © А. В. Анкилов, П. А. Вельмисов, А. С. Семёнов, 2006 © Оформление. УлГТУ, 2006 ISBN 5-89146-913-8 2
ОГЛАВЛЕНИЕ Предисловие ……………………………………………………………… Программы по лабораторным работам ….…………………..……….. 1. Математическое моделирование физических задач …………….. 1.1. Вывод уравнений одномерной теплопроводнос ти ………..….. 1.2. Постановка начально-краевой задачи одномерной стационарной теплопроводнос ти …………………………………… 1.3. Постановка начально-краевой задачи одномерной нестационарной теплопроводности ………………………………… 1.4. Постановка краевых задач двухмерной стационарной теплопроводности …………………………………………………… 1.5. Вывод уравнений поперечных колебаний струны …………… 1.6. Вывод уравнения продольных и крутильных колебаний cтержня ………………………………………………………………. 1.7. Постановка статических краевых задач для струны и стержня 1.8. Краевые задачи в теории колебаний струн и стержней ……… 2. Решение краевой задачи для линейного обыкновенного дифференциального уравнения второго порядка методом Галеркина ……………………………………………………. 2.1. Подс тановка задачи и алгоритм метода ………………………. 2.2. Построение систем пробных и поверочных функций ………. 2.3. Задание к лабораторной работе ………………………………. 2.4. Выполнение работы в компьютерном классе ……………….. 2.5. Порядок выполнения лабораторной работы …………………. 2.6. Тестирующий пример ………………………………………….. 2.7. Вопросы для самоконтроля ……………………………………. 3. Решение краевой задачи для линейного обыкновенного дифференциального уравнения второго порядка вариационным методом Ритца ……………………………………… 3.1. Подс тановка задачи и алгоритм метода ……………………… 3.2. Построение систем пробных и поверочных функций ………. 3.3. Задание к лабораторной работе ……………………………….. 3.4. Выполнение работы в компьютерном классе ……………….. 3.5. Порядок выполнения лабораторной работы …………………. 3.6. Тестирующий пример …………………………………………. 3.7. Вопросы для самоконтроля …………………………………… 4. Решение краевой задачи для линейного обыкновенного дифференциального уравнения второго порядка интегральным методом наименьших квадратов …………………… 4.1. Подс тановка задачи и алгоритм метода ……………………… 4.2. Задание к лабораторной работе ……………………………….. 4.3. Выполнение работы в компьютерном классе ………………… 4.4. Порядок выполнения лабораторной работы ………………….
5 5 6 6 8 10 10 11 14 17 18
20 20 23 28 30 31 31 36
37 37 40 43 44 45 45 47
49 49 50 51 52 3
4.5. Тестирующий пример ………………………………………….. 4.6. Вопросы для самоконтроля ……………………………………. 5. Решение начально-краевой задачи для одномерного параболического уравнения методом Галеркина ..…………………. 5.1. Подс тановка задачи и алгоритм метода ………………………. 5.2. О построении функции u 0 ( x, t) ………………………………… 5.3. Задание к лабораторной работе ……………………………….. 5.4. Выполнение работы в компьютерном классе ……………….. 5.5. Порядок выполнения лабораторной работы …………………. 5.6. Тестирующий пример …………………………………………. 5.7. Вопросы для самоконтроля …………………………………… 6. Решение начально-краевой задачи для одномерного гиперболического уравнения методом Галеркина ..……………….. 6.1. Подс тановка задачи и алгоритм метода ……………………… 6.2. Задание к лабораторной работе …………………………….…. 6.3. Выполнение работы в компьютерном классе ……………….. 6.4. Порядок выполнения лабораторной работы …………………. 6.5. Тестирующий пример …………………………………………. 6.6. Вопросы для самоконтроля ……………………………………. 7. Решение первой краевой задачи для двухмерного эллиптического уравнения методом Галеркина ..………………….. 7.1. Подс тановка задачи и алгоритм метода ………………………. 7.2. Задание к лабораторной работе ……………………………….. 7.3. Выполнение работы в компьютерном классе ……………….. 7.4. Порядок выполнения лабораторной работы ………………….. 7.5. Тестирующий пример ………………………………………….. 7.6. Вопросы для самоконтроля ……………………………………. 8. Прикладной математический пакет «MathCAD» ..……………… 8.1. О программе …………………………………….……………… 8.2. Основные понятия и функции ………………………………… 8.3. Операторы математического анализа ………………………… 8.4. Функции и операторы матриц ………………………………… 8.5. Создание декартовых графиков на плоскости и в пространстве ………………………………………………………. 8.6. Программные блоки …………………………………………… Приложение А ……………………………………………………………. Приложение Б ……………………………………………………………. Приложение В ……………………………………………………………. Приложение Г ……………………………………………………………. Заключение ………………………………………………………………. Библиографический список ………..……………………………………
52 53 54 54 59 62 64 64 65 74 75 75 80 82 82 83 92 93 93 95 97 97 98 107 108 108 109 111 112 113 116 117 135 145 159 166 166
4
Предисловие Целый ряд современных методов, предназначенных для решения самых разнообразных задач математической физики, базируется на идеях ученых Б. В. Галеркина и В. Ритца. К этим методам относятся, например, методы взвешенных невязок и вариационные методы [1,2]. В настоящем пособии представлены возможные алгоритмы применения метода Галеркина и интегрального метода наименьших квадратов, относящихся к группе методов взвешенных невязок, и вариационного метода Ритца при численном решении краевой задачи для линейного обыкновенного дифференциального уравнения второго порядка, метода Галеркина при численном решении линейной начально-краевой задачи для одномерного параболического, одномерного гиперболического уравнений и первой краевой задачи для двухмерного эллиптического уравнения. В новом методе можно быс трее разобраться, если решить конкретную задачу. В качестве источников таких задач в пособии описаны задачи одномерной нес тационарной теплопроводности, двухмерной стационарной теплопроводности и задачи о колебаниях струн и стержней. Для проведения вычислительного эксперимента, согласно алгоритму метода, выбранного для решения конкретной задачи, в пособии приведены постановки лабораторных работ, с реализацией этого метода в математически ориентированном пакете MathCAD. Пособие предназначено для студентов вузов, изучающих специальные курсы современных вычислительных методов. Оно будет полезным для аспирантов и инженеров, применяющих численные методы к решению прикладных задач.
Программы по лабораторным работам Для выполнения лабораторных работ разработаны в прикладной системе MathCAD 2000 professional файлы ODU.mcd, Parab.mcd, Giperb.mcd, Ellipt.mcd. В начале каждого файла расписано задание на лабораторную работу, а в конце приведены варианты заданий, номера которых студенты получают от преподавателя. Тексты программ подробно описывают все дейс твия и операции. Для удобства изучения сами тексты с разобранными тестирующими примерами приведены в приложениях А, Б, В, Г данного пособия. Прежде чем приступать к выполнению своего задания, необходимо рассмотреть пример, для которого исследование уже проведено. Далее нужно руководствоваться подсказками, указаниями и заданиями, выделенными красным цветом (в приложениях выделено жирным шрифтом).
5
1. Математическое моделирование физических задач 1.1. Вывод уравнений одномерной теплопроводности Пусть дано материальное тело, расположенное между точками x = a и x = b оси Ox , продольный размер которого значительно превосходит размеры поперечного сечения, например, тонкий стержень, длинный трубопровод и т. д. В дальнейшем будем называть это тело стержнем. Будем считать площадь S (x ) поперечного сечения (перпендикулярного оси Ox ) настолько малой, что всем точкам одного сечения в момент времени t можно приписать одну и ту же температуру u ( x, t) . Будем считать, что стержень теплоизолирован вдоль боковой поверхности, а внутри стержня нет источников или стоков (поглотителей) тепла. Рассмотрим элемент с тержня между его сечениями с абсциссами x и x + dx . Найдем количес тво тепла, которое накапливается в элементе за время dt . Согласно закону Фурье интенсивность q( x, t ) теплового потока в сечении x определяется выражением: ∂u ( x, t) q( x, t ) = − K ( x ) , ∂x где K (x) – коэффициент теплопроводнос ти (K ( x) > 0) . Тогда разность dQ′ между количеством тепла, вошедшим в элемент через сечение x и вышедшим через сечение x + dx за время dt , будет равна: ∂u ( x, t) ∂u ( x + dx , t) ⎤ ⎡ dQ′ = − K (x )S ( x ) dt − ⎢− K ( x + dx )S (x + dx) dt ⎥ . ∂ ∂x x ⎣ ⎦ Используя формулу Тейлора первого порядка с остаточным членом в форме Пеано для функций K ( x + dx ), S ( x + dx ), u x′ ( x + dx , t ) , имеем ∂u ( x , t ) dQ′ = − K (x )S (x ) dt + (K ( x) + K ′( x)dx + o(dx ))(S ( x ) + S ′( x )dx + o(dx )) × ∂x (1.1) ⎞ ⎛ ∂u( x, t ) ∂u 2 ( x, t ) ∂ ⎛ ∂ ( x, t) ⎞ dx + o(dx) ⎟⎟ dt = ⎜ K ( x) S ( x) + × ⎜⎜ ⎟ dxdt + o(dxdt ). 2 ∂ ∂ x x x ∂ x ⎝ ⎠ ∂ ⎠ ⎝ Напомним, что символом o(x) обозначается величина бесконечно малая более высокого порядка, чем x . С другой стороны, за счет притока тепла температура в элементе изменяется, и количество тепла dQ , поглощаемое элементом за время dt , равно dQ =
x + dx
∫ C (v )S (v )ρ (v)(u (v,t + dt ) − u (v ,t ))dv , x
где C (x ) – теплоемкость; ρ (x) – объемная плотность вещества стержня (C ( x) > 0, ρ (x ) > 0 ). 6
Откуда, на основании теоремы о среднем для определяемого интеграла, получаем равенство dQ = c(ξ ) ρ (ξ )S (ξ )(u (ξ , t + dt ) − u (ξ , t ))dx, x < ξ < x + dx, которое при помощи преобразуется к виду
теоремы
Лагранжа
о
конечных
приращениях
∂u(ξ , t + θdt ) dtdx , θ ∈ (0,1). (1.2) ∂t Приравнивая, на основании закона сохранения энергии, выражения (1.1), (1.2) и осуществляя предельный переход при dt → 0 , получаем одномерное уравнение теплопроводности в виде ∂⎛ ∂u ⎞ ∂u ⎜ KS ⎟ = C ρS . ∂x ⎝ ∂x ⎠ ∂t Предположим теперь, что внутри стержня происходит выделение или поглощение тепла (это имеет мес то, например, при прохождении по телу электрического тока или вследствие происходящих в нем химических реакций). Тогда количество тепла, накопленное в элементе с тержня за время dt за счет внутренних источников, будет равно dQ o = SF (x , t )dxdt , где F ( x, t ) – плотнос ть тепловых источников внутри стержня. Уравнение теплопроводности с учетом внутренних источников тепла принимает вид dQ = dQ′ + dQ o или ∂u ⎞ ∂u ∂ ⎛ = ⎜ KS ⎟ + SF . C ρS ∂t ∂x ⎝ ∂x ⎠ Предположим далее, что на боковой поверхности стержня происходит теплообмен с окружающей средой. Тогда тепловой поток, проходящий за время dt через боковую поверхность элемента, согласно закону Ньютона пропорционален разнос ти температур поверхности тела и окружающей среды и определяется выражением dQ* = − β* ( x)[u (x , t ) − T ( x, t )]dxdt , где T (x , t ) – температура внешней среды; β* ( x ) – коэффициент теплообмена, зависящий от свойств материала стержня и внешней среды, режима взаимодействия (условий контакта) стержня с внешней средой, а также от геометрических характеристик поперечного сечения. Уравнение теплопроводности с учетом внутренних источников тепла и теплообмена на боковой поверхности имеет вид dQ = dQ′ + dQ* + dQ o или ∂u ∂ ⎡ ∂u ⎤ C ρS KS − β * (u − T ) + SF (x , t ). (1.4) = ∂t ∂x ⎢⎣ ∂x ⎥⎦ Заметим, что если тепло распространяется в жидкости, которая движется со скоростью V ( x, t ) параллельно оси x , то уравнение теплопроводности запишется следующим образом: dQ = c(ξ ) ρ (ξ )S (ξ )
7
∂u ⎤ ∂ ⎡ ∂u ⎤ ⎡ ∂u C ρS ⎢ + V ⎥ = ⎢ KS ⎥ − β* (u − T ) + SF (x , t ). ∂x ⎦ ∂x ⎣ ∂x ⎦ ⎣ ∂t Если тело однородно, т. е. С , ρ , K – постоянные, и площадь сечения S постоянна, то уравнение (1.4) можно записать в виде 2 ∂u β (u − T ) F (x , t ) 2∂ u , =a − * + 2 ∂t CρS Cρ ∂x где a 2 = K / C ρ – коэффициент температуропроводнос ти. Аналогично уравнению (1.4) выводится уравнение, описывающее процесс распространения тепла в трехмерных телах ∂u Cρ = div[K ( x, y , z ) ⋅ grad u] + F ( x, y , z , t ) ∂t или в развернутой форме ∂u ∂ ⎛ ∂u ⎞ ∂ ⎛ ∂u ⎞ ∂ ⎛ ∂u ⎞ = ⎜ K ⎟ + ⎜ K ⎟ + ⎜ K ⎟ + F ( x, y , z , t ) . Cρ (1.5) ∂t ∂x ⎝ ∂x ⎠ ∂y ⎜⎝ ∂y ⎟⎠ ∂y ⎜⎝ ∂y ⎟⎠ Для однородных тел уравнение (1.5) удобно представить в виде 2 K ∂u ∂ 2 u ∂ 2 u ⎞ F ( x, y , z , t) 2⎛ ∂ u , a2 = . = a ⎜⎜ 2 + 2 + 2 ⎟⎟ + C ρ C ρ ∂t x y z ∂ ∂ ∂ ⎠ ⎝ Для двухмерных тепловых полей в плас тинах, тонких плитах уравнение (1.5) примет вид ∂u ∂ ⎛ ∂u ⎞ ∂ ⎛ ∂u ⎞ = ⎜ K ⎟ + ⎜ K ⎟ + F ( x , y, t ) Cρ (1.6) ∂t ∂x ⎝ ∂x ⎠ ∂y ⎜⎝ ∂y ⎟⎠ или для однородных плас тин 2 K ∂u ∂ 2 u ⎞ F (x , y, t ) 2⎛ ∂ u , a2 = . = a ⎜⎜ 2 + 2 ⎟⎟ + C ρ C ρ ∂t x y ∂ ∂ ⎠ ⎝ 1.2. Постановка краевой задачи одномерной стационарной теплопроводности Согласно (1.4) стационарное (установившееся во времени) распределение теплового поля в стержне постоянного поперечного сечения (S ( x) = const ) описывается уравнением L[y ] = [K ( x) y ′]′ − β (x ) y = g (x ). (1.7) В (1.7) введены обозначения y (x) = u (x), β ( x) = β* (x ) / S, g ( x) = −F ( x) − β ( x)T ( x). Перечислим основные типы граничных условий (на примере левого конца стержня при x = a ). а) Известная температура при x = a : y (a) = Ta . 8
б) Задана интенсивность теплового потока через торцевое сечение x = a : − K a y ′(a ) = q a , K a = K (a ). В частности, если стержень теплоизолирован при x = a , то y ′(a ) = 0 . в) На конце x = a имеет место теплообмен с окружающей средой известной температуры Ta : − K a y ′(a) = −α a [y(a) − Ta ], K a = K(a). Здесь α a – коэффициент теплообмена на конце x = a . Последнее условие (условие Ньютона) означает, что тепловой поток, передаваемый в единицу времени с единицы площади поверхнос ти в окружающую среду, пропорционален разности температур поверхности тела и окружающей среды. Аналогичные краевые условия могут быть заданы и на правом конце стержня при x = b . Например, условие теплообмена при x = b имеет вид − K b y ′(b) = α b ( y (b) − Tb ). В таблице 1.1 приведены возможные варианты краевых условий для определения стационарного распределения температуры в стержне согласно уравнению (1.7). Напомним еще раз используемые в таблице 1.1 обозначения: K a = K (a), K b = K (b) – коэффициенты теплопроводности; αа , α b – коэффициенты теплообмена на левом и правом концах стержня соответс твенно; Tа , Tb – температуры, которые поддерживаются на концах с тержня при x = a и при x = b ; qа , qb – интенсивности тепловых потоков при x = a и при x = b . Очевидно, что все приведенные в таблице 1.1 варианты краевых условий можно записать в виде ⎧a0 y( a) + a1 y ′(a) = a2 (1.8) ⎨ ′ b y b b y b b ( ) + ( ) = , 0 1 2 ⎩ при соответствующем выборе значений коэффициентов ai , bi . Например, для первого варианта условий из таблицы 1.1 имеем a0 = 1, a1 = 0, a 2 = Ta , b0 = 1, b2 = 0, b2 = Tb ; а для девятого –
a0 = α a , a1 = −K a , a2 = α a Ta ,
b0 = α a , b1 = K b , b2 = α bTb ; Таким образом, математическая задача одномерной стационарной теплопроводности формулируется следующим образом: требуется найти функцию y (x) , удовлетворяющую на отрезке [a, b] обыкновенному линейному дифференциальному уравнению (1.7), а на концах отрезка – граничным условиям (1.8). 9
Таблица 1.1
Варианты краевых условий для уравнения (1.5) x № 1 2 3 4 5 6 7 8 9
x=a
x=b
y = Ta y = Ta y = Ta
y = Tb
− K a y ′ = qa − K a y ′ = qa − K a y ′ = qa − K a y ′ = −α a ( y − Ta ) − K a y ′ = −α a ( y − Ta ) − K a y ′ = −α a ( y − Ta )
− K b y′ = q b
− K b y ′ = α b ( y − Tb ) y = Tb − K b y′ = q b
− K b y ′ = α b ( y − Tb ) y = Tb
− K b y ′ = qb − K b y ′ = α b ( y − Tb )
1.3. Постановка начально-краевой задачи одномерной нестационарной теплопроводности В пункте 1.2 рассмотрена краевая задача для одномерного с тационарного уравнения теплопроводности (1.7), которая представляет собой краевую задачу для обыкновенного дифференциального уравнения второго порядка. В случае нестационарной теплопроводности к краевым (граничным) условиям (1.8) добавляется начальное условие в некоторый начальный момент времени t = t 0 (обычно t = 0 ) u ( x, t0 ) = ϕ ( x ) , (1.9) и говорят, что задана начально-краевая задача для уравнения параболического типа (1.4). 1.4. Постановка краевых задач двухмерной стационарной теплопроводности Согласно (1.6) стационарное (установившееся во времени) распределение теплового поля в пластине описывается уравнением ∂ ⎛ ∂u ⎞ ∂ ⎛ ∂u ⎞ (1.10) ⎜ K ⎟ + ⎜ K ⎟ = −F ( x, y ) . ∂x ⎝ ∂x ⎠ ∂y ⎜⎝ ∂y ⎟⎠ При решении краевых задач для уравнения эллиптического типа (1.10) наиболее часто используются три типа краевых условий. а) Краевая задача с граничными условиями первого рода (первая краевая задача). Требуется найти решение уравнения (1.10) в некоторой области D, принимающее на границе этой области заданные значения. Т. е. нужно найти 10
(применительно к рассматриваемой задаче) стачионарное распределение температуры внутри области, если задана температура на границе этой области u Γ = g (x , y ) . (1.11) D
Здесь ΓD – граница области D, g (x , y ) – известная функция. б) Краевая задача с граничными условиями второго рода (вторая краевая задача). Требуется найти решение уравнения (1.10) в некоторой области, на ∂u (т. е. на границе границе которой задана внешняя нормальная производная ∂n задана интенсивность теплового потока). ∂u ∂u −K = q (x , y ) или + q ( x, y) = 0 , (1.12) ∂n ΓD ∂n ΓD q . Здесь ΓD – граница области D, q( x, y ) – интенсивность теплового K потока. При этом, если q > 0 , то тепловой поток направлен наружу, а если q < 0 , то тепловой поток направлен внутрь облас ти. При q = 0 имеем условие ∂u теплоизоляции =0. ∂n в) Краевая задача с граничными условиями третьего рода (третья краевая задача). Требуется найти решение уравнения (1.9) в некоторой области, которое удовлетворяет на границе условию ∂u ∂u −K = λ u Γ − T или = λ uΓ −T , (1.13) D D ∂n ΓD ∂n ΓD где q =
(
где λ =
)
(
)
λ
. Здесь ΓD – граница области D, на которой задан теплообмен с K окружающей средой, температура которой равна T ; λ – коэффициент теплообмена. Если на различных частях границы ΓD заданы условия различного рода, то такие условия и соответствующие им задачи называют смешанными. 1.5. Вывод уравнений поперечных колебаний струны Рассмотрим тонкую гибкую упругую нить (струну), которая в положении равновесия занимает отрезок [a, b] оси Ox и концы которой закреплены. Полагая струну тонкой, пренебрегаем весом струны по сравнению с внутренними силами натяжения и внешней нагрузкой. Полагая струну гибкой, считаем, что внутренние усилия, возникающие в струне, направлены по касательной к мгновенному профилю в каждой точке, т. е. струна не 11
сопротивляется изгибу. Предполагаем также, что внешние силы лежат в вертикальной плоскости, в которой совершают колебания точки струны. Рассмотрим элемент струны между точками x и x + dx (рис. 1.1) и обозначим смещение точек струны через u ( x, t ) , а длину элемента струны через ds . Тогда x +dx ⎛
2
1 ⎞2
⎛ ∂u ⎞ ds = ∫ ⎜ 1 + ⎜ ⎟ ⎟ dx , ⎜ ⎝ ∂x ⎠ ⎟ x ⎝ ⎠ откуда, предполагая смещение струны u ( x, t ) малыми настолько, что 2
⎛ ∂u ⎞ (1.14) ⎜ ⎟ << 1 , ⎝ ∂x ⎠ получаем ds ≈ dx , т. е. в пределах принятой точности удлинения участков струны в процессе колебаний не происходит. Следовательно, согласно закону Гука величина натяжения в каждой точке струны не меняется со временем и является функцией только x , т. е. T = T (x) .
Рис. 1.1. Иллюстрация к выводу уравнения колебаний струны
Запишем условия динамического равновесия элемента струны, на который действуют в плоскости Oxu силы натяжения T1 = T (x ) , T2 = T (x + dx ) , внешняя распределенная по длине дуги с линейной плотнос тью F ( x, t ) поперечная сила и сила инерции, направленная вдоль оси Ou . Проектируя силы на ось Ox , получаем T (x + dx ) cos(θ 2 ) − T ( x) cos(θ 1 ) = 0. (1.15) Так как, согласно тождествам тригонометрии и геометрического смысла производной, 1 1 , cos(θ 2 ) = = 2 1 + tg 2 (θ 2 ) ⎛ ∂u (x + dx, t ) ⎞ 1+⎜ ⎟ ∂x ⎝ ⎠ (1.16) 1 1 , cos(θ1 ) = = 2 2 1 + tg (θ 1 ) ∂u ( x, t) ⎞ 1 + ⎛⎜ ⎟ ⎝ ∂x ⎠ 12
то, учитывая условие (1.15), из (1.16) получим T (x + dx ) = T ( x) . Откуда, в силу произвольности выбора точек x и x + dx , следует, что величина натяжения не зависит и от x , т. е. является постоянной, T (x ) = T0 = const . Проектируя теперь все силы на ось Ou , получаем x +dx x+ dx ∂ 2u ( z,t ) ρ ( z ) dz = T sin( θ ) − T sin( θ ) + (1.17) ∫ ∫ F ( z, t )dz , 0 2 0 1 2 ∂ t x x где ρ (x ) – линейная плотность струны. Аналогично формулам (1.16) устанавливаем ∂u( x + dx , t ) tg(θ 2 ) ∂x = , sin(θ 2 ) = 2 2 1 + tg (θ 2 ) ⎛ ∂u ( x + dx , t ) ⎞ 1+ ⎜ ⎟ ∂x ⎝ ⎠ sin(θ 1 ) =
tg(θ1 ) 1 + tg (θ1 ) 2
=
∂u ( x, t ) ∂x ⎛ ∂u ( x , t ) ⎞ 1+ ⎜ ⎟ ⎝ ∂x ⎠
2
,
откуда, согласно условию (1.14), имеем ∂u( x + dx, t ) ∂u( x, t ) sin(θ 2 ) ≈ , sin(θ 1 ) ≈ . ∂x ∂x Теперь, применяя для входящих в формулу (1.17) интегралов теорему о среднем, а для u ′x ( x + dx , t ) – формулу Тейлора первого порядка с остатком в форме Пеано, получаем ⎞ ⎛ ∂ 2 u( x, t ) ∂ 2 u (ξ1 , t ) ⎟⎟ + F (ξ 2 , t )dx, ⎜ ρ (ξ1 ) dx T dx o ( dx ) = + 0⎜ 2 2 x ∂t ∂ ⎠ ⎝ ξ и ξ принадлежат отрезку [ x , x + dx ] . Почленно деля последнее где 1 2 равенство на dx и осуществляя предельный переход при dx → 0 , получаем уравнение колебания струны следующего вида: ∂ 2u (x , t ) ∂ 2u (x , t ) ρ ( x) = T0 + F ( x, t) . (1.18) ∂t 2 ∂x 2 Если струна дополнительно по всей длине связана с вязкоупругим основанием, то для описания ее колебания можно получить уравнение 2 2 t ∂ u( x, t ) ⎞ ∂ u (x , t ) ⎛ ρ ( x) T β ( , ) ( , ) = x t u x t − − ⎜ ∫ Q (x , t ,τ )u (x ,τ )dτ ⎟ − 0 2 2 ∂t ∂x 0 ⎠ ⎝ ∂u( x, t ) + F ( x, t ), − γ (x , t ) ∂t
(1.19)
13
где β ( x, t ), γ ( x, t ) – коэффициенты жесткос ти и демпфирования основания; Q ( x, t , τ ) – ядро релаксации, учитывающее изменение с течением времени физико-механических свойств материала основания (т. е. его старение). Заметим, что при выводе уравнения (1.19) предполагалось, что реакция основания пропорциональна его деформации (модель Винклера). В статистических задачах профиль струны u = u (x) определяется согласно (1.12), решением уравнения F (x ) β (x ) . (1.20) u=− u ′′ − T0 T0 1.6. Вывод уравнения продольных и крутильных колебаний стержня Для вязкоупругого тела при одномерном растяжении (сжатии) связь между деформацией (относительным удлинением) ε ( x, t ) и напряжением σ ( x, t ) представляется формулой t ⎛ ⎞ ∂ε ( x , t ) , (1.21) σ ( x, t ) = E ( x, t )⎜⎜ ε ( x, t ) − ∫ R( x , t ,τ )ε (x ,τ )dτ ⎟⎟ + α (x , t ) ∂ t ⎝ ⎠ 0 где E – модуль упругости; R – ядро релаксации, учитывающее старение материала тела; α – коэффициент внутреннего трения. Заметим, если R ≡ 0 и α ≡ 0 , то получаем закон Гука для упругого тела. Рассмотрим элемент с тержня (рис. 1.2), заключенный между поперечным сечением с координатами x и x + dx .
Рис. 1.2 Иллюстрация к выводу уравнения продольных колебаний стержня
В сечении « x » на элемент действует сила N ( x, t ) = σ (x , t )S (x ) , где S (x ) – площадь сечения, в сечении « x + dx » – сила N ( x + dx , t ) = σ ( x + dx, t )S ( x + dx )) . Предполагая, что на стержень действует внешняя нагрузка, распределенная по длине стержня с объемной плоскостью F ( x, t ) , аналогично выводу уравнения (1.18) получаем уравнение продольных колебаний стержня следующего вида: ∂ 2 u( x, t ) ∂ ρ ( x) S ( x) = (S ( x )σ ( x, t )) + S ( x) F (x , t ), (1.22) ∂x ∂t 2 где ρ (x) – объемная плотнос ть материала с тержня; u ( x, t) – продольное смещение сечения стержня с координатой x в момент времени t от положения, которое занимало это сечение, когда стержень находился в ненапряженном состоянии. 14
Учитывая, что
u (x + dx, t) − u ( x, t) ∂u ( x, t) , = dx → 0 dx ∂x и подставляя (1.21) в (1.22), имеем ∂ 2 u( x, t) ∂ ⎛ ⎡ ∂u ( x, t) t ∂u (x ,τ ) ⎤ ρ ( x )S ( x) dτ ⎥ + = ⎜⎜ S ( x )E (x , t )⎢ − ∫ R (x , t ,τ ) 2 x x ∂x ⎝ ∂ ∂ ∂t 0 ⎣ ⎦
ε ( x, t ) = lim
∂ 2 u (x , t ) ⎞ ⎟ + S (x )F ( x , t ). ∂x∂t ⎟⎠ Если боковая поверхность стержня скреплена с вязкоупругим основанием (модель Винкера), то приходим к следующему уравнению: 2 ∂ u( x, t) ∂ ⎛ ⎡ ∂u ( x, t) t ∂u (x ,τ ) ⎤ ρ ( x )S ( x) S ( x ) E ( x , t ) R ( x , t , τ ) dτ ⎥ + ⎜ = − ∫ ⎢ ∂x x ∂x ⎜⎝ ∂ ∂t 2 0 ⎣ ⎦ + α ( x, t )S (x )
+ α ( x, t )S (x )
t ⎡ ⎤ ∂ 2 u (x , t ) ⎞ ⎟ − β ( x, t ) ⎢u( x, t ) − ∫ Q (x , t ,τ )u (x ,τ )dτ ⎥ − ⎟ ∂x∂t ⎠ 0 ⎣ ⎦
(1.23)
∂u ( x, t ) + S ( x )F ( x, t), ∂t где β (x , t ), γ ( x, t) – коэффициенты жесткос ти и демпфирования основания; Q ( x, t ,τ ) – ядро релаксации основания. Заметим, что форма записи уравнения (1.23) не изменится, если считать S и ρ зависящими от времени t . Статис тические продольные смещения u (x) сечений стержня определяются, согласно (1.23), решением уравнения [S (x )E ( x)u′]′ − β ( x )u = − S ( x) F (x ). (1.24) Для вязкоупругого стержня, находящегося в состоянии кручения (рис. 1.3), связь между напряжением τ , вызванным сдвигом образующей на угол ϕ , и этим углом ϕ может быть предс тавлена формулой t ⎡ ⎤ ∂ϕ ( x, t) ( , ) ( , ) ( , ) ( , , ) ( , ) ( , ) , (1.25) x t = G x t x t − R x t x d + x t τ ϕ τ ϕ τ τ α ∫ ⎢ ⎥ ∂ t 0 ⎣ ⎦ где G – модуль сдвига; R – ядро релаксации стержня; α – коэффициент внутреннего трения. Заметим, если R ≡ 0, α ≡ 0 , то получаем известный закон сдвига для упругого тела. Если обозначить через u ( x, t) угол поворота сечения с координатой x , то (см. рис. 1.3) из равенства rdu = ϕ dx , имеем ∂u ϕ=r . (1.26) ∂x − γ ( x, t)
15
Рис.1.3. Иллюстрация к выводу уравнения крутильных колебаний стержня.
Крутящий момент M ( x, t) , действующий в сечении соответс твующем координате x , определяется формулой M ( x, t) = ∫∫ r τ ds .
S
стержня,
S
Отсюда, используя выражения (1.25), (1.26), получаем ⎡ ∂u ( x, t) t ∂u (x ,τ ) ⎤ ∂ 2 u ( x, t ) , (1.27) dτ ⎥ + α ( x, t )J 0 ( x) M ( x, t) = J 0 ( x)G (x , t )⎢ − ∫ R (x , t ,τ ) ∂ x ∂ x ∂ x ∂ t 0 ⎦ ⎣ где J 0 = ∫∫ r 2 dS – полярный момент инерции сечения. S
Рассмотрим элемент стержня, заключенный между поперечными сечениями с координатами x и x + dx (рис. 1.3). В сечении « x » действует крутящий момент M ( x, t) , в сечении « x + dx » – M ( x + dx, t ) . Предполагая, что на с тержень действует крутящий момент внешних сил, распределенный по длине стержня с линейной плотностью F ( x, t ) , из уравнения динамического равновесия получаем ∂ 2 u(ξ1 , t ) ∂M ( x, t ) ρ (ξ1 ) J 0 (ξ1 ) = dx + o(dx) + F (ξ , t )dx , ∂x ∂t 2 где ρ – плотность с тержня; ξ1 и ξ 2 – принадлежат [x, x + dx ]. Откуда аналогично уравнению (1.18) получаем уравнение крутильных колебаний стержня ∂ 2u (x , t ) ∂M ( x, t ) ρ ( x) J 0 ( x ) = + F ( x, t ), ∂x ∂t 2 которое, с учетом (1.27), принимает вид ∂ 2 u ( x, t ) ∂ ⎡ ∂u( x, t ) t ∂u ( x, τ ) ⎤ ρ ( x )J 0 ( x) = ( J 0 ( x )G ( x, t )⎢ − ∫ R ( x, t ,τ ) dτ ⎥ + 2 ∂x ∂x ∂t ⎣ ∂x ⎦ 0 ∂ 2 u (x , t ) + α ( x, t) J 0 (x ) ) + F ( x, t ). ∂x∂t Если боковая поверхность стержня скреплена с вязкоупругим основанием (модель Винклера), то для описания крутильных колебаний приходим к уравнению
16
2 ⎡ ∂u ( x, t) t ∂u (x ,τ ) ⎤ ∂ u ( x, t ) ∂ ⎛ ⎜ ρ ( x )J 0 ( x) τ dτ ⎥ + ( ) ( , ) R ( x , t , ) J x G x t − = ∫ 0 ⎢ 2 x x ∂ ∂x ⎜⎝ ∂ ∂t 0 ⎦ ⎣ t ⎡ ⎤ ∂ 2 u (x , t ) ⎞ ⎟ α ( x , t ) J ( x ) − β ( x , t ) u ( x , t ) − Q ( x , t , τ ) u ( x , τ ) d τ (1.28) + ∫ 0 ⎢ ⎥− ∂x∂t ⎟⎠ ⎣ 0 ⎦
∂u ( x, t ) + F ( x, t ), ∂t где β , γ , Q – коэффициенты жес ткости, демпфирования и ядро релаксации основания. Заметим, что форма записи уравнения (1.27) не изменится, если считать ρ и J 0 функциями двух переменных x и t . Статические углы поворота u (x) сечений стержня при кручении определяются, согласно (1.28), решением уравнения [J ( x)G (x )u ′]′ − β ( x)u( x ) = − F (x ) (1.29) − γ ( x, t)
0
1.7. Постановка статических краевых задач для струны и стержня В с татическом варианте профиль струны, продольные и угловые перемещения сечений стержня, согласно (1.20), (1.24) и (1.29), определяются решением уравнения (1.30) L( y) ≡ (K ( x) y′ )′ − β ( x ) y = g ( x), где y ( x) = u ( x); a ≤ x ≤ b ; K ( x) = T0 , g (x ) = − F ( x), если рассматривается задача (1.20); K ( x) = S ( x )E (x ), g ( x) = −S (x )F ( x ), если – задача (1.24); K ( x) = J 0 (x )G( x), g ( x) = −F ( x), если – задача (1.29). Перечислим основные типы граничных условий при x = a для уравнений (1.20), (1.24), (1.29) в обозначениях уравнения (1.30). а) y (a) = 0 ; это условие соответствует жесткому закреплению левого конца струны и стержня. б) K (a ) y ′(a ) = qa ; это условие соответствует заданию на левом конце стержня продольной силы N (a ) = q a для задачи (1.24) и заданию крутящего момента M (a ) = qa в случае задачи (1.29). В частности, если левый конец свободен, то qa = 0 . в) K (a ) y ′(a ) = α a y (a ) ; это условие соответс твует упругому закреплению левого конца стержня, когда qa = α a y (a) ( qa или равно N (a ) , или – M (a ) ), где α a – соответс твующий задаче (1.24) или (1.29) коэффициент закрепления. Аналогичные краевые условия могут быть заданы и на правом конце струны или стержня при x = b . Очевидно, что все возможные варианты краевых 17
условий для уравнения (1.30) можно получить из условий (1.8) при соответс твующем выборе значений коэффициентов ai , bi . Таким образом, рассматриваемые статические краевые задачи для струны и стержня математически формулируется так же, как и задача стационарной теплопроводности из раздела 1.2. 1.8. Краевые задачи в теории колебаний струн и стержней Предположим, что геометрические и прочностные характерис тики упругих тел (струны, стержня) и оснований, на которые они опираются, зависят только от x , и запишем уравнения движения без учета демпфирования и старения. Уравнение продольных колебаний струны ∂ 2 u( x, t ) ∂ 2 u( x, t ) ρ ( x) = T − β ( x)u (x , t ) + F ( x, t). (1.31) 0 ∂t 2 ∂x 2 Уравнение продольных колебаний стержня ∂ 2 u ( x, t ) ∂ ⎡ ∂u ( x , t ) ⎤ ρ ( x )S ( x) = ⎢ S (x )E (x ) − β ( x )u ( x, t ) + S ( x) F ( x, t ). (1.32) 2 ∂x ⎣ ∂x ⎥⎦ ∂t Уравнение крутильных колебаний стержня ∂ 2 u( x, t ) ∂ ⎡ ∂u ( x, t ) ⎤ ρ ( x )J 0 (x ) = J ( x ) G ( x ) − β (x )u ( x, t ) + F ( x, t ). (1.33) 0 2 ∂x ⎢⎣ ∂x ⎥⎦ ∂t Уравнения (1.31)–(1.33) являются уравнениями гиперболического типа. Рассмотрим гармонические колебания упругих тел. В этом случае решение уравнений (1.31)–(1.33) и приложенную внешнюю нагрузку F ( x, t ) предс тавим в виде: u ( x, t) = u* ( x) sin(ωt + ϕ ), F ( x, t ) = F* (x ) sin(ωt + ϕ ), (1.34) где ω (частота колебаний) и ϕ – постоянные. Тогда для u * (x ) = y (x ) получим уравнение (1.30), в котором F (x ) следует заменить на F* (x ) , а β (x) – на β * (x ) , где β * ( x) = β ( x) − ρ (x )ω 2 соответствует уравнению (1.31),
β * ( x) = β ( x) − ρ (x )S ( x )ω 2 – уравнению (1.32), β * ( x) = β ( x) − ρ (x ) J 0 (x )ω 2 – уравнению (1.33).
Приведем основные типы граничных условий при x = a . а) u ( x, t ) = ξ a (t ); это условие соответствует движению левого конца струны или стержня по закону ξ a (t ) . ∂u(a , t ) б) K (a ) = q a (t ); это условие соответствует заданию на левом конце ∂x стержня продольной силы N (a , t ) = q a (t ) для задачи (1.32) и заданию крутящего
18
момента M (a, t ) = qa (t ) в случае задачи (1.33). В частнос ти, если левый конец свободен, то qa = 0 . ∂u(a , t ) в) K (a ) = α a [u(a , t) − η a (t )]; это условие соответс твует упругому ∂x закреплению левого сечения стержня, движущегося (вращающегося) по закону η a (t ) . Предполагая функции ξ a (t ),η a (t), q a (t ) периодическими во времени, аналогично (1.34) положим ξ a (t ) = ξ a0 sin(ωt + ϕ ), η a (t ) = η a0 sin(ωt + ϕ ), qa (t ) = q 0a sin(ωt + ϕ ), где ξ a0 , η a0 , qa0 – постоянные. Тогда для u * (x ) = y (x ) будем иметь граничные условия следующего вида: а) y (a) = ξ a0 ; б) K (a ) y ′(a ) = q a0 ;
[
]
в) K (a ) y ′(a ) = α a y (a ) − η a0 . Условия на правом конце x = b задаются аналогично. Замечание. Аналогичные краевые задачи получим в случае, когда ∞
u ( x, t ) = u 0 ( x) + ∑ u n ( x ) sin( ω n t + ϕ n ), n =1
∞
F ( x, t ) = F0 (x ) + ∑ Fn ( x ) sin(ω n t + ϕ n ), n =1
∞
ξ a (t ) = ∑ ξ n ( x) sin(ω n t + ϕ n ), n=1 ∞
η a (t ) = ∑ η n ( x) sin(ω n t + ϕ n ), n =1
∞
qa (t ) = q0 + ∑ qn ( x) sin(ωn t + ϕ n ), n =1
где ω n , ϕ n , ξ n ,η n , q n , q0 – постоянные; u 0 ( x ) – решение с тационарных краевых задач, описанных в (1.5); а u n (x ) – решение краевых задач, рассмотренных выше в этом параграфе. Следует иметь в виду, что частота колебаний ω n являются в общем случае неизвестными величинами, определяемыми в процессе решения задачи.
19
2. Решение краевой задачи для линейного обыкновенного дифференциального уравнения второго порядка методом Галеркина. 2.1.
Постановка задачи и алгоритм метода
Рассмотрим следующую краевую задачу: требуется на отрезке [a, b] найти решение Y (x ) дифференциального уравнения L[y ] = y ′′ + p( x) y ′ + q( x) y = f ( x), (2.1) удовлетворяющее условиям ⎧a0 y (a) + a1 y′ (a) = a2 , (2.2) ⎨ ′ b y b b y b b ( ) + ( ) = , 0 1 2 ⎩ где p( x), q( x), f (x ) – заданные функции, непрерывные на [a, b]; a0 , a1 , a 2 , b0 , b1 , b2 – заданные действительные числа, причем a02 + a12 > 0, b02 + b12 > 0. Напомним, что в отличие от имеющей всегда единс твенное решение задачи Коши для уравнения (2.1), краевая задача (2.1), (2.2) может иметь или одно решение, или бесконечно много решений, или, наконец, может совсем не иметь решений. Везде далее будем предполагать существование единс твенного решения Y (x ) поставленной краевой задачи, что часто вытекает из физического смысла того явления или процесса, математическое моделирование которого привело к задаче (2.1), (2.2). В методе Галеркина для нахождения приближенного решения рассматриваемой задачи строится функциональная последовательнос ть {y n (x)}∞0 из пробных решений y n (x ) следующим образом. Задаемся на отрезке [a, b] некоторой системой дважды непрерывно дифференцируемых функций u 0 ( x), u1 ( x),..., un (x ) таких, что u0( x) удовлетворяет краевым условиям (2.2), а функции u1 (x ), u 2 ( x),..., un ( x) , называемые пробными функциями, линейно независимы на [a, b] и удовлетворяют однородным краевым условиям ⎧a0u (a ) + a1u ′(a) = 0, (2.3) ⎨ ′ b u b b u b ( ) + ( ) = 0 . ⎩ 0 1 Составляем функцию n
y n (x ) = u0 ( x) + ∑ C iui ( x)
(2.4)
i =1
с неизвестными пока постоянными коэффициентами C1 , C 2 ,..., C n . Подчеркнем, что в силу линейнос ти условий (2.2), функция (2.4) при любых значениях 20
C1 ,..., C n удовлетворяет этим условиям. Подставляя функцию y n (x ) из (2.4) вместо y (x) в уравнение (2.1), получаем функцию R (C1 , C 2 ,..., Cn , x ) = L[u0 ] − f ( x ) + ∑ Ci L[ui ], n
i =1
(2.5)
которая называется невязкой. Как видно из (2.5), невязка линейно зависит от параметров C1 , C 2 ,..., C n и является характеристикой уклонения функции (2.4) от точного решения Y (x ) задачи (2.1), (2.2). Во всяком случае, если при некоторых значениях параметров C1 , C 2 ,..., C n невязка на [a, b ] тождественно равна нулю, то Y (x ) ≡ yn (x ) в силу единственности Y (x ) . Однако в общем случае невязка оказывается отличной от нуля. Поэтому подбираем значения параметров C1 ,..., C n так, чтобы невязка в каком-то смысле была бы наименьшей. В обобщенном методе Галеркина значения параметров C1 ,..., C n определяются из системы уравнений
(R(C1 ,...,C n , x ),Wk (x )) = 0,
k = 1, n,
(2.6)
где b
(ϕ ( x ), g ( x)) = ∫ ϕ ( x )g ( x )dx ,
(2.7)
a
а W1 ( x),...,Wn (x ) – заданные непрерывные и линейно независимые на [a, b] функции, часто называемые поверочными функциями. Заметим, что если в качестве поверочных функций взять пробные, то получится метод Галеркина в авторском варианте [1]. Заметим также, что если W1 ( x),...,Wn (x ) входят в полную сис тему функций, то при n → ∞ равенства (2.6) свидетельс твуют об ортогональнос ти невязки всем элементам полной системы [3]. Значит, невязка сходится при n → ∞ к нулю в среднем, и можно ожидать сходимости последовательности (2.4) к точному решению Y (x ) в среднем, т. е. lim
n →∞
(Y ( x) − y n ( x), Y (x ) − yn (x )) = 0.
Записав условие (2.6) в развернутом виде, для определения значений C1 ,..., C n получаем неоднородную систему линейных параметров алгебраических уравнений n-го порядка n
∑ akj C j = bk ,
k = 1.n,
(2.8)
j =1
где
[ ]
b
akj = ( L u j , Wk ( x)) = ∫ (u ′j + pu′j + qu j )Wk dx , a b
bk = ( f ( x) − L[u 0 ], Wk (x )) = ∫ ( f ( x) − u ′0′ − pu ′0 − qu0 )Wk dx.
(2.9)
a
Решив систему (2.8) и подставив определяемые этим решением значения параметров C1 ,..., C n в (2.4), заканчиваем построение пробного решения y n (x ) . 21
Опишем теперь возможный алгоритм приближенного решения задачи (2.1), (2.2) методом Галеркина, предполагая, что y n (x ) сходится к Y (x ) при n →∞. 1. Подготовленный шаг алгоритма. На этом шаге выбираем функцию u 0 ( x ) , пробные функции u1 (x ),..., u n ( x ) и поверочные функции W1 ( x),...,Wn (x ) . Находим функцию R 0 ( x ) = L[u0 ] − f (x ) , т. е. невязку от подстановки u 0 ( x ) в уравнение (2.1). Если ∀x ∈ [a, b ] : R0 ( x) = 0, то u 0 ( x ) = Y ( x) , и вычисления заканчиваем. Если же R 0 ( x) ≡ 0 , то переходим к следующему шагу алгоритма. 2. Первый шаг алгоритма. Строим y1 (x ) = u0 ( x) + C1u1 ( x) , определив значение C1 из решения системы (2.8) при n = 1 . Находим невязку R ( C 1 , x ) = L [u 0 ] − f ( x ) + C 1 L [u 1 ] = R 0 ( x ) + C 1 L [u 1 ] . Если ∀x ∈ [a, b ] : R (C1 , x ) = 0, то Y (x ) = y1 ( x) , и задача решена, если же R (C , x ) ≡ 0 , то находим max y1 ( x) − u 0 (x ) = Δ 11 [a , b] или max R (C1 , x ) = Δ 12 . [a , b] Если Δ11 ≤ ε 1 или Δ12 ≤ ε 2 , где ε 1 и ε 2 заданные меры точнос ти приближенного решения, то полагаем Y (x ) ≈ y1 ( x) и вычисления заканчиваем, если же Δ11 > ε 1 или Δ12 > ε 2 , то переходим к вычислениям на следующем шаге и т. д. Таким образом, на m -м (m ≥ 1) шаге алгоритма строим функцию m
y m ( x) = u 0 ( x) + ∑ C iu i ( x ) , i =1
определив значения C1 ,..., C m из решения системы (2.8) при n = m , и определяем невязку m
R (C1 ,..., Cm , x) = R0 ( x) + ∑ C i L[u i ]. i =1
Если ∀x ∈ [a, b ] : R (С1 ,..., C m , x ) = 0, то Y (x ) = ym ( x ) , и вычисления заканчиваем. Если R (C1 ,..., C m , x) ≡ 0 , то находим Δ m1 = max ym ( x ) − y m − 1 (x ) или Δ m 2 = max R (C1 ,..., C m , x . [a , b] [a, b ] Если Δ m1 ≤ ε1 или Δ m 2 ≤ ε 2 , то Y (x ) ≈ ym ( x ) , если же Δ m1 > ε 1 или Δ m 2 > ε 2 – переходим к (m + 1) -му шагу.
2.2.Построение систем пробных и поверочных функций
22
Известно, что степенные функции 1, x, x 2 ,..., x n ,... линейно независимы на всей числовой прямой R и, следовательно, на любом ее отрезке [a, b] ⊂ R . Покажем, что на любом отрезке [a, b] линейно независима любая система многочленов последовательных с тепеней. Рассмотрим произвольную систему многочленов: P0 ( x) = A00 ≠ 0; P1 (x ) = A11 x + A10 , A11 ≠ 0; P2 ( x) = A22 x 2 + A21x + A20 , A22 ≠ 0; LLLLLLLLLLLLLLLLLL Pn ( x ) = Ann x n + Ann−1 x n −1 + ... + An 0 , Ann ≠ 0 и решим относительно неизвестных α 0 , α1 ,...,α n определенное на R тождество α 0 P0 ( x) + α1P1 ( x) + ... + α n Pn (x ) ≡ 0 . (2.10) Из условий тождественного равенства нулю многочлена n -й степени (равенство нулю коэффициентов при всех степенях x ) последовательно получаем α n Ann = 0 ⇔ α n = 0;
α n Ann−1 + α n−1 An −1 n −1 = 0 ⇔ α n −1 = 0; ................................ α n An 0 + α n −1 An −10 + ... + α1 A10 + α 0 A00 = 0 ⇔ α 0 = 0. Таким образом, условие (2.10) выполняется тогда и только тогда, когда α 0 = α1 = ... = α n = 0 , т. е. система многочленов P0 ( x ),..., Pn ( x) и любая подсистема из них линейно независима на R и, следовательно, на любом [a, b] ⊂ R . Для построения u 0 ( x ) и линейно независимой на [a, b], системы пробных функций u1 (x ),..., un (x ) , являющихся многочленами, можно применить метод неопределенных коэффициентов. Например, предположим u 0 = A = P0 ( x) , из условий (2.2) получаем систему линейных алгебраических уравнений относительно A ⎧a0 A = a2 , ⎨ ⎩ b0 A = b2 . В том случае, когда эта система совместна, коэффициент A определяется. Если система не совместна, то ищем аналогичным образом u 0 ( x ) в виде u 0 ( x ) = A + Bx = P1 (x ) и т. д., до тех пор, пока не будет найдена u 0 ( x) = Pr0 (x ) , удовлетворяющая условиям (2.2). Далее, используя условия (2.3), методом неопределенных коэффициентов определяем последовательно так же, как и u 0 ( x ) ,
23
u1 (x ) = Pr1 ( x), r1 ≥ 0; u 2 ( x) = Pr2 ( x), r2 > r1 ; LLLLLLLLLL u n ( x ) = Prn ( x), rn > rn −1 . Пример 1. Построить u 0 ( x ) и систему из пяти пробных функций для задачи с краевыми условиями ⎧ y(0) + y ′(0) = 1, (2.11) ⎨ ⎩ y (1) + y ′(1) = −4. Решение. Пусть u0 (x) = A , тогда u ′0 = 0 и условия (2.11) дают несовместную систему из уравнений A = 1 и A = −4 . Пусть u 0 = A + Bx , тогда u 0′ = B и условия (2.11) дают ⎧ A + B = 1, ⎧ A + B = 0, ⎧ A = 6, ⇔⎨ ⇔⎨ ⎨ A + 2 B = − 4 , B = − 5 , ⎩ B = −5. ⎩ ⎩ Итак, u 0 = 6 − 5 x . Определяем u1 (x ) . Если u1 = A или u1 = A + Bx , то однородные условия, соответс твующие условиям (2.11), выполняются, если u1 ≡ 0 , что невозможно из-за требования линейной независимости пробных функций. Ищем u1 (x ) = A + Bx + Cx 2 (C ≠ 0), тогда u1′ = B + 2Cx , и из однородных условий, соответствующих (2.11), получаем систему ⎧ A + B = 0, ⎨ ⎩ A + 2 B + 3C = 0. Решая ее методом Гаусса, имеем = 0, ⎧A + B ⎨ ⎩ B + 3C = 0. Видим, что система имеет множество решений G = {(A, B, C ): A = 3α , B = −3α , C = α , ∀α ∈ R }. 1 Выбираем одно решение из G при α = , тогда 3 1 u1 ( x ) = 1 − x + x 2 . 3 Аналогично, используя формулу u k = A0 + A1x + ... + Ak +1 x k + 1 , находим 1 1 1 1 u 2 ( x) = 1 − x + x 3 , u3 ( x) = 1 − x + x 4 , u 4 ( x) = 1 − x + x 5 , u5 ( x) = 1 − x + x 6 . 4 5 6 7 Пример 2. Построить u 0 ( x ) и систему из трех пробных функций для задачи с краевыми условиями 24
⎧ y (0) + y ′(0) = 1, (2.12) ⎨ ⎩ y (2) − y′ (2) = 2. Решение. Если u 0 ( x ) , то условия (2.12) приводят к несовместной системе ⎧ A = 1, ⎨ ⎩ A = 2. Предположим, что u 0 = A + Bx , тогда u ′0 = B и условия (2.12) дают ⎧ A + B = 1, ⎧ A + B = 1, ⎧ A + B = 1, ⇔⎨ ⇔⎨ ⎨ 0 = 1, ⎩ ⎩ A + 2 B − B = 2, ⎩ A + B = 2, тоже несовместную систему. Полагаем u 0 = A + Bx + Cx 2 , тогда u ′0 = B + 2Cx и условия (2.12) дают ⎧ A + B = 1, ⎧ A + B = 1, ⎧ A + B = 1, ⇔⎨ ⇔⎨ ⎨ 0 = 1, ⎩ ⎩ A + 2 B − B = 2, ⎩ A + B = 2, которая несовместна. Ищем u 0 ( x ) в виде u 0 = A + Bx + Cx 2 + Dx 3 , тогда u ′0 = B + 2Cx + 3Dx 2 , и из (2.12) имеем ⎧ A + B = 1, ⎧ A + B = 1, ⇔⎨ ⎨ ⎩ A + 2 B + 4C + 8D − B − 4C − 12D = 2, ⎩ A + B − 4D = 2. Решаем полученную систему методом Гаусса в матричной форме, чтобы найти все решения системы. Прямой ход метода: A B C D A B C D A D C B ⎛ 1 1 0 0 1 ⎞ ⎛ 1 1 0 0 1 ⎞ ⎛ 1 0 0 1 1⎞ ⎜⎜ ⎟⎟ ~ ⎜⎜ ⎟⎟ ~ ⎜⎜ ⎟⎟. ⎝ 1 1 0 − 4 2 ⎠ ⎝ 0 0 0 − 4 1⎠ ⎝ 0 − 4 0 0 1⎠ Видим, что система совместна, ибо ранг матрицы системы (rg ) равен рангу расширенной матрицы и равен 2. Так как число неизвестных системы 4 больше rg = 2 , то система неопределена, и все множество решений G 0 системы получаем обратным ходом метода Гаусса, придавая двум неизвестным C и B произвольные значения. Получаем 1 ⎧ ⎫ G0 = ⎨( A, B, C , D ) : A = 1 − α1 , B = α1 , C = α 2 , D = − ; ∀α1 ,α 2 ∈ R ⎬ . 4 ⎩ ⎭ Выбираем решение из G 0 при α1 = α 2 = 0 . Тогда 1 u0 ( x) = 1 − x3 . 4 Определяем теперь u1 (x ) . Если u1 (x ) = A ≠ 0 , то однородные условия, соответс твующие условиям (2.12), выполняются при A = 0 , что недопустимо. Пусть u1 (x ) = A + Bx , u1′ (x ) = B , и из однородных условий, соответс твующих условиям (2.12), имеем 25
⎧ A + B = 0, ⇔ A+ B =0. ⎨ ⎩ A + B = 0, Эта система неопределена, ее множество решений G1 = {( A, B ) : A = −α , B = α ; ∀α ∈ R}. Выбираем одно ненулевое решение при α = −1 , тогда u1 (x ) =1 − x . Ищем u 2 (x ) . Пусть u 2 (x ) = A + Bx + Cx 2 , (C ≠ 0 ), тогда u 2′ = D + 2Cx и однородные условия дают систему ⎧ A + B = 0, ⎨ ⎩ A + B + 0C = 0. Решая ее методом Гаусса, находим множество решений G 2 = {( A, B , C ) : A = −α1 , B = α1 , C = α 2 ; ∀α1 ,α 2 ∈ R}. Выбирая одно ненулевое решение ( C ≠ 0 ), при α1 = α 2 = −1 , получаем u 2 (x ) = 1 − x − x 2 . Находим
u 3 ( x) .
Если
u 3 ( x) = A + Bx + Cx 2 + Dx 3 ,
( D ≠ 0 ),
u 3′ ( x) = B + 2Cx + 3Dx 2 , и из однородных условий имеем систему ⎧ A + B = 0, ⎧ A + B = 0, ⇔⎨ ⎨ D = 0, ⎩ A + B + 0C − 4D = 0, ⎩ которая противоречит условию D ≠ 0 . Пусть теперь u 3 ( x) = A + Bx + Cx 2 + Dx 3 + Ex 4 , E ≠ 0,
то
тогда
u 3′ ( x) = B + 2Cx + 3Dx 2 + 4 Ex 3 , и из однородных условий получаем систему ⎧ A + B = 0, ⇔ ⎨ A + 2 B + 4 C + 8 D + 16 E − B − 4 C − 12 D − 32 E = 0 , ⎩ ⎧ A + B = 0, ⎨ ⎩ A + B + 0C − 4D − 16 E = 0. Решая ее методом Гаусса, получаем множество решений G3 = {( A, B, C , D, E ) : A = −α1 , B = α1 , C = α 2 , D = −4α 3 , E = α 3 ; ∀α1 , α 2 , α3 ∈ R}. Выбирая одно ненулевое решение ( E ≠ 0 ) при α1 = −1 , α 2 = 1 , α 3 = 1 , имеем u 3 ( x) = 1 − x + x 2 − 4 x 3 + x 4 . Применяя метод неопределенных коэффициентов, можно строить системы функций, используя другие системы линейно независимых на R функций, такие как eα1 x , e α2 x ,..., eαn x ,... ; eαx , xeαx ,..., x n eαx ,... ; 1, cos( x), sin( x ), cos(2 x ), sin(2 x),... и т. п.
26
Важным ис точником для пос троения ортогональных на [a, b] пробных функций является множество решений задачи, называемой задачей на собственные значения для дифференциального оператора L[ y ] = y ′′ . Рассмотрим конкретный пример такой задачи. Пример 3. Требуется найти действительные значения параметра λ , при которых существуют нетривиальные решения дифференциального уравнения (2.13) y ′′ + λy = 0 , удовлетворяющие однородным условиям ⎧ y (0) + y ′ (0) = 0, (2.14) ⎨ ⎩ y (1) + y ′(1) = 0. Решение. Пус ть λ = 0 , тогда общее решение уравнения (2.13) будет иметь вид y = C1 x + C 2 . Пытаясь удовлетворить условиям (2.14), получаем ⎧C1 + C2 = 0, ⎧ C1 = 0, ⎧ C1 + C 2 = 0, ⇔⎨ ⇔⎨ ⎨ C C C = 2 + = 0 , 0 , 2 2 ⎩C 2 = 0. ⎩ ⎩ 1 Таким образом, λ = 0 не является собственным значением, так как ему соответс твует единс твенное тривиальное ( y ≡ 0 ) решение задачи (2.13), (2.14). Пусть λ < 0 , тогда y = c1e − δx + c 2 e δx , системе уравнений ⎧ C1 + C 2 − δC1 + δC 2 = 0, ⇔ ⎨ −δ δ −δ δ C e C e δ C e δ C e 0 , + − + = 2 1 2 ⎩ 1
δ = | λ | , и условия (2.14) приводят к
⎧ (1 − δ )C1 + (1 + δ )C 2 = 0, ⇔ ⎨ −δ δ ( 1 δ ) C e ( 1 δ ) C e 0 , − + + = 1 2 ⎩ ⎧(1 − δ )C1 + (1 + δ )C 2 = 0, ⎧C2 = 0, ⇔⎨ ⇔ ⎨ δ −δ ( 1 δ )( e e ) C 0 , + + = 2 ⎩ C1 = 0. ⎩ Следовательно, среди отрицательных действительных чисел собственных значений задачи (2.13), (2.14) нет. Пусть теперь λ > 0 . Тогда y = C1 cos(γx) + C 2 sin(γx) , γ = λ , и краевые условия (2.14) дают ⎧C1 + γC 2 = 0, ⇔ ⎨ ⎩ C1 cosγ + C 2 sin γ − C1γ sin γ + C 2 γ cos γ = 0, ⎧C1 = −γC 2 , ⎨ ⎩ C1 (cos γ − γ sin γ ) + C 2 (sin γ + γ cosγ ) = 0,
⇔
⎧ C1 = −γC 2 , ⎧C1 = −γC 2 , ⇔ ⇔ ⎨ ⎨ C ( γ γ γ γ γ γ γ ) C λ γ + = − (cos − sin ) + sin − cos = 0 , ( 1 ) sin 0 . ⎩ 2 ⎩ 2 Видим, что существуют нетривиальные решения задачи (2.13), (2.14), если sin γ = 0 , т. е. γ = nπ , n = 1, 2,... Таким образом, множество собственных значений определяется формулой λn = (nπ ) 2 , n = 1, 2,... , а множество собственных функций, соответс твующих собственному значению λn , имеет базисную функцию 27
y n = sin( λn x) − λ n cos( λn x ) = sin( nπx ) − nπ cos( nπx ). Для того чтобы убедиться в ортогональнос ти на [0, 1] y n ( x), y m ( x ) (n ≠ m) , достаточно проверить, что
функций
1
( y n , y m ) = ∫ y n ( x) y m ( x )dx = 0 . 0
При выборе систем поверочных функций полезно вспомнить и о других системах функций, ортогональных на некотором отрезке. Например, известно [3], что многочлены Лежандра, определяемые формулой 1 dn 2 (t − 1) n , n = 0, 1, 2,... (2.15) Pn (t ) = n n 2 n! dt ортогональны на [–1,1]. Так что, если в качестве поверочных функций Wk (x) решено взять, например, первые пять многочленов Лежандра, ортогональных на [a, b], то в первые пять выражений из (2.15): 1 W1 = P0 (t ) = 1, W2 = P1 (t ) = t, W3 = P2 (t ) = (3t 2 − 1), 2 1 1 W4 = P3 (t ) = (5t 3 − 3t), W5 = P4 (t) = (35t 4 − 30t 2 + 3). 2 8 следует подставить 2 ⎛ a +b⎞ t= ⎜x − ⎟. b−a⎝ 2 ⎠ 2.3. Задание к лабораторной работе Методом Галеркина найти наиболее точное приближенное решение краевой задачи d +d x d2 y ′′ + 0 2 1 y ′ + y = 0, x −1 1− x2 a0 y (a) + a1 y ′(a ) = a2 , (2.16) b0 y (b ) + b1 y ′(b) = b2 , построенное при помощи системы из n пробных функций – многочленов и двух систем поверочных функций, одна из которых составлена из пробных функций, а вторая – из многочленов Лежандра. За меру точности выбрать (по указанию преподавателя) или max y m (x ) − y m −1 ( x ) , [ a ,b ]
или max R (C1 ,..., C m , x ) , [ a ,b ]
28
Варианты заданий, определяемые различными наборами заданий параметров d 0 , d1 , d 2 , a 0 , a1 , a 2 , b0 , b1 , b 2 , a, b задачи (2.16) приведены в таблице 2.1. Лабораторная работа выполняется с использованием прикладной системы MathCAD, в которой реализуется алгоритм построения пробных решений y m (x) методом Галеркина. Перед обращением к программе необходимо подготовить числовые и строчные данные, вводимые в процессе диалога с клавиатуры дисплея. Числовые данные: a, b – концы отрезка интегрирования; n – максимальное число параметров C i в пробном решении. Значение параметра n задает преподаватель. Строчные данные: Аналитические выражения для функций u 0 ( x ),..., u n ( x) и для функций W1 ( x),..., Wn ( x ) ; Аналитические выражения набираются клавишами дисплея по определенным правилам, которые программа при необходимости может напомнить. В результате расчета программа выводит на экран дисплея значения коэффициентов С i , таблице всех пробных решения и их невязок. Анализируя данные этих таблиц, необходимо найти обоснованный ответ на поставленную в лабораторной работе задачу. Таблица 2.1
Варианты заданий лабораторной работы № вар. 1 2 3 4 5 6 7 8 9 10 11 12 13
a
b
a0
a1
a2
b0
b1
b2
d0
d1
d2
0 0 0 0 0 0 0 0 0 0 0 0 0
0,8 0,8 0,8 0,8 0,8 0,8 0,8 0,8 0,8 0,8 0,6 0,6 0,6
1 1 0 0 1 1 1 0 0 1 1 0 0
0 0 1 1 0 0 0 1 1 0 0 1 1
– 0,5 0 0,5 0 – 0,4 – 0,5 0 0,5 0 – 0,4 0,2 0,15 – 0,1
1 1 1 1 0 1 1 1 0 0 1 0 1
0 0 0 0 1 0 0 0 1 1 0 1 0
0,5 0,1 0,2 0,1 – 0,2 0,5 0,1 0,2 0,1 – 0,2 0,8 0,2 0,4
2 2 2 2 2 0 0 0 0 0 2 2 2
0 0 0 0 0 2 2 2 2 2 0 0 0
6 12 6 8 20 6 12 6 8 20 10 15 18
Продолжение таблицы 2.1
№ вар.
a
b
a0
a1
a2
b0
b1
b2
d0
d1
d2 29
14 15 16 17 18 19 20 21 22 23 24 25
0 0 0 0 0 0 0 0 0 0 0 0
0,6 0,6 0,6 0,6 0,4 0,4 0,4 0,4 0,4 0,5 0,5 0,5
1 1 1 1 1 1 1 1 0 1 –1 0
0 1 1 0 0 0 0 0 1 –1 0 1
– 0,2 0,5 0,4 0,4 0 1 0 0 1 0,2 0,4 2
1 0 1 1 1 1 1 1 0 0 1 1
0 1 0 1 0 0 0 0 1 1 0 0
– 0,8 – 1,0 1 0,2 0,9 – 0,13 – 1,1 – 0,35 –1 1 0,6 0,4
2 0 0 0 0 0 0 0 2 2 2 2
0 2 2 2 2 2 2 2 0 0 0 0
14 12 4 6 15 24 35 9 1 4 6 8
2.4. Выполнение работы в компьютерном классе 1. Прежде чем начать выполнение лабораторной работы на ЭВМ, внимательно ознакомьтесь с данной инструкцией. 2. При необходимости включите сами (или попросите лаборанта) питание компьютера. После того, как система загрузится, запускаем двойным щелчком левой кнопки мыши на рабочем столе программу Mathcad, если же ярлык отсутс твует, тогда открываем программу через кнопку «Пуск» (Программы → Mathsoft → Mathcad). 3. Узнайте у лаборанта расположение файла ODU.mcd и откройте его (File → Open или, если программа русифицирована, Файл →Открыть). При любой ошибке ввода программы нужно обратиться к лаборанту. 4. Прочитайте в начале файла задание на лабораторную работу и просмотрите пример выполнения работы, для которого исследование уже проведено. Программа файла ODU.mcd состоит из шести пунктов «1. Постановка задачи», «2. Получение точного решения», «3. Получение приближенного решения методом Галеркина», «4. Получение приближенного решения вариационным методом Ритца», «5. Получение приближенного решения интегральным методом наименьших квадратов», «6. Выводы». Для выполнения лабораторной работы «Решение краевой задачи для линейного обыкновенного дифференциального уравнения второго порядка методом Галеркина» необходимо использовать пункты 1, 2 и 3. Цели и задачи каждого из пунктов описаны ниже. 5. Для набора функций нужно либо воспользоваться всплывающим меню инструментов «Calculator», либо ввести ее с клавиатуры, используя следующие символы арифметических действий и стандартных функций: сложение – ‘+’; вычитание – ‘–‘; умножение – ‘*’; деление – ‘/’; возведение в степень – ‘^’; квадратный корень – ‘\’; синус – sin(x); косинус – cos(x); экспонента – exp(x); натуральный логарифм – ln(x). При вводе числовых данных, являющихся 30
десятичными дробями, целую и дробную части нужно разделять точкой (например, 0.5, 1.5 и т. д.). 6. Порядок выполнения работы Вам укажет программа подсказками и заданиями, выделенными красным цветом. 2.5. Порядок выполнения лабораторной работы Рекомендуется следующий порядок выполнения лабораторной работы. 1. Изучить разделы 1.1–1.2, 2.1–2.4 и подготовить ответы на контрольные вопросы из раздела 2.6. 2. Пройти собеседование с преподавателем, получить допуск к выполнению работы в диалоге с ПЭВМ, номер варианта задания и значение параметра n . 3. В соответс твии с вариантом задания выполнить подготовительный шаг алгоритма метода Галеркина и подготовить, если u 0 ( x) не является точным решением задачи, все числовые и строчные исходные данные для расчетов на ПЭВМ. 4. Выполнить основную расчетную часть лабораторной работы в системе MathCAD. Следует переписать с экрана дисплея значения коэффициентов C i пробных решений, составить итоговые таблицы пробных решений и их невязок. 5. Оформить и защитить отчет по лабораторной работе, который должен содержать титульный лист, математическую постановку задачи, результаты выполнения подготовительных расчетов, основные результаты расчетов на ПЭВМ и итоговый отчет. 2.6. Тестирующий пример Методом Галеркина найти на [0, 1] приближенное решение краевой задачи y ′′ − 3 y ′ + 2 y = 2 x 2 − 6 x + 2,
(2.17) y (0) + y ′(0 ) = 1, y (1) + y ′(1) = −4. 1. Запускаем программу MathCAD. Открываем файл ODU.mcd (текст программы приведен в приложении A). В пункте «Пос тановка задачи» вводим числовые параметры a0 , a1 , a 2 , b0 , b1 , b2 , a, b и функции p( x), q (x ), f (x ) , входящие в задачу (2.17) p( x) := −3, q( x) := 2, f (x ) := 2 x 2 − 6 x + 2, a := 0, b := 1, a0 := 1, a1 := 1, a 2 := 1, b0 := 1, b1 := 1, b2 := −4. Замечание. Для задачи (2.16) необходимо еще ввести числовые параметры d 0 , d 1 , d 2 , входящие в функции p( x), q (x ) . 31
2. В пункте «Получение точного решения в системе MathCAD» записываем дифференциальное уравнение (2.17) в виде нормальной системы дифференциальных уравнений второго порядка y 0′ = y1 , y1′ = 3 y1 − 2 y 0 + 2 x 2 − 6 x + 2. Далее с помощью функции bvalfit (см. п. 8.2) краевую задачу приводим к задаче Коши, получая начальные условия y′ (0) = 0,153224, y (0 ) = 1 − y ′(0 ) = 0,846776. Решая полученную задачу Коши для нормальной системы второго порядка с помощью функции rkfixed (см. п. 8.2), находим решение дифференциального уравнения, разбив отрезок [0, 1] на N = 100 частей, т. е. с шагом интегрирования h = 0,01 (в дальнейшем будем называть его точным решением). Выписываем полученные значения этого решения y (x) в промежуточных точках (табл. 2.2), чтобы в дальнейшем оценить дейс твительную точнос ть пробных решений. Таблица 2.2
Таблица точного решения задачи. x 0 0,1 0,2 0,3 0,4 0,5 y 0,846776 0,86522 0,886703 0,905491 0,914371 0,904302 x 0,6 0,7 0,8 0,9 1,0 y 0,863987 0,779347 0,632877 0,402849 0,062349 График точного решения имеет вид
Рис.2.1. График точного решения.
Заметим, что поставленная задача имеет единс твенное точное решение вида 1 e2 + 7 x 7 + e 2x y= e − e + x 2 = 1,5403e x − 0, 6935e 2 x + x 2 , (2.18) 2 2 2 (e − e ) 3(e − e ) которое получено аналитическим методом, известным из теории линейных дифференциальных уравнений с постоянными коэффициентами. Если найти значения этого решения y (x) в тех же промежуточных точках, то получим значения таблицы 2.2, т. е. компьютерное решение найдено с 32
точностью 10 −6 . Если сравнить точное аналитическое решение с решением, полученным в системе MathCAD, видим, что локальная погрешность не превышает 1,77 ×10 −8 . Следовательно, решение найдено достаточно точно. Замечание. Компьютерное решение будет тем точнее, чем больше число точек разбиения введено в функцию rkfixed. Например, при N = 1000 , локальная погрешность не превышает 3,45 × 10 −12 . 3. В пункте «Получение приближенного решения методом Галеркина» вводим порядок пробного решения n := 5 . В качестве пробных функций u 0 (x), u1 ( x), ..., u5 (x ) используем функции, построенные в примере 1 раздела 2.2, 1 1 u 0 ( x) = 6 − 5x , u1 ( x ) = 1 − x + x 2 , u 2 ( x) = 1 − x + x 3 , 3 4 1 1 1 u 3 ( x ) = 1 − x + x 4 , u 4 ( x ) = 1 − x + x 5 , u5 ( x ) = 1 − x + x 6 . 7 6 5 Тогда f (x ) − L[u0 ] = 2x 2 + 4 x − 25, 1 L[u1 ] = 2x 2 − 12 x + 17 , 3 1 L[u2 ] = 2 x 3 − 9 x 2 − 2 x + 20 , 4 1 L[u3 ] = 2 x 4 − 12 x 3 + 12 2 − 10 x + 25 , 5 1 L[u4 ] = 2 x 5 − 15 x 4 + 203 + 12x + 30 , 6 1 L[u5 ] = 2 x 6 − 18 x 5 + 30 4 − 14 x + 35 . 7 3.1. Воспользовавшись указаниями из раздела 2.2, в качестве поверочных функций возьмем пробные u1 (x ),..., u5 ( x) 1 1 1 W1 (x ) = 1 − x + x 2 , W2 ( x) = 1 − x + x 3 , W3 ( x ) = 1 − x + x 4 , 3 4 5 1 1 W4 ( x) = 1 − x + x 5 , W5 ( x ) = 1 − x + x 6 . 7 6 В результате расчета по программе при n = 5 получим вектор коэффициентов С = (1,132936 − 2, 499320 − 2, 647392 0,073920 − 1, 213380) , следовательно, пробное решение имеет вид y 5 (x ) = u0 (x ) + 1,132936u1 (x ) − 2, 499320u2 ( x ) − 2,647392u 3 ( x ) +
(
(
)
)
(
)
(
)
(
)
+ 0, 073920u 4 ( x) − 1, 213380u5 ( x).
33
Основные результаты расчета при n ≤ 5 (т. е. подставляя последовательно n = 0,1, 2,3, 4,5 ) представлены в таблицах 2.3 и 2.4. В приложении A приведен пример при n = 5 . Таблица 2.3
x 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0
n=0 6,0 5,5 5,0 4,5 4,0 3,5 3,0 2,5 2,0 1,5 1,0
Таблица значений пробных решений n=1 n=2 n=3 n=4 0,546243 0,878844 0,843793 0,846932 0,573439 0,905606 0,860505 0,865612 0,564277 0,951373 0,87879 0,887337 0,518757 1,000717 0,895436 0,906106 0,436879 1,038207 0,904176 0,914814 0,318642 1,048413 0,895683 0,904636 0,164046 1,015907 0,857573 0,864404 – 0,026908 0,925257 0,774403 0,779985 – 0,254220 0,761035 0,627672 0,633662 – 0,517890 0,507811 0,395822 0,403509 – 0,817919 0,150155 0,054236 0,062772
n=5 0,846764 0,865187 0,886664 0,905468 0,914354 0,904274 0,863945 0,779309 0,632856 0,402832 0,062317 Таблица 2.4
x 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0
n=0 25,00 24,58 24,12 23,62 23,08 22,50 21,88 21,22 20,52 19,78 19,00
Таблица невязок пробных решений n=1 n=2 n=3 n=4 – 5,904624 2,837772 – 0,583105 0,090419 – 4,179480 1,126703 – 0,049648 – 0,014480 – 2,567052 – 0,123462 0,191588 – 0,031421 – 1,067341 – 0,943584 0,225923 – 0,010841 0,319653 – 1,364521 0,132562 0,013263 1,593931 – 1,417133 – 0,015406 0,022085 2,755491 – 1,132279 – 0,151009 0,010772 3,804335 – 0,540820 – 0,213391 – 0,012818 4,740462 0,326387 – 0,147810 – 0,029362 5,563873 1,438480 0,094356 – 0,009312 6,274566 2,764601 0,555617 0,085862
n=5 – 0,010887 0,003262 0,001915 – 0,001494 – 0,001988 0,000097 0,002020 0,001280 – 0,001983 – 0,002835 0,010355
Анализируя таблицы, видим, что наилучшее приближение к точному решению дает пробное решение y 5 (x ) , для которого max Y ( x) − y 5 (x ) ≤ 0,000041, [a ,b ]
max R (C1 ,..., C 5 , x ) ≤ 0,010887, [a ,b ]
max y5 ( x) − y 4 ( x) ≤ 0,000806 . [a ,b ]
3.2. Воспользовавшись указаниями из раздела 2.2, в качестве поверочных функций возьмем многочлены Лежандра
34
W1 ( x ) = 1,
(
W2 (x ) = 2 x − 1,
)
W3 (x ) =
(
(
)
1 3(2x − 1)2 − 1 , 2
)
1 1 5(2 x − 1)3 − 3(2 x − 1) , W5 ( x) = 35(2 x − 1)4 − 30(2 x − 1)2 + 3 . 2 8 В результате расчета по программе при n = 5 получим вектор коэффициентов С = (1,135995 − 2,510843 − 2, 638116 0,080296 − 1, 220556) , следовательно, пробное решение имеет вид y 5 ( x ) = u0 ( x ) + 1,135995u1 ( x ) − 2,510843 u2 ( x ) − 2,638116 u3 ( x ) + W4 ( x ) =
+ 0,080296 u 4 ( x ) − 1,220556 u5 ( x ). Основные результаты расчета при n ≤ 5 представлены в таблицах 2.5 и 2.6. В приложении A приведен пример при n = 5 .
Таблица 2.5
x 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0
Таблица значений пробных решений n=0 n=1 n=2 n=3 n=4 6,0 0,257143 0,902890 0,845255 0,846800 5,5 0,312286 0,928405 0,861827 0,865451 5,0 0,329143 0,974890 0,880057 0,887081 4,5 0,307714 1,026393 0,896811 0,905721 4,0 0,248000 1,066960 0,905854 0,914300 3,5 0,150000 1,080636 0,897855 0,904025 3,0 0,013714 1,051468 0,860381 0,863751 2,5 – 0,160857 0,963503 0,777897 0,779356 2,0 – 0,373714 0,800786 0,631773 0,633114 1,5 – 0,624857 0,547364 0,400276 0,403070 1,0 – 0,914286 0,187283 0,058574 0,062412
n=5 0,846776 0,865205 0,886695 0,905507 0,914394 0,904308 0,863970 0,779327 0,632875 0,402859 0,062349 Таблица 2.6
Таблица невязок пробных решений x n=0 n=1 n=2 n=3 n=4 n=5 0,0 25,00 – 7,542857 3,206936 – 0,578802 0,080526 – 0,008790 0,1 24,58 – 5,704000 1,374150 – 0,034754 – 0,019452 0,003508 0,2 24,12 – 3,981714 0,021919 0,210140 – 0,031797 0,001220 0,3 23,62 – 2,376000 – 0,881665 0,242606 – 0,007511 – 0,002386 0,4 23,08 – 0,886857 – 1,368509 0,143171 0,018995 – 0,002556 0,5 22,50 0,485714 – 1,470520 – 0,013838 0,028644 0,000117 0,6 21,88 1,741714 – 1,219607 – 0,160293 0,016448 0,002616 0,7 21,22 2,881143 – 0,647676 – 0,234266 – 0,009752 0,002166 0,8 20,52 3,904000 0,213364 – 0,180028 – 0,030533 – 0,001347 0,9 19,78 4,810286 1,331607 0,051950 – 0,016143 – 0,003211 1,0 19,00 5,600000 2,675145 0,504997 0,072243 0,008029 Анализируя решения при n = 0,1,...,5 , видим, что наилучшее приближение к точному решению дает пробное решение y 5 (x ) , для которого 35
max Y ( x) − y 5 (x ) ≤ 0,000023, [a ,b ]
max R (C1 ,..., C 5 , x ) ≤ 0,00879, [a ,b ]
max y5 ( x) − y 4 ( x) ≤ 0,000387 . [a ,b ]
4. Анализируя полученные погрешности, видим, что для задачи (2.17) многочлены Лежандра, как поверочные функции, дают лучшее приближение решения этой краевой задачи. 2.7. Вопросы для самоконтроля 1. Найдите решение краевой задачи (2.17) аналитическим методом. 2. Каковы отличия краевой задачи от задачи Коши? 3. Каким условиям должны удовлетворять пробные функции в методе Галеркина? 4. Как находится функция, названная в методе Галеркина невязкой пробного решения? 5. Какими свойствами должны обладать поверочные функции в методе Галеркина? 6. Как в методе Галеркина строится система линейных алгебраических уравнений для определения коэффициентов пробного решения? Проверьте истиннос ть формул (2.8), (2.9). 7. В каком случае невязка пробного решения сходится к нулю в среднем при n → ∞ ? 8. Опишите алгоритм приближенного решения краевой задачи для линейного дифференциального уравнения второго порядка методом Галеркина. 9. Приведите пример пос троения пробных функций методом неопределенных коэффициентов. 10.Напишите два многочлена Лежандра, ортогональные [2,4], и проверьте их ортогональнос ть. 11.Напишите уравнение и краевые условия задачи на собственные значения. 12.Напишите две собственные функции задачи (2.13), (2.14) и проверьте их ортогональнос ть. 13.Приведите физические интерпретации изучаемой краевой задачи.
36
3. Решение краевой задачи для линейного обыкновенного дифференциального уравнения второго порядка вариационным методом Ритца 3.1. Постановка задачи и алгоритм метода Рассмотрим краевую задачу в следующей постановке. Требуется на отрезке [a, b] найти решение Y (x ) дифференциального уравнения L[ y ] ≡ (K ( x ) y ′ )′ − β ( x ) y = g (x ) , (3.1) удовлетворяющее двум краевым (или граничным) условиям ⎧a 0 y (a) + a1 y ′ (a) = a 2 , (3.2) ⎨ ⎩ b0 y( a) + b1 y ′(a ) = b2 , где K (x) , K ′(x) , β (x ) , g (x ) – заданные непрерывные на [a, b] функции ( K ( x) > 0 ); a 0 , a1 , a 2 , b0 , b1 , b2 – заданные действительные числа, причем a 20 + a12 > 0 , b02 + b12 > 0 . (3.3) Заметим, что краевая задача (2.1), (2.2) может быть сведена к задаче (3.1), (3.2) после умножения уравнения (2.1) на положительный множитель x
∫ p ( t )dt
K ( x) = e a , (3.4) и тогда β (x ) = −K ( x )q( x) , g (x ) = K ( x) f ( x ) . Идея вариационного метода состоит в замене краевой задачи (3.1), (3.2) равносильной задачей об отыскании дважды непрерывно дифференцируемой на [a, b] функции Y (x ) , доставляющей экстремум следующему функционалу b
(
)
(
)
J ( y ) = ∫ K ( x ) y ′ 2 + β ( x) y 2 + 2 g ( x) y dx + α b y 2 (b ) − 2Tb y (b) + a
(
)
(3.5)
+ α a y 2 ( a) − 2Ta y (a) + 2 qb y(b) − 2qa y (a), причем значения параметров α a , α b , q a , qb , Ta , Tb в этом функционале определяются в зависимости от значений a0 , a1 , a 2 , b0 , b1 , b2 по таблице 3.1. Таблица 3.1.
№
a0
a1
b0
1
≠0
0
≠0
2
≠0
0
0
Значения параметров функционала b1 Ta Tb αa αb a2 b2 0 0 0 a0 b0 ≠0
a2
a0
0
0
0
qa
qb
0
0
0
−
b2 K (b) b1
Продолжение таблицы 3.1. 37
№
a0
a1
b0
3
≠0
0
≠0 ≠0
4
0
≠0 ≠0
5
0
≠0
6
0
b1
Ta a2
a0
0
0
≠0
0
≠0 ≠0 ≠0
0
0
0
a2
≠0
a2
≠0 ≠0 ≠0 ≠0
a2
7
≠0 ≠0 ≠0
8
≠0 ≠0
9
0
αa
αb
qa
qb
b0
0
b0 K (b) b1
0
0
b0
0
0
0
0
0
0
b0 K (b) b1
Tb b2 b2
b2
a0 a0 a0
b2
b0 b0
0 b2
b0
a0 K (a ) a1 a − 0 K (a ) a1 a − 0 K (a ) a1 −
a2 K (a) 0 a1 a b − 2 K (a) − 2 K (b) a1 b1 a − 2 K (a) 0 a1 −
0
0
0
0
b0 K (b) b1
0
0 −
b2 K (b) b1 0
В методе Ритца для нахождения приближенного решения краевой задачи (3.1), (3.2) строится функциональная последовательнос ть {y n (x )}∞ 0 из пробных решений y n (x ) следующим образом. Как и в методе Галеркина, задаемся на [a, b] функцией u 0 ( x ) и пробными функциями u1 (x ),..., u n ( x) , такими, что u 0 ( x ) удовлетворяет условиям (3.2), а u1 (x ),..., u n ( x) удовлетворяют однородным условиям (2.3), и составляем функцию y n (x ) = u 0 (x ) +
n
∑ C j u j ( x) ,
(3.6)
j =1
где С i ( i = 1, n ) – некоторые постоянные. Значения постоянных С i (i = 1, n ) подберем так, чтобы функция (3.6) доставляла экстремум функционалу (3.5). Подс тавляя y ( x) = y n ( x) в (3.5), получаем квадратичную функцию переменных C 1 ,..., C n 2 2 b⎡ n n ⎛ ′ ⎞ ⎛ ⎞ J ( yn ( x)) = ∫ ⎢ K (x )⎜ u0 (x ) + ∑ Ci ui′ (x) ⎟ + β ( x)⎜ u0 ( x) + ∑ Ci ui ( x) ⎟ + ⎝ ⎠ ⎝ ⎠ i =1 i =1 a⎢ ⎣ 2 n n n ⎡⎛ ⎛ ⎞⎤ ⎞ ⎛ ⎞⎤ + 2 g (x )⎜ u 0 (x ) + ∑ Ci ui (x) ⎟ ⎥dx + αb ⎢⎜ u0 (b) + ∑ Ci ui (b) ⎟ − 2Tb ⎜ u 0 (b) + ∑ C i ui (b)⎟ ⎥ + ⎝ ⎠⎦ ⎠ ⎝ ⎠ ⎥⎦ i =1 i =1 i =1 ⎢⎣⎝
38
2 n n ⎡⎛ ⎞ ⎛ ⎞⎤ + α a ⎢ ⎜ u 0 (a) + ∑ C i ui (a) ⎟ − 2Ta ⎜ u0 (a) + ∑ C i ui (a) ⎟ ⎥ + ⎠ ⎝ ⎠ ⎦⎥ i =1 i =1 ⎣⎢ ⎝
(3.7)
⎛ ⎞ ⎛ ⎞ + 2qb ⎜ u0 (b) + ∑ C i u i (b) ⎟ − 2qa ⎜ u 0 (a) + ∑ Ci u i (a ) ⎟ = ϕ (C1 , C 2 ,..., Cn ). ⎝ ⎠ ⎝ ⎠ i =1 i =1 Необходимые условия экстремума функции (3.7), как известно из математического анализа, имеют вид: ∂ϕ = 0 , k = 1, n , (3.8) ∂C k Записав условия (3.8) в развернутом виде, для определения значений переменных C1 , C 2 ,..., Cn получаем неоднородную систему линейных алгебраических уравнений n -го порядка n
n
n
∑ akj C j = bk , k = 1, n , j =1
(3.9)
где a kj = ∫ (K ( x )u k′ u ′j + β ( x)uk u j )dx + α b u k (b)u j (b) + α a u k (a )u j (a ); b a b
bk = −∫ ( K ( x )u ′0u ′k + ( β (x )u 0 + g (x ))uk )dx − (α b (u 0 (b ) − Tb ) + qb )u k (b) − (3.10) a
− (α a (u0 (a ) − Ta ) − qa )uk (a). Решив систему (3.10) и подставив определяемые этим решением значения постоянных C1 , C 2 ,..., Cn в (3.6), завершаем построение пробного решения y n (x) . Опишем теперь возможный алгоритм приближенного решения задачи ∞ (3.1), (3.2) методом Ритца, предполагая, что {y n (x)}0 сходится к Y (x ) при n →∞. 1. Подготовительный шаг алгоритма. На этом шаге определяем значения параметров функционала (3.5) в соответствии с таблицей 3.1. Выбираем функции u 0 ( x), u1 ( x), ..., un (x ) и находим функцию R 0 ( x) = L(u0 ) − g ( x ) = K ( x)u ′0′ + K ′( x)u 0′ ( x) − β ( x )u 0 ( x) − g ( x) , т. е. невязку от подстановки u 0 ( x) в уравнение (3.1). Если ∀x ∈ [a, b] : R 0 ( x) = 0 , то u 0 ( x) = y 0 ( x) – искомое решение и вычисления заканчиваем. Если же R 0 ( x) ≡/ 0 , то переходим к следующему шагу алгоритма. 2. Первый шаг алгоритма. Строим функцию y1 ( x ) = u0 ( x ) + C1u1 ( x) , определив значение C1 из решения системы (3.9) при n = 1 . Находим невязку R (C1 , x ) = L[ y1 ] − g ( x ) = K ( x)(u 0′′ + C1 u1′ ) + + K ′( x)( u0′ + C1u1′ ) − β ( x)( u0 + C1u1 ) − g ( x). 39
Если ∀x ∈ [a, b] : R (C1 , x) = 0 , то Y (x ) = y1 (x ) , и задача решена. Если R (C1 , x ) ≡/ 0 на [a, b] , то находим max | y1 (x ) − u 0 ( x) |= Δ 11 [ a ,b ]
или
max | R (C1 , x ) |= Δ 12 . [ a ,b ]
Если Δ 11 ≤ ε 1 или Δ 12 ≤ ε 2 , где ε 1 и ε 2 – заданные меры точнос ти приближенного решения, то полагаем Y (x ) ≈ y1 (x ) и вычисления заканчиваем. Если же Δ 11 > ε 1 или Δ 12 > ε 2 , то переходим к вычислениям на следующем шаге. Таким образом, на m -м шаге ( m ≥ 1 ) алгоритма сначала строим функцию m
y m (x ) = u 0 ( x) + ∑ C i ui (x ) , i =1
определив значения C1 , C 2 ,..., C m из решения системы (3.9) при n = m , а затем находим невязку m ⎛ ⎞ R (C1 ,..., C m , x) = L( ym ) − g ( x ) = K (x )⎜⎜ u0′ + ∑ C j u′′j ⎟⎟ + j =1 ⎝ ⎠ m m ⎛ ⎞ ⎛ ⎞ + K ′( x)⎜⎜ u0′ + ∑ C j u ′j ⎟⎟ − β ( x)⎜⎜ u 0 + ∑ C j u j ⎟⎟ − g (x ). j =1 j =1 ⎝ ⎠ ⎝ ⎠ Если ∀x ∈ [a, b] : R (C1 ,..., C m , x) = 0 , то Y (x ) = y m ( x) . Если R (C1 ,..., C m , x ) ≡/ 0 , то находим Δ m1 = max | y m (x ) − y m −1 ( x) | или Δ m 2 = max | R (C1 ,..., C m , x ) | . Если
[ a ,b ]
[ a ,b ]
Δ m1 ≤ ε1 или Δ m 2 ≤ ε 2 , то Y (x ) ≈ y m ( x) , если же Δ m1 > ε 1 или Δ m 2 > ε 2 , то переходим к (m + 1) -му шагу, и т. д.
3.2. Построение систем пробных функций Некоторые методы подбора пробных функций были приведены в разделе 2.2. Подчеркнем здесь, что если пробные функции выбираются на множестве многочленов, то их всегда можно найти методом неопределенных коэффициентов, причем неоднозначно. Одним из возможных наборов пробных функций u i (x ) ( i ≥ 1 ) будут многочлены u i ( x ) = ( x − a) n + i −1 (b − x) n
2
(3.11)
u i (x ) = ( x − a) n (b − x )n +i −1 ,
(3.12)
1
или 1
2
где 40
⎧1, если a1 = 0; n1 = ⎨ ⎩2, если a1 ≠ 0; ⎧1, если b1 = 0; n2 = ⎨ ⎩2, если b1 ≠ 0. Напомним также, что пробные функции u i (x ) , i ≥ 1 можно выбрать из собственных функций соответствующей задачи на собственные значения, представляемых в виде u k ( x) = A k cos( λk x) + B k sin( λk x ) . (3.13) Приведем теперь еще несколько примеров построения пробных функций для некоторых вариантов граничных условий (3.2). Пример 1. Построить u 0 ( x ) и систему пробных функций для задачи (3.1) с краевыми условиями y ′ (0) = 2 , y ′ (1) = 3 . Решение. Пусть u 0 = Bx + Cx 2 . Тогда из граничных условий находим B = 2 , B + 2C = 3 , т. е. B = 2 , C = 1 2 . Итак, 1 u0 ( x) = 2x + x 2 . 2 Функции u k (x) , k ≥ 1 будем искать в виде (3.13) Удовлетворяя
u k ( x) = A k cos( λk x) + B k sin( λk x ) . однородным граничным условиям,
получим
Bk = 0 ,
sin( λ k x) = 0 . Отсюда имеем λ k = kπ , λ2k = ( kπ ) 2 , k = 1,2,... . Тогда, обозначая C k = B k , находим u k ( x) = C k cos( kπx) . Таким образом пробное решение можно искать в виде n 1 y n (x ) = ⎛⎜ 2 x + x 2 ⎞⎟ + ∑ C k cos( kπx) . 2 ⎠ k =1 ⎝ Если же функции u k (x) ( k ≥ 1) взять в виде (3.11), то n 1 y n (x ) = ⎛⎜ 2 x + x 2 ⎞⎟ + ∑ C k (1 − x ) 2 x k +1 , 2 ⎠ k =1 ⎝ если же в виде (3.12), то n 1 y n (x ) = ⎛⎜ 2 x + x 2 ⎞⎟ + ∑ C k (1 − x ) k +1 x 2 . 2 ⎠ k =1 ⎝ Пример 2. Построить u 0 ( x ) и систему пробных функций для краевой задачи с условиями y ′ (0) = 2 , y (1) = 4 . Решение. Положим u 0 ( x ) = A + Bx . Удовлетворяя граничным условиям, находим B = 2 , A + B = 4 , т. е. A = 2 , B = 2 , следовательно, u 0 ( x ) = 2 + 2 x . Зададим u k ( x) = Ak cos( λk x ) + B k sin( λ k x ) . Согласно однородным граничным условиям имеем 41
⎛ 2k − 1 ⎞ B k = 0 , cos( λ k x ) = 0 , λk = ⎜ π ⎟ , k = 1, 2, 3,... ⎝ 2 ⎠ Вводя обозначение C k = Ak , получаем ⎛ 2k − 1 ⎞ πx ⎟ , k ≥ 1 . u k (x ) = C k cos⎜ ⎝ 2 ⎠ Тогда n ⎛ 2k − 1 ⎞ y n ( x ) = 2 + 2 x + ∑ Ck cos⎜ πx ⎟ . ⎝ 2 ⎠ k =1 Используя же пробные функции вида (3.11), (3.12), получаем n
y n ( x) = 2 + 2x + ∑ Ck x k +1 (1 − x) k =1
или n
y n ( x ) = 2 + 2 x + ∑ Ck x 2 (1 − x ) k . k =1
Пример 3. Построить u 0 ( x ) и систему пробных функций для задачи с граничными условиями 2 y ′ (0) = y (0) − 1 , y (1) = 3 . Решение. Ищем искомые функции в виде u 0 ( x ) = A + Bx , u k (x ) = Ak cos( λk x ) + B k sin( λk x) , k ≥ 1 . Потребуем, чтобы функция u 0 ( x ) удовлетворяла неоднородным граничным условиям. Тогда 2B = A − 1 , A + B = 3 , т. е. A = −7 / 3 , B = 2 / 3 , следовательно, 7 2 u0 ( x) = − + x . 3 3 Из соответс твующих однородных условий находим 2 λk Bk − Ak = 0 , Ak cos( λk ) + B k sin( λk ) = 0 . Откуда получаем 2 λk Bk = Ak и трансцендентное уравнение tg( λk ) = −2 λk (3.14) для определения собственных значений. Последнее уравнение имеет счетное множес тво дейс твительных корней λ1 , λ2 ,... , что подтверждает рисунок 3.1. Корни уравнения (3.14) определяются приближенными численными методами, например, метод хорд, метод Ньютона, методом итерации или методом половинного деления. В системе MathCAD корни уравнений отыскиваются с помощью стандартной функции root (см. п. 8.2). Таким образом, обозначая C k = Ak , имеем ⎛ ⎞ 1 u (x ) = C k ⎜ cos( λk x) + sin( λk x) ⎟ , ⎜ ⎟ 2 λk ⎝ ⎠ тогда 42
yn ( x) =
n ⎛ ⎞ 7 2 1 ⎟. + x + ∑ C k ⎜ cos( λk x ) + sin( λ x ) k ⎜ ⎟ 3 3 2 λ k =1 k ⎝ ⎠
Рис. 3.1. Геометрическая иллюстрация корней уравнения (3.14)
Если использовать пробные функции вида (3.11), (3.12), то получаем n 7 2 y n ( x ) = + x + ∑ C k x k +1 (1 − x ) , 3 3 k =1 или yn ( x) =
n 7 2 + x + ∑ C k x 2 (1 − x) k . 3 3 k =1
3.3. Задание к лабораторной работе Методом Ритца найти наиболее точное приближенное решение краевой задачи (2.16), построенное при помощи системы из n пробных функций – многочленов и системы из n пробных функций вида (3.13). За меру точности выбрать (по указанию преподавателя) или max ym (x ) − ym −1 ( x) = ε 1 , [ a ,b ]
или
max R (C1 ,..., C m , x ) = ε 2 , [ a ,b ]
Варианты заданий приведены в таблице 2.1. Лабораторная работа выполняется с использованием прикладной системы MathCAD, в которой реализуется алгоритм построения пробных решений y m (x) методом Ритца. Перед обращением к программе необходимо подготовить числовые и строчные данные, вводимые в процессе диалога с клавиатуры дисплея. Числовые данные: 43
a, b – концы отрезка интегрирования [a, b ] ; n – максимальное число параметров C1 ,..., C n в пробном решении. Значение параметра n задает преподаватель. Строчные данные: аналитические выражения для пробных функций u 0 ( x ),..., um ( x) . В результате расчета программа выводит на экран дисплея значения коэффициентов C1 ,..., C n и таблицы всех пробных решений y1 (x ),..., y n ( x) и их невязок. Анализируя данные этих таблиц, надо найти обоснованный ответ на поставленную задачу лабораторной работы. 3.4. Выполнение работы в компьютерном классе 1. Прежде чем начать выполнение лабораторной работы на ЭВМ, внимательно ознакомьтесь с данной инструкцией. 2. При необходимости включите сами (или попросите лаборанта) питание компьютера. После того, как система загрузится, запускаем двойным щелчком левой кнопки мыши на рабочем столе программу Mathcad, если же ярлык отсутс твует, тогда открываем программу через кнопку «Пуск» (Программы → Mathsoft → Mathcad). 3. Узнайте у лаборанта расположение файла ODU.mcd и откройте его (File → Open или, если программа русифицирована, Файл →Открыть). При любой ошибке ввода программы нужно обратиться к лаборанту. 4. Прочитайте в начале файла задание на лабораторную работу и просмотрите пример выполнения работы, для которого исследование уже проведено. Программа файла ODU.mcd состоит из шести пунктов «1. Постановка задачи», «2. Получение точного решения», «3. Получение приближенного решения методом Галеркина», «4. Получение приближенного решения вариационным методом Ритца», «5. Получение приближенного решения интегральным методом наименьших квадратов», «6. Выводы». Для выполнения лабораторной работы «Решение краевой задачи для линейного обыкновенного дифференциального уравнения второго порядка вариационным методом Ритца» необходимо использовать пункты 1, 2 и 4. Цели и задачи каждого из пунктов описаны ниже. 5. Для набора функций нужно либо воспользоваться всплывающим меню инструментов «Calculator», либо ввести ее с клавиатуры, используя следующие символы арифметических действий и стандартных функций: сложение – ‘+’; вычитание – ‘–‘; умножение – ‘*’; деление – ‘/’; возведение в степень – ‘^’; квадратный корень – ‘\’; синус – sin(x); косинус – cos(x); экспонента – exp(x); натуральный логарифм – ln(x). При вводе числовых данных, являющихся десятичными дробями, целую и дробную части нужно разделять точкой (например, 0.5, 1.5 и т. д.). 44
6. Порядок выполнения работы Вам укажет программа подсказками и заданиями, выделенными красным цветом. 3.5. Порядок выполнения лабораторной работы Рекомендуется следующий порядок выполнения лабораторной работы. 1. Изучить разделы 3.1–3.4 настоящей главы и подготовить ответы на контрольные вопросы из раздела 3.7. 2. Пройти собеседование с преподавателем, получить допуск к выполнению работы на ПЭВМ, номер варианта задания лабораторной работы и значение параметра n . 3. В соответствии с полученным задания выполнить подготовительный шаг алгоритма метода Ритца и подготовить, если u 0 ( x) не является точным решением задачи, числовые и строчные исходные данные для расчетов на ПЭВМ. 4. Выполнить основную расчетную часть лабораторной работы в диалоге с ПЭВМ. В процессе диалога следует переписать с экрана дисплея значения коэффициентов C i пробных решений, а в конце диалога – итоговые таблицы пробных решений и их невязок. 5. Оформить и защитить отчет по лабораторной работе, который должен содержать титульный лист, математическую постановку задачи, результаты выполнения подготовительных расчетов, основные результаты расчетов на ПЭВМ и обоснованный итоговый отчет. 3.6. Тестирующий пример Методом Ритца найти на [0, 1] приближенное значение краевой задачи (2.17). Сводим задачу (2.17) к задаче (3.1), (3.2), определяя, согласно (3.4), ⎛x ⎞ K ( x) = exp⎜ ∫ (− 3)dt ⎟ = e −3 x . ⎝0 ⎠ Получаем задачу (K ( x ) y ′)′ − β (x ) y = g ( x ), y (0) + y′ (0) = 1, (3.16) y (1) + y ′(1) = −4,
(
)
где K ′(x) = −3e −3 x ; β(x) = −2e−3 x; g(x) = 2x2 − 6x + 2 e−3x . Напомним, что задача (3.16) имеет точное решение (2.18), значения которого представлены в таблице 2.2. Для выполнения лабораторной работы используется тот же файл ODU.mcd, что и в разделе 2.5. В пункте «Постановка задачи» вводим числовые параметры 45
и функции, входящие в задачу (2.17). В пункте «Получение точного решения в системе MathCAD» получаем таблицу 2.2 точного решения задачи. В пункте «Получение приближенного решения вариационным методом Ритца» в качестве пробных функций используем те же функции, что и в разделе 2.5: 1 1 u0 ( x ) = 6 − 5 x; u1 (x ) = 1 − x + x 2 ; u 2 ( x) = 1 − x + x 3 ; 3 4 1 1 1 u 3 ( x ) = 1 − x + x 4 ; u 4 ( x ) = 1 − x + x 5 ; u5 ( x ) = 1 − x + x 6 ; 7 6 5 причем R (u 0 ) ≡/ 0 . Определяем параметры функционала (3.5). Так как a0 = a1 = b0 = b1 = 1 , то в соответс твии с таблицей 3.1 имеем a b Ta = 2 = 1, Tb = 2 = −4, a0 b0
αa = −
a0 −0 k (a ) = −e = −1, a1
b0 −3 k (b ) = e = 0, 04979, b1 qa = qb = 0. В результате расчета по программе ODU.mcd при n = 5 получим вектор коэффициентов С = (1,140938 − 2,564241 − 2,466128 − 0,133009 − 1,130778) , следовательно, пробное решение имеет вид y 5 (x ) = u0 (x ) + 1,140938u1 (x ) − 2,564241u 2 (x ) − 2, 466128u3 (x ) +
αb =
− 0,133009u4 (x ) − 1,130778u5 (x ). Основные результаты расчета по программе ODU.mcd при n ≤ 5 представлены в таблицах 3.2 и 3.3. В приложении A приведен пример при n = 5 . Анализируя таблицы, устанавливаем, что наилучшее приближение к точному решению Y (x ) дает решение y 5 (x ) , для которого max Y ( x) − y 5 (x ) ≤ 0,000031, [a ,b ]
max R (C1 ,..., C 5 , x ) ≤ 0,017592, [a ,b ]
max y5 ( x) − y 4 ( x) ≤ 0,000479 . [a ,b ]
Таблица 3.2.
x 0,0 0,1
n=0 6,0 5,5
Таблица пробных решений n=1 n=2 n=3 n=4 n=5 1,041255 0,835765 0,847800 0,846705 0,846781 1,020600 0,860600 0,865221 0,865260 0,865215 46
0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0
5,0 4,5 4,0 3,5 3,0 2,5 2,0 1,5 1,0
0,966887 0,880116 0,760287 0,607399 0,421453 0,202448 – 0,049615 – 0,334736 – 0,652915
0,893946 0,923337 0,936307 0,920389 0,863118 0,752026 0,574647 0,318515 – 0,028836
0,885499 0,904270 0,914450 0,906225 0,867057 0,781685 0,632119 0,397647 0,054831
0,886786 0,905463 0,914222 0,904175 0,864049 0,779613 0,633110 0,402690 0,061840
0,886702 0,905499 0,914375 0,904293 0,863973 0,779349 0,632897 0,402854 0,062319 Таблица 3.3.
x 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0
n=0 25,00 24,58 24,12 23,62 23,08 22,50 21,88 21,22 20,52 19,78 19,00
Таблица невязок пробных решений n=1 n=2 n=3 n=4 – 3,099555 1,276606 – 0,288980 0,045339 – 1,569116 0,217300 0,038332 – 0,014853 – 0,144793 – 0,490992 0,148810 – 0,015624 1,173414 – 0,873203 0,115487 0,003438 2,385504 – 0,954266 0,005948 0,017316 3,491477 – 0,759113 – 0,117677 0,014424 4,491334 – 0,312677 – 0,198705 – 0,004529 5,385074 0,360109 – 0,185905 – 0,027676 6,172698 1,234312 – 0,033496 – 0,033132 6,854204 2,285000 0,298853 0,009867 7,429595 3,487240 0,846022 0,139831
n=5 – 0,005471 0,002135 0,000269 – 0,001591 – 0,000796 0,001323 0,002079 – 0,000180 – 0,003916 – 0,002478 0,017592
3.7. Вопросы для самоконтроля 1. Опишите алгоритм решения краевой задачи для линейного дифференциального уравнения второго порядка аналитическим методом. 2. Каким образом уравнение (2.1) свести к равносильному уравнению типа (3.1)? 3. В чем основная идея вариационного подхода к решению краевой задачи (3.1), (3.2)? 4. Проверьте правильность данных, представленных в таблице 3.1. 5. Какими свойствами должны обладать пробные функции в методе Ритца? 6. Как в методе Ритца находится невязка пробного решения? 7. Докажите, что ортогональная на [a, b] система функций, среди которых нет тождес твенно равной нулю, линейно независима. 8. Как в методе Ритца строится система алгебраических уравнений для определения коэффициентов пробного решения? Проверьте справедливость соотношений (3.9), (3.10). 47
9. Опишите алгоритм приближенного решения краевой задачи (3.1),(3.2) методом Ритца. 10.Приведите пример пробных функций для решения задачи методом Ритца. 11.Проверьте, что функции (3.13) являются собственными функциями задачи (2.13). 12.Опишите алгоритм метода хорд-касательных для приближенного вычисления корней уравнения f (x ) = 0 . 13.Опишите алгоритм метода половинного деления для приближенного вычисления корней уравнения f (x ) = 0 . 14.Опишите алгоритм метода итераций для приближенного вычисления корней уравнения f (x ) = 0 .
48
4. Решение краевой задачи для линейного обыкновенного дифференциального уравнения второго порядка интегральным методом наименьших квадратов 4.1. Постановка задачи и алгоритм метода Снова рассмотрим краевую задачу: найти на отрезке [a, b ] решение Y (x ) дифференциального уравнения L[y ] = y ′′ + p( x) y ′ + q( x) y = f ( x) , (4.1) удовлетворяющее условиям ⎧a0 y( a) + a1 y ′(a) = a2 , (4.2) ⎨ ⎩b0 y(b) + b1 y ′(b) = b2 , где p( x), q( x), f (x ) – заданные функции, непрерывные на отрезке [a, b ] ; a0 , a1 , a2 , b0 , b1 , b2 – заданные числа, причем a02 + a12 > 0 , b02 + b12 > 0 . Заметим здесь, что краевая задача (3.1), (3.2) может быть сведена к задаче (4.1), (4.2). Для этого достаточно разделить обе части уравнения (3.1) на K (x) и ввести обозначение p( x) = K ′( x ) / K ( x ), q( x ) = − β ( x ) / K ( x ), f ( x) = g ( x ) / K ( x ) . Для нахождения приближенного решения задачи (4.1), (4.2) интегральным методом наименьших квадратов строиться функциональная ∞ последовательность {y n (x )}0 из пробных решений вида n
y n ( x) = u 0 ( x) + ∑ Ci u i ( x) , i =1
(4.3)
где u 0 ( x), u1 ( x), ..., un (x ) – функции, удовлетворяющие таким же условиям и требованиям, что и аналогичные функции в методах Галеркина и Ритца. Подс тавляя пробное решение (4.3) вместо y (x) в уравнение (4.1), получим невязку R (C1 ,..., Cn , x ) = L[u 0 ] − f (x ) + ∑ C i L[ui ], n
i =1
(4.4)
Напомним, что функция (4.4), линейно зависящие от параметров C1 ,..., C n , является характеристикой уклонения пробного решения (4.3) от точного решения задачи Y (x ) . Поэтому подберем значения C1 ,..., C n так, чтобы они доставляли глобальный минимум следующей функции переменных C1 ,..., C n b
ϕ (C1 ,..., C n ) = (R(C1 ,..., C n , x ), R (C1 ,..., Cn , x )) = ∫ R 2 (C1 ,..., C n , x )dx .
(4.5)
a
Заметим, что, так как ϕ (C1 ,..., C n ) из (4.5) неотрицательная квадратичная функция n переменных, то глобальный минимум ее существует и совпадает с локальным. 49
Необходимое условие локального минимума функции (4.5) дают ⎛ ∂R ⎞ ∂ϕ ⎟⎟ = 0, k = 1, n , = 2⎜⎜ R , C ∂С k ∂ k ⎠ ⎝ откуда ⎛ ∂R ⎞ b ∂R (x , C1 ,..., C n ) ⎟⎟ = ∫ R (x , C1 ,..., C n ) ⎜⎜ R , dx = 0 . (4.6) C ∂ C ∂ k a k ⎠ ⎝ Записав условия (4.6) в развернутом виде, для определения значений переменных С1 ,..., C n получаем неоднородную систему уравнений n -го порядка n
∑ akj C j = bk , k = 1, n , j =1
(4.7)
где b
[ ]
a kj = ∫ L[u k ]L u j dx; a b
bk = ∫ ( f (x ) − L[u 0 ])L[u k ]dx.
(4.8)
a
Решив систему (4.7) и подставив определяемые этим решением значения параметров С1 ,..., C n в (4.4), завершаем построение пробного решения y n (x) . Этапы возможного алгоритма приближенного решения задачи (4.1), (4.2) интегральным методом наименьших квадратов качес твенно полностью совпадают с этапами алгоритма решения задачи методом Галеркина. Имеется только одно количес твенное различие, связанное с тем, что параметры С1 ,..., C n пробного решения на первом и последующих этапах определяются решением системы (4.7), а не системы (2.8), как было в методе Галеркина. Подчеркнем, что пробные функции можно подбирать так же, как и в методах Галеркина и Ритца. 4.2. Задание к лабораторной работе Интегральным методом наименьших квадратов найти наиболее точное решение краевой задачи (2.16), построенное при помощи системы из n пробных функций многочленов. За меру точнос ти выбрать (по указанию преподавателя) или ε 1 , или ε 2 из (3.15). Варианты заданий приведены в таблице 2.1. Лабораторная работа выполняется с использованием прикладной системы MathCAD, в которой реализуется алгоритм построения пробных решений y m (x) интегральным методом наименьших квадратов. Перед обращением к этой программе необходимо подготовить следующие числовые и строчные данные. Числовые данные: 50
a, b – концы отрезка интегрирования; n – максимальное число параметров С i в пробном решении. Значение параметра n дает преподаватель. Строчные данные: аналитические выражения для функций u 0 ( x),..., u n ( x ) . 4.3. Выполнение работы в компьютерном классе 1. Прежде чем начать выполнение лабораторной работы на ЭВМ, внимательно ознакомьтесь с данной инструкцией. 2. При необходимости включите сами (или попросите лаборанта) питание компьютера. После того, как система загрузится, запускаем двойным щелчком левой кнопки мыши на рабочем столе программу Mathcad, если же ярлык отсутс твует, тогда открываем программу через кнопку «Пуск» (Программы → Mathsoft → Mathcad). 3. Узнайте у лаборанта расположение файла ODU.mcd и откройте его (File → Open или, если программа русифицирована, Файл →Открыть). При любой ошибке ввода программы нужно обратиться к лаборанту. 4. Прочитайте в начале файла задание на лабораторную работу и просмотрите пример выполнения работы, для которого исследование уже проведено. Для выполнения лабораторной работы «Решение краевой задачи для линейного обыкновенного дифференциального уравнения второго порядка интегральным методом наименьших квадратов» необходимо использовать пункты 1, 2 и 5, 6. Цели и задачи каждого из пунктов описаны ниже. 5. Для набора функций нужно либо воспользоваться всплывающим меню инструментов «Calculator», либо ввести ее с клавиатуры, используя следующие символы арифметических действий и стандартных функций: сложение – ‘+’; вычитание – ‘–‘; умножение – ‘*’; деление – ‘/’; возведение в степень – ‘^’; квадратный корень – ‘\’; синус – sin(x); косинус – cos(x); экспонента – exp(x); натуральный логарифм – ln(x). При вводе числовых данных, являющихся десятичными дробями, целую и дробную части нужно разделять точкой (например, 0.5, 1.5 и т. д.). 6. Порядок выполнения работы Вам укажет программа подсказками и заданиями, выделенными красным цветом. 4.4. Порядок выполнения лабораторной работы Рекомендуется такой порядок выполнения лабораторной работы. 1. Изучить разделы 4.1–4.3 настоящей главы, повторить разделы 2.2, 3.2 и подготовить ответы на контрольные вопросы из раздела 4.6.
51
2. Пройти собеседование с преподавателем; получить допуск к выполнению работы в диалоге ПЭВМ, номер варианта задания и значение параметра n . 3. Выполнить подготовительный шаг алгоритма метода наименьших квадратов и подготовить, если u 0( x) не является точным решение задачи, все числовые и строчные исходные данные для расчетов на ПЭВМ. 4. Выполнить расчетную часть работы на ПЭВМ, переписав с экрана дисплея значения коэффициентов C i пробных решений и итоговые таблицы пробных решений и их невязок. 5. Оформить и защитить отчет по лабораторной работе такого же содержания, что и отчеты по работам предыдущих глав. 4.5. Тестирующий пример Интегральным методом наименьших квадратов найти приближенное решение краевой задачи (2.17), используя пробные функции из раздела (2.5). Для выполнения лабораторной работы используется тот же файл ODU.mcd, что и в разделах 2.5 и 3.5. В пункте «Пос тановка задачи» вводим числовые параметры и функции, входящие в задачу (2.17). В пункте «Получение точного решения в системе MathCAD» получаем таблицу 2.2 точного решения задачи. В пункте «Получение приближенного решения интегральным методом наименьших квадратов» в качестве пробных функций используем те же функции, что и в разделе 2.5: 1 1 u 0 (x ) = 6 − 5 x, u1 ( x) = 1 − x + x 2 , u2 ( x ) = 1 − x + x 3 , 3 4 1 1 1 u 3 ( x ) = 1 − x + x 4 , u 4 ( x ) = 1 − x + x 5 , u5 ( x ) = 1 − x + x 6 . 7 6 5 В результате расчета по программе при n = 5 получим вектор коэффициентов С = (1,137789 − 2,526360 − 2,595082 0, 032496 − 1,202066) , следовательно, пробное решение имеет вид y 5 (x ) = u0 (x ) + 1,137789u1 (x ) − 2,526360u 2 ( x) − 2,595082u3 ( x) + − 0,032496u 4 ( x) − 1,202066u 5 (x ). Основные результаты расчета по программе ODU.mcd при n ≤ 5 представлены в таблицах 4.1 и 4.2. В приложении A приведен пример при n = 5 . Наилучшее приближенное к точному решению дает пробное решение y 5 (x ) , для которого max Y (x ) − y5 ( x) ≤ 0,00002 , [a ,b ]
max R(C1,..., C5 , x ) ≤ 0,009138, [a ,b ]
52
max y 5 (x ) − y4 (x ) ≤ 0,000347. [a ,b ]
Таблица 4.1.
x 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0
n=0 6,0 5,5 5,0 4,5 4,0 3,5 3,0 2,5 2,0 1,5 1,0
Таблица пробных решений n=1 n=2 n=3 0,485925 0,84169 0,845604 0,518952 0,868583 0,86258 0,515219 0,908436 0,881732 0,474725 0,947502 0,899486 0,397471 0,972036 0,909288 0,283456 0,96829 0,901611 0,132681 0,922519 0,863951 – 0,054855 0,820975 0,780826 – 0,279151 0,649914 0,633781 – 0,540208 0,395587 0,401382 – 0,838025 0,04425 0,059222
n=4 0,846773 0,865383 0,886952 0,905566 0,91417 0,903955 0,863744 0,779382 0,633126 0,403032 0,062341
n=5 0,846776 0,865207 0,886699 0,905508 0,914391 0,904303 0,863966 0,779328 0,632879 0,402862 0,062349 Таблица 4.2.
x 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0
n=0 25,00 24,58 24,12 23,62 23,08 22,50 21,88 21,22 20,52 19,78 19,00
Таблица невязок пробных решений n=1 n=2 n=3 n=4 – 6,246424 1,87907 – 0,469539 0,067257 – 4,497554 0,543229 – 0,004734 – 0,019227 – 2,862206 – 0,394301 0,189442 – 0,026537 – 1,340378 – 0,961014 0,195123 – 0,002561 0,067928 – 1,184401 0,088489 0,020879 1,362713 – 1,091957 – 0,060232 0,0268 2,543978 – 0,711172 – 0,186764 0,011841 3,611721 – 0,06954 – 0,232783 – 0,014965 4,565944 0,805445 – 0,145919 – 0,033414 5,406645 1,886293 0,120248 – 0,013352 6,133826 3,145509 0,606185 0,084099
n=5 – 0,007594 0,003163 0,000782 – 0,002405 – 0,002207 0,000528 0,002772 0,001924 – 0,001824 – 0,003376 0,009138
4.6. Вопросы для самоконтроля 1. Как в методе наименьших квадратов строится система линейных уравнений для определения параметров пробного решения? 2. Получите самостоятельно развернутый вид условий (4.6), проверив тем самым справедливость формул (4.7), (4.8). 3. Опишите алгоритм приближенного решения краевой задачи (4.1), (4.2) интегральным методом наименьших квадратов. 4. Приведите примеры пробных функций для решения задачи (4.1), (4.2) интегральным методом наименьших квадратов. 53
5. Решение начально-краевой задачи для одномерного параболического уравнения методом Галеркина. 5.1. Постановка задачи и алгоритм метода Рассмотрим следующую начально-краевую задачу. Требуется в плоской области D = ( x , t ) ∈ R 2 ; a ≤ x ≤ b, t ≥ 0 найти решение U (x , t ) дифференциального уравнения ∂u ∂K ∂u ∂ 2u (5.1) L[u( x, t)] = − − K 2 − β ( x, t )u ≡ g (x , t ) ∂t ∂x ∂x ∂x удовлетворяющее двум краевым или граничным условиям ⎧ ( , ) + ∂u(a , t ) = ( ), a2 t ⎪a0u a t a1 ∂x (5.2) ⎨ ∂u (b, t ) ⎪ b0u (b, t ) + b1 = b2 (t ), ∂x ⎩ и начальному условию u ( x, 0) = f ( x), (5.3) где K ( x, t), K ′x (x , t ), β ( x, t ), g ( x, t ), a 2 (t ), b2 (t ) – заданные, непрерывные на D функции (K ( x, t ) > 0); a0 , a1 , b0 , b1 – заданные действительные числа, причем
{
}
a02 + a12 > 0, b02 + b12 > 0 ; f (x ) – заданная функция, непрерывная на [a, b] вместе с f ′(x) и такая, что ⎧a0 f (a ) + a1 f ′( a) = a 2 (0), (5.4) ⎨ ′ b f b b f b b ( ) + ( ) = ( 0 ). ⎩ 0 1 2 Напомним, что в такой форме может быть поставлена задача одномерной нестационарной теплопроводнос ти [1]. Например, типичная задача о нестационарной теплопередаче путем теплопроводности в однородном стержне единичной длины, концы которого поддерживаются при температурах T1 и T2 , при начальном распределении температуры вдоль стержня по закону T (x ,0) = T1 + (sin(πx ) + x )(T2 − T1 ) получается как частный случай сформулированной задачи a = 0, b = 1, K ( x, t) = 1, β ( x, t ) = 0, g ( x, t ) = 0 a0 = 1, a1 = 0, a2 = T , b0 = 1, b1 = 0, b2 = T , (5.5) f (x ) = (sin(πx) + x )(T2 − T1 ) + T1. В методе Галеркина для нахождения приближенного решения задачи (5.1)– (5.4) строится функциональная последовательнос ть {un (x , t )}∞0 из пробных решений u n ( x, t ) следующим образом.
54
Задаемся в области D некоторой системой дважды дифференцируемых функций u 0 ( x, t), u1 ( x), ..., un (x ) таких, что u 0 ( x, t) удовлетворяет краевым условиям (5.2), а пробные функции u i (x) (i ≥ 1) являются линейно независимы на [a, b] и удовлетворяют однородным краевым условиям ⎧a0u (a) + a1u ′(a ) = 0, (5.6) ⎨ ′ b u b b u b ( ) + ( ) = 0 . 0 1 ⎩ Составляем функцию n
u n ( x, t ) = u0 ( x, t ) + ∑ vk (t )uk ( x) k =1
(5.7)
с неизвестными пока функциями v1 (t ), v2 (t ), ..., vn (t ) , зависящими только от
аргумента t . Подчеркнем, что в силу линейности условий (5.2) и (5.6), функция (5.7) удовлетворяет условиям (5.2) при любых функциях v1 (t ),...,v n (t ) . Значит, следует так определить vi (t ) (i ≥ 1) и количество (n) этих функций, чтобы u n ( x, t ) из (5.7) удовлетворяла уравнению (5.1) и начальному условию (5.3) с заданной точностью. Подставляя u n ( x, t ) вместо u ( x, t) в уравнение (5.1), получаем невязку ⎛ ∂ 2 u0 n ⎞ dvk ∂u 0 uk ( x ) + R1 (v1 (t ),..., v n (t), x, t ) = ∑ − K ( x, t )⎜⎜ 2 + ∑ vk u ′k′ ⎟⎟ − ∂t k =1 dt k =1 ⎝ ∂x ⎠ n
−
или
n ∂K ⎛ ∂u 0 n ⎞ ⎛ ⎞ + ∑ v k u k′ ⎟ − β ( x , t )⎜ u0 + ∑ v k uk ⎟ − g (x , t ) ⎜ ∂x ⎝ ∂x k =1 k= 1 ⎠ ⎝ ⎠
dvk n ⎛ ∂K ⎞ uk′ + βuk ⎟v k − − ∑ ⎜ Ku k′′ + dt k =1⎝ ∂x k =1 ⎠ (5.8) ⎞ ⎛ ∂ 2u0 ∂K ∂u 0 u ∂ + βu0 + g − 0 ⎟⎟. − ⎜⎜ K + 2 ∂t ⎠ ∂x ∂x ⎝ ∂x Подставляя u 0 ( x,0) , в полученную из (5.7) при t = 0 , в (5.3), находим невязку n
R1(v1,..., vn , x, t ) = ∑ uk
n
R2 (v1(0),...,v n (0), x ) = u0 (x ,0) + ∑ v k (0)uk ( x) − f ( x ) . k =1
(5.9)
Невязки R1 и R2 являются характеристиками уклонения функции (5.7) от точного решения U (x ,t ) задачи (5.1)–(5.4). Во всяком случае, если при некотором наборе функций v1 (t ),...,v n (t ) R1 ≡ 0 и R2 ≡ 0 , то функция u n ( x, t ) из (5.7) – точное решение U (x ,t ) . В общем случае эти невязки оказываются отличными от нуля. Поэтому накладываем дополнительные условия на функции vk (t ) и их начальные значения vk (0) так, чтобы невязки в каком-то смысле были бы наименьшими. 55
В обобщенном методе Галеркина эти условия определяются системой уравнений: (R1(v1 (t ),...,vn (t ), x,t ), wk ( x) ) = 0, k = 1, n; (5.10) (R2 (v1(0),...,vn (0), x), wk ( x)) = 0, k = 1, n; (5.11) где w1 (x ),..., wn ( x) – заданные линейно независимые на [a, b] поверочные функции; а b
(V ( x),W ( x)) = ∫ V ( x )W ( x)dx . a
Напомним здесь, что если поверочные функции w1 (x ),..., wn ( x) входят в полную на [a, b] систему функций, то можно ожидать сходимости последовательности {un (x ,t )}∞0 в среднем к точному решению U (x ,t ) [1]. Запишем условия (5.10) в развернутом виде dv j n ⎛ ∂ ⎛ n ∂u ⎛ ∂ ⎜⎜ ∑ u j (x ) − ∑ v j ⎜ (Ku′j ) + βu j ⎞⎟ −⎜ ⎛⎜ K 0 ⎞⎟ + dt j=1 ⎝ ∂x ⎠ ⎝ ∂x ⎝ ∂x ⎠ ⎝ j =1 ∂u ⎞ ⎞ + βu0 + g ( x,t ) − 0 ⎟, wk ( x) ⎟ = 0, ∂t ⎠ ⎠ или n dv n j ⎛ ∂ ⎞ ( ) u j , wk − ∑ ⎜ (Ku ′j ) + βu j , wk ⎟ v j − ∑ j =1 dt j =1⎝ ∂x ⎠ ∂u ∂u ⎞ ⎛ ∂ − ⎜ ⎛⎜ K 0 ⎞⎟ + βu0 + g ( x,t ) − 0 , wk (x ) ⎟ = 0, ∂t ⎠ ⎝ ∂x ⎝ ∂x ⎠ или n dv j n − ∑ c (t )v j = bk (t ), k = 1, n ; (5.12) ∑ akj dt j=1 kj j =1 где akj = (u j , wk ) = ∫ u j ( x )wk ( x )dx , b
(5.13)
a
b ∂K ⎛∂ ⎞ ⎛ ⎞ ckj = ⎜ Ku′j + βu j , wk ⎟ = ∫ ⎜ Ku′j′ + u ′j + βu j ⎟ wk dx , ∂x ⎝ ∂x ⎠ a⎝ ⎠
(
)
⎛ ∂ ⎛ ∂u ⎞ ∂u ⎞ bk (t ) = ⎜ ⎜ K 0 ⎟ + βu0 + g (x ,t ) − 0 , wk ( x ) ⎟ = ∂t ⎝ ∂x ⎝ ∂x ⎠ ⎠ 2 b⎛ u ∂ ∂K ∂u 0 ∂u ⎞ + βu0 + g − 0 ⎟⎟ wk dx, = ∫ ⎜⎜ K 2 0 + ∂ x ∂x ∂x ∂t ⎠ a⎝
(5.14)
(5.15)
k = 1, n , j = 1, n . Если ввести в рассмотрение матрицы 56
A = (a kj )n , C = (ckj )n , B = (bk )n,1, V = (v j )n,1, то система (5.12) в матричном виде запишется так dV A = CV + B . (5.16) dt Покажем, что матрица A всегда невырожденная, т. е. det A ≠ 0 . Рассмотрим однородную линейную алгебраическую систему уравнений относительно неизвестных λ1 , λ2 ,..., λn
∑ (u j , wk )λ j = 0, k = 1, n . n
j =1
(5.17)
Если det A = 0 , то система (5.17) имеет множество ненулевых решений. Пусть одним из таких решений является совокупность λ1 , λ2 ,..., λn , где, например, λm ≠ 0 . Подставляя это решение в уравнение системы (5.17), суммируя все получившиеся при этом равенства и используя свойства скалярного произведения, получаем (λ1u1 + ... + λnun , w1 + ... + wn ) = 0 , λm ≠ 0 . Так как функции wk (x ) линейно независимы, то w1 + ... + wn ≡/ 0 . Значит, должно выполнятся тождество λ1u1 + ... + λnu n ≡ 0, λm ≠ 0 . Но это невозможно из-за линейной независимости функций u1,..., u n . Значит, ненулевых решений у системы (5.17) нет, а для этого необходимо и достаточно, чтобы det A ≠ 0 . Таким образом, матрица A невырожденная и, следовательно, имеет обратную матрицу A−1 . Теперь из (5.16) получаем dV = A−1 (CV + B) . (5.18) dt Таким образом, функции v j (t ) должны удовлетворять нормальной системе линейных обыкновенных дифференциальных уравнений n -го порядка. Заметим, что если функции K ( x, t), β ( x,t ) зависят только от x , то система (5.18) – система с постоянными коэффициентами. Заметим так же, что если в качестве поверочных функций выбраны пробные, которые ортогональны, то матрицы A и A−1 являются диагональными матрицами. Запишем теперь в развернутом виде условия (5.11). Получаем n ⎛ ⎞ ⎜⎜ u0 (x ,0) + ∑ v j (0)u j (x ) − f ( x), wk (x ) ⎟⎟ = j =1 ⎝ ⎠ = ∑ (u j ( x ),wk ( x) )v j (0) + (u0 ( x,0) − f ( x), wk (x )) = 0; n
j =1
или
∑ (u j ( x), wk (x))v j (0) = ( f ( x) − u 0 (x,0), wk (x)), k = 1, n; n
j =1
или 57
n
∑ akj v j (0) = d k , k = 1, n; j =1
(5.19)
где akj определяются формулами (5.13), а b
d k = ( f ( x) − u 0 ( x,0), wk (x )) = ∫ ( f ( x) − u 0 ( x,0) )wk ( x )dx. a
Если ввести матрицу D = (d k )n ,1 , то из (5.19) получаем (5.20) V (0) = A−1D . Таким образом, для нахождения функций Vk (t ), k = 1, n , определяющих пробное решение (5.7), получаем задачу Коши для нормальной системы (5.18) линейных обыкновенных дифференциальных уравнений n -го порядка с начальными условиями (5.20). Решив указанную задачу Коши и подставив определяемые этим решением функции v k (t) в (5.7), заканчиваем построение пробного решения u n ( x ,t ) . Опишем возможный алгоритм построения приближенного решения задачи (5.1)–(5.3) методом Галеркина, предполагая, что последовательность {un (x ,t )}∞0 сходится равномерно к точному решению U (x ,t ) . 1. Подготовительный шаг алгоритма. На этом шаге выбираем функцию u 0 ( x, t) и находим невязку R10 ( x ,t ) = L[u0 ] − g ( x, t ) от подстановки функции u 0 ( x, t ) в уравнение (5.1). Находим невязку R20 ( x ) = u0 ( x,0) − f ( x) для условия (5.3). Определяем max R10 (x,t ) = Δ10 и max R20 (x) = Δ 20 . [a,b]
D
Если Δ10 ≤ ε1 и Δ 20 ≤ ε 2 , где ε 1 и ε 2 заданные меры точности приближенного ~ u0 (x ,t ) . В противном случае переходим к решения, то полагаем U (x ,t ) − следующему шагу алгоритма, предварительно выбрав u j (x ) и поверочные wk (x ) функции. 2. Первый шаг алгоритма. Определив функцию v1 (t ) из решения задачи Коши (5.18), (5.20) при n = 1 , строим функции u1 (x ,t ) = u0 + v1(t )u1( x) . Находим по формулам (5.8), (5.9) невязки R11 (v1 (t), x,t ), R21 (v1(0), x ) и определяем max R11 (v1, x, t ) = Δ11 и max R21(v1(0), x) = Δ 21. Если Δ11 ≤ ε 1 и Δ21 ≤ ε 2 , то D
[a,b]
полагаем U (x ,t ) ~− u1( x, t) , и вычисления заканчиваем. В противном случае переходим к вычислениям на втором шаге алгоритма и т. д. Таким образом, на m-ом (m ≥ 1) шаге алгоритма строим функцию m
u m ( x, t ) = u0 ( x, t ) + ∑ vk (t )uk ( x), k =1
определив предварительно функции v1 (t ),...,v m (t ) из решения задачи Коши (5.18), (5.20) при n = m . Находим по формулам (5.8), (5.9) невязки 58
R1m (v1 (t ),...,v m (t ), x,t ), R2m (v1 (0),...,vm (0), x ), а затем вычисляем max R1m (v1 (t ),...,vm (t ), x, t ) = Δ1m и max R2m (v1(0),...,vm (0), x) = Δ 2m . D
[a,b]
~ u m ( x,t ) , в противном случае Если Δ 1m ≤ ε 1 и Δ 2m ≤ ε 2 , то полагаем U (x ,t ) − переходим к (m + 1) -му шагу алгоритма. 5.2. О построении функции u0 (x,t)
Пробные и поверочные функции можно выбирать так же или такими же методами, как описано в предыдущих главах. Поэтому обсудим здесь только возможность построения функции u 0 ( x, t) в виде многочлена относительно x с коэффициентами, зависящими от t , и рассмотрим несколько примеров, иллюстрирующих эту возможность. Например, положив u 0 ( x, t) = A(t ) , из условий (5.2) получаем систему функциональных уравнений ⎧a0 A(t ) = a2 (t ), ⎨ ⎩ b0 A(t ) = b2 (t ), a (t ) и если a0b2 ≡ b0a2 , то система совместна и A(t ) = 2 . Если же a0b2 ≡/ b0 a 2 , то a0 система несовместна, и ищем u 0 ( x, t) в виде u 0 ( x, t) = A(t ) + B(t ) ⋅ x = P1 (x ,t ) . Для определения A(t ) и B(t ) из условий (5.2) получаем систему функциональных уравнений ⎧a0 ⋅ A(t ) + (a0 a + a1 ) ⋅ B(t ) = a 2 (t), ⎨ ⎩b0 ⋅ A(t ) + (b0b + b1 ) ⋅ B(t ) = b2 (t ); которую можно исследовать, используя теорему Кронекера-Капелли, как линейную неоднородную алгебраическую систему относительно неизвестных функций A(t ) и B(t ) . Если δ1 = a0 (b0b + b1 ) − b0 (a 0a + a1 ) ≠ 0 , то система совместна и определена при этом a2 a0a + a1 a0 a2 b b0b + b1 b b2 A(t ) = 2 , B(t ) = 0 , δ1 δ1 и функция u 0 ( x, t) = P1( x ,t ) определяется однозначно. Если δ1 = 0 , то система несовместна, и ищем u 0 (x, t ) в виде u 0 ( x, t) = A(t ) + B(t ) ⋅ x + C(t ) ⋅ x 2 = P2 ( x, t ). Для определения A(t ) и B(t ) из условий (5.2) получаем систему 59
( (
)
⎧⎪a0 ⋅ A(t ) + (a0 a + a1 ) ⋅ B(t ) + a0a 2 + 2a1a ⋅ C (t ) = a2 (t ), ⎨ ⎪⎩b0 ⋅ A(t ) + (b0b + b1 ) ⋅ B(t ) + b0b 2 + 2b1b ⋅ C(t ) = b2 (t ); δ 2 = a0 b0b 2 + 2b1b − b0 a0 a 2 + 2a1a ≠ 0 , то система совместна
(
)
(
)
)
если и неопределена, причем B(t ) можно придавать произвольные значения. Если δ 2 = 0 , то система несовместна, и ищем u 0 ( x, t) в виде u 0 ( x, t) = A(t ) + B(t ) ⋅ x + C(t) ⋅ x 2 + D(t ) ⋅ x 3 = P3 (x ,t ). Условия (5.2) приводят к системе ⎧⎪a0 ⋅ A(t ) + (a0 a + a1 ) ⋅ B(t ) + (a0 a 2 + 2a1a )⋅ C(t ) + (a 0a 3 + 3a1a 2 )⋅ D(t ) = a2 (t ), ⎨ ⎪⎩b0 ⋅ A(t ) + (b0b + b1 ) ⋅ B(t ) + (b0b 2 + 2b1b) ⋅ C(t ) + (b0b3 + 3b1b 2 )⋅ D(t ) = b2 (t). Покажем, что это система всегда совместна и, следовательно, неопределена. Для этого надо доказать, что для любых значений параметров a,b, a0 ,b0 , a1 ,b1 не могут выполняться все условия несовместности, отмеченные выше, одновременно ⎧a0 (b0 b + b1 ) − b0 (a0 a + a1 ) = 0, ⎪ 2 2 ⎪a0 b0 b + 2b1b − b0 a 0a + 2a1a = 0, ⎨ 3 2 3 2 ⎪a0 b0 b + 3b1b − b0 a0 a + 3a1a = 0, ⎪a b ≡ b a . ⎩ 0 2 / 0 2 Введем обозначения x1 = a0b0 , x2 = a0b1, x3 = −b0a1 и заметим, что, в силу ограничений на параметры (a02 + a12 > 0, b02 + b12 > 0) и последнего из выписанных условий несовместности, переменные x1 , x 2 и x 3 одновременно в ноль обратиться не могут. Тогда первые три условия несовместности можно записать в виде линейной однородной системы относительно x1 , x 2 и x 3 ⎧(b − a) ⋅ x1 + x2 + x3 = 0, ⎪ 2 2 ⎨(b − a ) ⋅ x1 + 2bx2 + 2 ax3 = 0, ⎪ 3 3 2 2 ⎩(b − a ) ⋅ x1 + 3b x2 + 3a x3 = 0, которая должна иметь ненулевое решение. Для этого необходимо и достаточно, чтобы определитель третьего порядка b−a 1 1 δ 3 = b 2 − a 2 2b 2 a = 0. b 3 − a3 3b 2 3a 2
( (
) ( ) (
)
)
Последнее невозможно, так как δ 3 = (b − a )4 и a ≠ b . Таким образом, при любых значениях параметров a, b, a0 , a1 ,b0 ,b1 всегда найдется хотя бы одна функция вида u 0 ( x,t ) = P3 (x ,t ) , удовлетворяющая условиям (5.2). Пример 1. Построить u 0 ( x, t) для задачи с краевыми условиями 60
∂u (0, t ) ⎧ u ( 0 , t ) + = t, ⎪⎪ ∂x ⎨ ⎪u (1, t) + ∂u(1,t ) = −4t. ⎪⎩ ∂x
(5.21)
Решение. Пусть u 0 ( x, t) = A(t ) , тогда условия (5.21) дают ⎧ A(t ) = t, ⇒ 5t ≡ 0, ⎨ ( ) 4 ; A t t = − ⎩ т. е. – несовместную систему. Если теперь u 0 ( x, t) = A(t ) + B(t ) x , то условия (5.21) приводят к системе ⎧ A(t) = 6t , ⎧ A(t ) + B(t ) = t , ⇒ ⎨ ⎨ ⎩ A(t) = −5t. ⎩ A(t ) + 2 B(t ) = −4t ; Следовательно, в качестве функции u 0 ( x, t) можно взять функцию u 0 ( x,t ) = (6 − 5 x )t . Пример 2. Построить функцию u 0 ( x, t) для задачи с краевыми условиями ∂u (0, t ) ⎧ u ( 0 , t ) + = e −t , ⎪⎪ ∂x (5.22) ⎨ ∂ u ( 2 , t ) − 2t ⎪u (2,t ) − = 2e . ⎪⎩ ∂x Решение. Пусть u 0 ( x, t) = A(t ) , тогда условия (5.22) дают ⎧⎪ A(t ) = e −t , −t −2 t 2 ⇒ e − e ≡ 0, ⎨ ⎪⎩ A(t ) = 2e −2t ; т. е. – несовместную систему. Если теперь u 0 ( x, t) = A(t ) + B(t ) x , то условия (5.22) приводят также к несовместной системе ⎧⎪ A(t ) + B(t ) = e − t , (5.23) ⎨ ⎪⎩ A(t ) + B(t ) = 2e −2t . Полагая u 0 ( x, t) = A(t ) + B(t ) x + С(t) x 2 , снова получаем несовместную систему (5.23). Ищем поэтому u 0 ( x, t) в виде u 0 ( x, t) = A(t ) + B(t ) x + С(t) x 2 + D(t )x 3 . Из условий (5.22) имеем ⎧⎪ A(t ) + B(t ) = е − t , ⇒ ⎨ ⎪⎩ A(t ) + 2 B(t ) + 4С(t) + 8 D(t ) − B(t ) − 4C(t ) − 12D(t) = 2е −2t ; ⇒
⎧⎪ A(t ) + B(t ) = е − t , ⎧⎪ A(t ) + B(t ) = е − t , ⇒ ⎨ ⎨ ⎪⎩ A(t ) + B(t ) − 4 D(t ) = 2е −2t ; ⎪⎩− 4D(t ) = 2е −2t − е −t .
Получили совместную систему. Одним из решений ее будет, например, следующая совокупность функций A(t) =e−t , B(t) = 0, C(t) = 0, D(t) = −0,5e−2t + 0,25e−t . Таким образом, u 0 ( x, t) = e −t + (0,25e −t − 0,5e −2t )x 3 . 61
Пример 3. Построить u 0 ( x, t) и систему из пяти пробных функций для
задачи с краевыми условиями ⎧u (0,t ) = c 2 = const, (5.24) ⎨ ⎩u (l, t) = c3 = const, c 2 ≠ c3. Решение. Если u 0 ( x) = A , то получаем из (5.24) несовместимую систему ⎧ A = c2 , ⎨ ⎩ A = c3 . Если u 0 ( x) = A + Bx , то условия задачи (5.24) дают ⎧ A = c2 , ⎧ A = c2 , ⎪ ↔⎨ ⎨ c3 − c 2 . ⎩ A + lB = c3 , ⎪B = l ⎩ Таким образом, x u 0 ( x) = c2 + (c3 − c 2 ). l В качестве пробных функций можно взять u1 (x ) = x( x − l ), u2 (x ) = x 2 ( x − l ), u3 ( x) = x 3 ( x − l), u 4 ( x) = x 4 ( x − l ), u5 (x ) = x 5 ( x − l ). 5.3. Задание к лабораторной работе
Рассматривается начально-краевая задача. Требуется в плоской области D = {(x ,t ) ∈ R 2 : 0 ≤ x ≤ l , t ≥ 0} найти решение u ( x, t) дифференциального уравнения ∂u ∂ 2u (5.25) = c1 2 , ∂t ∂x удовлетворяющее условиям u (0,t ) = c 2 , u (l ,t ) = c 3; (5.26) c3 − c2 − c4l 2 2 u ( x,0) = f ( x) = c 4 x + x + c 2; (5.27) l где c1 ,c 2 , c3 , c4 – некоторые заданные постоянные величины. Заметим, что эта задача получается как частный случай задачи (5.1)–(5.3) при a = 0, b = l , K( x,t ) ≡ c1, β ( x,t ) ≡ 0, g (x ,t) ≡ 0, a0 = 1, a1 = 0, a2 = c2 , b0 = 1, b1 = 1, b2 = c3. Варианты заданий, определяемые различными наборами значений постоянных c1 ,c 2 , c3 , c4 задачи (5.25)–(5.27) и параметра T , приведенные в таблице 5.1. 62
Таблица 5.1
№ 1 2 3 4 5 6 7 8 9 10
Варианты задания к лабораторной работе l c1 c2 c3 c4 π 0,1 1 3 1 0,5π 0,2 2 4 –1 0,25π 0,4 3 5 1 π 0,1 3 1 –1 0,5π 0,2 4 2 1 0,25π 0,4 5 3 –1 π 0,3 1 2 1 0,5π 0,5 2 3 –1 0,25π 0,6 4 5 1 π 0,7 1 4 –1
T 1 1 1 1 1 1 1 1 1 1
Лабораторная работа выполняется с использованием прикладной системы MathCAD, которая реализует алгоритм построения пробных решений u m ( x, t ) задачи (5.25)–(5.27) методом Галеркина. Перед обращением к программе необходимо подготовить числовые и строчные данные, вводимые в процессе диалога с ЭВМ с клавиатуры дисплея. Числовые данные: l – правый конец отрезка изменения переменной x ; c1 – числовой параметр уравнения (5.25); T – значение параметра T задачи. Строчные данные: аналитические выражения для функции u 0 ( x),u1( x ),...,u5 ( x) ; аналитические выражения поверочных функций w1 (x ),..., w5 (x ) . В результате расчета программа выводит на экран дисплея значения v1 (T ),..., v5 (T ) , таблицы значений пробных решений, таблицы невязок R1( x,T ) и R2 ( x) . В лабораторной работе требуется: 1. Методом Фурье (методом разделения переменных) найти точное аналитически заданное решение U (x ,t ) задачи (5.25)–(5.27) и построить с шагом 0,1l трехзначную таблицу точного решения при t = T , т. е. функции v( x) = U (x ,T ) . 2. Методом Галеркина найти первые пять функций из последовательности пробных решений {un (x ,t )}1∞ , используя нормированные системы пробных и поверочных функций, тип которых задает преподаватель. 3. Исследовать поведение построенных пробных решений, анализируя найденные с помощью ЭВМ таблицы пробных решений, таблицы сравнения с предыдущим пробным решением, таблицы сравнения с точным решением U (x ,T ) , таблицы невязок R1 , R2 . 63
5.4. Выполнение работы в компьютерном классе
1. Прежде чем начать выполнение лабораторной работы на ЭВМ, внимательно ознакомьтесь с данной инструкцией. 2. При необходимости включите сами (или попросите лаборанта) питание компьютера. После того, как система загрузится, запускаем двойным щелчком левой кнопки мыши на рабочем столе программу Mathcad, если же ярлык отсутствует, тогда открываем программу через кнопку «Пуск» (Программы → Mathsoft → Mathcad). 3. Узнайте у лаборанта расположение файла Parab.mcd и откройте его (File → Open или, если программа русифицирована, Файл → Открыть). При любой ошибке ввода программы нужно обратиться к лаборанту. 4. Прочитайте в начале файла задание на лабораторную работу и просмотрите пример выполнения работы, для которого исследование уже проведено. Программа файла Parab.mcd состоит из четырех пунктов «Постановка задачи», «Получение точного решения», «Получение приближенного решения», «Выводы». Цели и задачи каждого из пунктов описаны ниже. 5. Для набора функций нужно либо воспользоваться всплывающим меню инструментов «Calculator», либо ввести ее с клавиатуры, используя следующие символы арифметических действий и стандартных функций: сложение – ‘+’; вычитание – ‘–‘; умножение – ‘*’; деление – ‘/’; возведение в степень – ‘^’; квадратный корень – ‘\’; синус – sin(x); косинус – cos(x); экспонента – exp(x); натуральный логарифм – ln(x). При вводе числовых данных, являющихся десятичными дробями, целую и дробную части нужно разделять точкой (например, 0.5, 1.5 и т. д.). 6. Порядок выполнения работы Вам укажет программа подсказками и заданиями, выделенными красным цветом. 5.5. Порядок выполнения лабораторной работы
1. Повторить раздел 1. Изучить разделы 5.1–5.6 данной главы и подготовить ответы на контрольные вопросы из раздела 5.7. 2. Пройти собеседование с преподавателем; получить номер варианта работы и указания по выбору пробных и поверочных функций. 3. Выполнить первый пункт задания, связанный с построением ряда Фурье для точного решения задачи U (x ,t ) и нахождением длины отрезка этого ряда, обеспечивающую точность решения 0,001. 4. Выполнить подготовительный шаг алгоритма метода Галеркина и, если u 0 ( x) не является точным решением задачи, подготовить все числовые и 64
строчные данные для расчетов и в пункте «Постановка задачи» программы Parab.mcd (прил. Б) ввести их вместо задания рассмотренного примера. 5. В пункте «Получение точного решения» программы ввести найденное в 3-м пункте число слагаемых в разложении в тригонометрический ряд Фурье. Выписать трехзначную таблицу получившегося точного решения U (x ,T ) . 6. В пункте «Получение приближенного решения» рассмотрено применение двух систем пробных и трех систем поверочных функций. По заданию преподавателя ввести вместо задания примера системы пробных V1(k , x) и поверочных W (k , x ) функций, указанных во 2-м пункте (см. приложение Б). Выполнить построение пяти пробных решений задачи, вводя последовательно n=1, …, n=5. Переписать значения vk (T ) (элементы вектора Y100, k программы) и, подставив их, получить первые пять пробных решения. Исследовать поведение построенных пробных решений, анализируя таблицу пробных решений, таблицу сравнения с предыдущим пробным решением, таблицу сравнения с точным решением и таблицы невязок. 7. В пункте «Выводы» приведены максимальные по модулю значения таблицы сравнения с предыдущим пробным решением, таблицы сравнения с точным решением и таблиц невязок при t = T трех комбинаций систем пробных и поверочных функций. 8. Оформить и защитить отчет по лабораторной работе. Отчет должен содержать титульный лист, математическую постановку задачи и ее физическую интерпретацию, основные результаты работы. 5.6. Тестирующий пример
Найти функцию u (x, 1) , удовлетворяющую в области D = {( x,t ) ∈ R 2 : 0 ≤ x ≤ π , t ≥ 0} уравнению и условиям
∂u ∂ 2u = 0,1 2 ∂t ∂x
u (0,t ) = 1,
u (π ,t ) = 2,
⎛1 ⎞ u ( x, 0) = f ( x) = 1 + ⎜ − π ⎟ x + x 2 = 1 − 2. 8233 x + x 2 . ⎝π ⎠
(5.28) (5.29) (5.30)
Задача (5.28)–(5.30) является частным случаем задачи (5.25)–(5.27) при с1 = 0,1, c 2 = 1, c3 = 2, c4 = 1, t = T = 1 . Ее можно интерпретировать как задачу одномерной нестационарной теплопроводности, когда концы стержня поддерживаются при постоянных температурах и известна начальная температура стержня. Найдем точное решение этой задачи методом разделения переменных [4,5]. Известно, что для уравнения теплопроводности с однородными граничными условиями 65
∂u ∂ 2u = с1 2 , ∂t ∂x
(x ,t ) ∈ D = {(x ,t ) ∈ R 2 : 0 ≤ x ≤ l , t ≥ 0}, u (0,t ) = 0, u (l, t) = 0, u ( x,0) = ψ ( x) ,
решение имеет вид ∞
u ( x, t) = ∑ An e
−c1
n2π 2 t l2
n=1
⎛ nπ ⎞ sin⎜ x⎟ , ⎝ l ⎠
(5.31)
где An – коэффициенты Фурье
2l ⎛ nπ ⎞ An = ∫ ψ ( x )sin⎜ x ⎟ dx. (5.32) l0 ⎝ l ⎠ Найдем решение волнового уравнения с неоднородными граничными условиями (6.29)–(6.31). Ищем U (x ,t ) в виде x U (x , t ) = V (x , t ) + 1 + . (5.33) π Тогда из (5.28)–(5.30) для определения функции V ( x, t ) получаем следующую задачу с однородными условиями ∂V ∂ 2V (5.34) = 0,1 2 , ∂t ∂x V (0,t ) = 0 , V (π ,t ) = 0 , (5.35) V ( x,0) = ψ ( x) = x (x − π ). (5.36) Подставляя в (5.31), (5.32) с1 = 0,1, l = π , ψ (x ) = x (x − π ) , получим решение ∞
V ( x, t ) = ∑ Ane −0.1n t sin(nx), 2
n=1
где
2π 2 An = ∫ (x − xπ )sin(nx)dx . π0 Интегрируя два раза по частям, получаем n = 2m; ⎧0, 4 ⎪ n An = 3 (− 1) − 1 = ⎨ 8 πn ⎪⎩− πn 3 , n = 2m − 1. Таким образом, точное решение задачи (5.28)–(5.30) аналитически задается выражением 2 x 8 ∞ e −0,1( 2m−1) t U (x , t ) = 1 + − ∑ sin((2 m − 1) x ) (5.37) π π m=1 (2m − 1)3 Найдем такое значение m = M , при котором функция
(
)
66
x 8 M e − 0,1( 2m−1) U€(x ,1) = 1 + − ∑ sin((2m − 1) x ) (5.38) π π m=1 (2m − 1)3 приближенно с абсолютной точностью ε = 0,001 определяет функцию (5.37) на множестве G = {( x,t ) ∈ D : 0 ≤ x ≤ π , t = T = 1}, т. е. ∀x ∈ [0,π ] : U ( x,1) − U€( x,1) = Δ ≤ 0,001. (5.39) 2
Оценим сверху величину Δ . 2 2 8 ∞ e − 0,1(2 m−1) 8 ∞ e − 0.1( 2m−1) sin((2m − 1) x ) = sin((2m − 1)x ) ≤ Δ= ∑ ∑ π m= M +1 (2m − 1)3 π m= M +1 (2 m − 1)3 8 ∞ e −0,1(2m−1) 8e − 0,1( 2M +1) ∞ (2M + 1)3 −0,1[(2m−1)2 −(2M +1)2 ] e ≤ ≤ ≤ ∑ ∑ π m=M +1 (2m − 1) 3 π (2 M + 1)3 m= M +1 (2m − 1)3 2
2
8e −0,1( 2M +1) ∞ (2 M + 1)3 8e −0,1( 2M +1) −0,1( 2k −2)( 4M +2 k ) e ≤ ≤ × ∑ π (2 M + 1)3 k =1(2 M + 2k − 1)3 π (2M + 1) 3 2
2
⎛ ⎛ 2 M + 1 ⎞ 3 −0, 2( 4M + 4) ⎛ 2 M + 1 ⎞ 3 −0,4( 4M +6) ⎛ 2M + 1 ⎞ 3 −0,6( 4M +8) ⎞ × ⎜1 + ⎜ +⎜ e e e +⎜ + ....⎟ ≤ ⎟ ⎟ ⎟ ⎜ ⎝ 2M + 3 ⎠ ⎟ ⎝ 2M + 5 ⎠ ⎝ 2M + 7 ⎠ ⎝ ⎠
8e −0,1( 2M +1) 8e − 0,1( 2M +1) 1 −0,8( M +1) −1, 6(M +1) ≤ (1 + e +e + ....)= ⋅ = δ (M ). 3 3 −0,8( M +1) π (2M + 1) π (2 M + 1) 1 − e Значит, условие (5.39) будет заведомо выполнено, если 2 8 e −0,1( 2M +1) ⋅ ≤ 0,001. (5.40) δ (M ) = π (2M + 1) 3 1 − e −0, 8(M +1) Найдем подбором наименьшее значение M , при котором выполняется условие (5.40). Получаем 8e −0, 9 δ (1) = = 0,0480 > 0,001, 3,1416 ⋅ 27 ⋅ (1 − e −1, 6 ) δ (2) = 0,0018 > 0,001, δ (3) = 0,0006 < 0,001. Следовательно, M = 3 . Итак, функция 2 3 e − 0,1( 2m−1) x 8 U€(x ,1) = 1 + − ∑ sin((2m − 1) x ) π π m=1 (2m − 1)3 по меньшей мере с точностью ε = 0 ,001 определяет значения функции U (x ,1) на отрезке [0,π ]. В таблице 5.2 представлены четырехзначные значения функции U€(x ,1) . 2
2
67
Таблица 5.2
Таблица точного решения задачи x 0,000 0,314 0,628 0,942 1,257 1,571 1,885 2,199 U€(x ,1) 1,0000 0,3552 – 0,1908 – 0,5743 – 0,7689 – 0,7674 – 0,5689 – 0,1743 x 2,153 2,827 3,142 U€(x ,1) 0,4092 1,1552 2,0000 График точного решения при T = 1 имеет вид
Рис.5.1. График точного решения.
Построим теперь приближенное решение методом Галеркина, выбрав x u 0 ( x) = 1 + , тогда f (x ) − u0 (x ) = x ⋅ ( x − 3,1416) , и используя разные варианты π пробных и поверочных функций. 1 вариант. В качестве пробных и поверочных функций выбираем нормированные функции 1 u k ( x ) = ∗ uk∗ (x ), k = 1,5; (5.41) uk где π 2 π k +1,5 ∗ k ∗ ∗ u k ( x ) = x (x − π ) , . uk = ∫ (u k (x )) dx = (k + 1)(2k + 1)(2 k + 3) 0 30 x ⎛ x ⎞ ⋅ ⎜ − 1⎟ = 0,98364⋅ x ⋅ (0,31831⋅ x − 1), Т. е. u1 = π π ⎝π ⎠ 2 105 ⎛ x ⎞ ⎛ x ⎞ ⋅ ⎜ ⎟ ⎜ − 1⎟ = 0,58576⋅ x 2 ⋅ (0,31831⋅ x −1), u2 = π ⎝π ⎠ ⎝π ⎠ 3
u3 =
252 ⎛ x ⎞ ⎛ x ⎞ ⋅ ⎜ ⎟ ⎜ − 1⎟ = 0, 28885 ⋅ x 3 ⋅ (0,31831 ⋅ x − 1), π ⎝π ⎠ ⎝π ⎠
u4 =
495 ⎛ x ⎞ ⎛ x ⎞ ⋅ ⎜ ⎟ ⎜ − 1⎟ = 0,12886 ⋅ x 4 ⋅ (0,31831 ⋅ x − 1), π ⎝π ⎠ ⎝π ⎠
4
5
858 ⎛ x ⎞ ⎛ x ⎞ u5 = ⋅ ⎜ ⎟ ⎜ − 1⎟ = 0,05400 ⋅ x 5 ⋅ (0,31831 ⋅ x − 1). π ⎝π ⎠ ⎝π ⎠ 68
Основные результаты расчета по программе Parab.mcd при n ≤ 5 представлены в таблицах 5.3–5.5. В приложении Б приведен пример при n = 5 . Таблица 5.3
x 0,000 0,314 0,628 0,942 1,257 1,571 1,885 2,199 2,513 2,827 3,142
Таблица значений пробных решений n=1 n=2 n=3 n=4 1,0000 1,0000 1,0000 1,0000 0,2973 0,2973 0,3522 0,3522 – 0,2270 – 0,2270 – 0,1847 – 0,1847 – 0,5729 – 0,5729 – 0,5693 – 0,5693 – 0,7405 – 0,7405 – 0,7719 – 0,7719 – 0,7296 – 0,7296 – 0,7748 – 0,7748 – 0,5405 – 0,5405 – 0,5719 – 0,5719 – 0,1729 – 0,1729 – 0,1693 – 0,1693 0,3730 0,3730 0,4153 0,4153 1,0973 1,0973 1,1522 1,1522 2,0000 2,0000 2,0000 2,0000
n=5 1,0000 0,3551 – 0,1909 – 0,5741 – 0,7689 – 0,7675 – 0,5689 – 0,1741 0,4091 1,1551 2,0000
Т. е. пробное решение u5 (x,1) = 1 + 0,3183x + 2,454u1 (x) + 1,5038u2 (x) − 2,1978u3 (x) + 1,7511u4 (x ) − 0,655u5 (x) определяет точное решение как минимум с тремя верными значащими цифрами при достаточно малых значениях невязок. Таблица 5.4
Таблица значений невязок R1( x,1) пробных решений x n=1 n=2 n=3 n=4 n=5 0,000 – 0,18073 – 0,18073 – 0,05930 – 0,05930 0,02251 0,314 – 0,09940 – 0,09940 – 0,00476 – 0,00476 – 0,00313 0,628 – 0,03615 – 0,03615 0,00977 0,00977 – 0,00019 0,942 0,00904 0,00904 0,00521 0,00521 0,00200 1,257 0,03615 0,03615 – 0,00351 – 0,00351 – 0,00013 1,571 0,04518 0,04518 – 0,00741 – 0,00741 – 0,00176 1,885 0,03615 0,03615 – 0,00351 – 0,00351 – 0,00013 2,199 0,00904 0,00904 0,00521 0,00521 0,00200 2,513 – 0,03615 – 0,03615 0,00977 0,00977 – 0,00019 2,827 – 0,09940 – 0,09940 – 0,00476 – 0,00476 – 0,00313 3,142 – 0,18073 – 0,18073 – 0,05930 – 0,05930 0,02251
Таблица 5.5
x 0,000 0,314 0,628 0,942
Таблица значений невязок R2 ( x) пробных решений n=1 n=2 n=3 n=4 n=5 0 0 0 0 0 0 2,776 ⋅ 10−15 1,099 ⋅ 10−14 1,946 ⋅ 10−13 – 1,079⋅ 10−13 0 4,219 ⋅ 10−15 1,488 ⋅ 10−14 1,981 ⋅ 10−13 – 5,596⋅ 10−14 0 4,441 ⋅ 10−15 1,421 ⋅ 10−14 1,044 ⋅ 10−13 – 2,061⋅ 10−13 69
1,257 0 3,553 ⋅ 10−15 1,110 ⋅ 10−14 – 2,132⋅ 10−14 – 4,610⋅ 10−13 1,571 0 2,665 ⋅ 10−15 7,550 ⋅ 10−15 – 1,297⋅ 10−13 – 5,329⋅ 10−13 1,885 0 1,332 ⋅ 10−15 6,217 ⋅ 10−15 – 1,958⋅ 10−13 – 1,754⋅ 10−13 2,199 0 0 3,997 ⋅ 10−15 – 2,083⋅ 10−13 6,382 ⋅ 10−13 2,513 0 0 3,997 ⋅ 10−15 – 1,699⋅ 10−13 1,566 ⋅ 10−12 2,827 1,110 ⋅ 10−15 0 3,442 ⋅ 10−15 – 9,315⋅ 10−14 1,799 ⋅ 10−12 3,142 0 0 0 0 0 Анализ данных в таблицах 5.3–5.5 позволяет предположить, что имеет место равномерная сходимость последовательности пробных решений к точному решению. Наилучшее приближение дает u 5 ( x,1) , для которого max u 5 ( x,1) − U ( x,1) ≤ 0,000156, max u5 ( x ,1) − u 4 ( x,1) ≤ 0,007272, x
x
max R1 ( x,1) ≤ 0,0225, x
max R2 (x ) ≤ 2 ⋅ 10-12 . x
2 вариант. В качестве пробных возьмем функции (5.39), а в качестве
поверочных – нормированные многочлены Лежандра, которые ортогональны на отрезке [0,π ], т. е. функции 1 wk (x ) = P (x ),k = 1,5; Pk −1 (x ) k −1 где 2⎛ 2⎞ P0 ( x) = 1, P1 (x ) = ⎜ x − ⎟, π⎝ π⎠ 2 ⎞ 1 ⎛⎜ ⎛ 2 ⎛ π ⎞⎞ P2 ( x) = 3⎜ ⎜ x − ⎟ ⎟ − 1⎟, ⎟ 2 ⎜⎝ ⎝ π ⎝ 2 ⎠⎠ ⎠ 3 1 ⎛⎜ ⎛ 2 ⎛ π ⎞⎞ π ⎞ ⎞⎞ ⎛ 2⎛ P3 (x ) = 5⎜ ⎜ x − ⎟ ⎟ − 3⎜ ⎜ x − ⎟ ⎟ ⎟, 2 ⎜⎝ ⎝ π ⎝ 2 ⎠⎠ 2 ⎠ ⎠ ⎟⎠ ⎝π ⎝ 4 2 ⎞ π ⎞⎞ π ⎞⎞ ⎛ 2⎛ 1 ⎛⎜ ⎛ 2 ⎛ P4 ( x ) = 35⎜ ⎜ x − ⎟ ⎟ − 30⎜ ⎜ x − ⎟ ⎟ + 3 ⎟, ⎟ 8 ⎜⎝ ⎝ π ⎝ 2 ⎠⎠ 2 ⎠⎠ ⎝π ⎝ ⎠ 1
⎛ π ⎞2 || Pk ||= ∫ (Pk (x ))2 dx = ⎜ ⎟ . + 2 k 1 ⎝ ⎠ 0 π
Таким образом, w1 ( x) = 0.5642 , w2 ( x) = 0.9772 ⋅ (0.6366x − 1) , w3 ( x ) = 0.6308⋅ (3 ⋅ (0.636x − 1)2 − 1) , w4 ( x) = 0.7464 ⋅ (0.6366 ⋅ x − 1) ⋅ (5 ⋅ (0.6366 ⋅ x − 1)2 − 3) , 70
w5 ( x ) = 0.2116 ⋅ (35⋅ (0.6366 ⋅ x − 1)4 − 30 ⋅ (0.6366 ⋅ x − 1)3 + 3) . Основные результаты расчета по программе при n ≤ 5 представлены в таблицах 5.6–5.8. Таблица 5.6.
x 0,000 0,314 0,628 0,942 1,257 1,571 1,885 2,199 2,513 2,827 3,142
Таблица значений пробных решений n=1 n=2 n=3 n=4 1,0000 1,00000 1,00000 1,00000 0,3134 0,31343 0,36687 0,36687 – 0,1983 – 0,19835 – 0,17349 – 0,17349 – 0,5353 – 0,53533 – 0,56847 – 0,56847 – 0,6975 – 0,69752 – 0,78049 – 0,78049 – 0,6849 – 0,68492 – 0,78700 – 0,78700 – 0,4975 – 0,49752 – 0,58049 – 0,58049 – 0,1353 – 0,13533 – 0,16847 – 0,16847 0,4017 0,40165 0,42651 0,42651 1,1134 1,11343 1,16687 1,16687 2,0000 2,00000 2,00000 2,00000
n=5 1,00000 0,35417 – 0,19068 – 0,57366 – 0,76889 – 0,76785 – 0,56889 – 0,17366 0,40932 1,15417 2,00000 Таблица 5.7.
x 0,000 0,314 0,628 0,942 1,257 1,571 1,885 2,199 2,513 2,827 3,142
Таблица значений невязок R1 (x ,1) пробных решений n=1 n=2 n=3 n=4 n=5 – 0,17710 – 0,17710 – 0,02673 – 0,02673 0,01211 – 0,08147 – 0,08147 0,00623 0,00623 – 0,00474 – 0,00708 – 0,00708 0,01090 0,01090 0,00208 0,04605 0,04605 0,00302 0,00302 0,00354 0,07793 0,07793 – 0,00620 – 0,00620 – 0,00098 0,08855 0,08855 – 0,01002 – 0,01002 – 0,00378 0,07793 0,07793 – 0,00620 – 0,00620 – 0,00098 0,04605 0,04605 0,00302 0,00302 0,00354 – 0,00708 – 0,00708 0,01090 0,01090 0,00208 – 0,08147 – 0,08147 0,00623 0,00623 – 0,00474 – 0,17710 – 0,17710 – 0,02673 – 0,02673 0,01211 Таблица 5.8.
Таблица значений невязок R2 ( x) пробных решений x n=1 n=2 n=3 n=4 n=5 0,000 0 0 0 0 0 0,314 0 0 0 0 – 2,78⋅ 10−15 0,628 0 0 0 0 – 2,22⋅ 10−15 0,942 0 0 0 0 0 1,257 0 0 0 0 1,78 ⋅ 10−15 1,571 0 0 0 0 4,00 ⋅ 10−15 71
1,885 0 0 0 0 4,44 ⋅ 10−15 2,199 0 0 0 0 3,55 ⋅ 10−15 2,513 0 0 0 0 1,55 ⋅ 10−15 2,827 0 0 0 0 – 1,33⋅ 10−15 3,142 0 0 0 0 0 Наилучшее приближение к точному решению дает пробное решение u 5 ( x,1) , для которого max | u5 (x ,1) − U ( x,1) |≤ 0,001, max | u5 (x ,1) − u4 ( x ,1) |≤ 0,02 x
x
max | R1( x,1) |≤ 0,012,
max | R2 (x ) |≤ 4,44 ⋅ 10-15.
x
x
Таким образом, пробное решение u5 (x,1) = 1 + 0,318x + 2,4678u1(x ) + 1,4224u2 (x) − 2,0088u3( x) + 1,5563u4 (x) − 0.591u5 (x) определяет точное решение с тремя верными значащими цифрами. 3 вариант. В качестве пробных и поверочных функций выбираем
нормированные функции
u k ( x) =
1 ∗ uk (x ), k = 1,5; u k∗
где u k (x ) = sin((2k − 1)x ), u k = ∫ (u k∗ (x )) dx = ∗
Т. е. u1 (x ) = 0,7979 ⋅ sin(x ), u 2 ( x) = 0,7979 ⋅ sin(3x ), u 3 (x ) = 0,7979 ⋅ sin(5 x), u 4 ( x) = 0,7979 ⋅ sin(7 x ), u 5 (x ) = 0,7979 ⋅ sin(9 x ), Основные результаты таблицах 5.9–5.11. x 0,000 0,314 0,628 0,942 1,257 1,571 1,885 2,199 2,513
∗
π
0
2
π . 2
u1′′(x ) = −0,7979 ⋅ sin(x ); u′2′ (x ) = −7,181⋅ sin(3x ); u ′3′ (x ) = −19,95 ⋅ sin(5x ); u′4′ ( x ) = −39,10 ⋅ sin(7 x); u′5′ ( x) = −64,63 ⋅ sin(9 x). расчета по программе при n ≤ 5 представлены в
Таблица значений пробных решений n=1 n=2 n=3 n=4 1,000000 1,000000 1,000000 1,000000 0,387979 0,356957 0,355284 0,355240 – 0,154345 – 0,190814 – 0,190814 – 0,190761 – 0,564096 – 0,575945 – 0,574273 – 0,574290 – 0,791376 – 0,768838 – 0,768838 – 0,768870 – 0,804150 – 0,765804 – 0,767477 – 0,767421 – 0,591376 – 0,568838 – 0,568838 – 0,568870 – 0,164096 – 0,175945 – 0,174273 – 0,174290 0,445655 0,409186 0,409186 0,409239
Таблица 5.9
n=5 1,000000 0,355239 – 0,190760 – 0,574291 – 0,768869 – 0,767422 – 0,568869 – 0,174291 0,409240 72
2,827 3,142
1,187979 2,000000
1,156957 2,000000
1,155284 2,000000
1,155240 2,000000
1,155239 2,000000 Таблица 5.10
Таблица значений невязок R1 (x ,1) пробных решений x n=1 n=2 n=3 n=4 n=5 0,000 0 0 0 0 0 − 13 − 13 − 13 − 13 − 13 0,314 – 2,12⋅ 10 – 2,22⋅ 10 – 2,42⋅ 10 – 2,52⋅ 10 – 2,58⋅ 10 − 14 − 14 − 14 − 14 0,628 – 7,17⋅ 10 – 7,80⋅ 10 – 7,79⋅ 10 – 6,65⋅ 10 – 5,50⋅ 10−14 0,942 – 4,90⋅ 10−14 – 5,00⋅ 10−14 – 2,93⋅ 10−14 – 3,29⋅ 10−14 – 4,87⋅ 10−14 1,257 – 2,47⋅ 10−15 0 0 – 7,30⋅ 10−15 1,12 ⋅ 10−14 1,571 1,33 ⋅ 10−14 1,83 ⋅ 10−14 – 2,33⋅ 10−15 9,66 ⋅ 10−15 – 9,85⋅ 10−15 1,885 – 1,76⋅ 10−14 – 1,55⋅ 10−14 – 1,56⋅ 10−14 – 2,27⋅ 10−14 – 4,16⋅ 10−15 2,199 – 8,13⋅ 10−15 – 9,99⋅ 10−15 1,06 ⋅ 10−14 6,91 ⋅ 10−15 – 8,80⋅ 10−15 2,513 – 1,47⋅ 10−14 – 1,95⋅ 10−14 – 1,93⋅ 10−14 – 7,91⋅ 10−15 3,52 ⋅ 10−15 2,827 3,97 ⋅ 10−15 0 – 2,07⋅ 10−14 – 3,04⋅ 10−14 – 3,65⋅ 10−14 3,142 0 0 0 0 0 Результаты расчета свидетельствуют о равномерной сходимости последовательности пробных решений. Наилучшее приближение дает u 5 (x ,1) , для которого max | u5 (x ,1) − U ( x,1) |≤ 1,06 ⋅ 10-8 , max | u5 (x ,1) − u4 ( x ,1) |≤ 1,06 ⋅ 10-6 x
x
max R1 ( x,1) ≤ 2,6 ⋅ 10 , -13
x
max R2 (x ) ≤ 0,0024 x
и которое определяется формулой u 5 (x ,1) = 1 + 0,318x − 2,888u1 (x ) − 0,0481u 2 ( x) − 0,0021u 3 (x ) − − 0,00007u 4 ( x) − 0,000001u5 ( x). Таблица 5.11
x 0,000 0,314 0,628 0,942 1,257 1,571 1,885 2,199 2,513 2,827 3,142
Таблица значений невязок R2 ( x) пробных решений n=1 n=2 n=3 n=4 n=5 0,000000 0,000000 0,000000 0,000000 0,000000 0,101359 0,025057 0,004686 – 0,001321 – 0,002400 0,082354 – 0,007344 – 0,007344 – 0,000283 0,001770 0,012472 – 0,016673 0,003699 0,001405 – 0,001421 – 0,053140 0,002296 0,002296 – 0,002068 0,001254 – 0,079078 0,015236 – 0,005136 0,002288 – 0,001205 – 0,053140 0,002296 0,002296 – 0,002068 0,001254 0,012472 – 0,016673 0,003699 0,001405 – 0,001421 0,082354 – 0,007344 – 0,007344 – 0,000283 0,001770 0,101359 0,025057 0,004686 – 0,001321 – 0,002400 0,000000 0,000000 0,000000 0,000000 0,000000 73
5.7. Вопросы для самоконтроля
1. Приведите физические интерпретации задачи (5.1)–(5.3). 2. Найдите решение задачи (5.1)–(5.3) с условиями (5.5) методом разделения переменных. 3. Найдите решение задачи (5.1)–(5.3) с условиями (5.5) операционным методом, используя преобразование Лапласа. 4. Каким условиям должны удовлетворять пробные функции? 5. Какими свойствами должны обладать поверочные функции? 6. Как находятся, согласно алгоритма метода Галеркина для решения задачи (5.1)–(5.3), функции R1 и R2 , названные невязками? 7. Как строиться система линейных обыкновенных дифференциальных уравнений для определения коэффициентов vk (t ) пробного решения? Постройте эту систему для задачи (5.1)–(5.3). 8. Как определяются начальные условия в задаче Коши относительно функций vk (t) ? Найти уравнения, определяющие эти условия для задачи (5.1)–(5.3). 9. Какие условия обеспечивают сходимость в среднем последовательности пробных решений к точному решению задачи (5.1)–(5.3)? 10.Приведите конкретный пример пробных функций для задачи (5.1)–(5.3). 11.Как нормировать пробную или поверочную функцию на отрезке [a, b]? 12.Как проверить ортогональность функций на [a, b]? 13.Как проверить ортонормированность функций на [a, b]? 14.Опишите алгоритм аналитического метода решения задач Коши для нормальной системы линейных обыкновенных дифференциальных уравнений. 15.Опишите алгоритм метода Рунге-Кутта для приближенного решения задачи Коши для нормальной системы линейных обыкновенных дифференциальных уравнений.
74
6. Решение начально-краевой задачи для одномерного гиперболического уравнения методом Галеркина 6.1. Постановка задачи и алгоритм метода
Рассмотрим следующую начально-краевую задачу. Требуется в плоской области D = {(x ,t ) ∈ R 2 : a ≤ x ≤ b, t ≥ 0} найти решение U (x ,t ) дифференциального уравнения ∂2u ∂u ∂2u ∂u L[u( x, t)] = 2 + γ (x ,t ) − K1 (x ,t ) 2 − K 2 ( x, t ) − β (x ,t )u = g ( x, t ), (6.1) ∂t ∂x ∂t ∂x удовлетворяющее двум краевым (граничным) условиям ∂u(a ,t ) ⎧ + = a 2 (t ), ( , ) a u a t a 0 1 ⎪ ∂ x (6.2) ⎨ ∂u (b, t ) ⎪ b0u (b, t ) + b1 = b2 (t ), ∂x ⎩ и начальным условиям u ( x,0) = f (x ) , (6.3) ∂u ( x,0) = ϕ( x) , (6.4) ∂t где γ ( x ,t ) , K1 ( x, t) ( K1 ≥ 0 ), K 2 (x , t) , β (x ,t ) , g (x ,t ) – заданные, непрерывные на D функции; a2 (t ) , b2 (t ) – дифференцируемые на [0, ∞ ) функции; a0 , a1 , b0 , b1 – заданные действительные числа, причем a02 + a12 > 0 , b02 + b12 > 0 ; f (x ) – заданная функция, непрерывная на [a, b] вместе с f ′(x) и такая, что ⎧a0 f (a) + a1 f ′(a ) = a 2 (0), ⎨ ⎩ b0 f (b) + b1 f ′ (b) = b2 (0); ϕ (x ) – заданная функция, непрерывная на [a, b] вместе со своей производной и такая, что da2 (0) ⎧ ′ a a a a ( ) ( ) , ϕ ϕ + = 0 1 ⎪ dt ⎨ db (0) ⎪ b0ϕ (b) + b1ϕ ′ (b) = 2 . dt ⎩ Напомним, что в такой форме может быть поставлена задача о поперечных колебаниях струны или задача о продольных или крутильных колебаниях стержня, рассмотренная в разделе 1. В методе Галеркина для нахождения приближенного решения задачи (6.1)– (6.4) строится функциональная последовательность {u n (x ,t )}∞0 из пробных 75
решений u n ( x, t) следующим образом. Задаемся в области D некоторой системой дважды дифференцируемых функций u 0 ( x, t), u1 ( x), ..., un (x ) таких, что u 0 ( x, t) удовлетворяет краевым условиям (6.2), а пробные функции u i (x) (i ≥ 1) являются линейно независимыми на [a, b ] и удовлетворяют однородным краевым условиям ⎧ a0 u ( a) + a1u ′( a ) = 0, ⎨ ⎩b0 u( b) + b1u ′( b) = 0.
(6.5)
Составляем функцию n
u n ( x, t ) = u0 ( x, t ) + ∑ vk (t ) uk ( x) k =1
(6.6)
с неизвестными пока функциями v1 (t),...,vn (t) , зависящими только от аргумента t. Подчеркнем, что в силу линейности условий (6.2) и (6.5), функция (6.6) удовлетворяет условиям (6.2) при любых функциях v1 (t ),...,v n (t ) . Значит, следует так определить vi (t ) (i ≥ 1) и количество (n) этих функций, чтобы u n ( x, t ) из (6.6) удовлетворяла уравнению (6.1) и начальным условиям (6.3), (6.4) с заданной точностью. Подставляя u n ( x, t ) вместо u ( x, t) в уравнение (6.1) , получаем невязку ⎛ ∂ 2 vk ∂ vk ⎞ ∂ 2u 0 ∂u0 ⎟uk ( x ) + − + γ ( , ) x t R1 ( v1 ( t ),..., vn (t ) , x , t ) = ∑ ⎜⎜ 2 + γ ( x , t ) 2 ∂t ⎟⎠ ∂t ∂t k =1⎝ ∂t n n n ⎛ ∂ 2 u0 ⎞ ⎛ ∂u ⎞ ⎛ ⎞ − K1 ( x, t ) ⎜⎜ 2 + ∑ vk u′k′ ⎟⎟ − K 2 ( x, t ) ⎜ 0 + ∑ vk u ′k ⎟ − β ( x , t )⎜ u0 + ∑ v k uk ⎟ − g ( x, t ) k =1 ⎝ ∂x k =1 ⎠ ⎝ ⎠ k =1 ⎝ ∂x ⎠ n
или n n ∂ vk ∂ 2v k γ u − ∑ k − ∑ ( K 1u′k′ + K 2u ′k + β uk )vk − 2 t t ∂ ∂ = = k 1 k =1 k 1 ⎛ ∂ 2 u0 ∂u0 ∂ 2 u0 ∂u0 ⎞ ⎜ ⎟. β γ K u g − ⎜ K1 + + + − − 2 0 2 ⎟ 2 x t ∂ ∂ ∂x ∂t ⎝ ⎠ n
R1 ( v1 ,..., vn , x, t ) = ∑ uk
(6.7)
Подставляя u n (x,0) в (6.3), находим невязку n
R2 (v1(0),...,v n (0), x ) = u0 (x ,0) + ∑ v k (0)uk ( x) − f ( x ) . k =1
∂u n ( x ,0) , находим невязку ∂t ∂u ( x, 0) n R3 ( v&1 (0),..., v& n (0), x ) = 0 + ∑ v& k ( 0)u k ( x ) − ϕ ( x ) . ∂t k =1
(6.8)
Подставляя
(6.9)
Невязки R1 , R2 и R3 являются характеристиками уклонения функции (6.6) от точного решения U (x ,t ) задачи (6.1)–(6.4). Во всяком случае, если при некотором наборе функций v j (t ) R1 ≡ 0 , R2 ≡ 0 и R3 ≡ 0 , то функция u n ( x, t ) из (6.6) – точное решение. 76
В общем случае эти невязки оказываются отличными от нуля. Поэтому накладываем дополнительные условия на функции vk (t ) и их начальные значения vk (0) , v&k (0) , так, чтобы невязки в каком-то смысле были бы наименьшими. В обобщенном методе Галеркина эти условия определяются системами уравнений: (R1(v1 (t ),...,vn (t ), x,t ), wk ( x) ) = 0, k = 1, n; (6.10) (R2 (v1(0),...,vn (0), x), wk ( x)) = 0, k = 1, n; (6.11) (R3 (v&1 (0),...,v&n (0), x), wk ( x)) = 0, k = 1, n; (6.12) где w1 (x ),..., wn ( x) – заданные линейно независящие на [a, b] поверочные функции; а b
(V ( x),W (x)) = ∫ V ( x)W ( x)dx . a
Напомним здесь, что если поверочные функции w1 (x ),..., wn ( x) входят в полную на [a, b] систему функций, то можно ожидать сходимости последовательности {un (x ,t )}∞0 в среднем к точному решению U (x ,t ) [1]. Запишем условия (6.10) в развернутом виде ⎛ n dv j n d 2v j n ⎜ ∑ u j (x ) γ u + − ∑ (K1u ′j + K 2u′j + βu j )v j − ∑ j 2 ⎜ j =1 dt dt j =1 j =1 ⎝ ⎞ ⎛ ∂ 2u0 ∂u 0 ∂ 2u0 ∂u ⎞ − ⎜⎜ K1 2 + K2 + βu0 + g ( x, t) − 2 − γ 0 ⎟⎟ , wk ( x ) ⎟⎟ = 0, ∂x ∂t ⎠ ∂x ∂t ⎝ ⎠
или ⎛ n dv j n d 2v j n ⎜ ∑ (u j , wk ) ( γ ) u , w + − ∑ (K1u ′′j + K2u ′j + βu j , wk )v j − ∑ j k 2 ⎜ j =1 dt dt j =1 j =1 ⎝ ⎞ ⎛ ∂ 2u ∂u ∂ 2u ∂u ⎞ − ⎜⎜ K1 20 + K 2 0 + βu 0 + g (x ,t ) − 20 − γ 0 ⎟⎟, wk (x ) ⎟⎟ = 0, ∂x ∂t ⎠ ∂x ∂t ⎝ ⎠
или n
d 2v j
j =1
dt 2
∑ akj
n
+ ∑ hkj j =1
dv j n − ∑ c v = bk , k = 1, n; dt j =1 kj j
(6.13)
где akj = (u j , wk ) = ∫ u j ( x )wk ( x )dx, b
(6.14)
a b
hkj (t ) = ∫ γ ( x, t)u j ( x)wk ( x)dx,
(6.15)
a
77
ckj (t ) = ∫ (K1u′j′ + K2u ′j + βu j )wk dx, b
(6.16)
a
∂ 2u 0 ∂u ⎞ ∂ u0 ∂u0 bk (t ) = ∫ ⎜⎜ K1 2 + K 2 + βu 0 + g ( x,t ) − 2 − γ 0 ⎟⎟ wk (x )dx, ∂t ⎠ ∂x ∂t ∂x a⎝ k = 1, n, j = 1, n. b⎛
2
(6.17)
Если ввести в рассмотрение матрицы A = (a kj )n , H = (hkj )n , C = (ckj )n , B = (bk )n,1, V = (v j )n,1 , то система (6.13) в матричном виде запишется так d 2V dV A 2 = −H + CV + B. dt dt Так как матрица A невырожденная, то отсюда получаем d 2V dV ⎛ ⎞ (6.18) = A−1⎜ − H + CV + B ⎟. 2 dt dt ⎝ ⎠ Заметим, что если функции γ ( x ,t ), K1 (x ,t ), K2 (x ,t ), β ( x, t ) зависят только от x , то система (6.18) – система с постоянными коэффициентами. Заметим так же, что если в качестве поверочных функций выбраны пробные, которые ортогональны, то матрицы A и A−1 являются диагональными матрицами. Запишем теперь в развернутом виде условия (6.11). Получаем n ⎛ ⎞ ⎜⎜ u 0 (x ,0) + ∑ v j (0)u j (x ) − f ( x), wk (x ) ⎟⎟ = j =1 ⎝ ⎠ = ∑ (u j ( x ),wk ( x) )v j (0) + (u0 ( x,0) − f ( x), wk (x )) = 0 n
j =1
или
∑ (u j (x), wk ( x))v j (0) = ( f ( x) − u 0 ( x,0), wk (x)), k = 1, n; n
j =1
или n
∑ akj v j (0) = d k , k = 1, n; j =1
(6.19)
где akj определяются формулами (6.14), а b
d k = ( f ( x) − u 0 ( x,0), wk (x )) = ∫ ( f ( x) − u 0 ( x,0) )wk ( x )dx.
(6.20)
a
Если ввести матрицу D = (d k )n,1 , то из (6.19) получаем V (0) = A−1D Теперь запишем в развернутом виде условия (6.12). Получаем
(6.21)
78
⎛ ∂u0 ( x,0) n dv j (0) ⎞ ⎜⎜ +∑ u j (x ) − ϕ ( x), wk (x ) ⎟⎟ = j =1 dt ⎝ ∂t ⎠ = ∑ (u j ( x ),wk ( x) ) n
j =1
dv j (0) ⎛ ∂u 0 ( x,0) ⎞ +⎜ − ϕ ( x), wk ( x ) ⎟ = 0 dt ⎝ ∂t ⎠
или
dv j (0 ) = rk , k = 1, n; (6.22) dt j =1 где akj определяются формулами (6.14), а ∂u (x ,0) ∂u (x ,0) ⎞ ⎛ ⎞ b⎛ rk = ⎜ ϕ (x ) − 0 , wk (x ) ⎟ = ∫ ⎜ ϕ (x ) − 0 (6.23) ⎟ w (x )dx. ∂t ∂t ⎠ k ⎝ ⎠ a⎝ Если ввести матрицу R = (rk )n,1 , то из (6.22) получаем dV (0) = A−1R. (6.24) dt Заметим, что если ϕ (x ) ≡ 0 и u 0 ( x, t) зависят только от x , то v&k (0) = 0, k = 1, n и R3 ≡ 0. Таким образом, для нахождения функций vk (t ), k = 1, n , определяющих пробное решение (6.6), получаем задачу Коши для канонической системы (6.18) линейных обыкновенных дифференциальных уравнений порядка 2n с начальными условиями (6.21) и (6.24). Решив указанную задачу Коши и подставив определяемые этим решением функции vk (t ) в (6.6), заканчиваем построение пробного решения u n ( x, t ) . Опишем возможный алгоритм построения приближенного решения задачи (6.1)–(6.4) методом Галеркина, предполагая, что последовательность {un (x ,t )}1∞ сходится равномерно к точному решению U (x ,t ) . 1. Подготовительный шаг алгоритма. На этом шаге выбираем функцию u 0 ( x, t) и находим невязку R10 ( x ,t ) = L[u0 ] − g ( x, t ) от подстановки функции u 0 ( x, t) в уравнение (6.1). Находим невязку R20 ( x ) = u0 ( x,0) − f ( x) для условия ∂u ( x,0) − ϕ ( x) для условия (6.4). Определяем (6.3) и невязку R30 ( x) = 0 ∂t max R10 ( x, t) = Δ10 , max R20 ( x ) = Δ 20 и max R30 (x ) = Δ 30 . Если Δ10 ≤ ε1 , Δ 20 ≤ ε 2 n
∑ akj
D
[a,b ]
[a,b]
и Δ 30 ≤ ε 3 , где ε 1 , ε 2 и ε 3 – заданные меры точности приближенного решения, ~ u0 (x ,t ) . В противном случае переходим к следующему то полагаем U (x ,t ) − шагу алгоритма, предварительно выбрав пробные u j (x ) и поверочные wk (x ) функции. Как выбирать пробные и поверочные функции, показано в разделе 5.2 данной работы. 2. Первый шаг алгоритма. Определив функцию v1 (t ) из решения задачи Коши (6.18), (6.21) и (6.24) при n = 1 , строим функцию u1 (x ,t ) = u0 + v1(t )u1( x) . 79
Находим по формулам (6.7)–(6.9) невязки R11 (v1 (t), x,t ), R21 (v1(0), x ), R31 (v&1(0), x ) и определяем max R11 (v1 , x, t ) = Δ 11 , max R21 (v1 (0), x ) = Δ 21 и D
max R31 (v&1(0), x ) = Δ 31 . Если Δ11 ≤ ε 1 , Δ 21 ≤ ε 2
[a,b]
и
[a,b]
Δ 31 ≤ ε 3 , то полагаем
U (x ,t ) ~− u1( x, t) и вычисления заканчиваем. В противном случае переходим к вычислениям на втором шаге алгоритма и т. д. Таким образом, на m-м (m ≥ 1) шаге алгоритма строим функцию m
u m ( x, t ) = u0 ( x, t ) + ∑ vk (t )uk ( x) , k =1
определив предварительно функции v1 (t ),...,v m (t ) из решения задачи Коши (6.18), (6.21), (6.24) при n = m . Находим по формулам (6.7)–(6.9) невязки R1m (v1 (t ),...,v m (t), x,t ), R2m (v1(0),..., vm (0), x ), R3m (v&1 (0),..., v&m (0), x ) , а затем вычисляем max R1m = Δ 1m , max R2m = Δ 2m , max R3m = Δ 3m . Если D
[a,b]
[a,b]
~ u m ( x,t ) , в противном случае Δ1m ≤ ε1 , Δ 2m ≤ ε 2 , Δ 3m ≤ ε 3 , то полагаем U (x ,t ) − переходим к (m + 1) -му шагу алгоритма. 6.2. Задание к лабораторной работе
Рассматривается начально-краевая задача. Требуется в плоской области D = {(x ,t ) ∈ R 2 : 0 ≤ x ≤ l , t ≥ 0} найти решение u ( x, t) дифференциального уравнения ∂ 2u ∂ 2u c (6.25) = 1 2, ∂t 2 ∂x удовлетворяющее условиям u (0,t ) = c 2 , u (l ,t ) = c 3; (6.26) c3 − c2 − c4l 2 2 u ( x,0) = f ( x) = c 4 x + x + c 2; (6.27) l ∂u ( x,0) = ϕ (x ) = 0; (6.28) ∂t где c1 ,c 2 , c3 , c4 – некоторые заданные постоянные величины. Заметим, что эта задача получается как частный случай задачи (6.1)–(6.4) при a = 0, b = l, γ ( x ,t ) ≡ 0, K1( x, t ) ≡ c1 , K 2 ( x,t ) ≡ 0, β (x, t ) ≡ 0, g (x ,t ) ≡ 0, ϕ (x ) ≡ 0, a0 = 1, a1 = 0, a2 = c2 , b0 = 1, b1 = 0, b2 = c 3. Варианты заданий, определяемые различным набором значений постоянных c1 ,c 2 , c3 , c4 задачи (6.25)–(6.27) и параметра T , приведены в таблице 6.1. 80
Таблица 6.1
№ 1 2 3 4 5 6 7 8 9 10
Варианты задания к лабораторной работе l c1 c2 c3 c4 3 9 0,1 – 0,1 1 2 4 – 0,1 0,1 –1 1 1 0,1 0,2 1 3 4/9 0,2 0,1 –1 2 9 – 0,1 0,1 1 1 4 0,1 – 0,1 –1 2 9 – 0,1 – 0,2 1 3 1/4 – 0,1 0,1 –1 1 4/9 0,2 0,1 1 3 4 0,1 0,2 –1
T 1 1 1 1 1 1 1 1 1 1
Лабораторная работа выполняется с использованием прикладной системы MathCAD, которая реализует алгоритм построения пробных решений u m ( x, t ) задачи (6.25)–(6.28) методом Галеркина. Перед обращением к программе необходимо подготовить числовые и строчные данные, вводимые в процессе диалога с ЭВМ с клавиатуры дисплея. Числовые данные: l – правый конец отрезка изменения переменной x ; c1 – числовой параметр уравнения (6.25); c2 , c3 ,c 4 – числовые параметры условий (6.26), (6.27); T – значение параметра T задачи; Строчные данные: аналитические выражения для функции u 0 ( x),u1( x ),...,u5 ( x) ; аналитические выражения поверочных функций w1 (x ),..., w5 (x ) ; В результате расчета программа выводит на экран дисплея значения v1 (T ),..., v5 (T ) , таблицы значений пробных решений, таблицы невязок R1( x,T ) и R2 ( x) . Заметим, что для рассматриваемой задачи R3 ( x ) ≡ 0 . В лабораторной работе требуется: 1. Методом Фурье (методом разделения переменных) найти точное аналитически заданное решение U (x ,t ) задачи (6.25)–(6.28) и построить с шагом 0,1l трехзначную таблицу точного решения при t = T , т. е. функции U (x , T ) . 2. Методом Галеркина найти первые пять функций из последовательности пробных решений {un (x ,T )}1∞ , используя нормированные системы пробных и поверочных функций, тип которых задает преподаватель. 3. Исследовать поведение построенных пробных решений, анализируя найденные с помощью ЭВМ таблицы пробных решений, таблицы сравнения с
81
предыдущим пробным решением, таблицы сравнения с точным решением, таблицы невязок R1 , R2 и R3 . 6.3. Выполнение работы в компьютерном классе
1. Прежде чем начать выполнение лабораторной работы на ЭВМ, внимательно ознакомьтесь с данной инструкцией. 2. При необходимости включите сами (или попросите лаборанта) питание компьютера. После того, как система загрузится, запускаем двойным щелчком левой кнопки мыши на рабочем столе программу Mathcad, если же ярлык отсутствует, тогда открываем программу через кнопку «Пуск» (Программы → Mathsoft → Mathcad). 3. Узнайте у лаборанта расположение файла Giperb.mcd и откройте его (File → Open или, если программа русифицирована, Файл → Открыть). При любой ошибке ввода программы нужно обратиться к лаборанту. 4. Прочитайте в начале файла задание на лабораторную работу и просмотрите пример выполнения работы, для которого исследование уже проведено. Программа файла Giperb.mcd состоит из четырех пунктов «Постановка задачи», «Получение точного решения», «Получение приближенного решения», «Выводы». Цели и задачи каждого из пунктов описаны ниже. 5. Для набора функций нужно либо воспользоваться всплывающим меню инструментов «Calculator», либо ввести ее с клавиатуры, используя следующие символы арифметических действий и стандартных функций: сложение – ‘+’; вычитание – ‘–‘; умножение – ‘*’; деление – ‘/’; возведение в степень – ‘^’; квадратный корень – ‘\’; синус – sin(x); косинус – cos(x); экспонента – exp(x); натуральный логарифм – ln(x). При вводе числовых данных, являющихся десятичными дробями, целую и дробную части нужно разделять точкой (например, 0.5, 1.5 и т. д.). 6. Порядок выполнения работы Вам укажет программа подсказками и заданиями, выделенными красным цветом. 6.4. Порядок выполнения лабораторной работы
1. Повторить разделы 1.2, 5.2, изучить разделы 6.1–6.5 данной работы и подготовить ответы на контрольные вопросы из раздела 6.6. 2. Пройти собеседование с преподавателем; получить номер варианта работы и указания по выбору пробных и поверочных функций. 3. Выполнить первый пункт задания, связанный с построением ряда Фурье для точного решения задачи U (x ,t ) и нахождением длины отрезка этого ряда, обеспечивающую точность решения 0,001. 82
4. Выполнить подготовительный шаг алгоритма метода Галеркина и, если u 0 ( x) не является точным решением задачи, подготовить все числовые и строчные данные для расчетов и в пункте «Постановка задачи» программы Giperb.mcd (см. прил. В) ввести их вместо задания рассмотренного примера. 5. В пункте «Получение точного решения» программы ввести найденное в 3-м пункте число слагаемых в разложении в тригонометрический ряд Фурье. Выписать трехзначную таблицу получившегося точного решения U (x ,T ) . 6. В пункте «Получение приближенного решения» рассмотрено применение двух систем пробных и трех систем поверочных функций. По заданию преподавателя ввести вместо задания примера системы пробных V1(k , x) и поверочных W (k , x ) функций, указанных во 2-м пункте (см. приложение В). Выполнить построение пяти пробных решений задачи, вводя последовательно n=1, …, n=5. Переписать значения vk (T ) (элементы вектора Y100, k программы) и, подставив их, получить первые пять пробных решения. Исследовать поведение построенных пробных решений, анализируя таблицу пробных решений, таблицу сравнения с предыдущим пробным решением, таблицу сравнения с точным решением и таблицы невязок. 7. В пункте «Выводы» приведены максимальные по модулю значения таблицы сравнения с предыдущим пробным решением, таблицы сравнения с точным решением и таблиц невязок при t = T трех комбинаций систем пробных и поверочных функций. 8. Оформить и защитить отчет по лабораторной работе. Отчет должен содержать титульный лист, математическую постановку задачи и ее физическую интерпретацию, основные результаты работы. 6.5. Тестирующий пример
Найти функцию u (x,1) , удовлетворяющую в области D = {(x ,t ) ∈ R 2 : 0 ≤ x ≤ π , t ≥ 0} уравнению ∂ 2u ∂ 2u (6.29) = ∂t 2 ∂x 2 и условиям u (0,t ) = 1, u (π ,t ) = 2, (6.30) ∂u ( x,0) ⎛1 ⎞ u ( x,0) = f ( x) = 1 + ⎜ − π ⎟ x + x 2 = 1 − 2,8233x + x 2 , = 0 . (6.31) ∂t ⎝π ⎠ Задача (6.29)–(6.31) является частным случаем задачи (6.25)–(6.28) при с1 = 1, с2 = 1 , с3 = 2 , с4 = 1 , t = T = 1. Ее можно интерпретировать как задачу о поперечных колебаниях струны с закрепленными концами и с начальным профилем, определяемым равенством (6.31). 83
Найдем точное решение этой задачи методом разделения переменных [4,5]. Известно, что для волнового уравнения с однородными граничными условиями ∂ 2u ∂ 2u (x ,t ) ∈ D = {(x ,t ) ∈ R 2 : 0 ≤ x ≤ l , t ≥ 0}, = с1 2 , 2 ∂t ∂x u (0,t ) = 0, u (l, t) = 0, ∂u ( x,0) u ( x,0) = ψ ( x) , = ϕ (x ) ∂t решение имеет вид ∞ ⎛ ⎛ nπ c1 ⎞ ⎛ nπ c1 ⎞ ⎞ ⎛ nπ ⎞ U (x ,t ) = ∑ ⎜ An cos⎜⎜ t ⎟⎟ + Bn sin⎜⎜ t ⎟⎟ ⎟ sin⎜ x , (6.32) ⎟ ⎝ l ⎟⎠ ⎜ l l n=1 ⎝ ⎠ ⎝ ⎠⎠ ⎝ где An , Bn – коэффициенты Фурье 2l 2 l ⎛ nπ ⎞ ⎛ nπ ⎞ An = ∫ ψ ( x )sin⎜ x ⎟ dx, Bn = (6.33) ∫ ϕ (x) sin⎜ x ⎟ dx, l0 nπ 0 ⎝ l ⎠ ⎝ l ⎠ Найдем решение волнового уравнения с неоднородными граничными условиями (6.29)–(6.31). Ищем U (x ,t ) в виде x U (x ,t ) = V ( x, t ) + 1 + . (6.34) π Тогда из (6.29)–(6.31) для определения функции V ( x, t ) получаем следующую задачу с однородными граничными условиями ∂ 2V ∂ 2V (6.35) = 2, ∂t 2 ∂x V (0, t) = 0 , V (π , t) = 0 , (6.36) ∂V ( x,0) (6.37) V ( x,0) = x (x − π ) , = 0. ∂t Подставляя в (6.32), (6.33) с1 = 1, l = π , ψ (x ) = x( x − π ), ϕ ( x ) = 0 , получим решение ∞
V ( x, t ) = ∑ ( An cos(nt ) + Bn sin(nt ))sin(nx) , n =1
где
2π 2 ∫ ( x − xπ ) sin(nx)dx , Bn = 0 . π0 Интегрируя два раза по частям, получаем n = 2 m; ⎧⎪ 0, 4 n An = 3 (( −1) − 1) = ⎨ 8 πn ⎪⎩− πn 3 , n = 2m − 1. Таким образом, точное решение задачи (6.29)–(6.31) аналитически задается выражением An =
84
x 8 ∞ cos((2m − 1)t ) − ∑ sin((2m −1) x ). (6.38) π π m=1 (2 m − 1)3 Найдем такое значение m = M , при котором функция x 8 M cos(2m − 1) U€(x ,1) = 1 + − ∑ sin((2m − 1)x ) (6.39) π π m=1 (2m − 1)3 приближенно с абсолютной точностью ε = 0,001 определяет функцию (6.38) на множестве G = {( x,t ) ∈ D : 0 ≤ x ≤ π , t = T = 1}, т. е. ∀x ∈ [0,π ] :|U (x ,1) − U€(x ,1) |= Δ ≤ 0,001. (6.40) Оценим сверху величину Δ . 8 ∞ cos(2m − 1) 8 ∞ 1 Δ= − ≤ ( ) m x sin ( 2 1 ) | sin((2m − 1) x )|≤ ∑ ∑ 3 π m= M +1 ( 2m − 1) π m=M +1 (2m − 1) 3 U (x , t ) = 1 +
⎞∞ 8 ∞ 1 8 ∞ dx 8 1⎛ 1 2 ⎜ ⎟ = ≤ ≤ ∫ = − . ∑ ⎜ 3 3 2⎟ π m= M +1 (2m − 1) π M (2 x − 1) π 4 ⎝ (2x − 1) ⎠ M π (2 M − 1)2 Значит, условие (6.40) будет заведомо выполнено, если 2 ≤ 0,001. (6.41) δ (M ) = π (2M − 1)2 Подбором устанавливаем, что наименьшее значение M при котором выполняется условие (6.41), равно 14. Итак, функция x 8 14 cos(2m − 1) U€( x,1) = 1 + − ∑ sin((2m − 1) x) π π m=1 (2 m − 1)3 гарантированно с точностью ε = 0,001 определяет значения функции U (x ,1) на отрезке [0,π ] . В таблице 6.2 представлены шестизначные значения функции U€( x,1) . Таблица 6.2
x U€( x,1) x U€( x,1)
Таблица точного решения задачи 0,000 0,314 0,628 0,942 1,257 1,571 1,885 1,000000 0,741356 0,482725 0,223927 0,031342 0,032573 0,231342 2,199 2,153 2,827 3,142 0,623927 1,082725 1,541356 2,000000
График точного решения при T = 1 имеет вид
85
Рис.6.1. График точного решения.
Построим теперь приближенное решение методом Галеркина, выбрав x u 0 ( x) = 1 + , тогда f (x ) − u0 (x ) = x ⋅ ( x − 3,1416) , и используя разные варианты π пробных и поверочных функций. 1 вариант. В качестве пробных и поверочных функций выбираем нормированные функции 1 u k ( x ) = ∗ uk∗ (x ), k = 1,5; (6.42) uk где u ∗k ( x ) = x k (x − π ) ,
π k +1⋅5 . uk = ∫ (u k (x )) dx = (k + 1)(2k + 1)(2 k + 3) 0 30 x ⎛ x ⎞ ⋅ ⎜ − 1⎟ = 0,98364⋅ x ⋅ (0,31831⋅ x − 1), u1 = π π ⎝π ⎠ ∗
Т. е.
π
∗
2
2
105 ⎛ x ⎞ ⎛ x ⎞ ⋅ ⎜ ⎟ ⎜ − 1⎟ = 0.58576⋅ x 2 ⋅ (0,31831⋅ x − 1), u2 = π ⎝π ⎠ ⎝π ⎠ 3
252 ⎛ x ⎞ ⎛ x ⎞ ⋅ ⎜ ⎟ ⎜ − 1⎟ = 0.28885⋅ x 3 ⋅ (0,31831⋅ x − 1), u3 = π ⎝π ⎠ ⎝π ⎠ 4
495 ⎛ x ⎞ ⎛ x ⎞ ⋅ ⎜ ⎟ ⎜ − 1⎟ = 0.12886⋅ x 4 ⋅ (0,31831⋅ x − 1), u4 = π ⎝π ⎠ ⎝π ⎠ 5
858 ⎛ x ⎞ ⎛ x ⎞ ⋅ ⎜ ⎟ ⎜ − 1⎟ = 0.05400⋅ x 5 ⋅ (0,31831⋅ x − 1). u5 = π ⎝π ⎠ ⎝π ⎠ Основные результаты расчета по программе Giperb.mcd при n ≤ 5 представлены в таблицах 6.3–6.5. В приложении В приведен пример при n = 5 . Анализ данных в таблицах 6.3–6.5 позволяет предположить, что имеет место равномерная сходимость последовательности пробных решений к точному решению. Наилучшее приближение дает u 5 (x ,1) , для которого max u5 ( x,1) − U (x ,1) ≤ 0,010454, max u5 ( x,1) − u 4 ( x,1) ≤ 0,043315, x
x
86
max R1 ( x,1) ≤ 3,381705, max R2 ( x) ≤ 1,799227⋅ 10-12. x
x
Т. е. пробное решение u 0 ( x,1) = 1 + 0,31831x + 1,489131u1 (x ) − 2,09062u 2 ( x) + 9,087395u 3 (x ) − − 11,042085u4 (x ) + 4,193533u5 ( x ) определяет точное решение как минимум с одной верной значащей цифрой. Таблица 6.3
x 0,000 0,314 0,628 0,942 1,257 1,571 1,885 2,199 2,513 2,827 3,142
Таблица значений пробных решений n=1 n=2 n=3 n=4 1,000000 1,000000 1,000000 1,000000 0,625000 0,625000 0,776539 0,776539 0,355556 0,355556 0,470224 0,470224 0,191668 0,191668 0,197106 0,197106 0,133335 0,133335 0,040077 0,040077 0,180557 0,180557 0,048875 0,048875 0,333335 0,333335 0,240077 0,240077 0,591668 0,591668 0,597106 0,597106 0,955556 0,955556 1,070224 1,070224 1,425000 1,425000 1,576539 1,576539 2,000000 2,000000 2,000000 2,000000
n=5 1,000000 0,733225 0,489275 0,224840 0,033727 0,022119 0,233727 0,624840 1,089275 1,533225 2,000000 Таблица 6.4
x 0,000 0,314 0,628 0,942 1,257 1,571 1,885 2,199 2,513 2,827 3,142
Таблица значений невязок R1 (x,1)пробных решений n=1 n=2 n=3 n=4 n=5 – 1,069500 – 1,069500 2,323290 2,323290 – 3,381705 – 0,588225 – 0,588225 0,186328 0,186328 0,469857 – 0,213900 – 0,213900 – 0,382878 – 0,382878 0,028352 0,053475 0,053475 – 0,203985 – 0,203985 – 0,300400 0,213900 0,213900 0,137539 0,137539 0,019262 0,267375 0,267375 0,290411 0,290411 0,264196 0,213900 0,213900 0,137539 0,137539 0,019262 0,053475 0,053475 – 0,203985 – 0,203985 – 0,300400 – 0,213900 – 0,213900 – 0,382878 – 0,382878 0,028352 – 0,588225 – 0,588225 0,186328 0,186328 0,469857 – 1,069500 – 1,069500 2,323290 2,323290 – 3,381705
Таблица 6.5
x 0,000 0,314 0,628
Таблица значений невязок R2 ( x) пробных решений n=1 n=2 n=3 n=4 n=5 0 0 0 0 0 − 15 − 14 − 13 0 2,776 ⋅ 10 1,099 ⋅ 10 1,946 ⋅ 10 – 1,080⋅ 10−13 0 4,219 ⋅ 10−15 1,488 ⋅ 10−14 1,981 ⋅ 10−13 – 5,596⋅ 10−13 87
0,942 0 1,257 0 1,571 0 1,885 0 2,199 0 2,513 0 2,827 1,110 ⋅ 10−15 3,142 0
4,441 ⋅ 10−15 3,552 ⋅ 10−15 2,665 ⋅ 10−15 1,332 ⋅ 10−15 0 0 0 0
1,421 ⋅ 10−14 1,110 ⋅ 10−14 7,550 ⋅ 10−15 6,217 ⋅ 10−15 3,997 ⋅ 10−15 3,997 ⋅ 10−15 3,442 ⋅ 10−15 0
1,044 ⋅ 10−13 – 2,132⋅ 10−14 – 1,297⋅ 10−13 – 1,958⋅ 10−13 – 2,083⋅ 10−13 – 1,699⋅ 10−13 – 9,315⋅ 10−14 0
– 2,061⋅ 10−13 – 4,610⋅ 10−13 – 5,329⋅ 10−13 – 1,754⋅ 10−13 6,382 ⋅ 10−13 1,566 ⋅ 10−12 1,780 ⋅ 10−12 0
2 вариант. В качестве пробных возьмем функции (6.40), а в качестве
поверочных – нормированные многочлены Лежандра, которые ортогональны на отрезке [0,π ], т. е. функции 1 wk (x ) = P ( x ), k = 1,5; Pk −1 (x ) k−1 где P0 ( x) = 1, 2⎛ 2⎞ P1 (x ) = ⎜ x − ⎟, π⎝ π⎠ 2 ⎞ π ⎞⎞ 1 ⎛⎜ ⎛ 2 ⎛ P2 ( x) = 3⎜ ⎜ x − ⎟ ⎟ − 1⎟, ⎟ 2 ⎜⎝ ⎝ π ⎝ 2 ⎠⎠ ⎠ 3 π ⎞ π ⎞⎞ 1⎛ ⎛ 2 ⎛2 P3 (x ) = ⎜ 5⎜ ⎛⎜ x − ⎞⎟ ⎟ − 3⎜ ⎛⎜ x − ⎞⎟ ⎟ ⎟, 2 ⎠ ⎠ ⎟⎠ 2 ⎠⎠ 2 ⎜⎝ ⎝ π ⎝ ⎝π ⎝ 4 2 ⎞ π ⎞⎞ π ⎞⎞ ⎛ 2⎛ 1 ⎛⎜ ⎛ 2 ⎛ P4 ( x ) = 35⎜ ⎜ x − ⎟ ⎟ − 30⎜ ⎜ x − ⎟ ⎟ + 3 ⎟, ⎟ 8 ⎜⎝ ⎝ π ⎝ 2 ⎠⎠ 2 ⎠⎠ ⎝π ⎝ ⎠ 1 ⎞2
⎛ π || Pk ||= ∫ (Pk (x ))2 dx = ⎜ ⎟ . ⎝ 2k + 1 ⎠ 0 π
Таким образом, w1 ( x) = 0.5642 , w2 ( x) = 0.9772 ⋅ (0.6366x − 1) , w3 ( x ) = 0.6308⋅ (3 ⋅ (0.6366x − 1)2 − 1) , w4 ( x) = 0.7464 ⋅ (0.6366 ⋅ x − 1) ⋅ (5 ⋅ (0.6366 ⋅ x − 1)2 − 3) , w5 ( x ) = 0.2116 ⋅ (35⋅ (0.6366 ⋅ x − 1)4 − 30 ⋅ (0.6366 ⋅ x − 1)3 + 3) . Основные результаты расчета по программе при n ≤ 5 представлены в таблицах 6.6–6.8. 88
Наилучшее приближение к точному решению дает пробное решение u 5 ( x,1) , для которого max u5 ( x,1) − U (x ,1) ≤ 0,029854, max u5 ( x,1) − u 4 ( x,1) ≤ 0,046971, x
x
max R1( x,1) ≤ 1,340616, max R2 (x ) ≤ 4,440892⋅ 10−15. x
x
Таким образом, пробное решение u 5 (x ,1) = 1 + 0,31831x + 0,877496u1( x) + 1,613380u 2 ( x ) + 0,366355u3 ( x) − − 2.008929u4 (x ) − 0,729460u 5 (x ) определяет точное решение с одной верной значащей цифрой. Таблица 6.6
x 0,000 0,314 0,628 0,942 1,257 1,571 1,885 2,199 2,513 2,827 3,142
Таблица значений пробных решений n=1 n=2 n=3 n=4 1,000000 1,000000 1,000000 1,000000 0,699192 0,699192 0,724389 0,724389 0,487453 0,487453 0,428745 0,428745 0,364782 0,364782 0,190694 0,190694 0,331179 0,331179 0,065685 0,065685 0,386645 0,386645 0,086985 0,086985 0,531179 0,531179 0,265685 0,265685 0,764782 0,764782 0,590694 0,590694 1,087453 1,087453 1,028745 1,028745 1,499192 1,499192 1,524389 1,524389 2,000000 2,000000 2,000000 2,000000
n=5 1,000000 0,771210 0,475716 0,202456 0,037656 0,042128 0,237656 0,602456 1,075716 1,571210 2,000000 Таблица 6.7
x 0,000 0,314 0,628 0,942 1,257 1,571 1,885 2,199 2,513 2,827 3,142
Таблица значений невязок R1 (x ,1) пробных решений n=1 n=2 n=3 n=4 n=5 – 0,902452 – 0,902452 1,195500 1,195500 1,340616 – 0,415128 – 0,415128 – 0,278552 – 0,278552 – 0,525248 – 0,036098 – 0,036098 – 0,487764 – 0,487764 0,230715 0,234637 0,234637 – 0,135092 – 0,135092 0,392313 0,397079 0,397079 0,277356 0,277356 – 0,108022 0,451226 0,451226 0,448313 0,448313 – 0,418943 0,397079 0,397079 0,277356 0,277356 – 0,108022 0,234637 0,234637 – 0,135092 – 0,135092 0,392313 – 0,036098 – 0,036098 – 0,487764 – 0,487764 0,230715 – 0,415128 – 0,415128 – 0,278552 – 0,278552 – 0,525248 – 0,902452 – 0,902452 1,195500 1,195500 1,340616 Таблица 6.8. 89
Таблица значений невязок R2 ( x) пробных решений x n=1 n=2 n=3 n=4 n=5 0,000 0 0 0 0 0 0,314 0 0 0 0 – 2,775558⋅ 10−15 0,628 0 0 0 0 – 2,220446⋅ 10−15 0,942 0 0 0 0 0 1,257 0 0 0 0 1,776357 ⋅ 10−15 1,571 0 0 0 0 3,996803 ⋅ 10−15 1,885 0 0 0 0 4,440892 ⋅ 10−15 2,199 0 0 0 0 3,552714 ⋅ 10−15 2,513 0 0 0 0 1,554312 ⋅ 10−15 2,827 0 0 0 0 – 1,332268⋅ 10−15 3,142 0 0 0 0 0 3 вариант. В качестве пробных и поверочных функций выбираем нормированные функции 1 u k ( x ) = ∗ uk∗ (x ), k = 1,5; uk где π 2 π ∗ ∗ u k ( x ) = sin((2k − 1)x ), uk = ∫ (u ∗k (x )) dx = . 2 0 Т. е. u1 (x ) = 0,7979 ⋅ sin(x ); u 2 ( x) = 0,7979 ⋅ sin(3x ); u 3 (x ) = 0,7979 ⋅ sin(5 x); u4 ( x ) = 0,7979 ⋅ sin(7 x ); u5 ( x ) = 0,7979 ⋅ sin(9 x). Основные результаты расчета по программе при n ≤ 5 представлены в таблицах 6.9–6.11.
Таблица 6.9
x 0,000 0,314 0,628 0,942 1,257 1,571 1,885 2,199 2,513 2,827 3,142
Таблица значений пробных решений n=1 n=2 n=3 n=4 1,000000 1,000000 1,000000 1,000000 0,674833 0,750371 0,744593 0,740064 0,391285 0,480085 0,480085 0,485408 0,186899 0,215752 0,221531 0,219801 0,091471 0,036590 0,036590 0,033300 0,124131 0,030761 0,024983 0,030580 0,291471 0,236590 0,236590 0,233300 0,586899 0,615752 0,621531 0,619801 0,991285 1,080085 1,080085 1,085408 1,474833 1,550371 1,544593 1,540064 2,000000 2,000000 2,000000 2,000000
n=5 1,000000 0,741048 0,483538 0,222376 0,030273 0,033762 0,230273 0,622376 1,083538 1,541048 2,000000 Таблица 6.10 90
x 0,000 0,314 0,628 0,942 1,257 1,571 1,885 2,199 2,513 2,827 3,142
Таблица значений невязок R1 (x ,1) пробных решений n=1 n=2 n=3 n=4 0,000 0,000 0,000 0,000 −12 −12 −12 – 1,265⋅ 10 – 1,145⋅ 10 – 1,255⋅ 10 – 1,328⋅ 10−12 – 4,277⋅ 10−13 – 4,290⋅ 10−13 – 4,259⋅ 10−13 – 3,237⋅ 10−13 – 2,922⋅ 10−13 – 3,177⋅ 10−13 – 1,881⋅ 10−13 – 2,185⋅ 10−13 – 1,465⋅ 10−14 2,709 ⋅ 10−14 2,154 ⋅ 10−14 – 3,264⋅ 10−14 7,971 ⋅ 10−14 1,230 ⋅ 10−13 – 8,438⋅ 10−15 8,971 ⋅ 10−14 – 1,048⋅ 10−13 – 5,751⋅ 10−14 – 6,284⋅ 10−14 – 1,179⋅ 10−13 – 4,863⋅ 10−14 – 5,418⋅ 10−14 6,994 ⋅ 10−14 4,119 ⋅ 10−14 – 8,782⋅ 10−14 – 1,297⋅ 10−13 – 1,267⋅ 10−13 – 3,808⋅ 10−14 2,376 ⋅ 10−14 – 9,048⋅ 10−13 – 1,355⋅ 10−13 – 2,238⋅ 10−13 0,000 0,000 0,000 0,000
n=5 0,000 – 1,391⋅ 10−12 – 2,521⋅ 10−13 – 3,337⋅ 10−13 1,110 ⋅ 10−13 – 6,350⋅ 10−14 0,000 – 7,161⋅ 10−14 4,258 ⋅ 10−14 – 2,544⋅ 10−13 0,000 Таблица 6.11
Таблица значений невязок R2 ( x) пробных решений n=1 n=2 n=3 n=4 n=5 0,000000 0,000000 0,000000 0,000000 0,000000 0,101359 0,025057 0,004686 – 0,001321 – 0,002400 0,082354 – 0,007344 – 0,007344 – 0,000283 0,001770 0,012472 – 0,016673 0,003699 0,001405 – 0,001421 – 0,053140 0,002296 0,002296 – 0,002068 0,001254 – 0,079078 0,015236 – 0,005136 0,002288 – 0,001205 – 0,053140 0,002296 0,002296 – 0,002068 0,001254 0,012472 – 0,016673 0,003699 0,001405 – 0,001421 0,082354 – 0,007344 – 0,007344 – 0,000283 0,001770 0,101359 0,025057 0,004686 – 0,001321 – 0,002400 0,000000 0,000000 0,000000 0,000000 0,000000
x 0,000 0,314 0,628 0,942 1,257 1,571 1,885 2,199 2,513 2,827 3,142
Наилучшее приближение к точному решению дает пробное решение u 5 ( x,1) , для которого max u5 ( x,1) − U (x ,1) ≤ 0,001551, max u5 ( x,1) − u 4 ( x,1) ≤ 0,003183, x
x
max R1 (x ,1) ≤ 1,39129⋅ 10−12 , max R2 ( x ) ≤ 0,0024. x
x
Таким образом, пробное решение u 5 (x ,1) = 1 + 0,31831x − 1,724395u1 (x ) + 0,117022u 2 ( x) − 0,007243u3 ( x ) − − 0,007015u4 ( x ) + 0,003989u5 (x ) определяет точное решение с тремя верными значащими цифрами. 6.6. Вопросы для самоконтроля 91
1. Приведите физические интерпретации задачи (6.1)–(6.4). 2. Каким условиям должны удовлетворять пробные функции? 3. Какими свойствами должны обладать поверочные функции? 4. Как находятся, согласно алгоритму метода Галеркина для решения задачи (6.1)–(6.4), функции R1 , R2 и R3 , названные невязками? 5. Как строиться система линейных обыкновенных дифференциальных уравнений для определения коэффициентов vk (t ) пробного решения? Постройте эту систему для задачи (6.1)–(6.4). 6. Как определяются начальные условия в задаче Коши относительно функций vk (t ) ? Найти уравнения, определяющие эти условия для задачи (6.1)– (6.4). 7. Приведите конкретный пример пробных функций для задачи (6.1)–(6.4). 8. Как нормировать пробную или поверочную функцию на отрезке [a, b]? 9. Как проверить ортогональность функций на [a, b]? 10.Как проверить ортонормированность функций на [a, b]? 11.Опишите алгоритм аналитического метода решения задач Коши для нормальной системы линейных обыкновенных дифференциальных уравнений. 12.Опишите алгоритм сведения канонической системы обыкновенных дифференциальных уравнений к равносильной нормальной системе.
92
7. Решение первой краевой задачи для двухмерного эллиптического уравнения методом Галеркина 7.1. Постановка задачи и алгоритм метода
Рассмотрим следующую задачу. Требуется в плоской замкнутой области D найти функцию u ( x, y ) , удовлетворяющую внутри D уравнению ∂ 2u ∂ 2u ∂u ∂u K1( x, y ) 2 + K2 ( x, y ) 2 + K3 (x, y) + K 4 (x, y) + K 5 (x, y) ⋅ u = f (x, y), (7.1) ∂x ∂y ∂x ∂y а на границе Г D области D – краевому условию u (M )
M ∈Г D
= g (M ) ,
(7.2)
где K1 (x, y ) (K1 > 0), K 2 ( x, y) ( K2 > 0), K3 ( x, y), K 4 ( x, y), K5 (x, y ), f (x , y), g (M ) – заданные непрерывные функции. Напомним, что в такой форме может быть поставлена первая краевая задача двухмерной стационарной теплопроводности, рассмотренная в разделе 1. Заметим, что частным случаем задачи (7.1)–(7.2) является задача Дирихле на плоскости [1]. В методе Галеркина для нахождения приближенного решения задачи (7.1)– (7.2) строится функциональная последовательность {u n ( x, y )}∞0 из пробных решений u n ( x, y ) следующим образом. Зададим в области D некоторую систему дважды дифференцируемых функций v0 ( x, y ) , v1 ( x, y ) , ..., v n ( x, y ) таких, что v0 ( x, y ) удовлетворяет краевому условию (7.2), а пробные функции vi (x , y ) ( i ≥ 1 ) являются линейно независимыми на D и удовлетворяют однородному граничному условию vi (M ) M ∈Г D = 0 . (7.3) Составляем функцию n
u n ( x, y ) = v 0 ( x, y ) + ∑ Ck ⋅ v k ( x, y ) k =1
(7.4)
с неизвестными пока постоянными коэффициентами Ck . Заметим, что, в силу линейности относительно u ( x, y ) граничного условия (7.2), функция (7.4) при любых значениях C1,..., Cn удовлетворяет ему. Подставляя u n ( x, y ) из (7.4) вместо u ( x, y ) в уравнение (7.1), получаем функцию n
Rn ( x, y , C1,..., Cn ) = L[v 0 ] + ∑ C k L[v k ] − f ( x, y ) k =1
(7.5)
где введено обозначение ∂ 2v ∂ 2v ∂v ∂v L(v ) ≡K 1⋅ 2 + K2 2 + K3 + K4 + K5 ⋅ v . ∂x ∂y ∂x ∂y 93
Функцию (7.5) называют невязкой. Она линейно зависит от параметров C1 ,..., Cn и является характеристикой уклонения u n ( x, y ) от точного решения U (x , y ) задачи. Если невязка (7.5) тождественно равна нулю внутри области D , то U (x , y ) = u n (x , y ) . В общем случае невязка оказывается отличной от нуля и, следуя Галеркину, значения параметров C1 ,..., Cn определяем из системы уравнений (Rn (x, y, C1 ,..., Cn ),W k ( x, y)) = 0 , k = 1, n , (7.6) где (v( x, y), g ( x, y)) = ∫∫ v( x, y) ⋅ g ( x, y)dxdy (7.7) D
является скалярным произведением двух функций, а Wk (x , y ) – заданные непрерывные и линейно независимые на D функции, называемые поверочными. Заметим, что в качестве поверочных функций можно взять пробные. Если Wk (x , y ) входят в полную систему функций, то при n → ∞ из равенств (7.6) следует сходимость невязки к нулю в среднем. Запишем условие (7.6) в развернутом виде, для определения значений параметров C k получаем неоднородную систему линейных алгебраических уравнений n -го порядка n
∑ a kj ⋅ C j = bk , k = 1, n , j =1
где
(7.8)
a kj = (L[v j ],Wk ) = ∫∫ L[v j ] ⋅ Wk dxdy, D
b k = ( f − L[v o ],Wk ) = ∫∫ ( f − L[v 0 ]) ⋅ Wk dxdy.
(7.9)
D
Решив систему (1.8) и подставив определяемые этим решением значения C k в (7.4), заканчиваем построение пробного решения u n ( x, y ) . Опишем возможный алгоритм приближенного решения задачи (7.1), (7.2) методом Галеркина, предполагая, что последовательность u n ( x, y ) сходится поточечно к U (x , y ) . 1. Подготовительный шаг алгоритма. На этом шаге выбираем функцию v0 ( x, y ) , пробные функции v1 ( x, y ) , ..., v n ( x, y ) и поверочные функции W1 ( x, y ) , ..., Wn ( x, y ) . Заметим, что пробные и поверочные функции можно строить или выбирать, руководствуясь соображениями, аналогичными описанными в работах [2], [3]. Находим функцию R0 (x , y) = L[v 0 ] − f ( x, y ) , т. е. невязку от подстановки u 0 ( x, y ) в уравнение (7.1). Если ∀( x, y ) ∈ D : R0 ( x, y ) = 0 , то v0 ( x, y ) = U ( x, y ) и вычисление заканчиваем. Если же R0 (x , y ) ≡ 0 , то переходим к следующему шагу алгоритма.
94
2. Первый шаг алгоритма. Строим функцию u1 = v 0 ( x, y ) + C1 ⋅ v1 (x , y) , определив значение C1 из решения системы (7.8) при n = 1. Находим невязку R1 (x , y, C1 ) = L[v 0 ] − f ( x, y ) + C1L[v1] = R0 ( x, y ) + C1L[v1] . Если R1 (x , y, C1 ) ≡ 0 , то U = u1 ( x, y ) и задача решена, если же R1( x, y, C1 ) ≡ 0 , то находим max u1( x, y ) − v 0 ( x, y ) = Δ 1 . Если Δ 1 ≤ ε , где ε – заданная мера точности D
приближенного решения, то полагаем U (x , y) ≈ u1 ( x, y ) и вычисления заканчиваем. Если же Δ1 > ε , то переходим к вычислениям на следующем шаге и т. д. Таким образом, на m-м шаге ( m ≥ 1 ) строим функцию m
u m (x , y) = v 0 (x , y) + ∑ Ci v i ( x, y ) , i =1
определив значения C1 ,..., Cm из решения системы (7.8) при n = m , и определяем невязку m
Rm ( x , y, C1 ,..., C m ) = R0 ( x, y ) + ∑ Ci L(vi ) . i =1
Если Rm ( x , y, C1 ,..., C m ) ≡ 0 , то U (x , y) = u m ( x, y ) и вычисления заканчиваем. Если Rm ( x, y, C1 ,...,Cm ) ≡ 0 , то находим Δ m = max um −u m−1 . Если Δ m ≤ ε , то D
U (x , y) ≈ u m ( x, y ) , если же Δ m > ε , то переходим к (m + 1) -му шагу. 7.2. Задание к лабораторной работе
Требуется в плоской области (прямоугольник) D = {(x , y ) ∈ R 2 : 0 ≤ x ≤ a, 0 ≤ y ≤ b} найти функцию u ( x, y ) , удовлетворяющую внутри дифференциальному уравнению ∂ 2 u ∂ 2u + 2 = cxy , 2 ∂x ∂y а на границе области D − краевому условию u ( x, y ) (x , y)∈Г D = d ,
области
D (7.10)
(7.11)
где a, b, c, d – некоторые заданные числовые параметры задачи, а Г D – граница области D (контур прямоугольника). Заметим, что эта задача является частным случаем задачи (7.1)–(7.2), при K1 = 1 , K 2 = 1 , K 3 = K 4 = K5 = 0 , f (x , y) = c ⋅ xy . Ее можно интерпретировать как задачу двумерной стационарной теплопроводности, когда граница плоской замкнутой области поддерживается при постоянной температуре и задана плотность тепловых источников внутри области. Варианты заданий, определяемые различными наборами значений параметров задачи приведены в таблице 7.1. 95
Таблица 7.1
№ 1 2 3 4 5 6 7 8 9 10
a 3 π 1 π 4 3 2 π 1 π
Варианты заданий к лабораторной работе b c d № a b π 2 5 11 π 3 3 1 6 12 2 2 1 –2 10 13 1 1 π 1 6 14 4 4 4 –1 9 15 2 2 3 π 4 16 3 3 2 3 8 17 2 2 π –3 3 18 4 4 1 2 3 19 π π π –2 2 20 1 1
c –2 1 2 –1 –1 –2 8 –2 2 2
d –6 –5 9 1 9 3 3 1 8 –4
Лабораторная работа выполняется на ЭВМ с использованием математически ориентированной среды MathCAD для реализации алгоритма построения пробных решений u m (x , y) для задачи (7.10)–(7.11). Перед обращением к программе необходимо подготовить числовые и строчные данные, вводимые с клавиатуры в процессе диалога с программой. Числовые данные: a – правый конец отрезка изменения переменной x ; b – правый конец отрезка изменения переменной y ; c и d – численные значения параметров из уравнения (7.10) и условия (7.11). Строчные данные: – аналитические выражения для функций v *k (x , y) , которые программа нормирует автоматически; – аналитические выражения для поверочных функций Wk (x , y) . В лабораторной работе требуется: 1. Используя двойные ряды Фурье, найти точное аналитически заданное решение U (x , y) задачи (7.10)–(7.11). Определить длину отрезка этого ряда, обеспечивающую точность решения 0.001, и с помощью ЭВМ построить с шагами hx = 0.1a , h y = 0.1b трехзначную таблицу этого решения. 2. С помощью ЭВМ методом Галеркина найти первые три функции из последовательности пробных решений {u n (x , y)}1∞ , используя те системы пробных и поверочных функций, которые укажет преподаватель. 3. Исследовать поведение построенных пробных решений, анализируя найденные с помощью ЭВМ таблицы пробных решений, таблицы сравнения с предыдущим пробным решением и таблицы сравнения с точным решением. 7.3. Выполнение работы в компьютерном классе
96
1. Прежде чем начать выполнение лабораторной работы на ЭВМ, внимательно ознакомьтесь с данной инструкцией. 2. При необходимости включите сами (или попросите лаборанта) питание компьютера. После того, как система загрузится, запускаем двойным щелчком левой кнопки мыши на рабочем столе программу Mathcad, если же ярлык отсутствует, тогда открываем программу через кнопку «Пуск» (Программы → Mathsoft → Mathcad). 3. Узнайте у лаборанта расположение файла Ellipt.mcd и откройте его (File → Open или, если программа русифицирована, Файл → Открыть). При любой ошибке ввода программы нужно обратиться к лаборанту. 4. Прочитайте в начале файла задание на лабораторную работу и просмотрите пример выполнения работы, для которого исследование уже проведено. Программа файла Ellipt.mcd (см. прил. Г) состоит из четырех пунктов «Постановка задачи», «Получение точного решения», «Получение приближенного решения», «Сравнение точного и приближенного решений». Цели и задачи каждого из пунктов описаны ниже. 5. Для набора функций нужно либо воспользоваться всплывающим меню инструментов «Calculator», либо ввести ее с клавиатуры, используя следующие символы арифметических действий и стандартных функций: сложение – ‘+’; вычитание – ‘–‘; умножение – ‘*’; деление – ‘/’; возведение в степень – ‘^’; квадратный корень – ‘\’; синус – sin(x); косинус – cos(x); экспонента – exp(x); натуральный логарифм – ln(x). При вводе числовых данных, являющихся десятичными дробями, целую и дробную части нужно разделять точкой (например, 0.5, 1.5 и т. д.). 6. Порядок выполнения работы Вам укажет программа подсказками и заданиями, выделенными красным цветом. 7.4. Порядок выполнения лабораторной работы.
1. Повторить разделы 1.1 и 2.2 из [3], изучить разделы 7.1–7.3 и подготовить ответы на контрольные вопросы из раздела 7.6 данной работы. 2. Пройти собеседование с преподавателем; получить номер варианта работы и указания по выбору пробных и поверочных функций. 3. Выполнить первый пункт задания, связанный с построением двойного ряда Фурье для точного решения задачи U (x , y) и нахождением длины отрезка этого ряда, обеспечивающую точность решения 0,001. 4. Выполнить подготовительный шаг алгоритма метода Галеркина, подготовить все числовые и строчные данные для расчетов и в пункте «Постановка задачи» программы Ellipt.mcd ввести их вместо задания рассмотренного примера. 5. В пункте «Получение точного решения» программы ввести найденное в 3-м пункте число слагаемых в разложении в двойной тригонометрический ряд Фурье. Выписать трехзначную таблицу получившегося точного решения. 97
6. В пункте «Получение приближенного решения» ввести вместо задания примера системы пробных V1(k , x, y ) и поверочных W (k , x, y) функций, указанных во 2-м пункте преподавателем (см. приложение Г). Выполнить построение трех пробных решений задачи, вводя последовательно n=1, n=2, n=3. Переписать значения Ck и, подставив их, получить первые три пробные решения. Выписать таблицы пробных решений и таблицы сравнения с предыдущим пробным решением. В пункте «Сравнение точного и приближенного решений» исследовать поведение построенных пробных решений, сравнивая их таблицы с таблицей точного решения. 7. Оформить и защитить отчет по лабораторной работе. Отчет должен содержать титульный лист, математическую постановку задачи и ее физическую интерпретацию, основные результаты работы. 7.5. Тестирующий пример.
Найти функцию u ( x, y ) , удовлетворяющую в области
{
D = ( x, y ) ∈ R 2 : 0 < x < π , 0 < y < π уравнению
∂2 u ∂x
2
+
∂ 2u ∂y
2
}
= − xy ,
(7.12)
а на границе области – условиям u (0, y) = u(π , y ) = u (x ,0) = u( x, π ) = 10 . (7.13) Задача (7.12)–(7.13) является частным случаем задачи (7.10)–(7.11) при a = b = π , c = −1 и d = 10 . 1. Найдем точное решение U (x , y) этой задачи, используя разложение функции в двойной тригонометрический ряд Фурье [4], [5]. Ищем U (x , y) в виде ∞
∞
U (x , y ) = 10 + ∑ ∑ H mk sin kx ⋅ sin my . k =1 m=1
(7.14)
Заметим, что любая функция вида (7.14) удовлетворяет краевым условиям (7.13). Подставляем (7.14) в (7.12), получаем ∞
∞
− ∑ ∑ H mk (k 2 + m2 ) sin kx ⋅ sin my = − xy . k =1 m=1
Значит, постоянные H mk (k 2 + m2 ) должны быть коэффициентами двойного ряда Фурье для функции x ⋅ y , т. е. π ⎞ 4 4 ⎛π H mk (k 2 + m2 ) = 2 ∫∫ xy ⋅ sin kx ⋅ sin mydxdy = 2 ⎜ ∫ x sin kxdx ⋅ ∫ y sin mydy⎟ . π D π ⎝0 0 ⎠
98
π ⎛ ⎞π π 1 1 Отсюда, так как ∫ x ⋅ sin kxdx = ⎜⎜ − x ⋅ cos kx + 2 sin kx ⎟⎟ = − (−1) k , то k k k ⎝ ⎠ 0 0 4 (−1)k + m π2 k+ m ( 1 ) 4 . − = ⋅ H mk = 2 ⋅ π km(k 2 + m2 ) km(k 2 + m2 ) Следовательно, точное решение задачи (7.12)–(7.13) аналитически задается выражением ∞ ∞ ( −1) k +m U (x , y ) = 10 + 4 ∑ ∑ sin kx ⋅ sin my . (7.15) 2 2 k =1 m=1 km(k + m ) Найдем такое значение M , при котором функция M M ( −1) k +m € U (x , y ) = 10 + 4 ∑ ∑ sin kx ⋅ sin my (7.16) 2 2 k =1 m=1 km(k + m ) с точностью ε = 0,001приближенно определяет U (x , y) , т. е. ∀( x, y ) ∈ D : U ( x, y ) − U€(x , y) = Δ ≤ 0,001. (7.17)
Оценим сверху величину Δ . ∞ ∞ ∞ (−1)k +m sin sin 4 Δ = 4⋅ ∑ ⋅ ≤ kx my ∑ ∑ 2 2 k= M +1 m= M +1 km(k + m ) k =M +1
∞
1 ≤ 2 m=M +1 km(k + m )
∑
2
⎛ ⎞ ∞ ∞ 1 ⎜ 1 dx x 1 ∞ ⎟ ln = ≤4∫ ∫ = 4 ∫ dy ∫ = 4 ∫ dy ⎜ 2 ⎟ 2 2 2 2 2 2 y y x x y y ( + ) M M xy ( x + y ) M M M x + y ⎠ x=M ⎝ y ∞ ∞ = z , dy = Mdz M 1 1 1 dy = −4 ∫ 3 ln dy = M = = − 4 ∫ 3 ln 2 2 2 y y y +M M M ⎛ y ⎞ y 3 = z 3M 3 ⎜ ⎟ +1 ⎝M ⎠ ∞ ∞
dxdy
∞
2z dz 2 1 1 1 2 ln(1 + z ) z 1 + dz = 2 ∫ dz = = −4 ∫ 2 3 ln = dz 1 M 1 z3 1 + z2 1M z dv = 3 , v = − 2 z 2z ∞ ∞ ∞ ⎞ ⎞ 2 ⎛⎜ 1 z 2 ⎛⎜ 1 dz 2 ⎟= ⎟ ln( 1 z ) dz ln 2 = + = 2 − 2 + +∫ ∫ 2 2 2 ⎜2 2 ⎟ ⎟ ⎜ M ⎝ 2z 1 1 (1 + z ) ⋅ z 1 (1 + z ) ⋅ z ⎠ ⎠ M ⎝ ∞⎞ ∞⎛ 1 2 ⎛⎜ 1 z ⎞ ⎞⎟ 2 ⎛⎜ 1 z ⎟= = ⎟ dz = ln 2 + ∫ ⎜ − 2 ln 2 + ln 2 ⎜2 2 ⎟ ⎟ ⎜ 2 M ⎝ z + 1⎠ ⎠ M ⎝ 2 1⎝z z +1 1 ⎠ 2 ⎛1 1 ⎞ 2 ln 2 = − ln ln 2 . ⎜ ⎟= 2⎠ M2 M2 ⎝2 2 ln 2 Значит условие (7.17) будет заведомо выполнено, если ≤ 0,001. Отсюда M2 ∞
∞
2
u = ln(1 + z 2 ), du =
99
M2 ≥
1000 1 = 500 ⋅ = 721, M ≥ 27 . 2 ln 2 0,693
Итак, функция
( −1) k +m sin kx ⋅ sin my 2 2 k =1 m=1 km(k + m ) гарантированно с точностью до 0,001 определяет значение функции (7.15) в прямоугольнике D . 2. Продолжаем выполнение работы в компьютерном классе. Запускаем программу Mathcad. Открываем файл Ellipt.mcd. В пункте «Постановка задачи» программы вводим числовые данные a := π b := π c := −1 d := 10 . 3. В пункте «Получение точного решения» вводим найденное в 1-м пункте число M M := 27 . После этого программа автоматически вычисляет коэффициенты H km и выдает матрицу U1 точного решения (см. прил. Г) 27
27
U€(x , y ) = 10 + 4 ∑ ∑
⎛10 ⎜ ⎜10 ⎜10 ⎜ ⎜10 ⎜10 ⎜ U 1 = ⎜10 ⎜ ⎜10 ⎜10 ⎜ ⎜10 ⎜10 ⎜⎜ ⎝10
10 10 10 10 10 10 10 10 10 10 ⎞ ⎟ 10.108 10 .211 10 .305 10 .381 10 .435 10.457 10. 437 10.364 10 .223 10 ⎟ 10.211 10 .413 10 .596 10.747 10 .853 10.897 10 .859 10.716 10 .44 10 ⎟ ⎟ 10.305 10.596 10 .86 11.079 11 .235 11.302 11.251 11.045 10. 644 10 ⎟ 10.381 10.747 11 .079 11.358 11 .558 11.648 11 .59 11.336 10 .828 10 ⎟⎟ , 10.435 10 .853 11 .235 11.558 11 .794 11.908 11 .852 11.567 10. 979 10 ⎟ ⎟ 10 .457 10.897 11 .302 11.648 11 .908 12.043 12 11 .711 11 .083 10 ⎟ 10 .437 10.859 11.251 11.59 11 .852 12 11.981 11 .721 11.111 10 ⎟ ⎟ 10 .364 10.716 11 .045 11.336 11 .567 11 .711 11.721 11.529 11 .02 10 ⎟ 10.223 10. 44 10 .644 10.828 10 .979 11.083 11.111 11.02 10 .72 10 ⎟ ⎟ 10 10 10 10 10 10 10 10 10 10 ⎟⎠
которую выписываем в таблицу 7.2 пятизначных значений функции U€(x , y) с шагом h = 0,1π (остальные таблицы получаются аналогично).
100
Таблица 7.2
Таблица точного решения задачи x y
0 0,1 π
0,2 π
0,3 π
0,4 π
0,5 π
0,6 π
0,7 π
0,8 π
0,9 π
π
0 10 10 10 10 10 10 10 10 10 10 10 0,1 π 10 10,108 10,211 10,305 10,381 10,435 10,457 10,437 10,364 10,223 10 0,2π 10 10,211 10,413 10,596 10,747 10,853 10,897 10,859 10,716 10,440 10 0,3π 10 10,305 10,596 10,860 11,079 11,235 11,302 11,251 11,045 10,644 10 0,4π 10 10,381 10,747 11,079 11,358 11,558 11,648 11,59 11,336 10,828 10 0,5 π 10 10,435 10,853 11,235 11,558 11,794 11,908 11,852 11,567 10,979 10 0,6 π 10 10,457 10,897 11,302 11,648 11,908 12,043 12,000 11,711 11,083 10 0,7 π 10 10,437 10,859 11,251 11,590 11,852 12,000 11,981 11,721 11,111 10 0,8 π 10 10,364 10,716 11,045 11,336 11,567 11,711 11,721 11,529 11,020 10 0,9 π 10 10,223 10,440 10,644 10,828 10,979 11,083 11,111 11,02 10,720 10 π 10 10 10 10 10 10 10 10 10 10 10 4. Построим теперь приближенные решения задачи методом Галеркина. Для этого в пункте «Получение приближенного решения» вводим порядок приближенного решения n := 1 и пробные функции V1(k , x, y ) := x k ⋅ (π − x ) ⋅ y k ⋅ (π − y ) . Программа автоматически вычисляет нормирующие множители 1 1 ⎛ 1 ⎞ ⋅π 7, ⋅ π 9 , ... ⎟ , VV → ⎜ ⋅ π 5, 105 252 ⎝ 30 ⎠ где VVk = V1(k , x, y) = ∫∫ (V 1(k , x , y ))2 dxdy , k = 1,2,...,n . D
После выдаются нормированные функции V (k, x, y) = V1(k , x, y ) /VVk : V (0, x , y ) → 10 ; (π − y) ; V (1, x, y ) → 30x(π − x ) ⋅ y π5 (π − y ) (только при n = 2 и n = 3 ); V (2, x, y ) → 105x 2 (π − x ) ⋅ y 2 π7 (π − y) (только при n = 3 ). V (3, x, y ) → 252x 3 (π − x ) ⋅ y 3 π9 Тогда, оператор равный левой части уравнения (7.12), примененный к этим функциям равен (π − y) − 60x (π − x) ; L(1, x, y,V ) → −60 y π5 π5
101
L(2, x, y ,V ) → 210(π − x ) y 2
(π − y) − 420xy 2 (π − y ) + 210x2 (π − x)(π − y) − π7
π7
− 420x (π − x ) 2
L(3, x, y ,V ) → 1512x(π − x ) y 3
π7
y ; π7
(π − y ) − 1512x2 y3 (π − y ) + π9
π9
( π − y) y2 3 + 1512x (π − x ) y − 1512x (π − x ) 9 . 9 3
π π После этого вычисляются коэффициенты (7.9) системы уравнений (7.8) и, решая эту систему, находятся коэффициенты Ck C = (3.187705). Выписываем получившееся пробное решение при n = 1 30 u1 (x , y ) = 10 + C1v1 = 10 + 3,187705 5 x(π − x ) ⋅ y (π − y ) C1 = 3,187705, π и таблицу пробного решения (матрица U 2 ). Таблица 7.3
Таблица приближенного решения задачи при n=1 x y
0
0,1 π
0,2 π
0,3 π
0,4 π
0,5 π
0,6 π
0,7 π
0,8 π
0,9 π
π
0 10 10 10 10 10 10 10 10 10 10 10 0,1 π 10 10,247 10,438 10,575 10,658 10,685 10,658 10,575 10,438 10,247 10 0,2π 10 10,438 10,779 11,023 11,169 11,218 11,169 11,023 10,779 10,438 10 0,3π 10 10,575 11,023 11,342 11,534 11,598 11,534 11,342 11,023 10,575 10 0,4π 10 10,658 11,169 11,534 11,753 11,826 11,753 11,534 11,169 10,658 10 0,5 π 10 10,685 11,218 11,598 11,826 11,903 11,826 11,598 11,218 10,685 10 0,6 π 10 10,658 11,169 11,534 11,753 11,826 11,753 11,534 11,169 10,658 10 0,7 π 10 10,575 11,023 11,342 11,534 11,598 11,534 11,342 11,023 10,575 10 0,8 π 10 10,438 10,779 11,023 11,169 11,218 11,169 11,023 10,779 10,438 10 0,9 π 10 10,247 10,438 10,575 10,658 10,685 10,658 10,575 10,438 10,247 10 π 10 10 10 10 10 10 10 10 10 10 10 Далее необходимо выписать таблицу 7.4 сравнения получившегося пробного решения u1 (x , y ) и предыдущего решения ν 0 ( x, y ) = 10 (матрица U 23).
Таблица 7.4
Таблица разности приближенных решений задачи u1 (x , y ) − ν 0 ( x, y ) x y
0 0,1 π 0,2π 0,3π
0
0,1 π
0,2 π
0,3 π
0,4 π
0,5 π
0,6 π
0,7 π
0,8 π
0,9 π
0 0 0 0
0 0 0 0 0 0 0 0 0 0,247 0,438 0,575 0,658 0,685 0,658 0,575 0,438 0,247 0,438 0,779 1,023 1,169 1,218 1,169 1,023 0,779 0,438 0,575 1,023 1,342 1,534 1,598 1,534 1,342 1,023 0,575
π 0 0 0 0 102
0,4π 0 0,658 1,169 1,534 1,753 1,826 1,753 1,534 1,169 0,658 0 0,5 π 0 0,685 1,218 1,598 1,826 1,903 1,826 1,598 1,218 0,685 0 0,6 π 0 0,658 1,169 1,534 1,753 1,826 1,753 1,534 1,169 0,658 0 0,7 π 0 0,575 1,023 1,342 1,534 1,598 1,534 1,342 1,023 0,575 0 0,8 π 0 0,438 0,779 1,023 1,169 1,218 1,169 1,023 0,779 0,438 0 0,9 π 0 0,247 0,438 0,575 0,658 0,685 0,658 0,575 0,438 0,247 0 π 0 0 0 0 0 0 0 0 0 0 0 Выписываем максимальный по модулю элемент таблицы, позволяющий оценить погрешность получившегося решения Δ 1 = max u1 ( x, y ) − v0 (x , y ) = 1,903 . D
Далее из пункта «Сравнение точного и приближенного решений» выписываем таблицу этого сравнения (матрица U12 ). Таблица 7.5
Таблица разности точного решения и приближенного решения при n=1 x 0 0,1 π 0,2 π 0,3 π 0,4 π 0,5 π 0,6 π 0,7 π 0,8 π 0,9 π π y 0 0 0 0 0 0 0 0 0 0 0 0 0,1 π 0 0,138 0,227 0,271 0,276 0,250 0,200 0,138 0,075 0,024 0 0,2π 0 0,227 0,366 0,427 0,422 0,365 0,272 0,163 0,063 –0,001 0 0,3π 0 0,271 0,427 0,483 0,455 0,363 0,232 0,092 –0,023 –0,069 0 0,4π 0 0,276 0,422 0,455 0,396 0,269 0,105 –0,056 –0,167 –0,170 0 0,5 π 0 0,250 0,365 0,363 0,269 0,109 –0,081 –0,254 –0,350 –0,295 0 0,6 π 0 0,200 0,272 0,232 0,105 –0,081 –0,289 –0,466 –0,542 –0,425 0 0,7 π 0 0,138 0,163 0,092 –0,056 –0,254 –0,466 –0,638 –0,698 –0,535 0 0,8 π 0 0,075 0,063 –0,023 –0,167 –0,350 –0,542 –0,698 –0,750 –0,581 0 0,9 π 0 0,024 –0,001 –0,069 –0,170 –0,295 –0,425 –0,535 –0,581 –0,474 0 π 0 0 0 0 0 0 0 0 0 0 0 Максимальный по модулю элемент равен δ 1 = maxU ( x, y ) − u1( x, y ) = 0,75 D
5. Построим теперь второе пробное решение. Для этого возвращаемся в начало пункта «Получение приближенного решения» и вводим порядок приближенного решения n := 2 . И аналогично пункту 4 выписываем получившиеся пробное решение и таблицы пробного решения, сравнения с предыдущим решением u1 (x , y ) , сравнения с точным решением. Из вектора коэффициентов Ck получим решение ⎛1.494924⎞ C = ⎜⎜ ⎟⎟ ⇒ C1 = 1,494924,C2 = 1,934607 ⇒ u2 (x , y ) = 10 + C1v1 + C2 v2 = ⎝1.934607⎠ 30 105 = 10 + 1,494924 5 x (π − x ) ⋅ y(π − y ) + 1,934607 7 x 2 (π − x ) ⋅ y 2 (π − y ). π π 103
Выписываем таблицу второго пробного решения
Таблица 7.6
Таблица приближенного решения задачи при n=2 x y
0
0,1 π
0,2 π
0,3 π
0,4 π
0,5 π
0,6 π
0,7 π
0,8 π
0,9 π
π
0 10 10 10 10 10 10 10 10 10 10 10 0,1 π 10 10,121 10,224 10,306 10,364 10,394 10,392 10,355 10,28 10,163 10 0,2π 10 10,224 10,432 10,610 10,747 10,830 10,846 10,784 10,630 10,373 10 0,3π 10 10,306 10,610 10,886 11,111 11,259 11,306 11,228 11,001 10,600 10 0,4π 10 10,364 10,747 11,111 11,418 11,632 11,716 11,632 11,343 10,811 10 0,5 π 10 10,394 10,830 11,259 11,632 11,903 12,020 11,938 11,606 10,976 10 0,6 π 10 10,392 10,846 11,306 11,716 12,020 12,163 12,088 11,740 11,063 10 0,7 π 10 10,355 10,784 11,228 11,632 11,938 12,088 12,027 11,696 11,040 10 0,8 π 10 10,280 10,630 11,001 11,343 11,606 11,740 11,696 11,425 10,876 10 0,9 π 10 10,163 10,373 10,600 10,811 10,976 11,063 11,040 10,876 10,540 10 π 10 10 10 10 10 10 10 10 10 10 10 Выписываем таблицы сравнения с первым пробным решением (табл. 7.7) и точным решением (табл. 7.8) и получившиеся погрешности Таблица 7.7
Таблица разности приближенных решений задачи u 2 ( x, y ) − u 1 (x , y) x y
0
0,1 π
0,2 π
0,3 π
0,4 π
0,5 π
0,6 π
0,7 π
0 0 0 0 0 0 0 0 0 0,1 π 0 –0,126 –0,214 –0,269 –0,293 –0,291 –0,265 –0,220 0,2π 0 –0,214 –0,348 –0,413 –0,422 –0,388 –0,323 –0,239 0,3π 0 –0,269 –0,413 –0,456 –0,424 –0,339 –0,228 –0,114 0,4π 0 –0,293 –0,422 –0,424 –0,335 –0,194 –0,037 0,098 0,5 π 0 –0,291 –0,388 –0,339 –0,194 0,000 0,194 0,339 0,6 π 0 –0,265 –0,323 –0,228 –0,037 0,194 0,41 0,554 0,7 π 0 –0,220 –0,239 –0,114 0,098 0,339 0,554 0,684 0,8 π 0 –0,158 –0,149 –0,022 0,174 0,388 0,571 0,673 0,9 π 0 –0,084 –0,065 0,024 0,154 0,291 0,405 0,464 π 0 0 0 0 0 0 0 0 Максимальное по модулю значение таблицы 7.7 Δ 2 = max u 2 ( x, y ) − u1( x, y) = 0,684 .
0,8 π
0,9 π
π
0 –0,158 –0,149 –0,022 0,174 0,388 0,571 0,673 0,646 0,438 0
0 –0,084 –0,065 0,024 0,154 0,291 0,405 0,464 0,438 0,293 0
0 0 0 0 0 0 0 0 0 0 0
D
104
Таблица 7.8
Таблица разности точного решения и приближенного решения при n=2 x 0 0,1 π 0,2 π 0,3 π 0,4 π 0,5 π 0,6 π 0,7 π 0,8 π 0,9 π π y 0 0 0 0 0 0 0 0 0 0 0 0 0,1π 0 0,013 0,013 0,002 –0,017 –0,041 –0,065 –0,082 –0,084 –0,060 0 0,2π 0 0,013 0,018 0,014 –0,000 –0,023 –0,051 –0,076 –0,086 –0,066 0 0,3π 0 0,002 0,014 0,027 0,031 0,024 0,004 –0,022 –0,044 –0,045 0 0,4π 0 –0,017 –0,000 0,031 0,061 0,075 0,068 0,042 0,007 –0,017 0 0,5π 0 –0,041 –0,023 0,024 0,075 0,109 0,113 0,086 0,038 –0,004 0 0,6π 0 –0,065 –0,051 0,004 0,068 0,113 0,120 0,088 0,029 –0,020 0 0,7π 0 –0,082 –0,076 –0,022 0,042 0,086 0,088 0,046 –0,025 –0,071 0 0,8π 0 –0,084 –0,086 –0,044 0,007 0,038 0,029 –0,025 –0,105 –0,144 0 0,9π 0 –0,060 –0,066 –0,045 –0,017 –0,004 –0,020 –0,071 –0,144 –0,181 0 π 0 0 0 0 0 0 0 0 0 0 0 Максимальное по модулю значение таблицы 7.8 δ 2 = max U (x , y ) − u2 (x , y ) = 0,181. D
6. Построим теперь третье пробное решение. Для этого возвращаемся в начало пункта «Получение приближенного решения» и вводим порядок приближенного решения n := 3 . И аналогично пункту 4 выписываем получившиеся пробное решение и таблицы пробного решения, сравнения с предыдущим решением u 2 ( x, y ) , сравнения с точным решением. Из вектора коэффициентов Ck получим решение ⎛ 1.89638 ⎞ ⎜ ⎟ C = ⎜ 0.909613⎟ ⇒ C1 = 1,89638,C2 = 0,909613,C3 = 0,688075, ⎜ 0.688075⎟ ⎝ ⎠ 30 u 3 (x , y ) = 10 + C1v1 + C2 v2 + C3v3 = 10 + 1,89638 5 x(π − x ) ⋅ y (π − y ) + π 105 252 + 0,909613 7 x 2 (π − x ) ⋅ y 2 (π − y ) + 0,688075 9 x 3 (π − x ) ⋅ y 3 (π − y ). π π Выписываем таблицу третьего пробного решения
Таблица 7.9
Таблица приближенного решения задачи при n=3 x y
0 0,1 π 0,2π 0,3π
0
0,1 π
0,2 π
0,3 π
0,4 π
0,5 π
0,6 π
0,7 π
0,8 π
0,9 π
10 10 10 10 10 10 10 10 10 10 10 10,149 10,270 10,360 10,419 10,445 10,435 10,388 10,301 10,172 10 10,270 10,497 10,676 10,802 10,868 10,866 10,788 10,624 10,365 10 10,360 10,676 10,939 11,137 11,255 11,279 11,188 10,960 10,573
π 10 10 10 10
Окончание табл. 9
105
0,4π 10 10,419 10,802 11,137 11,405 11,584 11,646 11,56 11,286 10,782 10 0,5 π 10 10,445 10,868 11,255 11,584 11,822 11,932 11,864 11,564 10,967 10 0,6 π 10 10,435 10,866 11,279 11,646 11,932 12,086 12,047 11,744 11,093 10 0,7 π 10 10,388 10,788 11,188 11,56 11,864 12,047 12,040 11,762 11,118 10 0,8 π 10 10,301 10,624 10,960 11,286 11,564 11,744 11,762 11,540 10,988 10 0,9 π 10 10,172 10,365 10,573 10,782 10,967 11,093 11,118 10,988 10,639 10 π 10 10 10 10 10 10 10 10 10 10 10 По этим точкам автоматически строится график полученного пробного решения
Рис 7.1. График пробного решения при n=3
Выписываем таблицы сравнения со вторым пробным решением (табл. 7.10) и точным решением (табл. 7.11) и получившиеся погрешности Таблица 7.10
Таблица разности приближенных решений задачи u 3 (x , y) − u 2 (x , y) x y
0
0,1 π
0,2 π
0,3 π
0,4 π
0,5 π
0,6 π
0,7 π
0 0 0 0 0 0 0 0 0 0,1 π 0 0,028 0,046 0,054 0,055 0,051 0,043 0,032 0,2π 0 0,046 0,065 0,066 0,056 0,038 0,020 0,004 0,3π 0 0,054 0,066 0,053 0,026 –0,003 –0,027 –0,041 0,4π 0 0,055 0,056 0,026 –0,014 –0,049 –0,070 –0,072 0,5 π 0 0,051 0,038 –0,003 –0,049 –0,080 –0,089 –0,073 0,6 π 0 0,043 0,020 –0,027 –0,070 –0,089 –0,078 –0,041 0,7 π 0 0,032 0,004 –0,041 –0,072 –0,073 –0,041 0,013 0,8 π 0 0,021 –0,006 –0,041 –0,057 –0,042 0,004 0,066 0,9 π 0 0,010 –0,008 –0,026 –0,029 –0,009 0,031 0,079 π 0 0 0 0 0 0 0 0 Максимальное по модулю значение Δ 3 = max u 3 ( x, y ) − u 2 (x , y ) = 0,116 .
0,8 π
0,9 π
π
0 0,021 –0,006 –0,041 –0,057 –0,042 0,004 0,066 0,116 0,112 0
0 0,010 –0,008 –0,026 –0,029 –0,009 0,031 0,079 0,112 0,100 0
0 0 0 0 0 0 0 0 0 0 0
D
106
Таблица 7.11
Таблица разности точного решения и приближенного решения при n=3 x 0 0,1 π 0,2 π 0,3 π 0,4 π 0,5 π 0,6 π 0,7 π 0,8 π 0,9 π π y 0 0 0 0 0 0 0 0 0 0 0 0 0,1π 0 0,041 0,058 0,056 0,038 0,010 –0,022 –0,050 –0,063 –0,050 0 0,2π 0 0,058 0,084 0,081 0,056 0,015 –0,031 –0,072 –0,092 –0,074 0 0,3π 0 0,056 0,081 0,079 0,058 0,021 –0,023 –0,063 –0,085 –0,071 0 0,4π 0 0,038 0,056 0,058 0,047 0,026 –0,002 –0,030 –0,050 –0,046 0 0,5π 0 0,010 0,015 0,021 0,026 0,029 0,024 0,012 –0,003 –0,013 0 0,6π 0 –0,022 –0,031 –0,023 –0,002 0,024 0,043 0,047 0,033 0,011 0 0,7π 0 –0,050 –0,072 –0,063 –0,030 0,012 0,047 0,059 0,041 0,008 0 0,8π 0 –0,063 –0,092 –0,085 –0,050 –0,003 0,033 0,041 0,011 –0,032 0 0,9π 0 –0,050 –0,074 –0,071 –0,046 –0,013 0,011 0,008 –0,032 –0,081 0 π 0 0 0 0 0 0 0 0 0 0 0 Максимальное по модулю значение δ 3 = maxU ( x, y ) − u3 ( x, y) = 0,092 . D
7. Проведем анализ полученных погрешностей Δ 1 = 1,903, δ 1 = 0,75, Δ 2 = 0,684 , δ 2 = 0,181, Δ 3 = 0,116 , δ 3 = 0,092 . Очевидно, что погрешности Δ n сходятся к нулю и как следствие пробные решения достаточно быстро сходятся к точному решению. Это гарантирует, что даже небольшое число слагаемых в пробном решении обеспечивает малую погрешность. Например, уже Δ10 < 0,001. 7.6. Вопросы для самоконтроля.
1. Как находится функция, названная в методе Галеркина невязкой? 2. Как строится система линейных алгебраических уравнений для определения коэффициентов пробного решения? 3. Проверьте истинность формул (7.8), (7.9). 4. В каком случае невязка пробного решения сходится при n → ∞ к нулю в среднем? 5. Опишите алгоритм приближенного решения задачи (7.1)–(7.2) методом Галеркина. 6. Приведите физическую интерпретацию задачи (7.10)–(7.11). 7. Найдите решение задачи (7.10)–(7.11), используя двойной тригонометрический ряд Фурье. 8. Приведите пример пробных функций для задачи (7.10)–(7.11). 9. Как проверить ортогональность функций двух переменных на плоской области D ? 10.Как нормировать функцию двух переменных на области D ? 107
8. Прикладной математический пакет «MathCAD» 8.1. О программе
Миллионы людей занимаются математическими расчетами, иногда в силу влечения к таинствам математики и ее внутренней красоте, а чаще в силу профессиональной или иной необходимости, не говоря уже об учебе. Ни одна серьезная разработка в любой отрасли науки и производства не обходится без трудоемких математических расчетов. Вначале эти расчеты выполнялись на программируемых микрокалькуляторах или с помощью программ на универсальных языках программирования, таких, как Бейсик или Паскаль. Постепенно для облегчения расчетов были созданы специальные математические компьютерные системы. Одна из самых мощных и эффективных математических систем – MathCAD. Она существует в двух вариантах: стандартном MathCAD Standard и профессиональном MathCAD Professional (PRO). Стандартная версия ориентирована на большинство пользователей, а профессиональная – на профессионалов, серьезно занимающихся математическими расчетами. Системы MathCAD традиционно занимают особое место среди множества таких систем (MatLAB, Mathematica и др.) и по праву могут называться самыми современными, универсальными и массовыми математическими системами. Они позволяют выполнять как численные, так и аналитические (символьные) вычисления, имеют чрезвычайно удобный математико-ориентированный интерфейс и прекрасные средства графики. Системы класса MathCAD предоставляют уже привычные, мощные, удобные и наглядные средства описания алгоритмов решения математических задач. Преподаватели и студенты вузов получили возможность подготовки с их помощью наглядных и красочных обучающих программ в виде электронных книг с действующими в реальном времени примерами. Новейшая система MathCAD PRO настолько гибка и универсальна, что может оказать неоценимую помощь в решении математических задач как школьнику, постигающему азы математики, так и академику, работающему со сложнейшими научными проблемами. Система имеет достаточные возможности для выполнения наиболее массовых символьных (аналитических) вычислений и преобразований. Исключительно велика роль систем класса MathCAD в образовании. Облегчая и делая интересным решение сложных математических задач, система снимает психологический барьер при изучении математики. Грамотное применение систем в учебном процессе обеспечивает повышение фундаментальности математического и технического образования, содействует подлинной интеграции процесса образования в нашей стране.
108
8.2. Основные понятия и функции
Для работы в системе Mathcad достаточно поместить курсор в желаемое место окна редактирования (красный крестик на цветном дисплее) и затем начать ввод математического выражения (черное обрамление , называемое математической областью, внутри которой это выражение набирается). Маленькая черная рамка ■ в математической области есть поле ввода. Наличие поля ввода указывает на то, что ввод математического выражения или графика не закончен. Для заполнения этого поля нужно щелкнуть по нему мышью и начать ввод. Для создания математических выражений используются следующие операции. Арифметические операции: сложение – ‘+’; возведение в степень – ‘^’; факториал – ‘!’; абсолютная величина – ‘|’; умножение – ‘*’; корень n-ой степени – ‘Ctrl’+’\’ (т. е. необходимо одновременно нажать две клавиши ‘Ctrl’ и ’\’); квадратный корень – ‘\’; вычитание – ‘–‘; суммирование – ‘Ctrl’+‘Shift’+‘4’ 3
3
i =1
i =1
(например, ∑ i 2 = 14 ); произведение – ‘Ctrl’+‘Shift’+‘3’ (например, ∏ i 2 = 36 ). Логические операторы: больше – ‘>’; меньше – ‘<’; больше либо равно – ‘Ctrl’+’0’; меньше либо равно – ‘Ctrl’+’9’; не равно – ‘Ctrl’+’3’; равно – ‘Ctrl’+’=’. Символы присвоений (вводится правая и левая части): присвоение значений переменных и функций (на экране появится “ := ”) – ‘:’; булево равенство (на экране – жирный знак “=”) – ‘Ctrl’+’=’. Символы вычислений (вводятся левая часть, а правая вычисляется автоматически): получение числового значения – ‘=’; получение символьного значения (“ → ”) – ‘Ctrl’+’.’. Для определения точности полученного результата необходимо два раза щелкнуть левой кнопкой мыши на поле, его содержащем (или через меню инструментов: Format → Result, или, если программа русифицирована, Формат → Результат), и во всплывающем окне «Format result» установить число десятичных знаков (Точность отображения или Number of decimal places) от 0 до 15. После нажатия кнопки «OK» результат автоматически будет округлен до необходимого числа знаков. Введение основных аналитических функций: синус – sin(x); косинус – cos(x); тангенс – tan(x); котангенс – cot(x); арксинус – asin(x); арккосинус – acos(x); арктангенс – atan(x); арккотангенс – acot(x); экспонента – exp(x) или e x ; натуральный логарифм – ln(x); десятичный логарифм – log(x); логарифм x по основанию a – log(x,a), синус гиперболический – sinh(x); косинус гиперболический – cosh(x); тангенс гиперболический – tanh(x); котангенс гиперболический – coth(x); арксинус гиперболический – asinh(x); арккосинус гиперболический – acosh(x); арктангенс гиперболический – atanh(x); арккотангенс гиперболический – acoth(x). Все встроенные функции системы Mathcad можно получить при нажатии ‘Ctrl’+’E’ (или через меню инструментов: Insert → Function, или, если 109
программа русифицирована, Вставка → Функция) и во всплывающем окне «Insert function» выбрать необходимую функцию. После нажатия кнопки «OK» выбранная функция будет вставлена в место, где установлен курсор. В частности, при разработке лабораторных работ были использованы функции: rkfixed(y, x1, x2, npoints, D) – возвращает матрицу решений задачи Коши для нормальной системы обыкновенных дифференциальных уравнений. Решение отыскивается численно по методу Рунге-Кутта. Функция имеет пять аргументов: y – вектор, содержащий начальные условия неизвестных функций; x1, x 2 – начальная и конечная точка интегрирования; npoints – число точек разбиения отрезка [x1, x 2] (чем больше, тем точнее найденное решение); D – векторозначная функция, содержащая правые части дифференциальных уравнений; bvalfit(v1, v2, x1, x2, xf, D, load1, load2, score) – позволяет привести краевую задачу для нормальной системы обыкновенных дифференциальных уравнений к задаче Коши (которая решается с помощью функции rkfixed) и возвращает начальные условия, оставшиеся неизвестными в точке x1. Функция имеет девять аргументов: v1, v2 – вектора, содержащие предположительные начальные условия, оставшиеся неизвестными в точках x1 и x 2 соответственно; x1, x 2 – начальная и конечная точка интегрирования; xf – точка между x1 и x 2 , в которой траектории решений начинающихся в точках x1 и x 2 будут равны; D – n-элементная векторозначная функция, содержащая правые части дифференциальных уравнений; load1, load2 – векторозначная функция, в чьи n элементы переписываются величины n неизвестных функций в x1 и x 2 соответственно; score – n-элементная векторозначная функция используемая для того, чтобы определить как решения сочетаются в точке xf (обычно определяют score(xf, y):= y, чтобы решения по всем неизвестным функциям сочетались в xf); root(f(x),x,a,b) – возвращает корень уравнения f (x ) = 0 по переменной x на отрезке [a,b ] ; if(cond,a,b) – возвращает значение a, если условие cond истинно, и значение b, если ложно (в качестве условия cond обычно используется логический оператор, например, i < 2 ). Задание дискретных величин осуществляется при нажатии ‘;’. Например, i := 0..3 j := 1,1.1..1.5 . Чтобы набрать эти формулы, необходимо с клавиатуры набрать i : 0;3 и j :1,1.1;1.5 . Первая формула означает, что i принимает значения 0, 1, 2, 3, а вторая, что j принимает значения 1.0, 1.1, 1.2, 1.3, 1.4, 1.5 (т. е. вторая цифра показывает каков шаг дискретной величины). С помощью дискретных величин в системе Mathcad можно организовывать простейшие циклы, с помощью которых удобно задавать матрицы и векторы (см. п.8.4). Все описанные символы операторов и основных элементарных функций можно ввести с помощью мыши из всплывающего меню (View → Toolbars → 110
Calculator, Evaluation, Boolean, Calculus или Вид → Панели инструментов → Арифметика, Вычисления, Логика, Исчисления). Если необходимо ввести символы греческого алфавита, то необходимо воспользоваться меню View → Toolbars → Greek (Вид → Панели инструментов → Греческий Алфавит). 8.3. Операторы математического анализа
Нахождение производной первого порядка осуществляется по нажатию клавиш ‘Shift’+‘/’. При этом производную можно вычислить либо в точке, либо получить ее аналитическое выражение. Например, производная в точке d 2 x := 13 x ⋅ ln(x ) = 79.689, dx а аналитически d 2 x ⋅ ln(x ) → 2 x ln(x) + x . dx Если задана функция нескольких переменных, то данный оператор вычисляет частную производную по указанной переменной f (x , y ) := x 2 + y 2 + xy d f ( x, y ) → 2 y + x. dy Для нахождения производных высших порядков необходимо нажать ‘Ctrl’+‘Shift’+‘/’ и задать порядок производной, переменную дифференцирования и функцию. Например, d3 2 2 ln( ) x x ⋅ → . x dx3 Для вычисления смешанных производных функции нескольких переменных необходимо находить производную по одной переменной от производных по другим переменным. Например, ⎤ −6 d3 ⎡ d2 3 3 2 2 ( ) x ln( y ) cos( x y ) ⋅ + ⋅ ⎥ → 2 − sin(x ⋅ y ) ⋅ y ⋅ x + 6 ⋅ cos(x ⋅ y ) ⋅ y ⋅ x + 3⎢ 2 dx ⎣ dy y ⎦ + 6 ⋅ sin(x ⋅ y ) ⋅ y . Нахождение неопределенных интегралов, если это возможно, осуществляется по нажатию ‘Ctrl’+’I’. Например, 1 2 1 2 ∫ x ⋅ ln( x)dx → 2 ⋅ x ⋅ ln(x) − 4 ⋅ x . Для вычисления определенных интегралов необходимо нажать ‘Shift’+‘7’ и ввести пределы интегрирования, подынтегральную функцию, переменную интегрирования. После нажатия знака ‘=’ получим числовой результат. Например, 111
2
∫ x ⋅ ln( x)dx = 0.636 . 1
Все описанные символы операторов математического анализа можно ввести с помощью мыши из всплывающего меню (View → Toolbars → Calculus или Вид → Панели инструментов → Исчисления). 8.4. Функции и операторы матриц
Самый простой способ создания массива чисел состоит в создании массива из пустых полей и их последующем заполнении. Для этого нажмите ‘Ctrl’+’M’, чтобы вызвать диалоговое окно и определите в нем нужное количество строк и столбцов. Нажмите «OK», чтобы создать массив пустых полей. Щелкните на поле, чтобы выделить его, затем введите требуемое значение. Для перемещения между полями можно также использовать клавишу «Tab». При определении больших массивов, для каждого элемента которых существует формула, через которую он выражается, удобнее использовать дискретные аргументы. Например, зададим двумерный массив (матрицу) i := 0.. 2 j := 0.. 2 j X i, j := i 2 + 2 (чтобы набрать последнюю формулу, необходимо с клавиатуры набрать X [i, j : i ^2 + j / 2 ). После этого можно просмотреть получившуюся матрицу целиком, набрав X = , любой столбец, набрав X ‘Ctrl’+’6’ 1=, или любой элемент матрицы, набрав X [1,2 = , и на экране автоматически появится ⎛ 0 0.5 1 ⎞ ⎛ 0.5 ⎞ ⎜ ⎟ ⎜ ⎟ X = ⎜ 1 1.5 2 ⎟ X 1 = ⎜ 1.5 ⎟ X1,2 = 2 . ⎜ 4 4.5 5 ⎟ ⎜ 4.5 ⎟ ⎝ ⎠ ⎝ ⎠ Для задания векторов необходимо указывать только один индекс. Например, ⎛ 0⎞ ⎜ ⎟ i := 0..2 X i := i 2 X = ⎜ 1 ⎟. ⎜ 4⎟ ⎝ ⎠ При обращении к матрице необходимо помнить, что нумерация строк и столбцов начинается с 0. Например, если хотим получить элемент, стоящий на пересечении 2-й строки и 3-го столбца, необходимо запросить элемент X1, 2 . Операторы, определенные для векторов и матриц: сложение – ‘+’; векторное произведение – ‘Ctrl’+’8’; определитель – ‘|’; скалярное произведение – ‘*’; обратная матрица – ‘^-1’ (т.е. возведение в степень –1); степени матриц – ‘^’; умножение – ‘*’; нижний индекс – ‘[‘; вычитание – ‘– ‘; суммирование элементов – ‘Ctrl’+’4’; верхний индекс – ‘Ctrl’+’6’; транспонирование – ‘Ctrl’+’1’. 112
Встроенные функции, определенные для матриц: rows(A) – число строк матрицы A; cols(A) – число столбцов матрицы A; max(A) – максимальный элемент матрицы A; min(A) – минимальный элемент матрицы A; rank(A) – ранг матрицы A; rref(A) – приведение матрицы A к ступенчатому виду; length(B) – количество элементов вектора B; augment(A,B) – объединение матриц A и B (добавлением матрицы B справа к матрице A); matrix(m,n,f) – создает матрицу размерности m × n , где элементами матрицы являются значения функции двух переменных f (i, j ) , i = 0,1,..., m − 1 , j = 0,1,..., n − 1 ; submatrix(A,a,b,c,d) – возвращает матрицу, состоящую из всех элементов, которые содержатся в строках с a по b и столбцах с c по d матрицы A; Все описанные операторы (кроме встроенных функций) можно ввести с помощью мыши из всплывающего меню (View → Toolbars → Matrix или Вид → Панели инструментов → Матрицы). 8.5. Создание декартовых графиков на плоскости и в пространстве
Для создания декартового графика на плоскости нажмите клавишу ‘Shift’+‘2’ или введите с помощью мыши из всплывающего меню график на плоскости (View → Toolbars → Graph или Вид → Панели инструментов → График). В открывшемся поле графика (рис. 8.1) поместите в поле ввода 1 функцию или выражение, которое будет отображаться графически, а в поле ввода 2 непрерывную или дискретную переменную по которой строится график.
Рис. 8.1. Инициализация графика функции
Затем нажмите клавишу F9, чтобы построить график. По умолчанию, если функция определена, график будет построен на отрезке [−10, 10] .
113
Например, необходимо ввести функцию f ( x) = e−2 x + ln(x ) и построить график этой функции на интервале (0.3;1 .5 ) . Для этого определяем функцию f (x) f (x ) := e −2⋅x + ln(x ) и в поле ввода 5 и 6 (рис. 8.2) помещаем начальное и конечное значение интервала 0.3 и 1.5 соответственно. В поле 3 и 4 показываются максимальное и минимальное значение функции на этом интервале.
Рис. 8.2. Построение графика функции на отрезке
Чтобы на одном графике изобразить несколько функций, необходимо в поле ввода 1 (рис. 8.1) через запятую перечислить функции или выражения, которые будут отображаться графически, а в поле ввода 2 (рис. 8.1) через запятую соответствующие непрерывные или дискретные переменные (если переменные совпадают, то достаточно указать только одну переменную). Например, на рис. 8.3 построены графики функций sin(x ) и ln( y) − 1 .
Рис. 8.3. Построение нескольких графиков
Если два раза щелкнуть мышью в поле графика, тогда во всплывающем окне «Formatting Currently Selected X-Y Plot» можно установить параметры отображения осей и линий графика. В первой закладке «X-Y Axes» («Оси 114
X-Y») можно выбрать вид координатных осей, наложить сеть и установить ее размер, откорректировать масштаб. Во второй закладке «Traces» («След») можно установить параметры всех отображаемых линий (trace 1, trace2 и т. д.): наименование, цвет, толщину, тип (непрерывный, пунктир или точками для дискретных функций). В третьей закладке «Labels» («Метки») можно ввести названия графика и координатных осей. Для создания декартового графика в пространстве нажмите клавишу ‘Ctrl’+‘2’ или введите с помощью мыши из всплывающего меню поверхностный график (View → Toolbars → Graph или Вид → Панели инструментов → График). В открывшемся поле графика (рис. 8.4) поместите в поле ввода 7 матрицу размерности m × n , элементами которой являются значения функции z = f ( x, y ) в точках ( x i , y j ) (i = 1, m, j = 1, n) . Отображаемая матрица должна содержать по меньшей мере 2 столбца и две строки.
Рис. 8.4. Инициализация графика функции
Затем нажмите клавишу F9, чтобы построить график. Например, необходимо построить график функции z = sin(x 2 + y 2 ) , если x ∈ [−1,5;1,5], y ∈[−1,5;1,5] . Для этого определяем функцию двух переменных и вычисляем значения функции, разбивая отрезки на 20 частей. В результате получим матрицу M . f (x , y ) := sin(x 2 + y 2 ) X ( x) := −1.5 + 0.15 ⋅ x Y ( y ) := −1.5 + 0.15 ⋅ y F ( x, y) := f ( X ( x),Y ( y)) m := 20 n := 20 M := matrix(m, n, F ) Подставляя матрицу M в поле 7 (рис. 8.4), получим требуемый график 115
Рис. 8.5. График функции
8.6. Программные блоки
Для решения многих задач в системе Mathcad используются программные блоки. В начале любого блока обязательно должно присутствовать служебное слово Given, далее идет тело блока и в конце стандартная функция, закрывающая блок. В частности для решения систем алгебраических уравнений линейных или нелинейных используется программный блок «Given – Find». Например, Given a + 2b + 3c = 1 4a + 5b + 6c = 2 7a + 8b + 9c = 3 1 ⎞ ⎛ ⎜ c− ⎟ 3 ⎟ ⎜ ⎜ 2⎟ Find(a , b, c ) → ⎜ − 2c + ⎟ 3⎟ ⎜ c ⎜ ⎟ ⎜ ⎟. ⎝ ⎠ Здесь телом блока является система уравнений, а с помощью функции Find(x,y,….) получаем искомое решение, где x, y,... есть скалярные переменные, значения которых ищутся в блоке решения уравнений.
116
Приложение A
Лабораторная работа «Решение краевой задачи для линейного обыкновенного дифференциального уравнения второго порядка» Задание на лабораторную работу
1. В пункте «Постановка задачи» ввести вместо данных примера непрерывные функции уравнения p(x), q(x), f(x) и числовые параметры задачи a, b, a0, a1, a2, b1, b2, b3, d0, d1, d2 своего варианта. 2. В пункте «Получение точного решения» показано, как в системе MathCAD краевая задача сводится к задаче Коши и решается с помощью стандартной функции. Необходимо выписать полученную таблицу точного решения. 3. В пункте «Получение приближенного решения методом Галеркина» ввести вместо данных примера полученную самостоятельно систему пробных функций V(k, x). Выполнить построение пяти пробных решений задачи, вводя последовательно n=1, …, n=5, взяв в качестве проверочных функций пробные и функции Лежандра. Переписать значения Ck и, подставив их, получить пробное решение. Выписать таблицы пробных решений, таблицы сравнения с предыдущим пробным решением, с таблицей точного решения и таблицу невязок. 4. В пункте «Получение приближенного решения вариационным методом Ритца» выполнить построение пяти пробных решений задачи, вводя последовательно n=1, …, n=5. Переписать значения Ck и, подставив их, получить пробное решение. Выписать значения параметров функционала, таблицы пробных решений, таблицы сравнения с предыдущим пробным решением, с таблицей точного решения и таблицу невязок. 5. В пункте «Получение приближенного решения интегральным методом наименьших квадратов» выполнить построение пяти пробных решений задачи, вводя последовательно n=1, …, n=5. Переписать значения Ck и, подставив их, получить пробное решение. Выписать таблицы пробных решений, таблицы сравнения с предыдущим пробным решением, с таблицей точного решения и таблицу невязок. 6. Анализируя результаты пункта «Выводы», сделать выводы о точности построенных решений методами Галеркина, Ритца и методом наименьших квадратов.
Постановка задачи 117
Требуется на отрезке [a,b] найти решение y(x) дифференциального уравнения d2 2
y + p ( x) ⋅
dx
d y + q ( x) ⋅ y dx
f ( x)
удовлетворяющее условиям a0 ⋅ y ( a) + a1 ⋅
d y ( a) dx
a2
b0 ⋅ y ( b) + b1 ⋅
d y ( b) dx
b2
Введите непрерывные функции уравнения p(x), q(x), f(x) и числовые параметры задачи a, b, a0, a1, a2, b1, b2, b3, d0, d1, d2 d0 := 1 d1 := 1 d2 := 1 f ( x) := 2 x2 − 6x + 2 p( x) := − 3 q( x) := 2 a := 0 b := 1 a0 := 1 a1 := 1 a2 := 1 b0 := 1 b1 := 1 b2 := −4
Получение точного решения в системе MathCAD Найдем «точное решение» y(x), используя стандартные функции системы MathCAD. Для этого представим дифференциальное уравнение в виде нормальной системы дифференциальных уравнений первого порядка, полагая y0=y, y1=y'. d y0 dx d y1 dx
y1
− p ( x) y1 − q( x) ⋅ y0 + f ( x)
удовлетворяющая условиям a0 ⋅ y0 ( a) + a1 ⋅ y1( a) b0 ⋅ y0 ( b) + b1 ⋅ y1( b)
a2 b2
Чтобы решить эту краевую задачу, сведем ее сначала к задаче Коши
⎞ ⎟ − p ( x ) y − q ( x ) y + f ( x ) 1 0 ⎝ ⎠ ⎛
y1
D( x , y) := ⎜
xf :=
a+b 2
Введем в вектор v1 возможные значения y(a), если a0 = 0 и y'(a) в противном случае, в вектор v2 – y(b), если b0=0 и y'(b) в противном случае (начальные приближения). v10 := 1
118
v20 := 1
⎛ ⎜ load1( a , v1) := ⎜ ⎜ ⎝ ⎛ ⎜ load2( b , v2) := ⎜ ⎜ ⎝
a2 a1 ⎞ ⎛ − ⋅ v10 , v10⎟ a0 a0 ⎝ ⎠ a2 a0 ⎞ ⎛ if ⎜ a0 ≠ 0 , v10 , − ⋅ v10⎟ a1 a1 ⎝ ⎠ b2 b0 ⎞ ⎛ if ⎜ b0 ≠ 0 , v20 , − ⋅ v20⎟ b1 b1 ⎝ ⎠ b2 b1 ⎞ ⎛ if ⎜ b0 ≠ 0 , − ⋅ v20 , v20⎟ b0 b0 ⎝ ⎠ if ⎜ a0 ≠ 0 ,
⎞ ⎟ ⎟ ⎟ ⎠ ⎞ ⎟ ⎟ ⎟ ⎠
score( xf , y) := y a+b ⎞ ⎛ S := bvalfit ⎜ v1 , v2 , a , b , , D , load1 , load2 , score ⎟
⎝
2 S = ( 0.153224 0.062349 )
⎠
Первый коэффициент вектора S – точное значение y(a), если a0=0 и y'(a) в противном случае, второй коэффициент – точное значение y(b), если b0=0 и y'(b) в противном случае. Т. е. свели краевую задачу к задаче Коши. Найдем решение этой задачи Коши, разбив отрезок на N частей a2 a1 ⎛ ⎞ − ⋅ S 0 , S 0⎟ a0 a0 ⎝ ⎠ a2 a0 ⎛ ⎞ y1 := if ⎜ a0 ≠ 0 , S 0 , − ⋅ S 0⎟ a1 a1 ⎝ ⎠ y0 := if ⎜ a0 ≠ 0 ,
Введите число точек разбиения отрезка [a, b] N := 100
Получим матрицу решений Y := rkfixed ( y , a , b , N , D)
Вычислим значения компьютерного решения в 10 промежуточных точках n := 0 .. 10 T n , 0 := Y N 10
T n , 1 := Y N 10
n⋅( b−a) , 0 n⋅( b−a) , 1
Матрица компьютерного решения, где первая строка значения переменной x , вторая – y , имеет вид 0.1 0.2 0.3 0.4 0.5 ⎛ 0.0 T T = ⎜⎜ ⎝ 0.846776 0.865220 0.886703 0.905491 0.914371 0.904302 0.6 0.7 0.8 0.9 1.0 ⎞ ⎟ 0.863987 0.779347 0.632877 0.402849 0.062349⎟⎠ График точного компьютерного решения 119
n := 0 .. N 1
Y n ,1
0.5
0
0
0.5
1
Yn , 0
В некоторых случаях можно найти точное аналитическое ре шение. Для данного примера решение имеет вид k ( x) :=
e2 + 7
(
)
2 e −e 2
x
e −
(
7+e
)
3 e −e 2
2x
⋅e
+x
2
Найдем матрицу аналитического решения i := 0 .. 10 b−a T1i , 0 := a + ⋅i 10
⎛ ⎝
T1i , 1 := k ⎜ a +
b− a 10
⎞ ⎠
⋅ i⎟
Матрица аналитического решения 0.1 0.2 0.3 0.4 0.5 ⎛ 0.0 T1T = ⎜⎜ ⎝ 0.846776 0.865220 0.886703 0.905491 0.914371 0.904302 0.6 0.7 0.8 0.9 1.0 ⎞ ⎟ 0.863987 0.779347 0.632877 0.402849 0.062349⎟⎠ Сравним аналитическое и компьютерное решения TS 〈 0〉 := T 〈 0〉 TS 〈 1〉 := T 〈 1〉 − T1 〈 1〉
Матрица сравнения аналитического и компьютерного решения 0.0 0.1 0.2 0.3 0.4 0.5 ⎛ TST = ⎜⎜ −13 −10 −10 −9 −9 3.47 ×10 8.25 × 10 1.48 ×10 2.35 × 10 3.52 × 10−9 ⎝ − 2.51×10 0.6 0.7 0.8 0.9 1.0 ⎞ −13 −9 −9 −8 −8 ⎟ 5.06 × 10 7.08 ×10 9.73× 10 1.32× 10 1.77 × 10 ⎟⎠ Максимальное значение |TS ij | равно
K := max( max( TS 〈 1〉 ) , min ( TS 〈 1〉 K = 0.000000017654449
)) 120
Получение приближенного решения методом Галеркина n
Введите порядок пробного решения U n =V(0, x)+ ∑ CkV (k , x) . k =1
n := 5 Введите систему пробных функций, полученную в разделе 2.2. ⎛ ⎛ x2 ⎛ x3 ⎛ x4 V (k , x ) := if ⎜ k = 0, 6 − 5 x, if ⎜ k = 1, 1 − x + , if ⎜⎜ k = 2, 1 − x + , if ⎜⎜ k = 3, 1 − x + , ⎜ ⎜ 3 ⎝ 4 ⎝ 5 ⎝ ⎝
⎛ x5 ⎛ x 6 ⎞ ⎞⎟ ⎞⎟ ⎞⎟ ⎞⎟ ⎞⎟ ⎜ if ⎜ k = 4, 1 − x + ,if ⎜⎜ k = 5, 1 − x + , 0 ⎟⎟ ⎟ ⎟ 6 ⎝ 7 ⎠ ⎠ ⎟⎠ ⎟⎠ ⎟ ⎝ ⎠⎠
Получение пробных функций можно автоматизировать стандартных функций системы MathCAD (см. разделы 8.4, 8.6) Т. е. пробные функции равны V ( 0 , x) → 6 − 5 ⋅ x V ( 3 , x) → 1 − x +
1 5
V ( 1 , x) → 1 − x + ⋅x
V ( 4 , x) → 1 − x +
4
1 3 1 6
⋅x
с
помощью
V ( 2 , x) → 1 − x +
2
⋅x
V ( 5 , x) → 1 − x +
5
1 4 1 7
⋅x
3
⋅x
6
Введем оператор, равный левой части уравнения L( k , x , V ) :=
d2 d x2
V ( k , x) + p ( x) ⋅
d V ( k , x) + q( x) ⋅ V ( k , x) dx
Применим этот оператор к первым пяти пробным функциям f ( x) − L( 0 , x , V ) → 2 ⋅ x2 + 4 ⋅ x − 25 L(1 , x , V ) → L(3 , x , V ) →
17 3 12 5 10
−4⋅x + ⋅x +5− 2
2
⋅x
L(2 , x , V ) →
2
3 12
⋅x −2⋅x + 3
2
−1 2
⋅ x+ 5−
9 4
⋅x + 2
1 2
⋅x
3
⋅x
4
5 1 5 3 4 L(4 , x , V ) → ⋅x +5 − ⋅x −2⋅x + ⋅ x 3 3 2 30 4 2 6 18 5 L(5 , x , V ) → ⋅x +5− ⋅x −2⋅x + ⋅ x 7 7 7 5 5
1. В качестве поверочных функций возьмем пробные W ( k , x) := V ( k , x)
Найдем коэффициенты системы уравнений AC=B для определения оптимальных коэффициентов пробных решений Ck i := 1 .. n 121
b
⌠ Bi−1 := ⎮ ( f ( x) − L( 0 , x , V ) ) ⋅ W ( i , x) d x ⌡a T
B = ( − 13.977778 − 12.945833 − 12.476190 − 12.224206 − 12.073696 ) i := 1 .. n j := 1 .. n b
⌠ A i−1 , j −1 := ⎮ L ( j , x , V ) ⋅ W ( i , x) d x ⌡a
⎛ ⎜ ⎜ A=⎜ ⎜ ⎜ ⎝
2.562963 2.645833 2.694603 2.726852 2.749811 2.404167 2.465774 2.499286 2.520618 2.535544 2.334603 2.385714 2.410794 2.425714 2.435739 2.29828
2.343535 2.363492 2.374319 2.381107
2.277022 2.318707 2.335331 2.343383 2.347914
⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠
Решая систему уравнений AC=B матричным методом, получим вектор коэффициентов Ck C := A− 1 ⋅ B
T
C = ( 1.132936 −2.499320 −2.647392 0.073920 −1.213380 ) Выпишите получившееся пробное решение для n = 5 . Следовательно, пробное решение U(x) для n = 5 имеет вид n
U ( x) := V ( 0 , x) +
∑
Ck − 1 ⋅ V ( k , x)
k =1
Выпишите матрицу получившегося пробного решения , разбив отрезок [a, b]
на 10 частей, и график этого решения
i := 0 .. 10 b−a U2i , 0 := a + ⋅i 10
⎛ ⎝
U2i , 1 := U ⎜ a +
b− a 10
⎞ ⎠
⋅ i⎟
Матрица пробного решения 0.1 0.2 0.3 0.4 0.5 ⎛ 0.0 U2T = ⎜⎜ ⎝ 0.846764 0.865187 0.886664 0.905468 0.914354 0.904274 0.6 0.7 0.8 0.9 1.0 ⎞ ⎟ 0.863945 0.779309 0.632856 0.402832 0.062317⎟⎠ Найдем вектор коэффициентов Ck для предыдущего пробного решения. Для этого решим систему уравнений A1C=B1, где A1 угловая матрица ( n − 1 )-го 122
порядка матрицы A, а B1 вектор-столбец, содержащий первые ( n − 1 ) элементы столбца B. C1 := if ⎡⎣n ≠ 1 , ( submatrix ( A , 0 , n − 2 , 0 , n − 2) ) − 1 ⋅ submatrix ( B , 0 , n − 2 , 0 , 0) , 10⎤⎦ T
C1 = ( 1.283640 −3.626226 0.295870 −3.106352 ) Получим матрицу предыдущего (для n = 4 ) пробного решения, разбив
отрезок [a, b] на 10 частей
n− 1 ⎞ ⎛ ⎜ UP( x) := if n ≠ 1 , V ( 0 , x) + C1k −1 ⋅ V ( k , x) , V ( 0 , x) ⎟ ⎜ ⎟ = 1 k ⎝ ⎠
∑
i := 0 .. 10 b−a U3i , 0 := a + ⋅i 10
⎛ ⎝
b−a
U3i , 1 := UP ⎜ a +
10
⎞ ⎠
⋅ i⎟
Матрица предыдущего пробного решения 0. 0 ⎛ U3 T = ⎜⎜ ⎝ 0 . 846932 0 .6 0 .864404
0 .1
0. 2
0. 3
0 .4
0 .5
0 .865612
0 .887337
0 .906106
0. 914814
0 . 904636
0 .7
0. 8
0. 9
0. 779985
0 .633662
0 .403509
⎞ ⎟ 0 .062772 ⎟⎠ 1. 0
Выпишите матрицу сравнения полученных решений для n = 5 и n = 4 U23 〈 0〉 := U2 〈 0〉 U23 〈 1〉 := U2 〈 1〉 − U3 〈 1〉
Матрица сравнения приближенных решений Un(x) и Un-1(x) ⎛ 0. 0 U23 T = ⎜⎜ ⎝ − 0 . 0002 0 .6
0. 1
0 .2
0. 3
0. 4
0. 5
− 0 .0004
− 0 .0007
− 0 . 0006
− 0 . 0005
− 0 . 0004
0 .7
0. 8
0. 9
− 0 .0005
− 0 .0007
− 0 . 0008
− 0 . 0007
Максимальное значение |U23 ij | равно
⎞ ⎟ − 0 . 0005 ⎟⎠ 1 .0
K11 := max ( max ( U23 〈 1〉 ) , min ( U23 〈 1〉 K11 = 0.000806
))
Выпишите это значение для n=1, …, n=5 и сделайте вывод.
Найдем невязку полученного решения
n
R ( x) := L ( 0 , x , V ) − f ( x) +
∑
Ci−1 ⋅ L ( i , x , V )
i =1
i := 0 .. 10 123
UN i , 0 := a +
⎛ ⎝
UN i , 1 := R ⎜ a +
b−a 10
b−a 10
⋅i
⎞ ⎠
⋅i⎟
Матрица невязок 0.1 0.2 0.3 0.4 0.5 ⎛ 0.0 UN T = ⎜⎜ ⎝ − 0.01089 0.00326 0.00192 − 0.00149 − 0.00199 0.00010 0.6 0.7 0.8 0.9 1.0 ⎞ ⎟ 0.00202 0.00128 − 0.00198 − 0.00283 0.01035⎟⎠ Максимальное значение |UN ij | равно K12 := max ( max ( UN 〈 1〉 ) , min ( UN 〈 1〉 K12 = 0.010887
))
Выпишите это значение для n=1, …, n=5 и сделайте вывод. Сравним точное и приближенное (при n = 5 ) решения, для этого найдем
разность матриц этих решений T и U2
U12 〈 0〉 := U2 〈 0〉 U12 〈 1〉 := T 〈 1〉 − U2 〈 1〉
Матрица сравнения точного и приближенного решения 0.1 0.2 0.3 0.4 0.5 ⎛ 0.0 U12T = ⎜⎜ ⎝ 0.00001 0.00003 0.00004 0.00002 0.00002 0.00003 0.6 0.7 0.8 0.9 1.0 ⎞ ⎟ 0.00004 0.00004 0.00002 0.00002 0.00003⎟⎠ Максимальное значение |U12 ij | равно K13 := max ( max ( U12 〈 1〉 ) , min ( U12 〈 1〉 K13 = 0.000041
))
Выпишите это значение для n=1, …, n=5 и сделайте вывод.
2. В качестве проверочных функций возьмем многочлены Лежандра
⎡⎢ ⎤ k ⎥ 1 dk ( 2 ) P ( k , t) := if k ≠ 0 , ⋅ t − 1 ,1 k ⎢ ⎥ k 2 ⋅ k! d t ⎣ ⎦ a + b⎞⎤ 2 ⎡ ⎛ W ( k , x) := P ⎢ k , ⋅ ⎜x − ⎟⎥ 2 ⎠⎦ ⎣ b−a ⎝
Т. е. ортогональные функции W ( 0 , x) → 1
W ( 1 , x) → 2 ⋅ x − 1
W ( 2 , x) →
3 2
2
⋅ ( 2 ⋅ x − 1) −
1 2 124
3
W ( 3 , x) → ( 2 ⋅ x − 1) +
3 2
⋅ ⎡⎣( 2 ⋅ x − 1) − 1⎤⎦ ⋅ ( 2 ⋅ x − 1) 2
W ( 4 , x) → ( 2 ⋅ x − 1) + 3 ⋅ ⎡⎣( 2 ⋅ x − 1) − 1⎤⎦ ⋅ ( 2 ⋅ x − 1) + 4
2
2
3 8
Найдем коэффициенты системы уравнений AC=B оптимальных коэффициентов пробных решений Ck
⋅ ⎡⎣( 2 ⋅ x − 1) − 1⎤⎦ 2
для
2
определения
i := 1 .. n b
T
B =
( − 22.333333
⌠ Bi−1 := ⎮ ( f ( x) − L ( 0 , x , V ) ) ⋅ W ( i − 1 , x) d x ⌡a − 11
1.000000 0.066667 − 6.281962 × 10 i := 1 .. n j := 1 .. n
−8
− 4.456747 × 10
)
b
⌠ A i−1 , j −1 := ⎮ L ( j , x , V ) ⋅ W ( i − 1 , x) d x ⌡a
⎛ ⎜ ⎜ A=⎜ ⎜ ⎜ ⎝
3.888889
4.125
4.28
−0.555556
− 0.383333
− 0.24
0.022222
− 0.05
4.629321 × 10− 12
0.003571
7.606315 × 10− 9
8.418551 × 10− 9
4.388889
4.469388
− 0.126984 −0.037415
− 0.017143 0.043651
0.108844
− 0.011429 − 0.005291 0.017007 0.000635
− 0.002645 −0.001546
⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠
Решая систему уравнений AC=B матричным методом, получим вектор коэффициентов Ck C := A− 1 ⋅ B
T
C = ( 1.135995 −2.510843 −2.638116 0.080296 −1.220556 )
Выпишите получившееся пробное решение для n = 5 . Следовательно, пробное решение U(x) для n = 5 имеет вид n
U ( x) := V ( 0 , x) +
∑
Ck − 1 ⋅ V ( k , x)
k =1
Выпишите матрицу получившегося пробного решения, разбив отрезок
[a,b] на 10 частей.
i := 0 .. 10 b−a U2i , 0 := a + ⋅i 10
⎛ ⎝
U2i , 1 := U ⎜ a +
b− a 10
⎞ ⎠
⋅ i⎟
125
Матрица пробного решения 0.1 0.2 0.3 0.4 0.5 ⎛ 0.0 U2T = ⎜⎜ ⎝ 0.846776 0.865205 0.886695 0.905507 0.914394 0.904308 0.6 0.7 0.8 0.9 1.0 ⎞ ⎟ 0.863970 0.779327 0.632875 0.402859 0.062349⎟⎠ Найдем вектор коэффициентов Ck для предыдущего пробного решения.
C1 := if ⎡⎣n ≠ 1 , ( submatrix ( A , 0 , n − 2 , 0 , n − 2) ) − 1 ⋅ submatrix ( B , 0 , n − 2 , 0 , 0) , 10⎤⎦ T
C1 = ( 1.269787 −3.612514 0.320711 −3.131183 ) Получим матрицу предыдущего (для n = 4 ) пробного решения, разбив
отрезок [a, b] на 10 частей
n− 1 ⎛ ⎞ ⎜ ⎟ UP( x) := if n ≠ 1 , V ( 0 , x) + C1k −1 ⋅ V ( k , x) , V ( 0 , x) ⎜ ⎟ k = 1 ⎝ ⎠
∑
i := 0 .. 10 b−a U3i , 0 := a + ⋅i 10
⎛ ⎝
U3i , 1 := UP ⎜ a +
b−a 10
⎞ ⎠
⋅ i⎟
Матрица предыдущего пробного решения 0.1 0.2 0.3 0.4 0.5 ⎛ 0.0 U3T = ⎜⎜ ⎝ 0.846800 0.865451 0.887081 0.905721 0.914300 0.904025 0.6 0.7 0.8 0.9 1.0 ⎞ ⎟ 0.863751 0.779356 0.633114 0.403070 0.062412⎟⎠ Выпишите матрицу сравнения полученных решений для n = 5 и n = 4 U23 〈 0〉 := U2 〈 0〉 U23 〈 1〉 := U2 〈 1〉 − U3 〈 1〉
Матрица сравнения приближенных решений Un(x) и Un-1(x) 0.1 0.2 0.3 0.4 0.5 ⎛ 0.0 U23T = ⎜⎜ ⎝ − 0.00002 − 0.00025 − 0.00039 − 0.00021 0.00009 0.00028 0.6 0.7 0.8 0.9 1.0 ⎞ ⎟ 0.00022 − 0.00003 − 0.00021 − 0.00020 − 0.00010⎟⎠ Максимальное значение |U23 ij | равно K21 := max ( max ( U23 〈 1〉 ) , min ( U23 〈 1〉 ) K21 = 0.000387 Выпишите это значение для n=1, …, n=5 и сделайте вывод.
)
126
Найдем невязку полученного решения n
R ( x) := L ( 0 , x , V ) − f ( x) +
∑
Ci− 1 ⋅ L ( i , x , V )
i =1
i := 0 .. 10 b−a UN i , 0 := a + ⋅i 10
⎛ ⎝
UN i , 1 := R ⎜ a +
b−a 10
⎞ ⎠
⋅i⎟
Матрица невязок 0.1 0.2 0.3 0.4 0.5 ⎛ 0.0 UN T = ⎜⎜ ⎝ − 0.0088 0.0035 0.0012 − 0.0024 − 0.0026 0.0001 0.6 0.7 0.8 0.9 1.0 ⎞ ⎟ 0.0026 0.0022 − 0.0013 − 0.0032 0.0080⎟⎠ Максимальное значение |UN ij | равно
K22 := max ( max ( UN 〈 1〉 ) , min ( UN 〈 1〉 ) ) K22 = 0.00879 Выпишите это значение для n=1, …, n=5 и сделайте вывод. Сравним точное и приближенное (при n = 5 ) решения, для этого найдем
разность матриц этих решений T и U2
U12 〈 0〉 := U2 〈 0〉 U12 〈 1〉 := T 〈 1〉 − U2 〈 1〉
Матрица сравнения точного и приближенного решения 0.1 0.2 0.3 0.4 0.5 ⎛ 0.0 U12T = ⎜⎜ ⎝ 0.000000 0.000015 0.000008 − 0.000015 − 0.000023 − 0.000006 0.6 0.7 0.8 0.9 1.0 ⎞ ⎟ 0.000017 0.000020 0.000002 − 0.000010 0.000001⎟⎠ Максимальное значение |U12 ij | равно K23 := max ( max ( U12 〈 1〉 ) , min ( U12 〈 1〉 ) K23 = 0.000023 Выпишите это значение для n=1, …, n=5 и сделайте вывод.
)
Получение приближенного решения вариационным методом Ритца
127
Введем обозначения ⌠x ⎮ p (t ) dt ⌡a
K ( x) := e
β ( x) := −K ( x) ⋅ q( x)
Следовательно, K ( x) → exp( − 3 ⋅ x)
g ( x) := K ( x) ⋅ f ( x)
β ( x) → − 2 ⋅ exp( − 3 ⋅ x)
g ( x) → exp ( − 3 ⋅ x) ⋅ ( 2 ⋅ x2 − 6 ⋅ x + 2)
Вычислим значения параметров функционала a2 ⎞ ⎛ , 0⎟ a0 ⎠ ⎝ b2 ⎞ ⎛ Tb := if ⎜ b0 ≠ 0 , , 0 ⎟ b0 ⎠ ⎝ a0 ⎞ ⎛ α a := if ⎜ a0 ≠ 0 ∧ a1 ≠ 0 , − ⋅ K ( a) , 0 ⎟ a1 ⎝ ⎠ b0 ⎞ ⎛ α b := if ⎜ b0 ≠ 0 ∧ b1 ≠ 0 , ⋅ K ( b) , 0 ⎟ b1 ⎝ ⎠ a2 ⎞ ⎛ qa := if ⎜ a0 0 ∧ a1 ≠ 0 , − ⋅ K ( a) , 0 ⎟ a1 ⎝ ⎠ b2 ⎞ ⎛ qb := if ⎜ b0 0 ∧ b1 ≠ 0 , − ⋅ K ( b) , 0 ⎟ b1 ⎝ ⎠ Ta := if ⎜ a0 ≠ 0 ,
Ta = 1 Tb = − 4
α a = −1 α b = 0.049787 qa = 0 qb = 0
Найдем коэффициенты системы уравнений AC=B для определения оптимальных коэффициентов пробных решений Ck d V ( k , x) dx i := 1 .. n
N ( k , x) :=
b
Bi−1 := ∫ [K ( x ) ⋅ N (0, x ) ⋅ N (i, x) + ( β ( x) ⋅ V (0, x) + g ( x) ) ⋅ V (i, x)]dx − a
− [αb ⋅ (V (0,b ) − Tb ) + qb] ⋅ V (i, b) − [αa ⋅ (V (0, a) − Ta ) − qa] ⋅ V (i, a) T
B = ( 5.784685 5.613800 5.551399 5.522788 5.507581 ) i := 1 .. n j := 1 .. n b
Ai−1, j−1 := ∫ [K ( x ) ⋅ N (i, x ) ⋅ N ( j , x ) + β ( x ) ⋅ V (i, x ) ⋅ V ( j, x)]dx + a
+ αb ⋅ V (i,b) ⋅ V ( j,b ) + αa ⋅ V (i, a ) ⋅ V ( j, a)
128
⎛ ⎜ ⎜ A=⎜ ⎜ ⎜ ⎝
−1.166562 −1.137719 − 1.127741 − 1.123351 −1.12109 ⎞ ⎟ −1.137719 −1.106236 − 1.095059 − 1.090057 −1.087451 −1.127741 −1.095059 − 1.083183 − 1.077762 −1.074892 −1.123351 −1.090057 − 1.077762 − 1.072061 −1.068999 −1.12109 −1.087451 − 1.074892 − 1.068999 −1.065798
⎟ ⎟ ⎟ ⎟ ⎠
Решая систему уравнений AC=B матричным методом, получим вектор коэффициентов Ck C := A− 1 ⋅ B
T
C = ( 1.140938 − 2.564241 −2.466128 −0.133009 − 1.130778 ) Выпишите получившееся пробное решение для n = 5 . Следовательно, пробное решение U(x) для n = 5 имеет вид n
U ( x) := V ( 0 , x) +
∑
Ck −1 ⋅ V ( k , x)
k =1
Выпишите матрицу получившегося пробного решения, разбив отрезок [a,b] на
10 частей, и график этого решения
i := 0 .. 10 b−a U2i , 0 := a + ⋅i 10
⎛ ⎝
U2i , 1 := U ⎜ a +
b− a 10
⎞ ⎠
⋅ i⎟
Матрица пробного решения 0.1 0.2 0.3 0.4 0.5 ⎛ 0.0 U 2T = ⎜⎜ ⎝ 0.846781 0.865215 0.886702 0.905499 0.914375 0.904293 0.6 0.7 0.8 0.9 1.0 ⎞ ⎟ 0.863973 0.779349 0.632854 0.402854 0.062319⎟⎠ Найдем вектор коэффициентов Ck для предыдущего пробного решения. C1 := if ⎡⎣n ≠ 1 , ( submatrix ( A , 0 , n − 2 , 0 , n − 2) ) − 1 ⋅ submatrix ( B , 0 , n − 2 , 0 , 0) , 10⎤⎦ T
C1 = ( 1.217724 −3.293890 −0.232232 − 2.844897 ) Получим матрицу предыдущего (для n = 4 ) пробного решения, разбив
отрезок [a, b] на 10 частей.
n− 1 ⎛ ⎞ ⎜ ⎟ UP( x) := if n ≠ 1 , V ( 0 , x) + C1k −1 ⋅ V ( k , x) , V ( 0 , x) ⎜ ⎟ k =1 ⎝ ⎠
∑
i := 0 .. 10
129
U3i , 0 := a +
b−a
⎛ ⎝
U3i , 1 := UP ⎜ a +
10
⋅i
b−a 10
⎞ ⎠
⋅ i⎟
Матрица предыдущего пробного решения 0.1 0.2 0. 3 0. 4 0. 5 ⎛ 0. 0 U3 T = ⎜⎜ ⎝ 0.846705 0.865260 0. 886786 0.905463 0.914222 0.904175 0. 6 0. 7 0.8 0. 9 1.0 ⎞ ⎟ 0.864049 0. 779613 0. 633110 0.402690 0. 061840 ⎟⎠ Выпишите матрицу сравнения полученных решений для n = 5 и n = 4 U23 〈 0〉 := U2 〈 0〉 U23 〈 1〉 := U2 〈 1〉 − U3 〈 1〉
Матрица сравнения приближенных решений Un(x) и Un-1(x) 0.1 0.2 0.3 0.4 0.5 ⎛ 0.0 U23T = ⎜⎜ ⎝ 0.00008 − 0.00005 − 0.00008 0.00004 0.00015 0.00012
0.6 0.7 0.8 0.9 1.0 ⎞ ⎟ − 0.00008 − 0.00026 − 0.00021 0.00016 0.00048⎟⎠ Максимальное значение |U23 ij | равно K31 := max( max( U23 〈 1〉 ) , min ( U23 〈 1〉 ) K31 = 0.000479 Выпишите это значение для n=1, …, n=5 и сделайте вывод.
)
Найдем невязку полученного решения
n
R ( x) := L ( 0 , x , V ) − f ( x) +
∑
Ci−1 ⋅ L ( i , x , V )
i =1
i := 0 .. 10 b−a UN i , 0 := a + ⋅i 10
⎛ ⎝
UN i , 1 := R ⎜ a +
b−a 10
⎞ ⎠
⋅i⎟
Матрица невязок 0.1 0.2 0.3 0.4 0.5 ⎛ 0.0 UN T = ⎜⎜ ⎝ − 0.0055 0.0021 0.0003 − 0.0016 0.0008 0.0013 0.6 0.7 0.8 0.9 1.0 ⎞ ⎟ 0.0021 − 0.0002 − 0.0039 − 0.0025 0.0176⎟⎠ 130
Максимальное значение |UN ij | равно
K32 := max( max( UN 〈 1〉 ) , min ( UN 〈 1〉 ) ) K32 = 0.017592 Выпишите это значение для n=1, …, n=5 и сделайте вывод. Сравним точное и приближенное (при n = 5 ) решения, для этого найдем
разность матриц этих решений T и U2
U12 〈 0〉 := U2 〈 0〉 U12 〈 1〉 := T 〈 1〉 − U2 〈 1〉
Матрица сравнения точного и приближенного решения 0.0 0.1 0.2 0. 3 0.4 0. 5 ⎛ U12 T = ⎜⎜ ⎝ − 0.000005 0.000005 0.000001 − 0. 000008 0. 000004 0.000009 0. 6 0.7 0. 8 0.9 1. 0 ⎞ ⎟ 0.000013 − 0.000002 − 0.000021 − 0.000005 0.000031 ⎟⎠
Максимальное значение |U12 ij | равно
K33 := max( max( U12 〈 1〉 ) , min ( U12 〈 1〉 ) K33 = 0.000031 Выпишите это значение для n=1, …, n=5 и сделайте вывод.
)
Получение приближенного решения интегральным методом наименьших квадратов Найдем коэффициенты системы уравнений AC=B для определения оптимальных коэффициентов пробных решений Ck i := 1 .. n b
⌠ Bi−1 := ⎮ ( f ( x) − L ( 0 , x , V ) ) ⋅ L ( i , x , V ) d x ⌡a T
B = ( − 88.511111 − 93.291667 − 96.312381 − 98.384921 − 99.892290 ) i := 1 .. n j := 1 .. n b
⌠ A i−1 , j −1 := ⎮ L ( i , x , V ) ⋅ L ( j , x , V ) d x ⌡a
⎛ ⎜ ⎜ A=⎜ ⎜ ⎜ ⎝
16.051852
16.675
17.04254
17.284392 17.455404
16.675
17.469048
17.935
18.239153 18.452466
17.04254
17.935
18.493587
18.87254
17.284392 18.239153
18.87254
19.320507 19.653061
17.455404 18.452466
19.14522
19.653061 20.040911
19.14522
⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠ 131
Решая систему уравнений AC=B матричным методом, получим вектор коэффициентов Ck C := A− 1 ⋅ B
T
C = ( 1.137789 −2.526360 −2.595082 0.032496 −1.202066 ) Выпишите получившееся пробное решение для n = 5 Следовательно, пробное решение U(x) для n = 5 имеет вид n
∑
U ( x) := V ( 0 , x) +
C k − 1 ⋅ V ( k , x)
k =1
Выпишите матрицу получившегося пробного решения, разбив отрезок [a, b]
на 10 частей. i := 0 .. 10 b−a U2i , 0 := a + ⋅i 10
⎛ ⎝
U2i , 1 := U ⎜ a +
Таблица пробного решения
b− a 10
⎞ ⎠
⋅ i⎟
0. 1 0. 2 0.3 0. 4 0. 5 ⎛ 0. 0 U2 T = ⎜⎜ ⎝ 0.846776 0. 865207 0.886699 0. 905508 0. 914391 0.904303 0.6 0. 7 0.8 0.9 1.0 ⎞ ⎟ 0. 863966 0.779328 0. 632879 0. 402862 0.062349 ⎟⎠
Найдем вектор коэффициентов Ck для предыдущего пробного решения. Для этого решим систему уравнений A1C=B1, где A1 угловая матрица ( n − 1 )-го порядка матрицы A, а B1 вектор-столбец, содержащий первые ( n − 1 ) элементы столбца B. C1 := if ⎡⎣n ≠ 1 , ( submatrix ( A , 0 , n − 2 , 0 , n − 2) ) − 1 ⋅ submatrix ( B , 0 , n − 2 , 0 , 0) , 10⎤⎦ T
C1 = ( 1.250085 −3.512826 0.168005 −3.058491 ) Получим матрицу предыдущего (для n = 4 ) пробного решения, разбив
отрезок [a, b] на 10 частей.
n− 1 ⎞ ⎛ ⎜ UP( x) := if n ≠ 1 , V ( 0 , x) + C1k −1 ⋅ V ( k , x) , V ( 0 , x) ⎟ ⎜ ⎟ k = 1 ⎝ ⎠
∑
i := 0 .. 10 b−a U3i , 0 := a + ⋅i 10
⎛ ⎝
U3i , 1 := UP ⎜ a +
b−a 10
⎞ ⎠
⋅ i⎟ 132
Таблица предыдущего пробного решения 0.1 0.2 0.3 0.4 0.5 ⎛ 0.0 U3T = ⎜⎜ ⎝ 0.846773 0.865383 0.886952 0.905566 0.914170 0.903955 0.6 0.7 0.8 0.9 1.0 ⎞ ⎟ 0.863744 0.779382 0.633126 0.403032 0.062341⎟⎠ Выпишите таблицу сравнения полученных решений для n = 5 и n = 4 U23 〈 0〉 := U2 〈 0〉 U23 〈 1〉 := U2 〈 1〉 − U3 〈 1〉
Матрица сравнения приближенных решений Un(x) и Un-1(x) 0.1 0.2 0.3 0.4 0.5 ⎛ 0.0 U23T = ⎜⎜ ⎝ 0.000003 − 0.000176 − 0.000253 − 0.000058 0.000221 0.000347 0.6 0.7 0.8 0.9 1.0 ⎞ ⎟ 0.000223 − 0.000054 − 0.000248 − 0.000170 0.000008⎟⎠ Максимальное значение |U23 ij | равно
K41 := max ( max ( U23 〈 1〉 ) , min ( U23 〈 1〉 ) K41 = 0.000347 Выпишите это значение для n=1, …, n=5 и сделайте вывод.
)
Найдем невязку полученного решения
n
R ( x) := L ( 0 , x , V ) − f ( x) +
∑
Ci−1 ⋅ L ( i , x , V )
i =1
i := 0 .. 10 b−a UN i , 0 := a + ⋅i 10
⎛ ⎝
UN i , 1 := R ⎜ a +
b−a 10
⎞ ⎠
⋅i⎟
Матрица невязок 0.1 0.2 0.3 0.4 0.5 ⎛ 0.0 UN T = ⎜⎜ ⎝ − 0.0076 0.0032 0.0008 − 0.0024 − 0.0022 0.0005 0.6 0.7 0.8 0.9 1.0 ⎞ ⎟ 0.0028 0.0019 − 0.0018 − 0.0034 0.0091⎟⎠ Максимальное значение |UN ij | равно
K42 := max ( max ( UN 〈 1〉 ) , min ( UN 〈 1〉 ) K42 = 0.0091 Выпишите это значение для n=1, …, n=5 и сделайте вывод.
)
133
Сравним точное и приближенное (при n = 5 ) решения, для этого найдем разность матриц этих решений T и U2 U12 〈 0〉 := U2 〈 0〉 U12 〈 1〉 := T 〈 1〉 − U2 〈 1〉
Матрица сравнения точного и приближенного решения 0.1 0.2 0.3 0.4 0.5 ⎛ 0.0 U12T = ⎜⎜ ⎝ 0.000000 0.000012 0.000004 − 0.000017 − 0.000020 − 0.000001 0.6 0.7 0.8 0.9 1.0 ⎞ ⎟ 0.000020 0.000019 − 0.000002 − 0.000013 0.000001⎟⎠ Максимальное значение |U12 ij | равно
K43 := max ( max ( U12 〈 1〉 ) , min ( U12 〈 1〉 ) K43 = 0.00002 Выпишите это значение для n=1, …, n=5 и сделайте вывод.
)
Выводы Таким образом, при n = 5 получаем следующие результаты: 1. Использование двух систем поверочных функций: пробных и многочленов Лежандра методом Галеркина Поверочные ф-ции max| y n ( x) − y n−1 (x ) | max| Rn (x) | max| Y (x ) − yn (x ) | Пробные функции K11 = 0.000806 K12 = 0.010887 K13 = 0.000041 Многочл. Лежандра K21 = 0.000387 K22 = 0.00879 K23 = 0.000023 2. Вариационный метод Ритца max| Rn (x) | max| Y (x ) − yn (x ) | max| y n ( x) − y n−1 (x ) | K31 = 0.000479
K32 = 0.017592
3. Интегральный метод наименьших квадратов max| Rn (x) | max| y n ( x) − y n−1 (x ) | K41 = 0.000347
K42 = 0.009138
K33 = 0.000031
max| Y (x ) − yn (x ) | K43 = 0.00002
134
Лабораторная работа «Решение начально-краевой задачи для параболического уравнения методом Галеркина»
Приложение Б
одномерного
Задание на лабораторную работу 1. В пункте «Постановка задачи» ввести вместо данных примера непрерывные функции уравнения K(x) (K>0), β (x), g(x), f(x) и числовые параметры задачи a, b, a0, a1, a2, b0, b1, b2, c1, c2, c3, c4 своего варианта.
2. В пункте «Получение точного решения» ввести найденное аналитически число слагаемых в разложении решения в ряд, обеспечивающих точность решения 0.001. Необходимо выписать полученную таблицу точного решения.
3. В пункте «Получение приближенного решения» выполнить построение пяти пробных решений задачи, вводя последовательно n=1, …, n=5, тремя системами пробных и поверочных функций. Переписать значения коэффициентов Y100,k и, подставив их, получить пробное решение при t=T. Выписать таблицы пробных решений, таблицы сравнения с предыдущим пробным решением и точным решением, таблицы невязок R1 и R2. Сделать выводы о системе пробных и поверочных функций, дающих лучшее приближение к точному решению задачи.
Постановка задачи Требуется в плоской области D={(x, t) | a ≤ x ≤ b , t ≥ 0 } найти решение U(x, t) дифференциального уравнения 2
d d d d U − K ( x , t) ⋅ U − β ( x , t) ⋅ U U − K ( x , t) ⋅ 2 dt dx dx dx
g ( x , t)
удовлетворяющее двум краевым условиям a0 ⋅ U ( a , t) + a1 ⋅
d U ( a , t) dx
a2 ( t)
b0 ⋅ U ( b , t) + b1 ⋅
d U ( b , t) dx
b2 ( t)
и начальному условию U ( x , 0)
f ( x)
135
Рассмотрим случай, когда функции K, β , g, a2, b2 не зависят от t. Введите непрерывные функции уравнения K(x) (K>0), β (x), g(x), f(x) и числовые параметры задачи a, b, a0, a1, a2, b0, b1, b2, c1, c2, c3, c4
a0 := 1
c1 := 0.1 c2 := 1 c3 := 2 c4 := 1 K ( x) := c1 β ( x) := 0 g ( x) := 0 a := 0 b := π a1 := 0 a2 := c2 b0 := 1 b1 := 0
b2 := c3
2
c3 − c2 − c4 ⋅ b f ( x) := c4 ⋅ x + ⋅ x + c2 b 2
то есть 2
f ( x) → x +
( 1 − π 2)
⋅ x+ 1
π Проверим соответствие граничных и начальных условий
⎞ ⎤ ⎡ ⎛d f ( a) ⎟ a2 , "Yes" , "No"⎥ = "Yes" ⎣ ⎝ da ⎠ ⎦ ⎞ ⎤ ⎡ ⎛d if ⎢b0 ⋅ f ( b) + b1 ⋅ ⎜ f ( b) ⎟ b2 , "Yes" , "No"⎥ = "Yes" ⎣ ⎝ db ⎠ ⎦ Если хотя бы одно условие не выполняется (="No"), то задача поставлена не корректно. if ⎢a0 ⋅ f ( a) + a1 ⋅ ⎜
Введите конечный момент времени, до которого необходимо провести
исследование вашего варианта
T := 1
Получение точного решения Найдем точное решение U(x, t), используя разложение функции в ряд Фурье. Если β ( x) = 0, γ ( x) = 0, K ( x) = c1 = const , то решение имеет вид 2
− c1⋅
M
U(x, t)=U0(x, t)+
∑
Ak ⋅ e
k =1
k ⋅π
2
(b− a)
2
t
⎛ kπx ⎞ sin⎜ ⎟. ⎝ b − a⎠
Введите число слагаемых, обеспечивающих точность решения 0.001 M := 30
Если a1=0, b1=0, то функцию U0(x, t) можно взять в виде U0 ( x) :=
b0 ⋅ a2 ⋅ b − b2 ⋅ a0 ⋅ a ( b2 ⋅ a0 − b0 ⋅ a2) ⋅ x + a0 ⋅ b0 ⋅ ( b − a) a0 ⋅ b0 ⋅ ( b − a)
U0 ( x) → 1 +
x
π
Вычислим коэффициенты Ak i := 1 .. M 136
b
2 A2i−1 := b−a
⌠ ⎛ π ⋅ i ⋅ x⎞ ⋅ ⎮ ( f ( x) − U0 ( x) ) ⋅ sin ⎜ ⎟ dx ⎮ b−a ⎠ ⎝ ⌡ a
2
f ( x) − U0 ( x) → x +
( 1 − π 2)
π Следовательно, точное решение U(x, t) имеет вид
⋅ x−
2
− c1⋅
M
UT ( x , t) := U0 ( x) +
∑
A2k − 1 ⋅ e
k ⋅π
2
(b− a)
2
x
π
t
⎛ k ⋅ π ⋅ x⎞ ⎟ ⎝ b− a ⎠
⋅ sin ⎜
k =1
Выпишите матрицу U1 получившегося точного решения, разбив отрезок [a, b]
на 10 частей при t=0; 0.1T; 0.2T;..., T.
i := 0 .. 10 j := 0 .. 10
⎡ ⎣
U1i , j := UT ⎢a + ( b − a) ⋅
i j ⋅ T⎤ , ⎥ 10 10 ⎦
Матрица точного решения при t=0, 0.1T,..., T ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ U1= ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝
⎞ ⎟ 0.211599 0.231618 0.250214 0.267028 0.282339 0.296448 0.309585 0.321918 0.333577 0.344658 0.355239⎟ −0.379059−0.359137−0.339146−0.319252−0.299609−0.280336 −0.2615 −0.243128−0.225222−0.207772−0.19076⎟ ⎟ −0.772674−0.752617−0.732617−0.712618−0.692626−0.672661−0.652752−0.632932−0.613232−0.593678−0.574291 ⎟ −0.968656−0.948705−0.928705−0.908705−0.888705−0.868706−0.848709−0.828719−0.808743−0.78879−0.768869 ⎟ ⎟ −0.967448−0.947401−0.927401−0.907401−0.887401−0.867401−0.847401−0.827402−0.807404−0.78741−0.767422 ⎟ −0.768656−0.748705−0.728705−0.708705−0.688705−0.668706−0.648709−0.628719−0.608743−0.58879−0.568869 ⎟ ⎟ −0.372674−0.352617−0.332617−0.312618−0.292626−0.272661−0.252752−0.232932−0.213232−0.193678−0.174291 ⎟ 0.220941 0.240863 0.260854 0.280748 0.300391 0.319664 0.3385 0.356872 0.374778 0.392228 0.40924⎟ 1.011599 1.031618 1.050214 1.067028 1.082339 1.096448 1.109585 1.121918 1.133577 1.144658 1.155239⎟ ⎟ 2 2 2 2 2 2 2 2 2 2 2 ⎠ 1
1
1
1
1
1
1
1
1
1
1
137
График точного решения при t=T 2
UT ( x , T )
0
2
0
2
x
Получение приближенного решения n
Введите порядок пробного решения U n =V(0,x)+ ∑V (k , x) H (k , t) . k =1
n := 5
Возьмем пробные функции в следующем виде k := 1 .. n k
V0( k , x) := ( x − a) ⋅ ( x − b)
Нормируем их. Для этого вычислим нормировочные коэффициенты и выпишем их аналитические выражения i := 1 .. n b
⌠ 2 VV i−1 := ⎮ ( V0 ( i , x) ) d x ⌡a
Получили нормированные пробные функции
V0 ( k , x) b0 ⋅ a2 ⋅ b − b2 ⋅ a0 ⋅ a ( b2 ⋅ a0 − b0 ⋅ a2 ) ⋅ ⎡ V ( k , x) := if ⎢ k ≠ 0 , , + VV k −1 a0 ⋅ b0 ⋅ ( b − a) a0 ⋅ b0 ⋅ ( b − a) ⎣
x⎤
Выпишем первые функции V ( 0 , x) → 1 +
x
V ( 1 , x) → x ⋅ ( x − π
π
V ( 3 , x) → 6 ⋅ x ⋅ ( x − π
)⋅
V ( 4 , x) → 3 ⋅ x ⋅ ( x − π
)⋅
3
4
7
⎛9⎞ ⎜ ⎟ 2 π ⎝ ⎠ 55
⎛ 11 ⎞ ⎜ ⎟ 2 π ⎝ ⎠
)⋅
30
⎛ 5⎞ ⎜ ⎟ 2 π ⎝ ⎠
V ( 2 , x) → x ⋅ ( x − π
)⋅
V ( 5 , x) → x ⋅ ( x − π
)⋅
2
5
⎥ ⎦
105
⎛ 7⎞ ⎜ ⎟ 2 π ⎝ ⎠ 858
⎛ 13 ⎞ ⎜ ⎟ 2 π ⎝ ⎠ 138
Введем функции V1(k, x) и V2(k, x), равные первой и второй производной от функции V(k, x) k := 1 .. n k k −1 ⎡ ( x − a) + ( x − b) ⋅ k ⋅ ( x − a) ( b2 ⋅ a0 − b0 ⋅ a2) ⎤ ⎢ ⎥ V1( k , x) := if k ≠ 0 , , VV a0 ⋅ b0 ⋅ ( b − a ) k −1 ⎣ ⎦ k −1 k −2 ⎤ ⎡ + ( x − b) ⋅ k ⋅ ( k − 1) ⋅ ( x − a) 2 ⋅ k ⋅ ( x − a) V2( k , x) := if ⎢k ≠ 0 , , 0⎥ VV k −1 ⎣ ⎦
В качестве поверочных функций возьмем пробные W ( k , x) := V ( k , x)
Найдем
коэффициенты
системы
дифференциальных
уравнений
d H C ⋅ H + B для отыскания функций Hk(t) с начальными условиями dt A ⋅ H ( 0) D1 i := 1 .. n A⋅
b
⌠ ⎛ ⎞ d Bi−1 := ⎮ ⎜ K ( x) ⋅ V2( 0 , x) + K ( x) ⋅ V1 ( 0 , x) + β ( x) ⋅ V ( 0 , x) + g( x) ⎟ ⋅ W ( i , x) d x ⎮ ⎝ dx ⎠ ⌡a T
B =( 0 0 0 0 0) i := 1 .. n j := 1 .. n b
⌠ A i−1 , j−1 := ⎮ V ( j , x) ⋅ W ( i , x) d x ⌡a
⎛ ⎜ ⎜ A=⎜ ⎜ ⎜ ⎝
1.000000 0.935414 0.828079 0.725361 0.636654 ⎞ ⎟ 0.935414 1.000000 0.968246 0.904684 0.833750
⎟ 0.828079 0.968246 1.000000 0.981071 0.939374 ⎟ 0.725361 0.904684 0.981071 1.000000 0.987421 ⎟ ⎟ 0.636654 0.833750 0.939374 0.987421 1.000000 ⎠ i := 1 .. n j := 1 .. n
b
⌠ ⎮ Ci−1 , j −1 := ⎮ ⎮ ⌡a
⎡ ⎤ ⎢K ( x) ⋅ d2 V ( j , x) + ⎛ d K ( x) ⎞ ⋅ ⎛ d V ( j , x) ⎞ + β ( x) ⋅ V ( j , x)⎥ ⋅ W( i , x) d x ⎜ ⎟ ⎜ ⎟ 2 ⎢ ⎥ ⎝d x ⎠ ⎝d x ⎠ dx ⎣ ⎦
139
⎛ ⎜ ⎜ C=⎜ ⎜ ⎜ ⎝
− 0.101321 −0.094777 − 0.088097 − 0.082314 −0.077408 ⎞
⎟ ⎟ − 0.088097 −0.164814 − 0.218854 − 0.255608 −0.280437 ⎟ − 0.082314 −0.175994 − 0.255608 − 0.318438 −0.366838 ⎟ ⎟ − 0.077408 −0.181021 − 0.280437 − 0.366838 −0.439058 ⎠ − 0.094777
−0.14185
− 0.164814 − 0.175994 −0.181021
i := 1 .. n b
⌠ D1i−1 := ⎮ ( f ( x) − V ( 0 , x) ) ⋅ W ( i , x) d x ⌡a T
D1 = ( 3.193847 2.987570 2.644756 2.316690 2.033376 )
Приведем систему к виду d H
A1 ⋅ H + B1
dt
с начальными условиями.
D2 .
H ( 0)
−1
⎛ ⎜ ⎜ A1 = ⎜ ⎜ ⎜ ⎝
− 0.547134
A1 := A ⋅ C 0.511797 −0.440485 −1.152392
−1.896493 ⎞
−1.094269
14.192056
⎟ ⎟ − 4.383875 −0.215828 −13.040036 −24.367999 −39.541578 ⎟ 4.280313 2.155928 15.745476 29.423672 48.422580 ⎟ ⎟ − 1.625566 −1.520577 −7.067005 −13.206158 −21.733394 ⎠ 2.144675
4.520624
−1
T
B1 =
(0
B1 := A −2.352 × 10
− 15
T
(
D2 := A − 12
3.194 − 9.53 × 10
⋅B
0 4.625 × 10 −1
D2 =
8.887704
2.363 × 10
− 15
− 15
− 2.951 × 10
)
⋅ D1
− 11
− 11
− 2.021 × 10
3.535 × 10
− 12
)
Найдем решение получившейся системы дифференциальных уравнений. H := D2 D ( t , H ) := A1 ⋅ H + B1 Y := rkfixed ( H , 0 , T , 100 , D)
Следовательно, при t=T получим следующие коэффициенты ⎛ 2.454013 ⎞ ⎜ 1.503843 ⎟ ⎜ ⎟ Y 100 , k = ⎜ −2.197842 ⎟ ⎜ 1.751109 ⎟ ⎜ ⎟ ⎝ −0.665031 ⎠ где первый коэффициент показывает t=T, а остальные H1(T), H2(T),...,Hn(T), и для примера решение имеет вид 140
U (x ,1) = U0( x ) + 2.454013U1(x ) + 1.503843U2( x) − 2.197842U3( x ) + 1.751109U4(x ) − − 0.665031U5(x ) Выпишите аналогичным образом решение задачи своего варианта при n = 5 . Пробное решение U(x) для n = 5 при t=0; 0.1T; 0.2T;..., T имеет вид n
U ( x , s) := V ( 0 , x) +
∑
V ( k , x) ⋅ Y 10⋅s , k
k =1
Выпишите матрицу U2 получившегося пробного решения, разбив отрезок [a,
b] на 10 частей при t=0; 0.1T; 0.2T;..., T. i := 0 .. 10 j := 0 .. 10 b−a ⎞ ⎛ U2i , j := U ⎜ a + ⋅ i , j⎟ 10 ⎝ ⎠
Матрица пробного решения при t=0; 0.1T; 0.2T;..., T ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ U2 = ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝
1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000⎞
⎟
0.211736 0.232938 0.251526 0.268133 0.283214 0.297098 0.310024 0.322170 0.333666 0.344613 0.355086⎟
−0.379137−0.358927−0.338787−0.318883−0.299317−0.280153−0.261420−0.243131−0.225287−0.207878−0.190891⎟
⎟ ⎟ −0.968705−0.948639−0.928632−0.908646−0.888664−0.868678−0.848689−0.828703−0.808729−0.788776−0.768857⎟ ⎟ −0.967401−0.946292−0.925849−0.905799−0.885965−0.866232−0.846531−0.826821−0.807082−0.787307−0.767498 ⎟ −0.768705−0.748639−0.728632−0.708646−0.688664−0.668678−0.648689−0.628703−0.608729−0.588776−0.568857⎟ −0.372617−0.353854−0.334303−0.314301−0.294078−0.273791−0.253549−0.233423−0.213460−0.193691−0.174135⎟ ⎟ 0.220863 0.241073 0.261213 0.281117 0.300683 0.319847 0.338580 0.356869 0.374713 0.392122 0.409109⎟ 1.011736 1.032938 1.051526 1.068133 1.083214 1.097098 1.110024 1.122170 1.133666 1.144613 1.155086⎟ ⎟ 2.000000 2.000000 2.000000 2.000000 2.000000 2.000000 2.000000 2.000000 2.000000 2.000000 2.000000⎠ −0.772617−0.753854−0.734303−0.714301−0.694078−0.673791−0.653549−0.633423−0.613460−0.593691−0.574135
Получим матрицу предыдущего (для n = 4 ) пробного решения AP := submatrix ( A , 0 , n − 2 , 0 , n − 2) CP := submatrix ( C , 0 , n − 2 , 0 , n − 2) D1P := submatrix ( D1 , 0 , n − 2 , 0 , 0 ) −1 A1P := AP ⋅ CP 0.758218 0.704776 − 0.283699
⎛ ⎜ − 2.674879 −2.825390 0.454931 A1P = ⎜ 3.610220 4.741831 − 0.293657 ⎜ ⎜ − 14 − 1.847938 −2.862814 ⎝ − 1.082121 × 10 −1
0.987765 ⎞ ⎟ −4.839839
⎟
8.861091 ⎟
⎟
−5.349758 ⎠
HP := AP ⋅ D1P D( t , HP) := A1P ⋅ HP YP := rkfixed ( HP , 0 , T , 100 , D) 141
Следовательно, предыдущее пробное решение U(x) для n = 5 при t=0; 0.1T; ..., T имеет вид n−1
∑
UP( x , s) := V ( 0 , x) +
V ( k , x) ⋅ YP10s ⋅ ,k
k =1
Выпишите матрицу U3 получившегося пробного решения, разбив отрезок [a,
b] на 10 частей при t=0, 0.1T,..., T, и график этого решения при t=T i := 0 .. 10 j := 0 .. 10 b−a ⎞ ⎛ U3i , j := UP⎜ a + ⋅ i , j⎟ 10 ⎝ ⎠
Матрица предыдущего пробного решения при t=0, 0.1T,..., T ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ U3 = ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
0.211736
0.229566
0.246335
0.262140
0.277069
0.291201
0.304609
0.317356
0.329501
0.341097
1.000000 ⎞ ⎟ 0.352192 ⎟
−0.379137 − 0.356331 − 0.334449 −0.313414 −0.293155 − 0.273609 − 0.254718 −0.236430 −0.218700 − 0.201484 − 0.184744 ⎟
⎟
−0.772617 − 0.751021 − 0.729735 −0.708747 −0.688046 − 0.667621 − 0.647463 −0.627562 −0.607910 − 0.588501 − 0.569326 ⎟ −0.968705 − 0.949740 − 0.930511 −0.911065 −0.891445 − 0.871688 − 0.851829 −0.831897 −0.811921 − 0.791923 − 0.771927 ⎟ −0.967401 − 0.949631 − 0.931371 −0.912691 −0.893656 − 0.874321 − 0.854737 −0.834952 −0.815005 − 0.794933 − 0.774770 ⎟
⎟
−0.768705 − 0.749740 − 0.730511 −0.711065 −0.691445 − 0.671688 − 0.651829 −0.631897 −0.611921 − 0.591923 − 0.571927 ⎟ −0.372617 − 0.351021 − 0.329735 −0.308747 −0.288046 − 0.267621 − 0.247463 −0.227562 −0.207910 − 0.188501 − 0.169326 ⎟
⎟
0.220863
0.243669
0.265551
0.286586
0.306845
0.326391
0.345282
0.363570
0.381300
0.398516
1.011736
1.029566
1.046335
1.062140
1.077069
1.091201
1.104609
1.117356
1.129501
1.141097
0.415256 ⎟ 1.152192 ⎟
2.000000
2.000000
2.000000
2.000000
2.000000
2.000000
2.000000
2.000000
2.000000
2.000000
2.000000 ⎠
⎟
Выпишите матрицу сравнения полученных решений для n = 5 и n = 4 Матрица сравнения пробных решений ⎛⎛ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ U23 := U2 − U3 = ⎜ ⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎝⎝
0 − 13
−3.025 × 10 −2.54 × 10
0
0
0
0
0
0
0
0
0
0
0.003
0.005
0.006
0.006
0.006
0.005
0.005
0.004
0.004
0.003
− 13
−0.003 −0.004 −0.005 −0.006 − 0.007 −0.007 −0.007 −0.007 −0.006 − 0.006
− 13
−0.003 −0.005 −0.006 −0.006 − 0.006 −0.006 −0.006 −0.006 −0.005 − 0.005
−3.104 × 10
− 13
−4.396 × 10
− 13
−4.032 × 10
0.001
0.002
0.002
0.003
0.003
0.003
0.003
0.003
0.003
0.003
0.003
0.006
0.007
0.008
0.008
0.008
0.008
0.008
0.008
0.007
0.001
0.002
0.002
0.003
0.003
0.003
0.003
0.003
0.003
0.003
2.043 × 10
− 14
8.464 × 10
− 13
−0.003 −0.005 −0.006 −0.006 − 0.006 −0.006 −0.006 −0.006 −0.005 − 0.005
1.736 × 10
− 12
−0.003 −0.004 −0.005 −0.006 − 0.007 −0.007 −0.007 −0.007 −0.006 − 0.006
1.892 × 10
− 12
0.003
0.005
0.006
0.006
0.006
0.005
0.005
0.004
0.004
0.003
0
0
0
0
0
0
0
0
0
0
0
Максимальное значение |U23ij| при t = T равно
(
(
K11 := max max U23
〈 10〉
)
(
, min U23
〈 10〉
)) 142
⎞⎞ ⎟⎟ ⎟⎟ ⎟⎟ ⎟⎟ ⎟⎟ ⎟⎟ ⎟⎟ ⎟⎟ ⎟⎟ ⎟⎟ ⎟⎟ ⎟⎟ ⎟⎟ ⎟⎟ ⎟⎟ ⎟⎟ ⎟⎟ ⎟⎟ ⎠⎠
K11 = 0.007272
Выпишите это значение для n=1, …, n=5 и сделайте вывод. Сравним точное и приближенное (при n = 5 ) решения, для этого найдем
разность матриц этих решений U1 и U2
Матрица сравнения точного и приближенного решения ⎛⎛ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ U12 := U1 − U2 = ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎝⎝
0.00000
0.00000
0.00000 ⎞ ⎞
−0.00014 − 0.00132 − 0.00131 − 0.00111 −0.00088 − 0.00065 − 0.00044 − 0.00025 −0.00009
0.00005
0.00008 − 0.00021 − 0.00036 − 0.00037 −0.00029 − 0.00018 − 0.00008 0.00000
0.00006
0.00011
0.00015 ⎟ ⎟ 0.00013 ⎟ ⎟
−0.00006
0.00023
0.00000
0.00000
0.00000
0.00000
0.00000
0.00000
0.00000
0.00000
⎟⎟ ⎟⎟
0.00001 − 0.00016 ⎟ ⎟ 0.00005 − 0.00007 − 0.00007 − 0.00006 −0.00004 − 0.00003 − 0.00002 − 0.00002 −0.00001 − 0.00001 − 0.00001 ⎟ ⎟ 0.00124
0.00169
0.00168
0.00145
0.00080
0.00113
0.00049
−0.00005 − 0.00111 − 0.00155 − 0.00160 −0.00144 − 0.00117 − 0.00087 − 0.00058 −0.00032 − 0.00010 0.00008 ⎟ ⎟
⎟⎟
0.00005 − 0.00007 − 0.00007 − 0.00006 −0.00004 − 0.00003 − 0.00002 − 0.00002 −0.00001 − 0.00001 − 0.00001 ⎟ ⎟ 0.00049
0.00023
0.00001 − 0.00016 ⎟ ⎟
0.00008 − 0.00021 − 0.00036 − 0.00037 −0.00029 − 0.00018 − 0.00008 0.00000
0.00006
0.00011
−0.00014 − 0.00132 − 0.00131 − 0.00111 −0.00088 − 0.00065 − 0.00044 − 0.00025 −0.00009
0.00005
0.00013 ⎟ ⎟ 0.00015 ⎟ ⎟
0.00000
0.00000 ⎠ ⎠
−0.00006
0.00000
0.00124
0.00169
0.00000
0.00168
0.00000
0.00000
0.00145
0.00000
0.00113
0.00000
Максимальное значение |U12ij| при t = T равно
(
(
)
0.00080
0.00000
0.00000
(
〈 10〉 〈 10〉 K12 := max max U12 , min U12 K12 = 0.000156 Выпишите это значение для n=1, …, n=5 и сделайте вывод.
0.00000
⎟⎟ ⎟⎟
))
Найдем невязки полученного пробного решения. При t=T получим невязку n n n ⎡ d R1( x ) := ∑ ⎛⎜ V (k , x ) ⋅ ∑ A1k−1,z −1 ⋅ Y100, z ⎞⎟ − ∑ ⎢ K ( x) ⋅ V 2(k , x ) + ⎛⎜ K (x )⎞⎟ ⋅ V1(k , x ) + ⎠ k =1 ⎣ ⎝ dx ⎠ k =1⎝ z =1 d ⎤ ⎛ ⎞ + β (x ) ⋅ V (k , x )⎥ ⋅ Y100,k − ⎜ K ( x) ⋅ V 2(0, x ) + ⎛⎜ K ( x) ⎞⎟ ⋅ V1(0, x ) + β ( x) ⋅ V (0, x ) + g ( x) ⎟ ⎝ dx ⎠ ⎦ ⎝ ⎠ i := 0 .. 10 b−a UN1i , 0 := a + ⋅i 10 b− a ⎞ ⎛ UN1i , 1 := R1 ⎜ a + ⋅ i⎟ 10 ⎝ ⎠
Таблица невязок при t=T 0.31 0. 63 0. 94 1.26 1.57 ⎛ 0. 0 UN1T = ⎜⎜ ⎝ 0.0225 − 0.0031 − 0. 0002 0.0020 − 0. 0001 − 0.0018 1. 88 2. 20 2. 51 2.83 3.14 ⎞ ⎟ − 0.0001 0. 0020 − 0.0002 − 0. 0031 0.0225 ⎟⎠ Максимальное значение |UNij| при t = T равно 〈 1〉 〈 1〉 K13 := max max UN1 , min UN1
(
(
)
(
)) 143
K13 = 0.022507
Выпишите это значение для n=1, …, n=5 и сделайте вывод. При t=0 получим невязку n
R2( x) := V ( 0 , x) − f ( x) +
∑
D2 k−1 ⋅ V ( k , x)
k =1
i := 0 .. 10 b−a UN2i , 0 := a + ⋅i 10 b− a ⎞ ⎛ UN2i , 1 := R2 ⎜ a + ⋅ i⎟ 10 ⎝ ⎠
Таблица невязок при t=0 0.31 0. 63 0.94 1.26 1. 57 ⎛ 0.0 UN2T = ⎜⎜ −13 −14 −13 −13 − 5.60 × 10 − 2.06 × 10 − 4.61 ×10 − 5.33 × 10−13 ⎝ 0. 00 −1.08 × 10 1.88 2.20 2.51 2. 83 3. 14⎞ ⎟ −13 −13 −12 −12 − 1.75 ×10 6. 38 ×10 1.57 ×10 1.80 ×10 0. 00⎟⎠ Максимальное значение |UN2ij| при t = 0 равно 〈 1〉 〈 1〉 K14 := max max UN2 , min UN2
(
(
)
(
))
− 12
K14 = 1.799227 × 10
Выпишите это значение для n=1, …, n=5 и сделайте вывод.
Выводы Таким образом, при n = 5 получаем следующие результаты: max|Un (x, T) − Un −1 (x, T) | max|U (x,T ) −Un (x,T ) | max| R1n ( x, T ) | max| R2 n (x ) | − 12
K11 = 0.007272 K12 = 0.000156 K13 = 0.022507 K14 = 1.799227 × 10 Сделайте вывод о точности полученных решений.
144
Приложение В
Лабораторная работа «Решение начально-краевой задачи для одномерного гиперболического уравнения методом Галеркина»
Задание на лабораторную работу
1. В пункте «Постановка задачи» ввести вместо данных примера непрерывные функции уравнения K1(x) (K>0), K2(x), β (x), γ (x), g(x), f(x), ϕ (x) и числовые параметры задачи a, b, a0, a1, a2, b0, b1, b2, c1, c2, c3, c4 своего варианта. 2. В пункте «Получение точного решения» ввести найденное аналитически число слагаемых в разложении решения в ряд, обеспечивающих точность решения 0.001. Необходимо выписать полученную таблицу точного решения. 3. В пункте «Получение приближенного решения» выполнить построение пяти пробных решений задачи, вводя последовательно n=1, …, n=5, тремя системами пробных и поверочных функций. Переписать значения коэффициентов Y100,k и, подставив их, получить пробное решение при t=T. Выписать таблицы пробных решений, таблицы сравнения с предыдущим пробным решением и точным решением, таблицы невязок R1 и R2 . Сделать выводы о системе пробных и проверочных функций, дающих лучшее приближение к точному решению задачи. Постановка задачи Требуется в плоской области D={(x, t) | a ≤ x ≤ b , t ≥ 0 } найти решение U(x, t) дифференциального уравнения d
2
2
d d d U + γ ( x , t) ⋅ U − K1 ( x , t) ⋅ U − K2( x , t) ⋅ U − β ( x , t) ⋅ U 2 2 dt dx dt dx
удовлетворяющее двум краевым условиям d a0 ⋅ U ( a , t) + a1 ⋅ U ( a , t) dx d b0 ⋅ U ( b , t) + b1 ⋅ U ( b , t) dx и начальным условиям U ( x , 0 ) f ( x)
g ( x , t)
a2 ( t) b2 ( t)
145
d U ( x , 0) dt
φ ( x)
Рассмотрим случай, когда функции γ , K1, K2, β , g, a2, b2 не зависят от t. Введите непрерывные функции уравнения γ (x), K1(x) (K1>0), K2(x), β (x), g(x), f(x), ϕ (x) и числовые параметры задачи a, b, a0, a1, a2, b0, b1, b2, c1, c2, c3, c4 c1 := 1 c2 := 1 c3 := 2 c4 := 1 γ ( x) := 0 K1( x) := c1 K2( x) := 0 β ( x) := 0 g ( x) := 0 a := 0 b := π a0 := 1 a1 := 0 a2 := c2 b0 := 1 b1 := 0 b2 := c3
φ ( x) := 0
2
c3 − c2 − c4 ⋅ b f ( x) := c4 ⋅ x + ⋅ x + c2 b 2
то есть 2
f ( x) → x +
( 1 − π 2)
⋅ x+ 1
π Проверим соответствие граничных и начальных условий ⎡ ⎛d ⎞ ⎤ if ⎢a0 ⋅ f ( a) + a1 ⋅ ⎜ f ( a) ⎟ a2 , "Yes" , "No"⎥ = "Yes" ⎣ ⎝ da ⎠ ⎦ ⎡ ⎛d ⎞ ⎤ if ⎢b0 ⋅ f ( b) + b1 ⋅ ⎜ f ( b) ⎟ b2 , "Yes" , "No"⎥ = "Yes" ⎣ ⎝ db ⎠ ⎦ ⎡ ⎛d ⎞ ⎤ if ⎢a0 ⋅ φ ( a) + a1 ⋅ ⎜ φ ( a) ⎟ 0 , "Yes" , "No"⎥ = "Yes" ⎣ ⎝ da ⎠ ⎦ ⎡ ⎛d ⎞ ⎤ if ⎢b0 ⋅ φ ( b) + b1 ⋅ ⎜ φ ( b) ⎟ 0 , "Yes" , "No"⎥ = "Yes" ⎣ ⎝ db ⎠ ⎦
Если хотя бы одно условие не выполняется (="No"), то задача поставлена не корректно. Введите конечный момент времени, до которого необходимо провести исследование вашего варианта T := 1
Получение точного решения
Найдем точное решение U(x, t), используя разложение функции в ряд Фурье. Если β ( x) = 0, γ ( x) = 0, g (x ) = 0, K2( x) = 0, K1( x) = c1 = const , то решение имеет вид 146
U(x, M
t)=U0(x)+
∑
k =1
⎞ ⎞⎞ ⎞ ⎛ ⎛ π ⎛ π ⎛ π ⋅ c1 ⋅ t⎟ + Bk ⋅ sin⎜ k ⋅ ⋅ c1 ⋅ t⎟⎟ ⋅ sin⎜ k ⋅ ⋅ x⎟ ⎜ Ak ⋅ cos⎜k ⋅ ⎝ ⎝ b −a ⎠ ⎝ b−a ⎠⎠ ⎝ b−a ⎠
Введите число слагаемых, обеспечивающих точность решения 0.001 M := 30 Если a1=0, b1=0, то функцию U0(x) можно взять в виде b0 ⋅ a2 ⋅ b − b2 ⋅ a0 ⋅ a ( b2 ⋅ a0 − b0 ⋅ a2) ⋅ x U0 ( x) := + a0 ⋅ b0 ⋅ ( b − a) a0 ⋅ b0 ⋅ ( b − a) x U0 ( x) → 1 + π Вычислим коэффициенты Ak, Bk i := 1 .. M b
2 A2i−1 := b−a
⌠ ⎛ π ⋅ i ⋅ x⎞ ⋅ ⎮ ( f ( x) − U0 ( x) ) ⋅ sin ⎜ ⎟ dx ⎮ b−a ⎠ ⎝ ⌡ a
b
B2i−1 :=
2
π
⌠ ⎛ π ⋅ i ⋅ x⎞ ⋅ ⎮ φ ( x) ⋅ sin ⎜ ⎟ dx ⋅i ⎮ b− a ⎠ ⎝ ⌡ a
Следовательно, точное решение U(x, t) имеет вид M
UT ( x ,t ) := U0( x) +
⎛
⎛ k ⋅ π ⋅ c1 ⋅ t ⎞ ⎛ k ⋅ π ⋅ c1 ⋅ t ⎞ ⎞ ⎛ k ⋅ π ⋅ x⎞ ⎟ + B2k−1 ⋅ sin⎜ ⎟ ⎟ ⋅ sin⎜ ⎟ b− a b−a ⎠ ⎝ ⎠⎠ ⎝ b−a ⎠
∑ ⎜⎝ A2k−1 ⋅ cos⎜⎝
k =1
Выпишите матрицу U1 получившегося точного решения, разбив отрезок [a, b] на 10 частей при t=0, 0.1T,..., T и график точного решения.
График точного решения при t=T 2
UT (x , T )
1
0
0
2
x
i := 0 .. 10 j := 0 .. 10 147
⎡ ⎣
U1i , j := UT ⎢a + ( b − a) ⋅ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ U1 = ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝
i j ⋅ T⎤ , ⎥ 10 10 ⎦
Таблица точного решения при t=0, 0.1T,..., T 1
1
1
1
1
1
0.2116
0.22188
0.25155
0.30198
0.36439
− 0.37906 − 0.36922 −0.33905 −0.28923 −0.21902
1
1
1
1
1
0.42718
0.49004
0.55286
0.6157
0.67853
0.74136
−0.1293
−0.01885
0.10567
0.2314
0.35704
0.48273
0.03763
0.22393
− 0.77267 − 0.76256 −0.73268 −0.68256 −0.61268 −0.52255 −0.41269 − 0.28253 − 0.13274
− 0.96866 − 0.95875 −0.92866 −0.87875 −0.80866 −0.71875 −0.60866 − 0.47875 − 0.32866 −0.15875 0.03134 − 0.96745 − 0.95735 −0.92745 −0.87736 −0.80745 −0.71736 −0.60744 − 0.47736 − 0.32744 −0.15737 0.03257 − 0.76866 − 0.75875 −0.72866 −0.67875 −0.60866 −0.51875 −0.40866 − 0.27875 − 0.12866
0.04125
0.23134
− 0.37267 − 0.36256 −0.33268 −0.28256 −0.21268 −0.12255 −0.01269
0.11747
0.26726
0.43763
0.62393
0.22094
0.23078
0.26095
0.31077
0.38098
0.4707
0.58115
0.70567
0.8314
0.95704
1.08273
1.0116
1.02188
1.05155
1.10198
1.16439
1.22718
1.29004
1.35286
1.4157
1.47853
1.54136
2
2
2
2
2
2
2
2
2
2
2
Получение приближенного решения n
Введите порядок пробного решения U n =V(0,x)+ ∑V (k , x) H (k , t) . k =1
n := 5
Возьмем пробные функции в следующем виде k
V1( k , x) := ( x − a) ⋅ ( x − b)
Нормируем их. Для этого вычислим нормировочные коэффициенты и выпишем их аналитические выражения i := 1 .. n b
⌠ 2 VV i−1 := ⎮ ( V1 ( i , x) ) d x ⌡a
Получили нормированные пробные функции V1 ( k , x) b0 ⋅ a2 ⋅ b − b2 ⋅ a0 ⋅ a ( b2 ⋅ a0 − b0 ⋅ a2 ) ⋅ x ⎤ ⎡ V ( k , x) := if ⎢ k ≠ 0 , , + VV k −1 a0 ⋅ b0 ⋅ ( b − a) a0 ⋅ b0 ⋅ ( b − a) ⎥⎦ ⎣ Выпишем первые функции x 30 V ( 0 , x) → 1 + V ( 1 , x) → x ⋅ ( x − π ) ⋅ π ⎛ 5⎞ ⎜ ⎟ 2 π ⎝ ⎠ V ( 3 , x) → 6 ⋅ x ⋅ ( x − π 3
)⋅
7
⎛9⎞ ⎜ ⎟ 2 π ⎝ ⎠
V ( 2 , x) → x ⋅ ( x − π 2
)⋅
105
⎛ 7⎞ ⎜ ⎟ 2 π ⎝ ⎠ 148
⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠
V ( 4 , x) → 3 ⋅ x ⋅ ( x − π 4
55
)⋅
V ( 5 , x) → x ⋅ ( x − π 5
)⋅
858
⎛ 11 ⎞ ⎛ 13 ⎞ ⎜ ⎟ ⎜ ⎟ 2 ⎠ 2 ⎝ π π ⎝ ⎠ Введем функции V1(k, x) и V2(k, x), равные первой и второй производной от функции V(k, x) k := 1 .. n k k−1 ⎡ ( x − a) + ( x − b) ⋅ k ⋅ ( x − a) ( b2 ⋅ a0 − b0 ⋅ a2) ⎤ ⎢ ⎥ V1( k , x) := if k ≠ 0 , , a0 ⋅ b0 ⋅ ( b − a ) VV k−1 ⎣ ⎦ k−1 k −2 ⎤ ⎡ 2 ⋅ k ⋅ ( x − a) + ( x − b) ⋅ k ⋅ ( k − 1) ⋅ ( x − a) V2( k , x) := if ⎢k ≠ 0 , , 0⎥ VV k−1 ⎣ ⎦
В качестве поверочных функций возьмем пробные W ( k , x) := V ( k , x) Найдем коэффициенты системы дифференциальных уравнений 2 d V dV A 2 = −M + CV + B для отыскания функций Hk(t) и начальных условий dt dt AV (0) = D1 , A ⋅ d H ( 0) N1 . dt i := 1 .. n j := 1 .. n b
⌠ A i−1 , j−1 := ⎮ V ( j , x) ⋅ W ( i , x) d x ⌡a
⎛ ⎜ ⎜ A=⎜ ⎜ ⎜ ⎝
1.000000 0.935414 0.828079 0.725361 0.636654 ⎞ ⎟ 0.935414 1.000000 0.968246 0.904684 0.833750
⎟ 0.828079 0.968246 1.000000 0.981071 0.939374 ⎟ 0.725361 0.904684 0.981071 1.000000 0.987421 ⎟ ⎟ 0.636654 0.833750 0.939374 0.987421 1.000000 ⎠ i := 1 .. n j := 1 .. n b
⌠ M i−1 , j −1 := − ⎮ γ ( x) ⋅ V ( j , x) ⋅ W ( i , x) d x ⌡a
⎛ ⎜ ⎜ M =⎜ ⎜ ⎜ ⎝
0 0 0 0 0 ⎞ ⎟ 0 0 0 0 0
⎟ 0 0 0 0 0 ⎟ 0 0 0 0 0 ⎟ ⎟ 0 0 0 0 0 ⎠
149
i := 1 .. n j := 1 .. n b
⌠ ⎮ Ci−1 , j −1 := ⎮ ⎮ ⌡
⎞ ⎛ ⎜ K1 ( x) ⋅ d2 V ( j , x) + K2( x) ⋅ d V ( j , x) + β ( x) ⋅ V ( j , x) ⎟ ⋅ W ( i , x) d x ⎜ 2 ⎟ dx dx ⎝ ⎠
a
⎛ ⎜ ⎜ C=⎜ ⎜ ⎜ ⎝ b
⌠ ⎮ Bi−1 := ⎮ ⎮ ⌡
− 1.013212 −0.947773 − 0.880970 − 0.823137 −0.774079 ⎞ ⎟ − 0.947773 −1.418497 − 1.648144 − 1.759941 −1.810211
⎟ − 0.880970 −1.648144 − 2.188538 − 2.556084 −2.804367 ⎟ − 0.823137 −1.759941 − 2.556084 − 3.184380 −3.668377 ⎟ ⎟ − 0.774079 −1.810211 − 2.804367 − 3.668377 −4.390585 ⎠ i := 1 .. n
⎞ ⎛ ⎜ K1( x) ⋅ d2 V ( 0 , x) + K2( x) ⋅ d V ( 0 , x) + β ( x) ⋅ V ( 0 , x) + g( x) ⎟ ⋅ W ( i , x) d x ⎜ 2 ⎟ dx dx ⎝ ⎠
a T
B =( 0 0 0 0 0) i := 1 .. n b
⌠ D1i−1 := ⎮ ( f ( x) − V ( 0 , x) ) ⋅ W ( i , x) d x ⌡a T
D1 = ( 3.193847 2.98757 2.644756 2.31669 2.033376 ) i := 1 .. n b
⌠ N1i−1 := ⎮ φ ( x) ⋅ W ( i , x) d x ⌡a T
N1 = ( 0 0 0 0 0 )
Приведем систему к виду
d
2
dt
условиями H ( 0)
D2 ,
d H ( 0) dt
2
M1 ⋅
H
d H + C1 ⋅ H + B1 с начальными dt
N2 . −1
M1 := A
⋅M
150
⎛ ⎜ ⎜ M1 = ⎜ ⎜ ⎜ ⎝ ⎛ ⎜ ⎜ C1 = ⎜ ⎜ ⎜ ⎝
0.000000 0.000000 0.000000 0.000000 0.000000 ⎞ ⎟ 0.000000 0.000000 0.000000 0.000000 0.000000
⎟
0.000000 0.000000 0.000000 0.000000 0.000000 ⎟ 0.000000 0.000000 0.000000 0.000000 0.000000 ⎟
⎟
0.000000 0.000000 0.000000 0.000000 0.000000 ⎠
− 5.471344
−1
C1 := A ⋅ C 5.117974 − 4.404850
21.446746 − 10.942688
45.206238
− 11.523921 88.877037
− 18.964933 ⎞ ⎟ 141.920564
⎟
− 43.838749 − 2.158284 − 130.400363 − 243.679989 − 395.415783 ⎟ 42.803134
21.559281
157.454762
294.236717
484.225799 ⎟
⎟
− 16.255657 − 15.205775 −70.670055 − 132.061581 − 217.333939 ⎠ −1
B1 := A
⋅B
T
B1 = ( 0 0 0 0 0 ) −1
T
D2 =
(
D2 := A − 12
3.194 − 9.53 × 10
2.363 × 10
− 11
−1
N2 := A
⋅ D1 − 11
− 2.021 × 10
3.535 × 10
− 12
)
⋅ N1
T
N2 = ( 0 0 0 0 0 ) Приведем к нормальной системе дифференциальных уравнений первого порядка d H AA ⋅ H + BB с начальными условиями H ( 0) D2 dt i := 1 .. n D2n+ i−1 := N2i−1 T
D2 =
( 3.194 −9.53× 10− 12
− 11
− 11
2.363 × 10 −2.021 × 10 i := 1 .. n j := 1 .. n AA i−1 , j −1 := 0
− 12
3.535× 10
0 0 0 0 0
AA n+i−1 , n+ j −1 := M1i−1 , j −1 AA n+i−1 , j −1 := C1i−1 , j −1 AA i−1 , n+ j −1 := if ( i
j , 1 , 0)
151
)
⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ AA = ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝
1 0 0 0 0⎞ ⎟ 0 1 0 0 0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0 0 1 0 0⎟ 0 0 0 1 0⎟
0
0
0
0
0
0 0 0 0 1
−5.471
5.118
− 4.405
− 11.524
−18.965
0 0 0 0 0
21.447
−10.943 45.206
88.877
141.921 0 0 0 0 0
−43.839
−2.158
− 130.4
− 243.68
−395.416 0 0 0 0 0
42.803
21.559
157.455
294.237
484.226 0 0 0 0 0
⎟
−16.256 −15.206 − 70.67 − 132.062 −217.334 0 0 0 0 0 i := 1 .. n BBn+ i−1 := B1i−1
⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠
BBi−1 := 0 T
BB = ( 0 0 0 0 0 0 0 0 0 0 )
Найдем решение полученной системы дифференциальных уравнений. H := D2 D( t , H ) := AA ⋅ H + BB Y := rkfixed ( H , 0 , T , 100 , D) i := 1 .. n Следовательно, при t=T получим следующие коэффициенты ⎛ 1.489131 ⎞
⎜ ⎜ Y 100 , k = ⎜ ⎜ ⎜ ⎝
⎟ ⎟ 9.087395 ⎟ −11.042085 ⎟ ⎟ 4.193533 ⎠ −2.09062
и для примера решение имеет вид U (x , T ) = U 0( x ) + 1.489131U 1 ( x) − 2.09062U 2 ( x) + 9. 087395U 3 ( x) − 11. 042085U 4 ( x) +
+ 4.193533U 5 ( x). Выпишите аналогичным образом решение задачи своего варианта при n=5. Пробное решение U(x) для n = 5 при t=0; 0.1T; 0.2T;... T имеет вид n
U ( x , s ) := V ( 0 , x) +
∑
V ( k , x) ⋅ Y 10⋅s , k
k =1 152
Выпишите матрицу U2 получившегося пробного решения, разбив отрезок [a,b] на 10 частей при t=0, 0.1T,..., T. i := 0 .. 10 j := 0 .. 10 b−a ⎞ ⎛ U2i , j := U ⎜ a + ⋅ i , j⎟ 10 ⎝ ⎠ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ U2 = ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝
Таблица пробного решения при t=0, 0.1T,..., T 1
1
1
1
1
1
1
0.488581
−0.379137 −0.369046 −0.33871 −0.288078 −0.217478 −0.128049
−0.022063
−0.772617 −0.763454 −0.735383 −0.686925 −0.616388 −0.522747
−0.406384
−0.968705 −0.958653 −0.92855 −0.87852 −0.80867 −0.718993
−0.609314
−0.967401 −0.956663 −0.924937 −0.873467 −0.80368 −0.716472
−0.611655
−0.768705 −0.758653 −0.72855 −0.67852 −0.60867 −0.518993
−0.409314 −3
0.311922 0.382522 0.471951
0.577937
1.011736 1.022982 1.055069 1.103519 1.162292 1.225439
1.288581
2
2
2
2
2
2
1
1
1
0.549782 0.609527 0.669893 0.733225
−0.372617 −0.363454 −0.335383 −0.286925 −0.216388 −0.122747 −6.384336× 10 0.220863 0.230954 0.26129
⎞ ⎟ ⎟ 0.097031 0.224919 0.357026 0.489275⎟ −0.269432 −0.115568 0.050668 0.22484 ⎟ ⎟ −0.479332 −0.328764 −0.157581 0.033727⎟ −0.487772 −0.34243 −0.173056 0.022119⎟ ⎟ −0.279332 −0.128764 0.042419 0.233727⎟ ⎟ 0.130568 0.284432 0.450668 0.62484 ⎟ 0.697031 0.824919 0.957026 1.089275⎟ 1.349782 1.409527 1.469893 1.533225⎟ ⎟ 2 2 2 2 ⎠ 1
0.211736 0.222982 0.255069 0.303519 0.362292 0.425439
2
Получим матрицу предыдущего (для n = 4 ) пробного решения AP := submatrix ( A , 0 , n − 2 , 0 , n − 2) MP := submatrix ( M , 0 , n − 2 , 0 , n − 2) CP := submatrix ( C , 0 , n − 2 , 0 , n − 2) BP := submatrix ( B , 0 , n − 2 , 0 , 0) D1P := submatrix ( D1 , 0 , n − 2 , 0 , 0) N1P := submatrix ( N1 , 0 , n − 2 , 0 , 0) −1
⋅ MP
−1
⋅ CP
−1
⋅ BP
M1P := AP
C1P := AP
B1P := AP
−1
D2P := AP
⋅ D1P
−1
N2P := AP ⋅ N1P i := 1 .. n − 1 j := 1 .. n − 1 AAPi−1 , j −1 := 0 AAPn+ i−2 , n+ j −2 := M1Pi−1 , j −1 AAPn+ i−2 , j−1 := C1Pi−1 , j −1 AAPi−1 , n+ j −2 := if ( i
j , 1 , 0)
153
0 0 0 0 ⎛ ⎜ 0 0 0 0 ⎜ 0 0 0 0 ⎜ ⎜ 0 0 0 0 AAP = ⎜ 9.878 7.048 7.582 − 2.837 ⎜ ⎜ − 26.749 − 28.254 − 48.398 4.549 ⎜ 36.102 47.418 88.611 − 2.937 ⎜ ⎜ − 14 − 18.479 − 28.628 − 53.498 ⎝ 1.027 × 10
T
D2P =
( 3.194
1 0 0 0 ⎞ ⎟ 0 1 0 0 ⎟ 0 0 1 0 ⎟ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠
i := 1 .. n − 1 D2Pn+ i−2 := N2Pi−1 2.104 × 10
− 12
− 12
− 1.156 × 10 i := 1 .. n − 1 BBPi−1 := 0
1.926 × 10
− 13
0 0 0 0
)
BBPn+ i−2 := B1P i−1 T
BBP = ( 0 0 0 0 0 0 0 0 ) HP := D2P D( t , HP) := AAP ⋅ HP + BBP YP := rkfixed ( HP , 0 , T , 100 , D)
Следовательно, предыдущее пробное решение U(x) для n = 5 при t=0, 0.1T,..., T имеет вид n− 1
UP( x , s) := V ( 0 , x) +
∑
V ( k , x) ⋅ YP10s⋅ , k
k =1
Выпишите матрицу U3 получившегося пробного решения, разбив отрезок [a, b] на 10 частей при t=0, 0.1T,..., T. i := 0 .. 10 j := 0 .. 10 b−a ⎛ ⎞ U3i , j := UP⎜ a + ⋅ i , j⎟ 10 ⎝ ⎠ Матрица предыдущего пробного решения при t=0, 0.1T,..., T
154
1 1 1 1 1 1 1 ⎛ ⎜ ⎜ 0.211736 0.220885 0.247759 0.290687 0.347068 0.413613 0.486662 ⎜ −3 ⎜ −0.379137−0.367531 −0.33321 −0.277622−0.203037 −0.11235 −8.82986× 10 ⎜ −0.772617−0.761752 −0.72932 −0.675795−0.601947−0.508809 −0.397637 ⎜ −0.968705−0.959284−0.930867−0.883022−0.815112−0.726422 −0.616304 ⎜ U3= ⎜ −0.967401−0.958628 −0.93203 −0.886818−0.821804−0.735583 −0.626757 ⎜ −0.768705−0.759284−0.730867−0.683022−0.615112−0.526422 −0.416304 ⎜ ⎜ −0.372617−0.361752 −0.32932 −0.275795−0.201947−0.1088092.362821× 10−3 ⎜ 0.59117 ⎜ 0.220863 0.232469 0.26679 0.322378 0.396963 0.48765 ⎜ 1.011736 1.020885 1.047759 1.090687 1.147068 1.213613 1.286662 ⎜ 2 2 2 2 2 2 2 ⎝
⎞ ⎟ 0.562526 0.637827 0.709803 0.776539 ⎟ ⎟ 0.104155 0.223409 0.346156 0.470224 ⎟ ⎟ −0.269861−0.127041 0.029178 0.197106 ⎟ −0.484342−0.330515−0.1553290.040077 ⎟ −0.494181−0.337207−0.1558850.048875 ⎟ ⎟ −0.284342−0.130515 0.044671 0.240077 ⎟ ⎟ 0.130139 0.272959 0.429178 0.597106 ⎟ 0.704155 0.823409 0.946156 1.070224 ⎟ 1.362526 1.437827 1.509803 1.576539 ⎟ ⎟ 2 ⎠ 2 2 2 1
1
1
1
Выпишите матрицу сравнения полученных решений для n = 5 и n = 4
Матрица сравнения пробных решений ⎛⎛ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ U23 := U2 − U3 = ⎜ ⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎝⎝
0
0
0 − 13
−3.025× 10
0
0
0
0
0
0
0
0.002 0.007 0.013 0.015 0.012 0.002 − 0.013 −0.028 − 0.04
−2.54× 10− 13 −0.002 −0.006 − 0.01 −0.014 − 0.016 −0.013 − 0.007 0.002 0.011 − 13
−3.104× 10
− 13
−4.396× 10
−0.002 −0.006 −0.011 −0.014 − 0.014 −0.009
0
0.011 0.021
0.001 0.002 0.005 0.006 0.007 0.007 0.005 0.002 − 0.002
−4.032× 10− 13 0.002 0.007 0.013 0.018 0.019 0.015 0.006 −0.005 − 0.017 − 14
2.043× 10
− 13
8.464× 10
0.001 0.002 0.005 0.006 0.007 0.007 0.005 0.002 − 0.002 −0.002 −0.006 −0.011 −0.014 − 0.014 −0.009
0
0.011 0.021
1.736× 10− 12 −0.002 −0.006 − 0.01 −0.014 − 0.016 −0.013 − 0.007 0.002 0.011 − 12
1.892× 10
0.002 0.007 0.013 0.015 0.012 0.002 − 0.013 −0.028 − 0.04 0
0
0
Максимальное значение |U23ij| равно
(
(
0
0
)
0
(
0
〈 10〉 〈 10〉 K11 := max max U23 , min U23 K11 = 0.043315 Выпишите это значение для n=1, …, n=5 и сделайте вывод.
0
0
0
⎞⎞ ⎟⎟ −0.043 ⎟ ⎟ ⎟⎟ 0.019 ⎟ ⎟ ⎟⎟ 0.028 ⎟ ⎟ ⎟⎟ −0.006 ⎟ ⎟ ⎟⎟ −0.027 ⎟ ⎟ ⎟⎟ −0.006 ⎟⎟ 0.028 ⎟ ⎟ ⎟⎟ 0.019 ⎟ ⎟ ⎟⎟ −0.043 ⎟ ⎟ ⎟⎟ 0 ⎠⎠ 0
))
Сравним точное и приближенное (при n = 5 ) решения, для этого найдем разность матриц этих решений U1 и U2.
155
Таблица сравнения точного и приближенного решения ⎛⎛ 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000⎞ ⎞ ⎜⎜ ⎟ ⎜⎜ −0.000137−0.001099−0.003521−0.001540 0.002100 0.001737 0.001463 0.003074 0.006169 0.008633 0.008132⎟
⎜⎜ 0.000078 −0.000170−0.000343−0.001152−0.001546−0.001248 0.003213 0.008642 0.006482 0.000018 −0.006550⎟ ⎜⎜ ⎟ ⎜⎜ −0.000058 0.000894 0.002708 0.004367 0.003710 0.000194 −0.006303−0.013101−0.017168−0.013041−0.000913⎟ ⎜⎜ 0.000049 −0.000101−0.000107−0.000233 0.000012 0.000242 0.000654 0.000583 0.000102 −0.001167−0.002386⎟ ⎜⎜ ⎟ U12:= U1 − U2 = −0.000047−0.000691−0.002510−0.003888−0.003765−0.000886 0.004213 0.010408 0.014995 0.015685 0.010454 ⎜⎜ ⎟ ⎜⎜ 0.000049 −0.000101−0.000107−0.000233 0.000012 0.000242 0.000654 0.000583 0.000102 −0.001167−0.002386⎟ ⎜⎜ −0.000058 0.000894 0.002708 0.004367 0.003710 0.000194 −0.006303−0.013101−0.017168−0.013041−0.000913⎟ ⎜⎜ ⎟ ⎜⎜ 0.000078 −0.000170−0.000343−0.001152−0.001546−0.001248 0.003213 0.008642 0.006482 0.000018 −0.006550⎟ ⎜⎜ −0.000137−0.001099−0.003521−0.001540 0.002100 0.001737 0.001463 0.003074 0.006169 0.008633 0.008132⎟ ⎜⎜ ⎟ ⎝⎝ 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000⎠ ⎠
Максимальное значение |U12ij| равно
(
(
)
(
〈 10〉 〈 10〉 K12 := max max U12 , min U12 K12 = 0.010454 Выпишите это значение для n=1, …, n=5 и сделайте вывод.
))
Найдем невязки полученного пробного решения. При t=T получим невязку n ⎡ ⎤⎤ ⎡n R1(x ) := ∑ ⎢V (k , x) ⋅ ⎢ ∑ (M1k −1,z −1 ⋅ Y100, n +z + C1k −1, z −1 ⋅ Y100, z ) + B1k −1 ⎥ ⎥ − k =1 ⎣ ⎦⎦ ⎣ z =1 n n ⎤ n ⎡ − γ ( x) ∑ ⎢V (k , x) ⋅ ∑ ( M1k −1, z −1 ⋅ Y100,n + z )⎥ − ∑ [K1(x ) ⋅ V2(k , x) + K2( x ) ⋅ V1(k , x ) + k =1⎣ z =1 ⎦ k =1 ⎤ + β (x ) ⋅ V (k , x )⎥ ⋅ Y100,k − ( K1( x) ⋅ V2(0, x) + K 2(x ) ⋅ V1(0, x ) + β ( x) ⋅ V (0, x ) + g (x )) ⎦ i := 0 .. 10 b−a UN1i , 0 := a + ⋅i 10 UN1i , 1 := R1( UN1i , 0)
Таблица невязок при t=T 0 0.314 0.628 0.942 1.257 1.571 1.885 2.199 2.513 2.827 3.142 ⎞ T ⎛ UN1 = ⎜ ⎟ ⎝ −3.382 0.47 0.028 −0.3 0.019 0.264 0.019 −0.3 0.028 0.47 −3.382 ⎠ Максимальное значение |UN1ij| равно 〈 1〉 〈 1〉 K13 := max max UN1 , min UN1 K13 = 3.381705 Выпишите это значение для n=1, …, n=5 и сделайте вывод.
(
(
)
(
))
156
При t=0 получим невязки R2(x) и R3(x) n
R2( x) := V ( 0 , x) − f ( x) +
∑
D2 k −1 ⋅ V ( k , x)
k =1
i := 0 .. 10 b−a UN2i , 0 := a + ⋅i 10 b− a ⎞ ⎛ UN2i , 1 := R2 ⎜ a + ⋅ i⎟ 10 ⎝ ⎠
Таблица невязок при t=0 0.314 0.638 0. 942 1. 257 ⎛ 0. 0 UN2T = ⎜⎜ −13 − 5.596 ×10−14 − 2.061×10−13 − 4.610 ×10−13 ⎝ 0.00 − 1. 079×10 1.571 1. 885 2. 199 2.513 2.827 3. 142⎞ ⎟ − 5.329 ×10 −13 − 1. 754×10−13 6. 382×10−13 1. 566×10−12 1. 799×10−12 0.00 ⎟⎠ Максимальное значение |UN2ij| равно
(
(
K14 := max max UN2
〈 1〉
)
(
, min UN2
〈 1〉
))
− 12
K14 = 1.799227 × 10 Выпишите это значение для n=1, …, n=5 и сделайте вывод. n
R3( x) := − φ ( x) +
∑
N2k −1 ⋅ V ( k , x)
k =1
i := 0 .. 10 b−a UN3i , 0 := a + ⋅i 10 b− a ⎞ ⎛ UN3i , 1 := R3 ⎜ a + ⋅ i⎟ 10 ⎝ ⎠
Матрица невязок при t=0 ⎛ 0 0. 314 0. 628 0.942 1. 257 1. 571 1.885 2.199 2.513 2. 827 3.142 ⎞ UN3T = ⎜⎜ ⎟⎟ 0 0 0 0 0 0 0 0 0 0 0 ⎝ ⎠ Максимальное значение |UN3ij| равно
(
(
)
(
〈 1〉 〈 1〉 K15 := max max UN3 , min UN3 K15 = 0 Выпишите это значение для n=1, ..., n=5 и сделайте вывод.
))
157
Выводы Таким образом, при n = 5 получаем следующие результаты: max|Un (x, T) − Un −1 (x, T) | max|U (x,T ) −Un (x,T ) | max| R1n ( x, T ) | max| R2 n (x ) | − 12
K11 = 0.043315 K12 = 0.010454 K13 = 3.381705 K14 = 1.799227 × 10 Сделайте вывод о точности полученных решений.
158
Приложение Г Лабораторная работа
«Решение первой краевой задачи для эллиптического уравнения методом Галеркина»
двухмерного
Задание на лабораторную работу 1. В пункте «Пос тановка задачи» ввести вместо данных примера непрерывные функции уравнения K1(x, y) (K1> 0), K2(x, y) (K2> 0), K3(x, y), K4(x, y), K5(x, y), f(x, y) и числовые параметры задачи a, b, c, d своего варианта. 2. В пункте «Получение точного решения» ввести найденное аналитически число слагаемых в разложении в двойной тригонометрический ряд Фурье, обеспечивающих точнос ть решения 0.001. 3. В пункте «Получение приближенного решения» ввести вместо данных примера системы пробных V1(k,x,y) и проверочных W(k,x,y) функций своего варианта. Выполнить построение трех пробных решений задачи, вводя последовательно n=1, n=2, n=3. Переписать значения Ck и, подставив их, получить пробное решение. Выписать таблицы пробных решений и таблицы сравнения с предыдущим пробным решением. 4. В пункте «Сравнение точного и приближенного решений» исследовать поведение пос троенных пробных решений при n=1, n=2, n=3, сравнивая их таблицы с таблицей точного решения.
Постановка задачи Требуется в плоской замкнутой облас ти D={(x,y) | 0 ≤ x ≤ a , 0 ≤ y ≤ b } найти функцию U(x,y), удовлетворяющую внутри D уравнению K1( x , y) ⋅
d2
U + K2( x , y) ⋅
d2
U + K3( x , y) ⋅
d d U + K4( x , y) ⋅ U + K5( x , y) ⋅ U dx dy
d x2 d y2 а на границе ΓD области D краевому условию U (x , y ) Γ =d.
f ( x , y)
В качестве функции f(x,y) возьмем функцию f(x,y)=cxy. Введите непрерывные функции уравнения K1(x,y) (K1>0), K2(x,y) (K2>0), K3(x,y), K4(x,y), K5(x,y) и числовые параметры задачи a, b, c, d K1( x , y) := 1 K2( x , y) := 1 K3( x , y) := 0 K4( x , y) := 0 K5( x , y) := 0 a := π b := π c := − 1 d := 10 f ( x , y) := c ⋅ x ⋅ y
Получение точного решения 159
Найдем точное решение U(x,y), используя разложение функции в двойной M M
тригонометрический ряд Фурье U (x , y ) = d + ∑ ∑ H km sin( kπx / a) sin(mπy / b) . k =1m =1
Введите число слагаемых, обеспечивающих точность решения 0.001 M := 27 Вычислим коэффициенты H km i := 1 .. M j := 1 .. M H i−1 , j −1 :=
−4 ⋅ c
π
2
a
⋅ (i + j 2
)
2
⌠ ⎛π ⋅ ⎮ x ⋅ sin ⎜ ⎮ ⎝ ⌡0
b
⌠ ⋅ i ⋅ x⎞ ⎮ y ⋅ sin ⎛ π d x ⋅ ⎟ ⎜ ⎮ a ⎠ ⎝ ⌡0
⋅ j⋅ y⎞ ⎟ dy b ⎠
Следовательно, точное решение U(x, y) имеет вид M
U ( x , y) := d +
M
∑ ∑
⎛ π ⋅ k ⋅ x⎞ ⎛ π ⋅ m⋅ y⎞ ⎟ ⋅ sin ⎜ ⎟ a b ⎝ ⎠ ⎝ ⎠
H k −1 , m−1 ⋅ sin ⎜
k =1 m =1
Выпишите матрицу U1 получившегося точного решения, разбив облас ть D на 100 частей i := 0 .. 10 j := 0 .. 10 ⎛ i ,b ⋅ j ⎞ U1i , j := U ⎜ a ⋅ ⎟
⎝
Матрица точного решения
⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ U1 = ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝
10
10
10
10
10
10
10
10 ⎠ 10
10
10
10
10
10 10.108 10.211 10.305 10.381 10.435 10.457 10.437 10.364 10.223 10 10 10.211 10.413 10.596 10.747 10.853 10.897 10.859 10.716 10 10.305 10.596
10.86
10.44 10
11.079 11.235 11.302 11.251 11.045 10.644 10
10 10.381 10.747 11.079 11.358 11.558 11.648
11.59
11.336 10.828 10
10 10.435 10.853 11.235 11.558 11.794 11.908 11.852 11.567 10.979 10 10 10.457 10.897 11.302 11.648 11.908 12.043 10 10.437 10.859 11.251
11.59
11.852
12
12
11.711 11.083 10
11.981 11.721 11.111 10
10 10.364 10.716 11.045 11.336 11.567 11.711 11.721 11.529
11.02 10
10 10.223 10.44
10.72 10
10
10
10
10.644 10.828 10.979 11.083 11.111 10
График точного решения
10
10
10
10
11.02 10
10
10
⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠
160
U1 min ( U1) = 10
max ( U1) = 12.043
Получение приближенного решения n
Введите порядок пробного решения U n = V (0, x, y ) + ∑ C kV (k , x, y ) . k =1
n := 3
Введите пробные функции k
k
V1( k , x , y) := x ⋅ ( a − x) ⋅ y ⋅ ( b − y) Нормируем их. Для этого вычислим нормировочные коэффициенты и выпишем их аналитические выражения i := 1 .. n a
b
⌠ ⌠ 2 VV i−1 := ⎮ ⎮ ( V1 ( i , x , y) ) d x d y ⌡0 ⌡0 T
⎛ ⎝
VV → ⎜
1 30
⋅π
5
1 105
⋅π
7
1 252
⋅π
9
Получили нормированные пробные функции V1 ( k , x , y) ⎞ ⎛ V ( k , x , y) := if ⎜ k ≠ 0 , ,d ⎟ VV k − 1 ⎝ ⎠ Выпишем первые четыре функции V ( 0 , x , y) → 10 (π − y) V ( 1 , x , y) → 30 ⋅ x ⋅ ( π − x) ⋅ y ⋅ π 5 2 2 ( π − y) V ( 2 , x , y) → 105 ⋅ x ⋅ ( π − x) ⋅ y ⋅ π 7 3 3 ( π − y) V ( 3 , x , y) → 252 ⋅ x ⋅ ( π − x) ⋅ y ⋅ π 9 Введем оператор, равный левой части уравнения
⎞ ⎟ ⎠
161
L1( k , x , y , V ) := K1( x , y) ⋅
d2 dx2
V ( k , x , y) + K2( x , y) ⋅
d2 d y2
V ( k , x , y) + K3( x , y) ⋅
d V ( k , x , y) x d
d V ( k , x , y) + K5 ( x , y) ⋅ V ( k , x , y) dy Применим этот оператор к первым четырем пробным функциям f ( x , y) − L ( 0 , x , y , V ) → − x ⋅ y (π − y) (π − x) L ( 1 , x , y , V ) → −60 ⋅ y ⋅ − 60 ⋅ x ⋅ L ( k , x , y , V ) := L1 ( k , x , y , V ) + K4 ( x , y) ⋅
π
L (2, x, y, V ) → 210 ⋅ (π − x ) ⋅ y 2 ⋅ − 420 ⋅ x 2 ⋅ (π − x) ⋅
π
5
(π − x ) − 420 ⋅ x ⋅ y 2 ⋅ (π − y) + 210 ⋅ x 2 ⋅ (π − x ) ⋅ (π − y ) − π7
+ 1512 ⋅ x
π7
π7
y
π7
L ( 3, x, y ,V ) → 1512 ⋅ x ⋅ (π − x ) ⋅ y 3 ⋅ 3
5
(π − y ) − 1512 ⋅ x 2 ⋅ y 3 ⋅ (π − y ) + π9
π9
( π − y) y2 3 ⋅ (π − x ) ⋅ y ⋅ − 1512 ⋅ x ⋅ (π − x ) ⋅ 9 9
π π Введите поверочные функции (для примера в качес тве поверочных возьмем пробные функции) W ( k , x , y) := V ( k , x , y) Найдем коэффициенты системы уравнений AC=B для определения оптимальных коэффициентов пробных решений Ck i := 1 .. n a
b
⌠ ⌠ Bi−1 := ⎮ ⎮ ( f ( x , y) − L ( 0 , x , y , V ) ) ⋅ W ( i , x , y) dx d y ⌡0 ⌡0 ⎛ −6.459641 ⎞ B=
⎜ −8.139148 ⎟ ⎜ ⎟ ⎝ −8.681757 ⎠
i := 1 .. n a
j := 1 .. n
b
⌠ ⌠ A i−1 , j − 1 := ⎮ ⎮ L ( j , x , y , V ) ⋅ W ( i , x , y) d x d y ⌡0 ⌡0
⎛ − 2.026424 −1.773121 −1.459025 A = ⎜ − 1.773121 −2.836993 −3.191617 ⎜ ⎝ − 1.459025 −3.191617 −4.377075
⎞ ⎟ ⎟ ⎠
Решая систему уравнений AC=B матричным методом, получим вектор коэффициентов Ck 162
C := A− 1 ⋅ B
⎛ C =⎜ ⎜ ⎝
1.89638 0.909613 0.688075
⎞ ⎟ ⎟ ⎠
Выпишите получившееся пробное решение для n = 3 . Следовательно, пробное решение U(x, y) для n = 3 имеет вид n
U ( x , y) := V ( 0 , x , y) +
∑
C k − 1 ⋅ V ( k , x , y)
k =1
Выпишите матрицу U2 получившегося пробного решения, разбив область D на 100 частей i := 0 .. 10
j := 0 .. 10 ⎛ i ,b ⋅ j ⎞ U2i , j := U ⎜ a ⋅ ⎟
⎝
Матрица пробного решения
⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ U2 = ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝
10
10
10
10 10.149 10.27
10
10
10
10 ⎠
10
10
10
10
10
10
10.36 10.419 10.445 10.435 10.388 10.301 10.172 10
10 10.27 10.497 10.676 10.802 10.868 10.866 10.788 10.624 10.365 10 10 10.36 10.676 10.939 11.137 11.255 11.279 11.188 10.96 10.573 10 10 10.419 10.802 11.137 11.405 11.584 11.646 11.56 11.286 10.782 10 10 10.445 10.868 11.255 11.584 11.822 11.932 11.864 11.564 10.967 10 10 10.435 10.866 11.279 11.646 11.932 12.086 12.047 11.744 11.093 10 10 10.388 10.788 11.188 11.56 11.864 12.047 12.04 11.762 11.118 10 10 10.301 10.624 10.96 11.286 11.564 11.744 11.762 11.54 10.988 10 10 10.172 10.365 10.573 10.782 10.967 11.093 11.118 10.988 10.639 10 10
10
10
10
10
10
10
10
10
10
10
⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠
Максимальное и минимальное значения матрицы равны min ( U2) = 10 max ( U2) = 12.086 Найдем вектор коэффициентов Ck для предыдущего пробного решения. Для этого решим систему уравнений A1C=B1, где A1 угловая матрица (n-1)-го порядка матрицы A, а B1 вектор-столбец, содержащий первые ( n − 1 ) элементы столбца B. C1 := if ⎡⎣n ≠ 1 , ( submatrix ( A , 0 , n − 2 , 0 , n − 2) ) − 1 ⋅ submatrix ( B , 0 , n − 2 , 0 , 0) , 10⎤⎦ C1 =
⎛ ⎜ ⎝
1.494924 1.934607
⎞ ⎟ ⎠
Получим матрицу предыдущего (для n = 2 ) пробного решения, разбив область D на 100 частей 163
n−1 ⎞ ⎛ ⎜ UP ( x , y ) := if n ≠ 1 , V ( 0 , x , y ) + C1 k − 1 ⋅ V ( k , x , y ) , V ( 0 , x , y ) ⎟ ⎜ ⎟ k =1 ⎝ ⎠
∑
i := 0 .. 10 j := 0 .. 10 ⎛ i ,b ⋅ j U3i , j := UP ⎜ a ⋅
⎝
10
Матрица предыдущего пробного решения
⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ U3 = ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝
10
10
10
10
10
10
⎞ ⎟ 10 ⎠
10
10
10
10
10
10 10.121 10.224 10.306 10.364 10.394 10.392 10.355
10.28
10.163 10
10.83 10.846 10.784
10.63
10.373 10
10.747
10 10.224 10.432
10.61
10 10.306 10.61
10.886 11.111 11.259 11.306 11.228 11.001
10.6
10
10 10.364 10.747 11.111 11.418 11.632 11.716 11.632 11.343 10.811 10 10 10.394 10.83
11.259 11.632 11.903 12.02
11.938 11.606 10.976 10 11.74
11.063 10
10 10.355 10.784 11.228 11.632 11.938 12.088 12.027 11.696
11.04 10
10 10.392 10.846 11.306 11.716
10
10.28
10.63
10 10.163 10.373 10
10
10
12.02 12.163 12.088
11.001 11.343 11.606 11.74 10.6 10
10.811 10.976 11.063 10
10
10
11.696 11.425 10.876 10 11.04
10.876
10
10
10.54 10 10
10
⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠
Получим матрицу сравнения полученных пробных решений при n = 2 и n = 3 , т. е. найдем разность матриц U2 и U3
164
⎛⎛ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ U23:= U2 − U3 = ⎜ ⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎝⎝
Матрица сравнения полученных решений 0 0 0 0 0 0 0 0 0 0 0
⎞⎞ ⎟⎟ 0.028 0.046 0.054 0.055 0.051 0.043 0.032 0.021 0.01 0 ⎟⎟ 0.046 0.065 0.066 0.056 0.038 0.02 0.004 −0.006 −0.008 0 ⎟⎟ 0.054 0.066 0.053 0.026 −0.003 −0.027 −0.041 −0.041 −0.026 0 ⎟⎟ ⎟⎟ 0.055 0.056 0.026 −0.014 −0.049 −0.07 −0.072 −0.057 −0.029 0 ⎟⎟ 0.051 0.038 −0.003 −0.049 −0.08 −0.089 −0.073 −0.042 −0.009 0 ⎟⎟ 0.043 0.02 −0.027 −0.07 −0.089 −0.078 −0.041 0.004 0.031 0 ⎟⎟ ⎟⎟ 0.032 0.004 −0.041 −0.072 −0.073 −0.041 0.013 0.066 0.079 0 ⎟⎟ 0.021 −0.006 −0.041 −0.057 −0.042 0.004 0.066 0.116 0.112 0 ⎟⎟ ⎟⎟ 0.01 −0.008 −0.026 −0.029 −0.009 0.031 0.079 0.112 0.1 0 ⎟⎟ 0 0 ⎠⎠ 0 0 0 0 0 0 0 0 0
0
0
0
0
0
0
0
0
0
Максимальное значение |U23ij | равно max ( max ( U23) , min ( U23) ) = 0.1156 Выпишите это значение для n=1, n=2, n=3 и сделайте вывод
Сравнение точного и приближенного решения Сравним точное и приближенное решения, для этого найдем разность матриц этих решений U1 и U2
⎛⎛ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ U12:= U1 − U2 = ⎜ ⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎜⎜ ⎝⎝
0
0
Матрица сравнения точного и приближенного решения 0 0 0 0 0 0 ⎞⎞ 0 0 0
⎟⎟ ⎟⎟ −0.058 −0.084 −0.081 −0.056 −0.015 0.031 0.072 0.092 0.074 0 ⎟⎟ −0.056 −0.081 −0.079 −0.058 −0.021 0.023 0.063 0.085 0.071 0 ⎟⎟ ⎟⎟ −0.038 −0.056 −0.058 −0.047 −0.026 0.002 0.03 0.05 0.046 0 ⎟⎟ −0.01 −0.015 −0.021 −0.026 −0.029 −0.024 −0.012 0.003 0.013 0 ⎟⎟ 0.022 0.031 0.023 0.002 −0.024 −0.043 −0.047 −0.033 −0.011 0 ⎟⎟ ⎟⎟ 0.05 0.072 0.063 0.03 −0.012 −0.047 −0.059 −0.041 −0.008 0 ⎟⎟ 0.063 0.092 0.085 0.05 0.003 −0.033 −0.041 −0.011 0.032 0 ⎟⎟ ⎟⎟ 0.05 0.074 0.071 0.046 0.013 −0.011 −0.008 0.032 0.081 0 ⎟⎟ 0 ⎠⎠ 0 0 0 0 0 0 0 0 0
0 −0.041 −0.058 −0.056 −0.038 −0.01 0.022 0 0 0 0 0 0 0 0 0
0.05
0.063
0.05 0
Максимальное значение |U12ij | равно max ( max ( U12) , min ( U12) ) = 0.092 Выпишите это значение для n=1, n=2, n=3 и сделайте вывод.
165
ЗАКЛЮЧЕНИЕ
В данном пособии выполнено достаточно полное изложение алгоритмов методом взвешенных невязок [1] численного решения линейной краевой задачи для обыкновенного линейного дифференциального уравнения второго порядка, линейных начально-краевых задач для одномерных уравнений параболического и гиперболического типа, первой краевой задачи для двухмерного эллиптического уравнения. Результаты решения этих задач математической физики подтверждаю т общие выводы о возможностях таких методов, предс тавленные в монографии [1]. Именно то, что эти методы, во-первых, приводят к сравнительной точности получаемых решений и, во-вторых, позволяют достигать приемлемой точности при небольшом (на более пяти) числе пробных и поверочных функций, взятых из младших элементов полной системы функций. В пособии не обсуждаются вопросы, связанные с проблемой сходимости последовательности пробных решений к искомому точному решению задачи. Не обсуждаются также трудности и пути их преодоления, которые возникают, например, когда получение решения методом Галеркина с необходимой точностью требует сохранения большего числа пробных функций в пробном решении. С обсуждением этих проблем можно ознакомиться в монографии [1]. БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Флетчер, К. Численные методы на основе метода Галеркина / К. Флетчер.– М. : Мир, 1988. – 352 с. 2. Калиткин, Н. И. Численные методы / Н. И. Калиткин. – М. : Наука, 1978. – 512 с. 3. Корн, Г. Справочник по математике / Г. Корн, Т. Корн. – М. : Наука, 1970. – 720 с. 4. Тихонов, А. Н. Уравнения математической физики / А. Н. Тихонов, А. А. Самарский. – М. : Наука, 1972. – 735 с. 5. Вельмисов, П. А. Уравнения математической физики : учебное пособие / П. А. Вельмисов, Т. Б. Распутько. – Ульяновск : УлГТУ, 2001. – 68 с.
166