Министерство общего и профессионального образования Российской Федерации Восточно-Сибирский государственный технологичес...
64 downloads
353 Views
254KB 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
Министерство общего и профессионального образования Российской Федерации Восточно-Сибирский государственный технологический университет
Решение задачи Дирихле для уравнения Лапласа методом конечных разностей Методические указания и контрольные задания по численным методам решения инженерных задач для студентов строительных и машиностроительных специальностей дневной и заочной форм обучения
Составители В.В.Бундаев Ж.Г. Дамбаев В.Д.Даширабданов А.А.Алтаев
УДК 518(075)+681.3.06 Решение задачи Дирихле для уравнения Лапласа методом конечных разностей: Методические указания/ Бундаев В.В., Дамбаев Ж.Г., Даширабданов В.Д., Алтаев А.А. -Улан-Удэ: РИО ВСГТУ, 2003. – 16 с., илл. Методические указания предназначены для выполнения лабораторно-практической работы по курсу "Информатика. Численные методы решения инженерных задач на ЭВМ". и ориентированы на студентов строительных и машиностроительных специальностей. В указаниях дается вывод основных конечно-разностных соотношений, используемых при численном решении задачи Дирихле для уравнения Лапласа и приведен конкретный пример расчета, построены соответствующие графики и дан анализ полученных результатов. На основе результатов ручного счета разработаны соответствующие алгоритм решения этой задачи в виде блок-схемы и программа на языке Турбо Паскаль. Для самостоятельной работы студентам предлагаются задания, которые выполняются вручную и на компьютере, затем полученные результаты анализируются и сопоставляются. Рецензент: Бильгаева Л.П., к.т.н., доцент ВСГТУ Печатается по решению Научно-методического совета Восточно-Сибирского государственного технологического университета @ Восточно-Сибирский государственный технологический университет, 2003 г.
Улан-Удэ 2003
Общие методические указания 1.В пособии представлен пример решения типовой краевой задачи для уравнения Лапласа методом конечных разностей (МКР), в конце даны задания для самостоятельного решения. 2. Расчетная схема области, в которой ищется решение T(x,y) задачи Дирихле, приведена на рис.1. Выражения для функции T(x,y) на границах этой области выбираются из таблицы 1 согласно шифру, который сообщается студенту преподавателем. Замечание. Для студента-заочника две последние цифры номера зачетной книжки являются шифром. Если две последние цифры номера превышают число 30, то шифром является число с отброшенной первой цифрой. 3.Выполненная и оформленная работа должна быть защищена в установленные сроки. Если работа не была зачтена, то необходимо исправить в ней все ошибки в соответствии с указаниями рецензента. Исправления делаются на отдельных листах и вклеиваются в соответствующее место в тетради. 4.При выполнении работы необходимо: а) тщательно изучить теоретический материал с использованием рекомендуемой литературы [1-5], составить конспект и разобрать пример решения типовой задачи; б) перед решением задачи изобразить заданную расчетную схему в масштабе согласно своему варианту; в) решение задачи рекомендуется проводить в общем виде, подставляя числовые значения величин в конечные буквенные выражения; г) эпюры строить при различных фиксированных значениях координаты yj по ширине рассматриваемой области с указанием характерных значений решения задачи;
Метод конечных разностей Уравнение Лапласа Пусть в некоторой области D на плоскости необходимо найти непрерывную функцию Т=Т(x,y), которая удовлетворяет уравнению Лапласа
∂ 2T ∂ 2T + = 0 ∂x 2 ∂x 2
(1 )
и принимает на границе Г области заданные значения
Т Г = ϕ( x , y )
(2)
Такая задача является классической и известна под названием задачи Дирихле для уравнения Лапласа. Граница Г в общем случае может быть криволинейной, однако в дальнейшем будем рассматривать области, границы которых составлены из отрезков прямых, параллельных осям координат х и у. Это позволит неy сколько упростить изложение основных положений метода конечных разноm стей. Рассмотрим, в частk ности, в качестве области D b прямоугольник со сторо2 нами a и b (рис. 1). Отме1 x тим, что переход от такой n 0 1 2 3 h области к произвольной обa ласти с границами, параллельными осями координат, Рис. 1. не вызывает особых затруднений. Разделим стороны а и b прямоугольника на n и m равных отрезков соответственно: длина отрезка по оси ОХ равна h=a/n , а по оси OY– k=b/m. Проведем через концы этих отрезков два семейства прямых линий, параллельных осям координат х и у (см. рис. 1). Таким образом, заданная область D={0≤ х ≤ a; 0 ≤ у≤b} покрывается прямоугольной сеткой с (n+1)×(m+1) узлами:
xi=x0+i×h (i=0,1,2,…,n); yj=y0+j×k (j=0,1,2,…m). В связи с этим метод конечных разностей для плоских областей иначе называется методом сеток. На рис. 1 координаты х0 и у0 равны нулю. Перейдем теперь к записи разностных соотношений для каждой внутренней точки полученной сеточной области. Узлы сетки будем обозначать двумя индексами i, j, первый из которых соответствует нумерации точек разбиения отрезка а по оси ОХ, а второй – отрезка b по оси ОУ (см. рис. 1). Узлы, расположенные внутри области D, называются внутренними, а узлы на границе Г области – граничными. Значения функции в узлах сетки будем обозначать следующим образом
Ti , j =
Тогда граничные условия /2/ для прямоугольной сеточной области (см. рис. 1) можно записать в виде
Ti ,0 = ϕ i ,0 ;
i = 0,1,2,..., n
Ti ,m = ϕ i ,m ;
i = 0,1,2,..., n
T0, j = ϕ 0, j ;
j = 0,1,2,..., m
Tn , j = ϕ n , j ;
j = 0,1,2,..., m θ2k
Г
Г θ1h
θ1h θ2k
Рис.2 пересечения Г с сеткой (рис. 2) [3].
(3) Если область определения функции Т(х,у) имеет криволинейную границу Г, то неизвестные Ti,j в узлах сетки, расположенных вблизи этой границы, можно определить линейной интерполяцией значений Т(х,у) во внутреннем узле и в точке
(4)
или Ti , j =
1 (θ 2Ti , j ±1 + ϕ i , j mθ 2 ) (θ 2 + 1)
в зависимости от того, какая точка (xi±θ1h,yj) или (xi,yj±θ2k,) пересечения границы Г с линиями сетки находится ближе к граничному углу (см. рис. 2). В (4) введены следующие обозначения
ϕ ( xi , y j ) = ϕ i , j
Т ( xi , y j ) = Ti , j ;
1 (θ 1Ti ±1, j + ϕ i mθ1 , j ) (θ 1 + 1)
ϕ i ±θ , j = ϕ ( xi ± θ 1 h, y j ),
0 ≤ θ 1 ≤ 1,
ϕ i , j ±θ = ϕ ( xi , y j ± θ 2 k ),
0 ≤ θ 2 ≤ 1,
1
2
Во всех узлах i,j сеточной области производные в уравнении (1) можно аппроксимировать разностными отношениями второго порядка точности по формулам
Ti +1, j - Ti-1, j ⎛ ∂T ⎞ + 0(h) 2 , ⎜ ⎟ = 2 ∂ x h ⎝ ⎠ i, j Ti , j +1 - Ti, j-1 ⎛ ∂T ⎞ ⎜⎜ ⎟⎟ = + 0(k ) 2 , 2h ⎝ ∂y ⎠ i , j (5)
⎛∂ T ⎞ ⎜⎜ 2 ⎟⎟ = ⎝ ∂x ⎠ i , j 2
Ti +1, j - 2Ti, j + Ti -1, j h
2
+ 0( h ) 2 ,
T - 2Ti, j + Ti , j −1 ⎛ ∂ 2T ⎞ ⎜⎜ 2 ⎟⎟ = i , j +1 + 0( k ) 2 2 k ⎝ ∂y ⎠ i , j Подставляя (5) в уравнение Лапласа (1) и отбрасывая погрешности аппроксимаций производных, получим конечноразностные уравнения
Ti +1, j - 2Ti, j + Ti -1, j h2 i=1,2,3,…,n-1;
+
Ti, j+1 - 2Ti, j + Ti, j-1 k2
= 0,
j=1,2,3,…,m-1.
∑
Если ввести обозначение σ = к/h, то эти уравнения примут вид
σ 2Ti +1, j + σ 2Ti -1, j + Ti, j+1 + Ti , j -1 - 2(1 + σ 2 )Ti , j = 0. При σ = 1, т.е. при одинаковых шагах разбиения вдоль осей ОХ и ОУ (h=k), получим
Ti , j = (Ti +1, j + Ti -1, j + Ti , j +1 + Ti, j-1 )/4
(6)
i=1,2,3,…,n-1; j=1,2,3,…,m-1. Эти соотношения означают, что значение функции Т(х,у) в узле i,j сетки равно среднему арифметическому значений этой же функции в четырех соседних с ним узлах (рис. 3). Таким образом, получена система (6), состоящая из (n-1)×(m-1) линейных алгебраических уравнений относительно (n+1)×(m+1) неизвестных Ti,j. сключая из этой системы с помощью граничных условий (3) 2(m+n) неизвестные, получим (m-1)×(n-1) уравнений с соответствующим числом неизвестных. Отметим, что окончательная система линейных уравнений обладает следующими свойствами: а) подавляющая часть коэффициентов этой системы равна нулю;
Ti,j+1 Ti-1,j
Ti,j Ti,j-1 Рис.3
Ti+1,j
Таким образом, в матрице Т системы имеет место диагональное преобладание элементов Tii ≥ Tij ; i = 1,2,...n − 1; j = 1,2,..., m − 1, (7)
б) в каждом уравнении один из коэффициентов равен +4. Если в уравнении имеются пять коэффициентов, отличных от нуля, то сумма остальных четырёх коэффициентов равна –4; если же количество ненулевых коэффициентов меньше пяти, то сумма остальных равна –2 или –3.
i≠ j
то есть выполнены достаточные условия сходимости итерационного метода Зейделя, если хотя бы одно из неравенств (7) является строгим [1]. Первое же из приведенных свойств указывает на то, что применение метода исключения Гаусса является целесообразным, так как исходная система после прямого хода этого метода превратится в систему с полной треугольной матрицей. Блок-схема алгоритма решения рассматриваемой разностной задачи методом Зейделя приведена на рис. 4. В соответствующей программе необходимо предусмотреть двумерный массив, состоящий из m строк n столбцов, для значений температуры в узлах сетки. В строках 0 и m, а также в столбцах 0 и n нужно задать граничные условия (3). Затем вычисления производят с помощью двух операторов цикла FOR…NEXT для двух переменных j (j=1,…,m-1) и i (i=1,…,n-1). В каждом внутреннем узле i, j вычисляется значение Ti,j по уравнениям (6) и сравнивается с тем, которое было вычислено в результате предыдущей итерации. Если наибольшая по модулю разность значений неизвестных, полученных при последовательных итерациях, меньше заранее заданной малой погрешности ε, то необходимо напечатать решение Ti,j, иначе производится очередная итерация. На рис. 4 через IT и IN обозначены номер итерации и максимально допустимое количество итераций соответственно. Отметим, что метод Зейделя, примененный к решению эллиптических разностных уравнений, называется методом Либмана или методом последовательных смещений [1,2].
Пример 1.Используя метод сеток решить задачу Дирихле для уравнения Лапласа (1) в квадрате АВСД с вершинами А(0;0), В(0;1), С(1;1), Д(1;0) (рис. 5); шаги сетки по осям ОХ и ОУ читать равными h=k=0,2 Граничные условия: Т|АВ=45у(1-у); y Т|ВС=25х; B C Т|СД=25; Т|АД=25х⋅sin(πx/2). 1.0 С учётом этих условий 0.8 запишем значения функции Т(х,у) в каждом гра0.6 ничном узле заданной 0.4 области АВСД (рис. 6): на стороне АВ: 0.2 Т0,1=7,20; Т 0,0=0,00; A Д Т0,3=10,80; Т0,2=10,80; 0 0.2 0.4 0.6 0.8 1.0 x Т0,5=0,00. Т0,4=7,20; Рис.5 на стороне ВС: Т2,5=10,00; Т1,5=5,00; Т4,5=20,00; Т3,5=15,00; T0,5 T1,5 T2,5 T3,5 T4,5 T5,5 Т5,5=25,00 T1,4 T2,4 T3,4 T4,4 T5,4 T0,4 на стороне СД: T1,3 T2,3 T3,3 T4,3 T5,3 T0,3 Т5,2=25; Т5,1=25; =25; Т5,4=25; Т 5,3 T T T T T T
начало ε,IN,N,M,H T(i,j)=0; I=0,…,n; j=0,…,m Задание гранич.условий (3) IT=1 D=0 j=1,m-1 i=1,n-1
1 [T (i + 1, j ) + T (i - 1, j ) + 4 + T (i, j - 1) + T (i, j + 1)] x=
Да
| x - T(i, j) | > D
D = | x - T(i, j) |
Нет T(i, j) = x
0,2
Нет
D<ε ?
IT = IT + 1
Да T(i,j); j=0,m;
i=0,..,n;
Нет IT > IN
Да конец
Рис.4
T0,1
1,2
2,2
3,2
4,2
5,2
T1,1 T2,1 T3,1 T4,1 T5,1
на стороне АД: Т2,0=5,878; Т1,0=1,545; Т3,0=12,135; Т4,0=19,021; T0,0 T1,0 T2,0 T3,0 T4,0 T5,0 Т5,0=25 Составим теперь Рис.6 конечно-разностные уравнения для каждого внутреннего узла рассматриваемой сеточной области. На рис. 6. Эти узлы обозначены кружками. При составлении уравнений воспользуемся соотношением (6) и шаблоном на рис. 3
1 (7,20 + Т 2,1 + 1,545 + Т1,2 ); 4 1 Т 2,1 = (Т1,1 + Т 3,1 + 5,878 + Т 2,2 ); 4 1 Т3,1 = (Т 2,1 + Т 4,1 + 12,135 + Т3,2 ); 4 1 Т 4,1 = (Т3,1 + 25 + 19,021 + Т 4,2 ); 4 Т1,1 =
1 Т1,2 = (10,80 + Т 2,3 + Т1,1 + Т1,3 ); 4
1 (Т + Т3,2 + Т 2,1 + Т 2,3 ); 4 1,2 1 Т3,2 = (Т 2,2 + Т 4,2 + Т3,1 + Т 3,3 ); 4 1 Т 4,2 = (Т3,2 + 25 + Т 4,1 + Т 4,3 ); 4 1 Т1,3 = (10,80 + Т 2,3 + Т1,2 + Т1,4 ); 4 1 Т 2,3 = (Т1,3 + Т3,3 + Т 2,2 + Т 2,4 ); 4 1 Т3,3 = (Т 2,3 + Т 4,3 + Т3,2 + Т3,4 ); 4 1 Т 4,3 = (Т3,3 + 25 + Т 4,2 + Т 4,4 ); 4 1 Т1,4 = (7,20 + Т 2,4 + Т1,3 + 5,00); 4 1 Т 2,4 = (Т1,4 + Т3,4 + Т 2,3 + 10,00); 4 Т 2, 2 =
1 (Т + Т 4,4 + Т3,3 + 15,00); 4 2,4 1 Т 4,4 = (Т3,4 + 25 + Т 4,3 + 20,00). 4 Т3,4 =
Получим систему из 16-ти линейных алгебраических уравнений с 16-ю неизвестными Ti,j, i=1,2,3,4; j=1,2,3,4. Матрица системы имеет вид: T 11
T 21
T 31
T 41
T 12
T 22
T 32
T 42
T 13
T 23
T 33
T 43
T 14
T 24
T 34
T 44
4 -1 -1 -1 4 -1 -1 4 -1 -1 4 -1 4 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 4 -1 -1 -1 4 -1 -1 -1 4 -1 4 -1 -1 -1 -1 4 -1 -1 -1 -1 4 -1 -1 -1 -1 4 -1 -1 4 -1 -1 -1 4 -1 -1 -1 4 -1 -1 -1 4
Правая часть системы равна 8.745 5.878 12.135 44.021 10.80 0 0 25 10.80 0 0 25 12.12 10 15 45 Решая эту систему методом Гаусса, получим ответ: Т1,1=7,18; Т2,1=9,86; Т3,1=14,32; Т4,1=19,63 Т1,2=10,15; Т2,2=12,07; Т3,2=15,07; Т4,2=20,17 Т1,3=10,55; Т2,3=12,62; Т3,3=16,12; Т4,3=20,40 Т1,4=8,63; Т2,4=11,76; Т3,4=15,79; Т4,4=20,30 Число итераций=18 при Е=0,01 Наглядное представление о распределении температуры Т(х,у) в квадратной пластине АВСД (рис. 5) при заданных граничных условиях на её сторонах могут дать эпюры Т(х,у), построенные при различных фиксированных значениях yj=j⋅h, j=0,1,2,…,5; h=0,2 (рис.7)
Отметим, что при движении вдоль соответствующих горизонтальных прямых yj=jh, j=0,1,2,…,5; h=0,2 от левой стороны
10
5
0
25
20
15
j= 5
2 0 .3 0
7 .2 0
1 1 .7 6
8 .6 3
j= 4
2 0 .4 0
1 0 .8 0
1 2 .6 2
1 0 .5 5
1 2 .0 7
1 0 .1 5
j= 3
j= 2
j= 1
1 9 .0 2 1 1 .5 4 5
5 .8 7 8
0
I= 0
I= 1
I= 3
25
1 4 .3 2
9 .8 6
7 .1 8
25
1 5 .6 7
1 9 .6 3
7 .2 0
25
1 6 .1 2
2 0 .1 7
1 0 .8 0
25
1 5 .7 9
i= 3
25
1 2 .1 3 5 j= 0
i= 4
i= 5
Р и с .7
пластины к её правой стороне температура Т(х,у) изменяется плавно, достигая наибольшего своего значения, равного 25 при i=5. Минимальные значения температуры Т(х,у) имеют место вблизи левой стороны АВ пластины при j=0,4,5 и вблизи узлов с индексом i=I при j=1,2,3.
Список рекомендуемой литературы 1.Д.Мак-Кракен, У.Дорн. Численные методы и программирование на Фортране /Пер. с англ.-М.: Мир, 1977. – 584 с.: ил. 2.Шуп Т. Решение инженерных задач на ЭВМ: Практическое руководство /Пер. с англ. –М.:Мир, 1982. –238 с.: ил. 3.Боглаев Ю.П. Вычислительная математика и программирование: Учеб. Пособие для студентов втузов. – М.:Высшая школа, 1990. –544 с.: ил. 4.Ивашкин Ю.А. Вычислительная техника в расчетах. – М.:Агропромиздат, 1989. –335 с.: ил. 5.Воробьева Г.Н., Данилова А.Н. Практикум по вычислительной математике. –М.:Высшая школа, 1990. –208 с.: ил. Задания для самостоятельной работы Используя метод сеток, составить и решить конечноразностные уравнения задачи Дирихле (1)-(2) с точностью до 0,01 в квадрате ABCD с вершинами A(0;0), B(0;1), C(1;1), D(1;0); шаг h=0.2 (ручной счет). С помощью блок-схемы алгоритма решения задачи (см. рис.4) составить и отладить программу на языке Турбо Паскаль. Сравнить результаты ручного счета с вычислениями на ЭВМ. В таблице 1 приведены формулы, задающие искомую функцию на сторонах квадрата ABCD. Таблица 1 номер шифра 1 2 3 4 5 6 7
T|AB
T|BC
30у 20⋅у
30(1-х²) 30 Cos(πх/2) 0 20 50⋅х⋅(1-x) 20⋅х
50у(1-у²) 20у 0 30 Sin(πу) 30(1-у)
20 x
T|CD 0 30 Cos(πу/2) 0 20у² 50у(1-у²) 20у 20у
8 9 10 11 12
50 Sin(πу) 40у² 50у² 20у²
13
30х(1-х) 20⋅Cos(πу/2 ) 30у²(1-у) 50 Sin(πх) 20у 20(1-х²)
14 15 16 17 18 19
30(1-у²) 30 Cos(πу/2) 0 20 y
40 50(1-х) 20 40(1-х)
29 30
20(1-х²)
0
10⋅х²(1-х) 0
30 y (1 − y )
50 Sin(πх) 20
50у(1-у²) 20у²
0 40⋅х⋅(1-х)
0 30у 30у 50у² 40⋅у² 0 25у 30у(1-у)
40⋅х⋅(1-х²) 20х(1-х) 40(1-х) 20 Sin(πх) 40 Sin(π/2⋅(1x)) 40⋅х²(1-х) 20⋅х⋅(1-х) 0
25у(1-у²)
30(1-х²)
0
15⋅х⋅(1-х²) 0
30у² 25у²
0 20⋅х²
30у(1-у²)
30 30 Cos(πх/2)
25 26 27 28
50 Sin(πх) 40 Sin(πх/2) 60⋅х⋅(1-х²) 10⋅х⋅(1-х) 0
30 30у
50у(1-у) 20⋅х²(1-х) 20 Sin(πу) 30⋅х 40(1-у) 30 x 50 x 30 Sin(πу) 40 40
15 y
30у² 40 0 20у 20у(1-у)
30х 30х²
20 21 22 23 24
T|AD
50 Sin(πх) 50⋅х⋅(1-х) 50⋅х⋅(1-х) 30х(1-х) 30(1-х)
40 y
30 x
30(1-х) 25 15(1-х)
30 20⋅х⋅(1-х) Cos(πу/2) 10у²(1-у) 30 Sin(πх) 25у 25(1-х²)
30 y (1 − y )
Ключевые слова: решение, метод, уравнение, узлы, условия, система, итерация, матрица, эпюры, задания.