Қазақстан Республикасының Білім және ғылым министрлігі Министерство образования и науки Республики Казахстан Д. Серікбаев атындағы ШҚМТУ ВКГТУ им. Д. Серикбаева УТВЕРЖДАЮ декан ФИТЭ _________Мухамедиев Г.Х. «___» _____________ 2014 г. НАУЧНЫЙ СЕМИНАР ТЕОРИЯ РАЗНОСТНЫХ СХЕМ Специальность: 6D060100 – «Математика» Өскемен, Усть-Каменогорск 2014 3 СОДЕРЖАНИЕ 1. Метод разделения переменных 2. Итерационные методы решения сеточных уравнений 3. Попеременно-треугольный метод 4. Попеременно-треугольный метод для разностной задачи Дирихле. 5. Выбор параметров попеременно-треугольного метода для разностной задачи Дирихле. 6. Экономичные разностные схемы 7. Разностные схемы для уравнений с переменными коэффициентами 8. Разностные схемы для нелинейных уравнений 4 7 9 11 13 15 16 19 4 1. Метод разделения переменных Система разностных уравнений для задачи Дирихле из: y y x1x y x 2 x f x , x h , 1 2 y , x n (1) имеет матрицу высокого порядка N1 1N 2 1 . Обычно берут N1 , N 2 ~ 50 100 , так что число уравнений в системе (1) равно 10 3 10 4 . Решение систем столь высокого порядка методом Гаусса потребовало бы числа действий порядка 1 13 2 13 , т.е. 10 9 1012 действий, если бы у системы (1) не было одного хорошего качества: матрица системы является слабо заполненной и имеет лишь ~ 51 2 отличных от нуля элементов. Поэтому для решения системы разностных уравнений удается построить методы, требующие O ln и даже O действий, где 1 1 2 1 . Опишем один из прямых методов решения разностной задачи Дирихле уравнения Пуассона в прямоугольнике. Перепишем задачу (1) в виде y y x1ч1 y x 2 x25 x , x h , y h 0, (2) где yx yx при x h , а x определяется по формулам (14). Ее решение можно найти методом разделения переменных. Пусть 2 R x2 , R2 k 1, 2, , 2 1 – собственные функции и собственные значения задачи 2 2 2 0, 0 l 2 0. x h ; (3) Выражения для R2 и R2 x2 даны 2 2 Разложим решение yx1 , x2 и правую часть x1 , x2 по собственным функциям R2 : 2 y x1 , x 2 x1 , x 2 2 1 c x x , R2 1 R2 1 R2 2 (4) 2 1 x x , R2 1 R2 где x i h , например, 1 R2 2 (5) i 1, 2, , 1, 1, 2, c R2 x1 и R2 x1 – коэффициенты Фурье, 5 R x1 N 2 1 2 h x , i h i h . i2 1 2 1 2 2 R2 2 2 Применим оператор 1 2 к произведению c R R : 2 c R2 x1 R2 x 2 R2 x 2 1c R2 x1 c R2 x1 2 R2 x 2 R2 x 2 1c R2 x1 R22 c R2 x1 R2 x 2 1c R2 x1 2 R2 2 c R2 x1 R2 x 2 . Подставляя затем это выражение в (2) и учитывая (5), получим 2 1 c x c x x x 0. R2 1 1 R2 2 R2 1 R2 1 R2 1 R2 (6) 2 В силу ортогональности R x 2 это тождество возможно только при равенстве нулю выражения в фигурных скобках: 2 1cR2 x1 R22cR2 x1 R2 x1 , x1 i1 h1 , 0 i1 1 , k 2 1, 2, , 2 1, c R2 i1 h1 0, i1 0, 1 . (7) В самом деле, умножая (6) скалярно на R x 2 , имеем 2 0 R R , R 2 R RR2 R RR2 R2 0, где R – содержимое фигурной скобки (6). Задачи (7) решаются методом прогонки; всего требуется 2 – 1 раз использовать алгоритм прогонки для k 2 1, 2, , 2 1. Зная c R x1 , найдем по формуле (4) решение задачи (2). Для этого надо сначала вычислить коэффициенты Фурье R x1 k 2 1,2, , 2 1 . Из формул (4) и (5) видно, что yx1 , x2 и R x1 вычисляются по формулам одного и того же вида: 2 2 2 2 1 wi R sin R 1 ki (8) Разработан специальный алгоритм быстрого преобразования Фурье для вычисления сумм, который позволяет вычислить сумму (8) за 5 log 2 арифметических действий (при 2 n , n – целое число) вместо при обычном способе суммирования. Этот алгоритм позволяет найти решение исходной задачи (2) за O1 2 log 2 2 действий. Метод разделения переменных можно 6 комбинировать с методом редукции или декомпозиции, являющимся модификацией метода Гаусса. В результате получим алгоритм с числом действий Q 51 2 log 2 2 , что в два раза меньше, чем для алгоритма разделения, приведенного выше. 7 2. Итерационные методы решения сеточных уравнений Для решения разностной задачи Дирихле для уравнения Пуассона в прямоугольнике наиболее экономичными являются прямые методы. В настоящее время имеются стандартные программы на алгоритмических языках фортран и алгол для решения уравнений Пуассона в прямоугольнике с краевыми условиями трех типов, а также со смешанными краевыми условиями. Однако в случае, когда область не является прямоугольником или рассматриваются уравнения с переменными коэффициентами, применяются итерационные методы. Фактически прямые методы экономичны лишь в случае, когда переменные разделяются. В гл. III рассматривалась теория итерационных методов для уравнения y , где * 0 . Сравнение различных методов проводилось для модельной одномерной задачи на отрезке 0 x 1: y xx f x , x ih, 0 i , y 0 y 0. Для нее оператор имеет вид y y xx . . Границы оператора определяются постоянными 4 h sin 2 , 2 2 h 4 h cos 2 . 2 2 h Число итераций для рассмотренных. В гл. III методов зависит от отношения tg 2 h 2 2h2 4 (9) . Рассмотрим теперь в качестве модельной двумерную задачу Дирихле в единичном квадрате l1 l2 1 на квадратной сетке с шагом h h1 h2 : y y x1x1 y x 2 x2 , , y . (10) Число интервалов по каждому из направлений равно , так что h 1/ . Границы и оператора найдены в, отношение / совпадает с (9). Отсюда следует, что число итераций не зависит от числа измерений (если h1 h2 l1 l 2 , то слабо зависит). Поэтому те оценки числа итераций различных итерационных методов, которые мы получили для одномерной модельной задачи, справедливы и для двумерного случая. 8 В случае неквадратной сетки число итераций для двумерной задачи может несколько отличаться от числа итераций для одномерной задачи. Мы рассмотрим здесь лишь попеременно-треугольный итерационный метод для решения разностной задачи Дирихле (10). 9 3. Попеременно-треугольный метод Для решения операторного уравнения u f , * 0, : , (11) в гл. III рассматривались двухслойные одношаговые итерационные методы, которые записывались в следующей канонической форме: y R 1 y R R 1 y R f , k 0, 1,, n, для всех y0 , (12) где B : , * 0. Для и выполнены условия 1 2 , 1 0, где 1 , 2 – постоянные. (13) Минимальное число итераций min n при заданных 1 , 2 достигается при R выборе чебышевских параметров R 0 , 1 0 R 0 2 , 1 2 0 1 , 1 1 , 2 k 1, 2, , n, (14) где R принадлежит некоторому специально упорядоченному множеству нулей полинома Чебышева; при таком упорядочении метод (12) является вычислительно устойчивым. Для определения k 1-й итерации имеем уравнение FR y R R1 y R f . y R1 FR , Число действий при вычислении y R 1 зависит от . Выбирая D A1 D 1 D A2 , (15) где A1 и A2 – операторы с треугольными матрицами A1* A2 , A1 A2 A, а D D* 0 – произвольный оператор, получаем попеременно-треугольный метод. Обычно D d i i – диагональная матрица. В главе III дана теория этого метода и найдены постоянные 1 , 2 и при заданных условиях 12 A D, A1 D 1 A2 A, 4 0, 0, (16) 10 которые можно записать в эквивалентном виде: D Ay, y Dy , y , 1 A2 y, A2 y Ay, y . 4 В этом случае имеем 2 , 2 1 , , (17) а для числа итераций верна оценка n n0 1 2 ln . 2 24 3 (18) 11 4. Попеременно-треугольный метод для разностной задачи Дирихле. Обратимся к задаче (10). Оператор A представим в виде суммы A A1 A2 , где A1 y y x1 h1 y x2 h2 A2 y , y x1 h1 y x2 h2 , и положим D E . Сопряженность A1 и A2 : A2 A1* устанавливается сравнением их матриц или с помощью первой разностной формулы Грина: A1 y, y, A1* y, A2 . Для определения получаем уравнение y R1 A1 E A2 y R1 FR , FR B y R R 1 y R ( yR , y R 0 при x h . Значения y R 1 находятся последовательно из уравнения 1 E A1 y R 1 E A2 y R1 y R FR , . Отсюда получаем формулы 1 1 1 y R i1 1, i2 2 y R i1 , i2 1 FR i1 , i2 y R i1 , i2 , 1 1 2 1 1 2 1 h , 2 h22 , 1 1 y R 1 i1 1, i2 2 y R 1 i1 , i2 1 y R i1 , i2 y R 1 i1 , i2 . 1 1 2 Чтобы определить тогда остальные i1 , y 1 i2 , i1 1, i1 1, i2 y 1 i2 , (19) 1 y R i1 , i2 , выбираем узел i1 1, i2 1 в левом прямоугольника; два узла i1 , i2 1 i1 1, лежат i1 , i2 1 0 известны. Зная i2 на 1 и границе i1 , и, i2 1 шаблона следовательно, y R при i1 1, i2 1, последовательно 12 1 находим y R при i1 2, 3, , 1 1 и i2 1 (на первой строке). Далее, полагаем i2 2 1 и находим последовательно y R на второй строке при i1 1, 2, , N 1. Для определения проводим вычисления на шаблоне i1 , i2 , i1 1, i2 , i1 , i2 1 по столбцам сверху вниз: фиксируем i1 N1 1, N1 2, ,2, 1, и при каждом i1 меняем i2 N 2 1, N 2 2, ,2, 1. Начинаем y R 1 счет y R 1 с узла i1 N1 1, i2 N 2 1 в верхнем правом углу. Следует отметить, что счет можно также вести по строкам справа налево: фиксируем i2 N 2 1, N 2 2, ,2, 1 и при каждом i 2 меняем i1 N1 1, N1 2, ,2, 1. Впрочем, y R 1 1 вычисление y R можно вести не по строкам, а по столбцам снизу вверх. Это видно из самих формул. Вычисления ведутся по рекуррентным формулам (19); счет, очевидно, устойчив. Алгоритм подобного типа, как уже отмечалось, называют алгоритмом бегущего счета. Подсчитаем число арифметических действий на один узел сетки: вычисление FR требует 10 операций сложения и 10 операций умножения; вычисление y R 1 при заданном FR требует 4 операции сложения и 6 операций умножения. Итого требуется для определения y R 1 в одном узле провести 14 операций сложения и 16 операций умножения. Число действий можно уменьшить, если хранить в оперативной памяти не одну, а две последовательности y R и wR1 и для определения y R 1 пользоваться алгоритмом A1 w R1 2 y R f , A2 w R1 w R1 2 , y R 1 y R R 1 w R 1. В этом случае для перехода от y R к y R 1 достаточно 10 операций сложений и 10 операций умножения на один узел. 13 5. Выбор параметров попеременно-треугольного метода для разностной задачи Дирихле. Чтобы воспользоваться общей теорией гл. III надо найти постоянные и , входящие в условие (16). В нашем случае A A1 A2 , где -наименьшее собственное значение оператора A , равное 1 h h 1 4 2 sin 2 1 2 sin 2 2 . 2l1 h2 2l 2 h1 (20) Рассмотрим оператор A1 D 1 A2 A1 A2 . Учитывая, что a1b1 a 2 b2 2 a12 a 22 b12 b22 , A1* A2 , Находим A1 A2 y, y A2 y, A2 y 2 1 1 1 1 y x1 y x2 , 1 2 2 y x1 h1 h2 h1 h2 y , 1 1 1 N1 1 2 2 h1 h2 i1 1 2 2 x2 y y 1 1 h1 h2 2 2 Ay, y , h1 h2 N1 1 N 2 1 N 2 1 i2 1 2 2 x1 x2 i1i2 так как N 2 1 Ay, y h2 y x i2i i2 1 i1 0 1 12 h1 N1 1 h1 y x2 i1 1 i2 0 2 i1i2 h2 . Сравнивая неравенства 1 1 Ay, y и A1 A2 A, 2 2 4 h1 h2 A1 A2 y, y заключаем, что 1 1 4 2 2 . h1 h2 (21) Зная и , находим и по формулам находим параметры 1 , 2 , , после чего оцениваем число итераций по формуле 14 n ln 2 ln 1 1 , 1 1 1 . Пользуясь n , выбираем устойчивый набор чебышевских параметров R , R1 и 2 . Приведем результат сравнения методов решения по числу итераций n0 : метода простой итерации n01 , явной схемы с чебышевским набором n02 и попеременно-треугольного метода n03 для двумерной модельной задачи (10), пользуясь приближенными формулами n01 2 h 2 , h 1 10 1 50 1 100 n02 3.2 h, n0(1) ( ) 200 5000 20 000 n03 2.9 h при 10 4 (табл. 2). n0( 2 ) ( ) 32 160 320 n0( 3) ( ) 9 21 29 15 6. Экономичные разностные схемы Схема предиктор – корректор. В этом случае переход со слоя n на слой n 1 осуществляется в два этапа. На первом этапе решается неявная линейная система уравнений y j 12 y n h 1 i i a yin y x 2 f ( yin ), i 1, N 1, x ,i 0.5 n 1 2 n 1 y0 1 (t n 0.5 ), y N 2 2 (t n 0.5 ). n 1 Здесь находятся промежуточные значения yi 2 , i 0, N . На втором этапе используем симметричную шеститочечную схему, в которой n 1 нелинейные коэффициенты a( y ), f ( y ) вычисляются при y yi yin1 yin 1 1 n n 1 n 1 a yi 2 y xn1 a yi 2 y xn f yi 2 , x ,i 2 x ,i y0n1 2 t n1 , y Nn1 2 t n1 . i 1, n 1, 2 : 16 7. Разностные схемы для уравнений с переменными коэффициентами Рассмотрим первую краевую задачу для уравнения теплопроводности с переменными коэффициентами: u u x, t k x, t f x, t , t x x u x, 0 u x , u 0, t 1 t , 0 0 x 1, 0 t T, u 1, t 2 (t ). (1) x, t , k x, t , f x, t достаточно гладкие функции, удовлетворяющие условиям 0 c1 k x, t c2 , x, t c3 0 (2) В начале аппроксимируем оператор Lu d du k x . dx dx Заменим её разностным соотношением Lhu au x x ,i u u u ui 1 1 ai 1 i 1 i ai i , h h h (3) a(x) – функция определена на сетке h . Найдем условие, которым должна удовлетворять функция a(x), чтобы отношение au x x,i аппроксимировал (ku ) в точке xi со вторым порядком. Используем разложением: h h2 u x ,i ui ui ui о h3 , 2 6 h h2 u x ,i ui ui ui о h3 . 2 6 Подставляя их в (3), получим Lhu ai1 ai a a h ai 1 ai ui i 1 i ui ui o h 2 , h 2 6 учитывая, что Lu (ku) ku k u, определим разность 17 hai 1 ai a a a a Lhu L u xi i1 i ki ui i 1 i ki ui ui oh 2 , 6 h 2 отсюда видно, что Lhu Lu xi 0h 2 , если ai1 ai k xi о h 2 , h (4) ai1 ai ki о h 2 . 2 Условиям (4), удовлетворяют, например функции ai 0.5 k xi k xi 1 , ai k xi 0.5h , ai k xi k xi 1 . (5) Учитывая аппроксимацию дифференциальное выражение Lu u k x, t при каждом фиксированном t , аппроксимируем следующим x x образом: t yi a xi , t y x x ,t y yi y yi 1 1 axi1 , t t 1 a xi , t i . h h h Здесь условие (4) примет вид: axi1 , t a xi , t 2k xi , t о h 2 , a xi1 , t a xi , t k xi , t о h 2 . h Условие (5) имеет вид: axi , t 0.5k xi , t k xi1 , t , h a xi , t k xi , t , 2 2k xi 1 , t k xi , t a xi , t . k xi 1 , t k xi , t Разностная схема с весами имеет вид (6) 18 yin 1 yin x , t t yin1 1 yin f xi , t , i y n t , y Nn 2 t n , yi0 u 0 xi . 1 n 0 i 1, 2, , N 1, (7) При исследовании устойчивости разностных схем с переменными коэффициентами применяют принцип замороженных коэффициентов. Рассмотрим явную схему, соответствующую уравнению (7), т.е. 0, f x, t 0. xi , t y in1 yin a xi , t y nx x ,i (8) . Предположим, что xi , t const , yin1 yin axi , t a const , тогда (8) примет вид a y x x ,i , (9) или y in1 y in y x x ,i , a (9/) Известно, что (9/) устойчиво, если 0.5 h 2 , т.е. a h2 2 (10) Принцип замороженных коэффициентов утверждают, что схема (8) устойчива, если условие (10) выполнено при всех x, t , т.е. axi , t h 2 xi , t 2 Если известно, что 0 c1 axi , t c2 , xi , t c3 0, то неравенство (7) будет выполнено. h 2 c3 - условие условной устойчивости. 2c 2 (10) 19 8. Разностные схемы для нелинейных уравнений Рассмотрим краевую задачу для нелинейного уравнения теплопроводности: u u k u f u t x x (1) Когда изменение функции k (u ) - неизвестно, то явные схемы применять нецелесообразно. А) Чисто неявная схема имеет вид: yin1 yin y n1 yin1 y n1 yin11 1 f yin , ai1 i1 ai i h h h i 1, N 1, (2) ai 0.5 k ( yin ) k ( yin1 ) . Схема абсолютно устойчива, и порядок аппроксимации о h 2 . Решается методом прогонки. Б) Нелинейная схема имеет вид. n 1 n 1 n 1 yin1 yin 1 yin11 n 1 yi 1 yi n 1 yi f yin1 , a yi1 a yi h h h n 1 n 1 n1 k yi k yi1 . a yi 2 (3) в) Для реализации этой схемы применим итерационный метод, например: y i( s 1) y in 1 y ( s 1) y i( s 1) y ( s 1) y i(s11) f y i( s ) , a yis1 i 1 ai ( y i( s ) ) i h h h (0) n (M ) n 1 yi yi , yi yi . s 0, 1,, M 1, s – номер итерации. (4) 20 Здесь нелинейные коэффициенты берутся с предыдущей итерации, а начальное приближение yi( 0) yin число итерации задается из соображения точности. В случае гладких коэффициентов k (u) c1 0 , достаточны 2-3 итерации. Значение yi( s 1) находятся методом прогонки. Заметим, что при M 1 , схема (4) совпадает со схемой (3). 21 СПИСОК ЛИТЕРАТУРЫ 1. Марчук Г.И. Методы вычислительной математики.- М.:Наука,1989 2. Самарский А.А., Гулин А.В. Численные методы. -М.: Наука, 1989 3. Демидович Б.П., Марон И.А., Шувалова Э.З. Численные методы анализа.М.:Изд-во физ.-мат. лит-ры, 1962 4. Крикунов Ю.М. Лекции по уравнениям математической физики и интегральным уравнениям./ Изд-во Казанского университета, 1970 5. Тихонов А. Н. Уравнения математической физики./ А. Н. Тихонов, А. А. Самарский. Гостехиздат,1953 6. Самарский А.А. Введение в численные методы: Учебное пособие М.: Наука,1982г.271с. 7. Тихонов А.Н., Костомаров Д.П. Вводные лекции по прикладной математике: Учебное пособие. М.: Наука,1984г.190с. 8. Тихонов А.Н., Арсенин В.Я. Методы решения некорректных задач: Учебное пособие. М.:Наука,1979г.285с. 9. Кошляков Н.С. Основные дифференциальные уравнения математической физики./ Н.С. Кошляков, Э.Б. Глинер, М.М. Смирнов, Физматгиз, 1962. 10. Смирнов М.М. Дифференциальные уравнения в частых производных второго порядка, Наука, 1964.