РефератыМатематикаМеМетод конечных разностей или метод сеток

Метод конечных разностей или метод сеток

ВВЕДЕНИЕ


Значительнаое число задач физики и техники приводят к дифференциальным уравнениям в частных прозводных (уравнения математической физики). Установившиеся процессы различной физической природы описываются уравнениями эллиптического типа.


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


Суть метода состоит в следующем. Область непрерывного изменения аргументов, заменяется дискретным множеством точек (узлов), которое называется сеткой или решёткой. Вместо функции непрерывного аргумента рассматриваются функции дискретного аргумента, определённые в узлах сетки и называемые сеточными функциями. Производные, входящие в дифференциальное уравнение и граничные условия, заменяются разностными производными, при этом краевая задача для дифференциального уравнения заменяется системой линейных или нелинейных алгебраических уравнений (сеточных или разностных уравнений). Такие системы часто называют разностными схемами. И эти схемы решаются относительно неизвестной сеточной функции.


Далее мы будем рассматривать применение итерационного метода Зейделя для вычисления неизвестной сеточной функции в краевой задаче с неоднородным бигармоническим уравнением.


ПОСТАНОВКА ЗАДАЧИ


Пусть у нас есть бигармоническое уравнение :


2


U

=

f


Заданное на области G={
(x,y)
: 0<=x<=a,
0<=y<=b
}.
Пусть также заданы краевые условия на границе области G
.


U
= 0 Y


x=0 b


U
xxx = 0


x=0


G


U
x = 0


x=a


U
xxx = 0 0 a X


x=a


U
= 0 U
= 0


y=0 y=b


U
y = 0 U
xx + U
yy = 0


y=0 y=b y=b


Надо решить эту задачу численно.


Для решения будем использовать итерационный метод Зейделя для решения сеточных задач.


По нашей области G
построим равномерные сетки W
x
и W
y
с шагами h
x
и h
y
соответственно .


W
x
={
x(i)=i
h
x
,
i=0,1...N,
h
x
N=a
}


W
y
={
y(j)=j
h
y
,
j=0,1...M,
h
y
M=b
}


Множество узлов U

ij
=(x(i),y(j))
имеющих координаты на плоскости х(i)
,y(j)
называется сеткой в прямоугольнике G
и обозначается :







W={
U

ij
=(ih
x
,j
h
y
),
i=0,1...N,
j=0,1...M,
h
x
N=a,
h
y
M=b
}





Сетка W
очевидно состоит из точек пересечения прямых x=x(i)
и y=y(j)
.


Пусть задана сетка W
.Множество всех сеточных функций заданных на W
образует векторное пространство с определённом на нём сложениемфункций и умножением функции на число. На пространстве сеточных функций можно определитьразностные или сеточные операторы. 0ператор A
преобразующий сеточную функцию U

в сеточную функцию f=AU

называется разностным или сеточным оператором. Множество узлов сетки используемое при написании разностного оператора в узле сетки называется шаблоном этого оператора.


Простейшим разностным оператором является оператор дифференцирования сеточной функции, который порождает разностные производные. Пусть W
- сетка с шагом h
введённая на R

т.е.


W={X
i
=a+ih, i=0, +
1, +
2...}


Тогда разностные производные первого порядка для сеточной функции Y
i
=Y(X
i
)
, X
i
из W
, определяется по формулам :


L
1
Y
i
= Y

i

- Y

i-1

,
L
2
Y
i
=
L
1
Y
i+1


h


и называются соответственно левой и правой производной. Используется так же центральная производная :


L
3
Y
i
=Y

i+1

- Y

i-1

= (

L

1

+

L

2

)Y

i


2h 2


Разностные операторы A
1
, A
2
, A
3
имеют шаблоны состоящие 2х точек и используются при апроксимации первой производной Lu=u’
. Разностные производные n
-ого порядка определяются как сеточные функции получаемые путём вычисления первой разностной производной от функции, являющейся разностной производной n-1
порядка, например :


Y
xxi
=Y

xi+1

- Y

xi

= Y

i-1

-2Y

i

+Y

i+1


2


h h


Y
xxi
= Y

xi+1

-Y

xi-1

= Y

i-2

- 2Y

i

+Y

i+ 2


2


2h 4h


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


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


Аппроксомируем нашу задачу с помощью разностных производных. И применим к получившейся сеточной задаче метод Зейделя.


МЕТОД ЗЕЙДЕЛЯ


Одним из способов решения сеточных уравнений является итерационный метод Зейделя.


Пусть нам дана система линейных уравнений :


AU
= f


или в развёрнутом виде :


M


a
ij
U

j
= f

i
, i=1,2...M


i=1


Итерационный метод Зейделя в предположении что диагональные элементы матрицы А=(
a
ij
)
отличны от нуля (
a
ii
<>0
)
записывается в следующем виде :


i (k+1)
M
(k)


a
ij
Y
j
+ a
ij
Y
j
= f

i
, i=1,2...M


j=1 j=i+1


(k)


где Y
j
- j
ая компонента итерационного приближения номера k
. В качестве начального приближения выбирается произвольный вектор.


Определение (
k
+1)
-ой итерации начинается с i=1


(k+1) M (k)


a
11
Y
1
= - a
1j
Y
j
+f

1


j=2


(k+1)


Так как a
11
<>0
то отсюда найдём Y
1
. И для i=2
получим :


(
k+1
)
(k+1)
M (k)


a
22
Y
2
= - a
21
Y
1
- a
2j
Y
j
+ f

2


j=3


(k+1) (k+1) (k+1)
(
k+1
)


Пусть уже найдены Y
1
, Y
2
... Y
i-1
. Тогда Y
i
находится из уравнения :


(k+1) i-1 (k+1) M (k)


a
ii
Y
i
= - a
ij
Y
j
- a
ij
Y
j
+ f

i
(*)


j=1 j=i+1


Из формулы (*)
видно , что алгоритм метода Зейделя черезвычайно прост. Найденное по формуле (*)
значение Y
i
размещается на месте Y
i
.


Оценим число арифметических действий, которое требуется для реализации одного итерационного шага. Если все a
ij
не равны нулю, то вычисления по формуле (*)
требуютM-1
операций умножения и одного деления. Поэтому реализация


2


одного шага осуществляется за 2M - M
арифметических действий.


Если отлично от нуля лишь m элементов, а именно эта ситуация имеет место для сеточных эллиптических уравнений, то на реализацию итерационного шага потребуется 2
Mm-M
действий т.е. число действий пропорционально числу неизвестных M
.


Запишем теперь метод Зейделя в матричной форме. Для этого представим матрицу A
в виде суммы диагональной, нижней треугольной и верхней треугольной матриц :


A = D + L + U


где








0 0 . . . 0 0
a
12
a
13
. . .
a
1M


a
21
0 0 0
a
23
. . .
a
2M


a
31
a
32
0 0 .


L = . U= .


. .


.
a
M-1M


a
M1
a
M2
. . .
a
MM-1
0 0 0


И матрица D
- диагональная.


(k) (k) (k)


Обозначим через Y
k
= ( Y
1
,Y
2
... Y
M
)
вектор k
-ого итерационного шага. Пользуясь этими обозначениями запишем метод Зейделя иначе :


(
D + L
)
Y
k+1
+ UY
k
= f
, k=0,1...


Приведём эту итерационную схему к каноническому виду двухслойных схем :


(
D + L
)
(Y
k+1
- Y
k
) +AY
k
= f , k=0,1...


Мы рассмотрели так называемый точечный или скалярный метод Зейделя, анологично строится блочный или векторный метод Зейделя для случая когда a
ii
- есть квадратные матрицы, вообще говоря, различной размерности, а a
ij
для i<>j
- прямоугольные матрицы. В этом случае Y
i
и f

i
есть векторы, размерность которых соответствует размерности матрицы a
ii
.


ПОСТРОЕНИЕ РАЗНОСТНЫХ СХЕМ


Пусть Y
i
=Y(i)
сеточная функция дискретного аргумента i
. Значения сеточной функции Y(i)
в свою очередь образуют дискретное множество. На этом множестве можно определять сеточную функцию, приравнивая которую к нулю получаем уравнение относительно сеточной функции Y(i)
- сеточное уравнение. Специальным случаем сеточного уравнения является разностное уравнение.


Сеточное уравнение получается при аппроксимации на сетке интегральных и дифференциальных уравнений.


Так дифференциальное уравнение первого порядка :


dU
= f
(x) , x > 0


dx


можно заменить разностным уравнением первого порядка :


Y

i+1

- Y

i

= f
(x

i
) , x
i
= ih, i=0,1...


h


илиY
i+1
=Y
i
+hf
(x)

, где h
- шаг сетки v
={x
i
=ih, i=0,1,2...}
. Искомой функцией является сеточная функция Yi=Y(i)
.


При разностной аппроксимации уравнения второго поряда


2


d U

= f
(x)


2


dx


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


2


Y
i+1
- 2Y
i
+ Y
i+1
=
y
i
,
где
y
i
=h
f

i


f
i
= f(x
i
)


x
i
= ih


Для разностной aппроксимациипроизводных U’,
U’’,
U’’’
можно пользоваться шаблонами с большим числом узлов. Это приводит к разностным уравнениям более высокого порядка.


Анологично определяется разностное уравнение относительно сеточной функции U
ij
= U(i,j)
двух дискретных аргументов. Например пятиточечная разностная схема “крест” для уравнения Пуассона


U
xx
+ U
yy
= f
(x,y)


на сетке W
выглядит следующим образом :


U

i-1j

-

2U

ij

+U

i+1j

+
U

ij-1

-

2U

ij

+U

ij+1

=
f

ij


2 2


h
x
h
y


где h
x
- шаг сетки по X


h
y
- шаг сетки поY


Сеточное уравнение общего вида можно записать так:


N


C
ij
U
j
= f

i
i=0,1...N


j=0


Оно содержит все значения U
0
, U
1
... U
N
сеточной функции. Его можно трактовать как рзностное уравнение порядка N
равного числу узлов сетки минус единица.


В общем случае под i
- можно понимать не только индекс , но и мультииндекс т.е. вектор i = (i
1
... i
p
)
с целочисленными компонентами и тогда :


С
ij
U
j
=f

i
i
Î
W


j
Î
W


где сумирование происходит по всем узлам сетки W
. Если коэффициенты С
ij
не зависят от i, тоуравнение называют уравнением с постоянными коэффициентами.


Аппроксимируем нашу задачу т.е. заменим уравнение и краевые условия на соответствующие им сеточные уравнения.


U=U(x,y)




y



M b


M-1


Uij j


j


1


0 1 2 i N-1 N=a x


i



Построим на области G
сетку W
. И зададим на W
сеточную функцию U
ij
=U(x
i
,y
j
)
,

p>

где


x
i
=x
0
+ih
x


y
i
=y
0
+jh
y


h
x
= a/N ,


h
y
= b/M
и т.к.


x
0
=y
0


то


x
i
=ih
x
, y
i
=jh
y
, i=0...N


j=0...M


Найдём разностные производные входящие в уравнение


2


D
U = f


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


Ux
ij
= U

i+1j

- U

ij

, Ux
i-1j
= U

ij

- U

i-1j


h
x
h
x


Uxx
ij
= U

i-1j

- 2U

ij

+ U

i+1j


h
x


Рассмотрим Uxxxx
ij
как разность третьих производных :


Uxx

i-1j

- Uxx

ij

- Uxx

ij

- Uxx

i+1j


Uxxxx
ij
= h

x

h

x

= U

i-2j

- 4U

i-1j

+ 6U

ij

- 4U

i+1j

+ U

i+2j


4


h
x
h
x


Анологично вычислим производную по y
:


Uyyyy
ij
= U

ij-2

- 4U

ij-1

+ 6U

ij

- 4U

ij+1

+U

ij+2


4


h
y


Вычислим смешанную разностную производнуюUxxyy
:


Uxx

ij-1

- Uxx

ij

- Uxx

ij

- Uxx

ij+1


(Uxx)yy
ij
= h

y

h

y

= Uxx

ij-1

- 2Uxx

ij

+Uxx

ij+1

=


2


hy hy


= U

i-1j-1

- 2U

ij-1

+ U

i+1j-1

-
2
U

i-1j

- 2U

ij

+ U

i+1j

+ U

i-1j-1

- 2U

ij+1

+ U

i+1j+1


2 2 2 2 2 2


h
x
h
y
h
x
h
y
h
x
h
y


В силу того чтоD
U =
f


имеем:


U

i-2j

- 4U

i-1j

+ 6U

ij

- 4U

i+1j

+U

i+2j

+


4


h
x


+
2
U

i-1j-1

- 2U

ij-1

+ U

i+1j-1

-
4
U

i-1j

- 2U

ij

+U

i+1j

+
2
U

i-1j+1

-2U

ij+1

+ U

i+1j+1

+


2 2 2 2 2 2


h
x
h
y
h
x
h
y
h
x
h
y


+ U

ij-2

- 4U

ij-1

+ 6U

ij

- 4U

ij+1

+ U

ij+2

=
f

ij
(*)


4


h
y


Это уравнение имеет место для


i=1,
2, ...
N-1


j=1,2, ... M-1


Рассмотрим краевые условия задачи. Очевидно следующее :


x=
0
~
i
=
0


x=a ~ x
N
=a


y=0 ~ Yo=0


y=b ~ Y
M
=b





1)
х=0
(левая граница областиG
)



Заменим условия


U = 0


x=o


Uxxx = 0


x=o


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


U
o
j
=0


U
-1j
=U
2j
- 3U
1j
(1`)


2)
х=а
(правая граница областиG
)


i=N


Ux = 0


x=a


Uxxx = 0


x=a
из того что U

i+1j

- U

i-1j

= 0


2h
x


U
N+1j
= U
N-1j


U
Nj
= 4 U

N-1j

- U

N-2j

(2`)


3


3)
у=0
(нижняя граница области G
)


j=0


U
i ,-1
= U
i1


U
i0
= 0 (3`)


это есть разностный аналогUy = 0


y=o


U =0


y=o


4)
у=b


i=M


U = 0


y=b
т.е.U
iM
=0
(**)


Распишем через разностные производныеUxx + Uyy =0
и учитывая чтоj=M
и (**)
получим


U
iM-1
= U
iM+1


Итак краевые условия на у=b
имеют вид


U
iM+1
= U
iM-1


U
iM
= 0 (4`)


Итого наша задача в разностных производных состоит из уравнения (*)
заданного на сетке W
и краевых условий (1
`
)-(4
`
)
заданных на границе области G
(или на границе сетки W
)


ПРИМЕНЕНИЕ МЕТОДА ЗЕЙДЕЛЯ


Рассмотрим применение метода Зейделя для нахождения приближенного решения нашей разностной задачи (*)
,(1`) - (4`).


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


U
ij
= U(
x
i
,y
j
)


где x
i
= ih
x


y
j
= jh
y


при чём h
x
= a/N ,


h
y
= b/M


это есть шаг сетки по x
и по у
соответственно , а N
и М
соответственно количество точек разбиения отрезков [
0
,
а]
и [0
,
b]


Пользуясь результатами предыдущего раздела запишем уравнение


2


D
U = f


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





1

U
i-2j
- 4
+ 4
U

i-1j
+ 6
- 8
+ 6
U

ij
- 4
+ 4
U

i+1j
+ 1
U

i+2j
+ 2
U

i-1j-1
-


4
4 2 2
4 2 2 4 4 2 2 4 2 2


h
x
h
x
h
x
h
y
h
x
h
x
h
y
h
y
h
x
h
x
h
y
h
x
h
x
h
y







- 4
+ 4
U

ij-1
+ 2
U

i+1j-1
+ 2
U

i-1j+1
- 4
+ 4
U

ij+1
+ 2
U

i+1j+1
+ 1
U

ij-2
+


2 2 4 2 2 2 2 2 2 4 2 2 4


h
x
h
y
h
y
h
x
h
y
h
x
h
y
h
x
h
y
h
y
h
x
h
y
h
y


+ 1
U

ij+2
=
f

ij
для i=1 ... N-1, j=1 ... M-1


4


h
y


и U
удовлетворяет краевым условиям (1
`
)
- (4`),
так как в каждом уравнении связаны вместе не более 13 неизвестных то в матрице А
отличны от нуля не более 13-элементов в строке. В соответствии со вторым разделом перепишем уравнение:


(k+1) (k+1) (k+1) (k+1)


6
- 8
+ 6
U

ij
= - 1
U

ij-2
- 2
U

i-1j-1
+ 4
+ 4
U

ij-1
-


4 2 2 4 4 2 2 2 2 4


h
x
h
x
h
y
h
y
h
y
h
x
h
y
h
x
h
y
h
y


(k+1) (k+1) (k+1) (k)


- 2
U

i+1j-1
- 1
U

i-1j
+
4
+ 4
U

i-1j
+ 4
+ 4
U

i+1j
-


2 2
4
4 2 2
4 2 2


h
x
h
y
h
x
h
x
h
x
h
y
h
x
h
x
h
y





(k) (k) (k) (k) (k)


- 1
U

i+2j
- 2
U

i-1j+1
+ 4
+ 4
U

ij+1
- 2
U

i+1j+1
- 1
U

ij+2
+
f

ij


4 2 2 2 2 4 2 2 4


h
x
h
x
h
y
h
x
h
y
h
y
h
x
h
y
h
y


(k)


При чем U
удовлетворяет краевым условиям (
1`
)
- (4`)
. Вычисления начинаются с i=1, j=1
и продолжаются либо по строкам либо по столбцам сетки W
. Число неизвестных в задаче n = (N-1)(M-1)
.


Как видно из вышеизложенных рассуждений шаблон в этой задаче тринадцатиточечный т.е. на каждом шаге в разностном уравнении участвуют 13 точек (узлов сетки) Рассмотрим вид матрицы А
-для данной задачи.







j+2



j+1



j



j-1

Матрица метода получается следующим образом : все узлы сетки перенумеровываются и размещаются в матрице Так что все узлы попадают на одну строку и поэтому матрица метода для нашей задачи будет тринадцатидиагональной .




j-2



i-1



i



i+1



i+2



i-2



Шаблон задачи

ОПИСАНИЕ ПРОГРАММЫ.


Константы используемые в программе :


aq = 1
- правая граница области G


b = 1
- левая граница области G


N = 8
- колличество точек разбиения отрезка[0,a]


M = 8
- колличество точек разбиения отрезка [0,b]


h1 = aq/N
- шаг сетки по X


h2 = b/M
- шаг сетки по Y


Переменные :


u0
- значения сеточной функции U
на k
-ом шаге


u1
- значения сеточной функции U
на (k+1)
-ом шаге


a
- массив коэффициентов шаблона


Описание процедур :


procedure Prt(u:masa)
- печать результата


function ff(x1,x2: real):real
- возвращает значение функцииf
в узле (
x1,x2
)


procedure Koef
- задаёт значения коэффициентов


Действие :


Берётся начальое приближение u0
и с учётом краевых условий ведётся вычисление с i=2 ... N , j=2 ... M
. На каждом итерационном шаге получаем u1
по u0
. По достижении заданной точности eps>0
вычисления прекращаются. И все элементы матрицы A, которые лежат ниже главной диагонали получают итерационный шаг (
k+1
)
, а те элементы которые лежат выше главной диагонали (исключая главную диагональ) получают итерационный шаг k
.


Примечание : программа реализована на языке Borland Pascal 7.0


Министерство общего и профессионального образования РФ


Воронежский государственный университет


факультет ПММ


кафедра Дифференциальных уравнении


Курсовой проект


“Решение бигармонического уравнения методом Зейделя”


Исполнитель : студент 4 курса 5 группы


Никулин Л.А.


Руководитель : старший преподаватель


Рыжков А.В.


Воронеж 1997г.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Метод конечных разностей или метод сеток

Слов:3923
Символов:39492
Размер:77.13 Кб.