Студентам > Курсовые > Метод конечных разностей или метод сеток
Метод конечных разностей или метод сетокСтраница: 1/4
ВВЕДЕНИЕ
Значительнаое
число задач физики и техники приводят к дифференциальным уравнениям в частных
прозводных (уравнения математической физики). Установившиеся процессы различной
физической природы описываются уравнениями эллиптического типа.
Точные
решения краевых задач для эллиптических уравнений удаётся получить лишь в
частных случаях. Поэтому эти задачи решают в основном приближённо. Одним из
наиболее универсальных и эффективных методов, получивших в настоящее время
широкое распространение для приближённого решения уравнений математической
физики, является метод конечных разностей или метод сеток.
Суть
метода состоит в следующем. Область непрерывного изменения аргументов,
заменяется дискретным множеством точек (узлов), которое называется сеткой или решёткой.
Вместо функции непрерывного аргумента рассматриваются функции дискретного
аргумента, определённые в узлах сетки и называемые сеточными функциями.
Производные, входящие в дифференциальное уравнение и граничные условия,
заменяются разностными производными, при этом краевая задача для
дифференциального уравнения заменяется системой линейных или нелинейных
алгебраических уравнений (сеточных или разностных уравнений). Такие системы
часто называют разностными схемами. И эти схемы решаются относительно неизвестной
сеточной функции.
Далее
мы будем рассматривать применение итерационного метода Зейделя для вычисления
неизвестной сеточной функции в краевой задаче с неоднородным бигармоническим
уравнением.
ПОСТАНОВКА ЗАДАЧИ
Пусть у нас есть
бигармоническое уравнение :
2
U = f
Заданное на области G={ (x,y) :
0<=x<=a, 0<=y<=b }. Пусть также заданы краевые условия на
границе области G .
U =
0 Y
x=0 b
Uxxx =
0
x=0
G
Ux = 0
x=a
Uxxx = 0 0
a X
x=a
U =
0 U = 0
y=0
y=b
Uy =
0 Uxx + Uyy = 0
y=0
y=b y=b
Надо
решить эту задачу численно.
Для решения будем
использовать итерационный метод Зейделя для решения сеточных задач.
По нашей области G
построим равномерные сетки Wx и Wy с шагами
hx и hy соответственно .
Wx={ x(i)=ihx,
i=0,1...N,
hxN=a }
Wy={ y(j)=jhy,
j=0,1...M, hyM=b }
Множество узлов Uij=(x(i),y(j)) имеющих координаты на
плоскости х(i),y(j) называется сеткой в прямоугольнике G
и обозначается :
W={ Uij=(ihx,jhy), i=0,1...N, j=0,1...M, hxN=a, hyM=b }
Сетка W очевидно состоит из точек
пересечения прямых x=x(i) и y=y(j).
Пусть задана сетка W.Множество
всех сеточных функций заданных на W образует векторное пространство с
определённом на нём сложениемфункций и умножением функции на число. На
пространстве сеточных функций можно определитьразностные или сеточные
операторы. 0ператор A преобразующий сеточную функцию
U в сеточную функцию f=AU называется разностным
или сеточным оператором. Множество узлов сетки используемое при написании
разностного оператора в узле сетки называется шаблоном этого оператора.
Простейшим разностным
оператором является оператор дифференцирования сеточной функции, который
порождает разностные производные. Пусть W - сетка с шагом h введённая на R т.е.
W={Xi=a+ih, i=0, + 1, +
2...}
Тогда разностные производные первого порядка для
сеточной функции Yi=Y(Xi) , Xi из W, определяется по
формулам :
L1Yi = Yi - Yi-1 , L2Yi=L1Yi+1
h
и называются соответственно левой и правой
производной. Используется так же центральная производная :
L3Yi=Yi+1 - Yi-1 = (L1+L2)Yi
2h 2
Разностные операторы A1, A2, A3 имеют шаблоны состоящие
2х точек и используются при апроксимации первой производной Lu=u’ . Разностные производные n-ого порядка определяются
как сеточные функции получаемые путём вычисления первой разностной производной
от функции, являющейся разностной производной n-1 порядка, например :
Yxxi=Yxi+1 - Yxi = Yi-1-2Yi+Yi+1
2
h h
Yxxi= Yxi+1-Yxi-1 = Yi-2 - 2Yi+Yi+ 2
2
2h 4h
которые используются при апроксимации второй
производной. Соответствующие разностные операторы имеют 3х точечный шаблон.
Анологично не
представляет труда определить разностные производные от сеточных функций
нескольких переменных.
Аппроксомируем нашу
задачу с помощью разностных производных. И применим к получившейся сеточной
задаче метод Зейделя.
МЕТОД ЗЕЙДЕЛЯ
Одним из способов
решения сеточных уравнений является итерационный метод Зейделя.
Пусть нам дана система
линейных уравнений :
AU = f
или в развёрнутом виде :
M
aijUj = fi
, i=1,2...M
i=1
Итерационный метод
Зейделя в предположении что диагональные элементы матрицы А=(aij) отличны от нуля (aii<>0) записывается в следующем
виде :
i
(k+1) M (k)
aijYj
+ aijYj = fi ,
i=1,2...M
j=1
j=i+1
(k)
где Yj - jая компонента
итерационного приближения номера k. В качестве начального приближения выбирается
произвольный вектор.
Определение (k+1)-ой итерации начинается
с i=1
(k+1)
M (k)
a11Y1 = - a1jYj +f1
j=2
(k+1)
Так как a11<>0 то отсюда найдём Y1. И для i=2 получим :
(k+1) (k+1) M (k)
a22Y2 = - a21Y1 - a2jYj + f2
j=3
(k+1)
(k+1) (k+1) (k+1)
Пусть уже найдены Y1 , Y2 ... Yi-1 . Тогда Yi находится из уравнения
:
(k+1)
i-1 (k+1) M (k)
aiiYi =
- aijYj
- aijYj + fi
(*)
j=1
j=i+1
Из формулы (*)
видно , что алгоритм метода Зейделя черезвычайно прост. Найденное по формуле (*)
значение Yi размещается на месте Yi.
Оценим
число арифметических действий, которое требуется для реализации одного
итерационного шага. Если все aij не равны нулю, то
вычисления по формуле (*) требуют M-1 операций
умножения и одного деления. Поэтому реализация
2
одного шага
осуществляется за 2M - M арифметических действий.
Если
отлично от нуля лишь m элементов, а именно эта ситуация имеет место для
сеточных эллиптических уравнений, то на реализацию итерационного шага
потребуется 2Mm-M действий т.е. число
действий пропорционально числу неизвестных M.
Запишем
теперь метод Зейделя в матричной форме. Для этого представим матрицу
A в виде суммы
диагональной, нижней треугольной и верхней треугольной матриц :
A = D + L + U
где
|