Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Основы математического моделирования и численные методы

..pdf
Скачиваний:
8
Добавлен:
12.11.2023
Размер:
4.65 Mб
Скачать

различен и зависит от номера узла i. В этом случае сетка запишется

следующим образом: со, = {х,|/ = 0,ЛГ, х0 =0,xN = /} с шагом

ht = х, - х,_,. Если хотя бы в одном случае Л, * hM, то сетка юх не­

равномерна.

N

 

Очевидно, что

= /.

i=i

 

Примером неравномерной сетки на отрезке с заданной законо­

мерностью изменения

шага сетки может быть сетка

величина шага сетки изменяется по косинусу, от больших значений по длине отрезка к меньшим.

Равномерная сетка на плоскости

Рассмотрим область определения функции в виде прямоуголь­ ника D = {0<x<d,0<x<Z>} (рис. 2.2), на котором задана функция

двух аргументов Т{х,у).

 

 

Для

каждой

из

сторон

(Ki)

прямоугольника построим сет­

ку: по

оси

х -

0 <x<d,

 

Шх = {х, = Щ/ = 0,7Vj

с

шагом

h t

 

 

 

 

 

h =d / N ; по

оси

у -

(ùy =

 

= { у /= Д |_ /= 0 ,м |

с

шагом

х

k - Ы М .

Совокупность

узлов

Рис. 2.2. Разностная сетка

на плоскости

с координатами xf =ih,

 

у} - jk

(х, = ih,i = 0,...N,h =d / N;yj =j k j = 0,1...,M,k =Ы M )

представляет собой сетку на прямоугольнике D и обозначается как

= {JC, =ih,i =0,...N,h =d / N;yj = jk, j = 0,1...,M ,k = b / M}.

Сетка на плоскости называется равномерной, если она равно­

мерна по каждой из переменных х

и у. Если хотя бы одна из сеток

со, или ыунеравномерна, то сетка

неравномерна. Если /^ = /^ ,

то сетка называется квадратной, \

Ф hj - прямоугольной.

Неравномерная сетка на плоскости

Приведем пример неравномерной изометрической сетки на плоскости. Область G представляет собой круг. Разобьем его окружностями с радиусами r( - ih , где h =R/N, и лучами

6* = кр,р = 2 я / М ,к = 0,1.... М - 1 (рис. 2.3). В этом случае сетка за­ пишется как

= {/; =ih,i =0,...N,h =R / N;Qk =кр,к = 0,1...,М ,р = 2 п / ( M -\)}.

Рис. 2.3. Сетка на плоскости круга

Такая сетка является неравномерной, поскольку длины дуг имеют различную величину.

Сетка на плоскости для произвольной области

Рассмотрим область G некоторой произвольной формы на ко­ ординатной плоскости х ,у , границу области - замкнутую кривую Г (рис. 2.4). Выберем по оси х н у ряд точек-узлов и построим равно­ мерную сетку:

JC, = //?,, / = О,N, hx=d/N; Уj =Л , j =0,M,h2 =Ь/М,

где h\ и Иг - шаги сетки по соответствующим осям, d a b - макси­ мальные ширина и высота области.

Рис. 2.4. Сетка на произвольной области

Пусть узлы, находящиеся внутри области G, называются внут­ ренними узлами и обозначаются соЛ. Узлы, лежащие на пересечении прямых X/ =/А,, у . =j/^ с границей Г, называются граничными уз­ лами, а их множество обозначается через ул. Очевидно, что ряд то­ чек пересечения линий сетки и кривой, ограничивающей область G, не попадает в целочисленные узлы сетки, они удалены от ближай­ ших внутренних узлов на расстояния, меньшие, чем h{ или ^ .

Возможны два варианта задания граничных условий для слож­ ной области:

-задавать граничные значения функции (граничные условия) непосредственно в точках пересечения линий сетки с границей об­ ласти, дополняя совокупность внутренних и граничных целочислен­ ных узлов дробными граничными узлами (в этом случае сетка явля­ ется неравномерной);

-изменить границу области - аппроксимировать ее ломаной кривой (см. рис. 2.4), узлы на которой будут являться граничными, значение функции с истинной границы по некоторому выбранному закону переносится в граничные узлы построенной ломаной кривой (сетка остается равномерной).

Пространственно-временная сетка

При решении нестационарных задач появляется еще один неза­ висимый аргумент - время. Реализация такого класса задач числен­ ными методами, в частности методом конечных разностей, требует введения дискретного времени, т.е. заданный промежуток времени разбивается на счетные временные отрезки и тем самым создается сетка по временной координате. Обозначение такой сетки аналогич­ но сетке на отрезке

<от = {%j = jk ,J = 0,M ,k = Р /М },

где к - шаг по времени, Р - время, в течение которого рассматрива­ ется процесс, М - число шагов по времени. Совокупность узлов т, представляет собой временные слои. Так, т5 - пятый временной слой.

Сетка, построенная как для пространственной, так и для вре­ менной координаты, называется пространственно-временной. Обо­ значается аналогично сетке на плоскости, т.е. с помощью условного произведения двух сеток. В случае одномерной нестационарной за­ дачи, когда есть только две переменные - время и координата, со­ кращенная запись пространственно-временной сетки имеет вид

Полное определение пространственно-временной сетки сле­ дующее:

ю„=юлсот={х, =//г, i = 0,N,h = d/N; х} = j k , j = 0,М,к = Р/м).

В завершение вопроса о построении сеток необходимо отме­ тить важность выбора сетки для решения задачи, в частности вели­ чины шага сетки. Чем больше шаг сетки, тем она грубее, но при этом тем меньше число неизвестных. Очевидно, существует опти­ мальная величина шага сетки, позволяющая получать наиболее при­ ближенное к точному решение с наименьшим возможным числом узлов, а следовательно, неизвестных, что важно, поскольку снижает­ ся погрешность вычислительного процесса за счет уменьшения ошибок округления.

После построения сетки для заданной области в узлах сетки оп­ ределяется искомая функция Т(х). Функция, определенная на дис­

кретном аргументе, - сеточная, т.е. в каждом узле сетки вместо функции Т(х) определяется сеточная функция Th, записанная в уз­

лах сетки. Так, на отрезке сеточная функция имеет вид Тп на плос­

кости и пространственно-временной сетке - Ту в соответствии с вы­

бранным обозначением узлов сетки (/ иj).

2.3. Аппроксимация производных, порядок аппроксимации

Таким образом, решением исходной задачи является определе­ ние числовых значений функции Th в узлах сетки на соответствую­ щей области. Численное решение в отличие от аналитического все­ гда представляет собой таблицу приближенно вычисленных значе­ ний функции. Для решения задачи, следуя п. 3 сути метода конечных разностей (см. подразд. 2 .1 ), необходимо непрерывные производные, входящие в краевую задачу, заменить (аппроксимиро­ вать) разностными соотношениями сеточных функций. Создание разностного аналога, который аппроксимирует исходную краевую

задачу, может быть произведено разными способами. Важно, чтобы построенная разностная схема позволяла получить приемлемый уровень точности приближенного решения на реальных (достаточно грубых) сетках. Ниже приведены основные подходы к построению разностных аналогов производных:

-метод формальной замены производных конечно-разностны­ ми соотношениями;

-интегроинтерполяционный метод;

-вариационный метод;

-метод неопределенных коэффициентов.

2.4.Метод формальной замены производных

Построение разностных схем с помощью метода формальной замены производных основывается на использовании разложения в ряд Тейлора достаточно гладких функций. В этом случае опреде­ ляется не только аппроксимирующее выражение для первой произ­ водной, но и порядок аппроксимации (погрешность замены истин­ ной производной разностным аналогом). Однако наиболее простым способом замены производной приближенным значением является замена на основе понятия производной. Запишем первую производ­ ную функции 7(х), определенную на отрезке [0 , 1]:

dT/dx =Иш[Г(х + К) - Т(х)] / h .

й-»0

Зафиксировав значение h (тем самым уходя от предела), полу­ чим приближенное выражение для производной 1 -го порядка:

d T /d x~ [Г(х + h) - Г(х)] / /г.

(2 .1 )

Иными словами, приближенное значение производной может быть выражено разностью значений функции Т(х) в двух соседних точках, расстояние между которыми h. Тогда возможно использо­ вать следующее выражение:

dT / dx~[T(x)-T(x -h)]f h .

(2 .2 )

Поскольку выражения (2.1) и (2.2) аппроксимируют производ­ ную примерно с одинаковой погрешностью, но разного знака, целе­ сообразным является рассмотрение среднего значения:

dT / dx * ([Г(х + h) - Т(х)] / h +[Т(х) - Т(х - h)] / h)/2 =

=[T(x +h ) - T (x - h )] /h .

(2.3)

Для перехода к разностным соотношениям построим равномер­ ную сетку на отрезке [0 , 1], выбрав в качестве шага сетки величину h,

тогда (ûx ={xk =kh-, k = 0,N\ h = HN], a выражения (2.1)—(2.3) мо­

гут быть переписаны в виде

 

T>=(TM -Tt )lh .

(2.4)

X

 

Соотношение (2.4), записанное в к-м узле, называется правой разностью;

71 = (7; - 7i_, ) / А.

(2.5)

X

 

формула (2.5) - левой разностью;

 

Г .= Й .,- Г М )/(2АХ

(2 .6 )

X

 

формула (2 .6 ) - центральнойразностью.

В ряде случаев используют более общее выражение, представ­ ляющее собой линейную комбинацию левой и правой разности с ве­ совым коэффициентом о (любое вещественное число). При с = 1 / 2 получим центральную разность

Тх = аТ++ (1- ст)Г_ •

(2.7)

X

 

Приближенную замену производной можно проиллюстриро­ вать с помощью геометрической интерпретации производной в точ­ ке х и ее разностной аппроксимации (рис. 2.5). Тангенс угла наклона касательной (прямая D), проведенной через точку С, определяет ис­

тинное значение производной; тангенсы углов наклона прямых СВ, АС и А В - правую, левую и центральную разности. Значение танген­ са угла наклона прямой АВ ближе к значению прямой D, что говорит о том, что аппроксимация производной центральной разностью яв­ ляется наиболее точной.

При замене первой производной разностными соотношения­ ми (2.4)-(2.7) возникает погрешность, называемая погрешностью аппроксимации в точке JC.

Для определения погрешности \|/(x(t) при замене производной на разностный аналог разложим функцию Т(х) в узлах xk +h и xk - h в ряд Тейлора:

Т(х„ +h) = T(xk)+hT,(xk) + ^ T t (xk) + ~ T er(xk) + o (h i ')t (2.8)

~h) = Т(хк) - h T ’{xt ) + ^ Г (хк) ~ Т ’ (хк) + 0 ( К ). (2.9)

В случае использования правой разности из уравнения (2.8) по­ лучим следующее выражение для погрешности аппроксимации в точке хк, ограничиваясь членом уравнения со второй производной:

) = Т ,- Т ' (хк) = А г (х„ ) + о (л 2 ).

Таким образом, погрешность при аппроксимации правой разно­ стью пропорциональна шагу сетки, а порядок аппроксимации равен единице.

Для левой разности из уравнения (2.9) следует

V(л*)= т _ (*, ) = — Г (xt ) + о(А2 ),

в этом случае величина погрешности та же, что и для правой раз­ ности.

Для центральной разности

v (* ,) = r. - Г ( ^ ) = ^ - Г '(х 1) + 0(А1).

х,к О

Здесь порядок аппроксимации равен двум, а величина погреш­ ности пропорциональна квадрату шага сетки. Очевидно, что цен­ тральная разность обладает большей точностью.

Отметим тот факт, что разностная производная (2.4) является правой относительно узла хк и в то же время левой относительно узла хк+1. Относительно полуцелой точки xk+V2 =хк +0,5h эта же производная является центральной. Ввиду этого разностная произ­ водная (2.4) аппроксимирует производную dTldx с 1-м порядком точности в узлах к и к + 1 и со 2 порядком в полуцелой точке it+ 1 /2 .

Введем понятие шаблона: шаблоном называется совокупность точек, участвующих в аппроксимации производных. На рис. 2.6 при­ ведены шаблоны для односторонних и центральной разностей.

• ------- ---------

• —

• —

---------•

i - 1

i

i

i+ 1

/ - 1

/ + 1

 

а

 

б

 

в

Рис. 2.6. Шаблоны для левой (а), правой (б) и центральной разностей (в)

При решении ряда задач численными методами, в том числе за­ дач математической физики, возникает необходимость в аппрокси­ мации вторых производных. При выводе разностного соотношения для второй производной d2T / dx2 в точке к будем представлять по­ следнюю как производную от первой производной, используя для

аппроксимации правое разностное соотношение:

 

 

 

т;=(г> ) ' = ( з р , = %

Д

 

(2.10)

Для аппроксимации первых производных, стоящих в числителе

выражения (2.10), используем левые разности. Получим

 

 

 

f e , - r t)/A -(rt - r t_|)/A

ты -гтк+ткА

 

*

h

h2

\ • f

В отличие от первой производной, для которой достаточно двухточечного шаблона, для второй производной используется трехточечный шаблон (хк_1,хк,хк+1) (рис. 2.7).

/-1 /+1

Рис. 2.7. Шаблон для аппроксимации второй производной

Используя разложение в ряд Тейлора (2.8) и (2.9), оценим по­ грешность замены второй производной сеточным соотношением:

ГГiff 1 T(xt )+hT{xk)+^T'(xt) + g ï - f e ) + £ T« (xk) +

к