Вычислительные технологии
Том 3, № 2, 1998
ОПТИМИЗАЦИЯ ВЫЧИСЛИТЕЛЬНЫХ ЗАТРАТ ПРИ ПОСТРОЕНИИ ДВУСТОРОННИХ РЕШЕНИЙ
Б. С. ДОБРОНЕЦ Красноярский государственный технический университет, Россия e-mail: root@dobronets.krasnoyarsk.su
In paper a problem of optimization of computing costs for achievement of given width to two-sided solution of boundary value problem of elliptic type is considered.
При решении большинства практических задач пользователя программного обеспечения интересует гарантированная точность с наименьшими затратами. Как правило, наиболее быстрые алгоритмы и обеспечивают наименьшие вычислительные затраты для достижения заданной точности. При построении двусторонних решений достигнутая точность оценивается по ширине решения. При построении двусторонних решений краевых задач для уравнений в частных производных заранее трудно оценить параметры сетки, необходимой для достижения требуемой точности. В связи с этим наиболее удобным будет последовательное построение двустороннего решения начиная с самых грубых сеток и кончая сеткой, дающей нужную точность. В работе построены двусторонние решения с использованием теоремы сравнения и теории операторов монотонного типа.
где П — ограниченная, связанная область пространства Кп, Ь — дифференциальный оператор второго порядка вида
1. Введение
2. Формулировка задачи
Рассмотрим краевую задачу
Lu = f, x £ П,
u(x) = 0, x £ дП,
(1)
© Б. С. Добронец, 1998.
Рис. 1. Пример областей и разбиений.
Предположим, что коэффициенты а, € С q, f € С(П), д € С(дП) и что
а, > с > 0, д > 0, х € П.
Предположим также, что решение (1) существует, единственно и и € С4(П). Пусть %,г : 0,1,... , т — последовательность разбиений П, состоящих из элементов Т таких, что
П С иТ, Тг П Т = 0, или общий угол или общую сторону, г =
Если % — триангуляция, то пространство конечных элементов БЩ определим введением кусочно-полиномиального базиса на %:
Б?(%) = {з(х)1з € Ш12(П), в|т € Рп,Т € %},
(3)
где Рп — пространство полиномов степени п.
3. Построение оператора аппроксимации
Здесь мы опишем вспомогательные результаты по построению конечных элементов на различных разбиениях.
Рассмотрим задачу аппроксимации функции в, € БП1 (%) конечными элементами в] € БЩ2 (%) или, другими словами, мы рассмотрим оператор аппроксимации
А : Бп(Т]) ^ БП(%)
в, = А(%, в]). (4)
Для построения оператора А(%,, в]) необходимо знать некоторое множество значений в,(х), О,,]в,(х), г,] = 0,1, 2,..., для некоторых точек х € П. Например, пространство Б|(%) определяется значениями {в, О1 в, О2в, О11в, О12в, О22в} в узлах триангуляции и Опв в серединах сторон.
/
/• •• • •• • /• •/ •
• •/• •/• • /•
///
Рис. 2. Пространство S|(T). Рис. 3. Пример вспомогательных сеток.
Пусть ж0 = (ход, ж0,2) одна из таких точек. В некоторых случаях необходимые значения производных можно вычислить, непосредственно используя функцию Sj на разбиении Tj. В большинстве случаев это затруднительно. В этой ситуации мы воспользуемся следующими результатами [2].
Рассмотрим локальные вспомогательные сетки: = {zi>j-}, zi;j = (zi)j;i, zi;j)2):
= sign(i)abs(i$)r/d + ж0>1, zi;j)2 = sign(j)abs(j$)r/d + ж0,2, i, j = 0, ±1, ±2,...,
где r, d — параметры и r > 1, $ > 0, d> 0.
Определим p как обобщенный полином p = г=0 — ж0) так, что
$>i|p(v!) — uh(v1)|2 + ^№P(V2) — f (v2)|2 - min, (5)
i=1 i=1
где — — линейно независимые функции. Пусть для определенности
-00 (ж) = 1, "01 (ж) = xi, "02 (х) = Ж2, 0з(ж) = ж1,..., (ж) = жП, np = (n + 2)(n +1)/2,
{v1 }n= 1 и {v2}n=21 — узлы вспомогательных сеток, расположенных в непосредственной близости от точки ж0. Здесь v1 £ v2 £ n1 + n2 > np + 1, n1 > 2n +1,
aj = а_1/(р^г1,ж0)га+1 + a-2),
в = ^/(Pk^r-1 + e_2),
где р(ж, y) — расстояние между точками ж, y; а_г,в_г выражаются в терминах точности численного решения uh:
a_1,a_2,e_1 » ||u — ^к^П^ в_2 « h||u — uh||L»(Qh)-Задача (5) сводится к решению системы линейных алгебраических уравнений
Ba = d,
где
в = {bij } j
а = (ао,а1,а2,..., ап ),
П 1 П2
Ь' = ^ а^Д^1 - Жо)^-(г>/ - Хо) + ^ вг-^г^2 - Хо)Ь0'(V2 - Хо)
1=1 1=1
п1 п2
й = ^ од^^/Ш^1 - Жо) + ^ А/- Жо)-1=1 г=1
Таким образом, мы можем положить в(хо) = р(хо),д'в(хо) = дгг++^р(жо).
4. Построение двустороннего решения
Ниже кратко описывается способ построения двусторонних решений. Метод основан на принципе монотонности [3].
Пусть пн — численное решение исходной задачи и в € £| — аппроксимация этого численного решения методом, описанным выше. Будем использовать дефект
<^(х, в) = Ьв - /(ж), х € П. (6)
Численно решим вспомогательную задачу
Ьп1 = 1, х € П, (7)
п1 (х) = 0, х € дП (8)
и построим в1 аналогичным образом.
Двустороннее решение будем искать в виде
и = в + [а, а]в1 + [в, в ],
где
а = тах(-^/Ьв1), а = ш1п(-^/Ьв1), п п
в = тах(-ав1 - в, 0), в = тт(-ав1 - в, 0). дп — дп
5. Уменьшение ширины двустороннего решения
Как известно, ширина двустороннего решения 'ш^и) значительно зависит от значений производных в узлах сетки. В данном разделе описываются возможные способы уточнения производных.
Пусть в € ЯП(Тт) — некоторое приближенное решение задачи (1). Используя это решение как начальное приближение, мы построим новое решение ваес, дающее двустороннее решение меньшей ширины.
Мы будем искать ваес как приближенное решение задачи
Фр(ваес) = тт Фр(и), (9)
где Фр(^)
Ф» = ||Lv - f ||Lp(П) + K||v||Lp(дП).
Заметим, что ширина двустороннего решения s, построенного с использованием некоторой функции s, ограничена следующим неравенством:
wid(s) < Cmax |Ls — f | + max |s|. (10)
П дП
Следовательно, для уменьшения ширины двустороннего решения мы должны выбрать функцию s, такую, что она минимизирует правую часть неравенства (10). Заметим, что функция s = s(V) полностью определена параметрами V в узлах сетки T. Предположим, что V* определяет лучшую функцию s в смысле ширины wid(s), тогда
Ф^ *) = min<MV), (11)
) = Cmax |Ls — f | + max |s|.
П дП
Поскольку задача (11) весьма сложная, мы будем искать ее приближенное решение. В качестве аппроксимации функционала рассмотрим семейство функционалов Фр = ||Ls — f Hp,wh + ||s||p,dwh, где p > 0 — целый параметр,
|М|РЛ = ( £ |^|Р)1/Р' (12)
x£Пh
Up, dup — вспомогательные сетки. Если вектор V отличается от оптимального V*, мы можем исправить его, найдя V1 , выбирая соответствующий параметр p и вспомогательные сетки Up, такие, что
ФР(И) < Фр^) < Ф^(П
Таким образом, используя sdec = s(V1), мы можем построить двустороннее решение меньшей ширины.
Рассмотрим для решения задачи специальный метод покоординатного спуска. Зафиксируем значения параметров Vj во всех узлах сетки Tmi исключая узел сетки с номером i. Тогда функция s будет зависеть только от набора параметров Vi, и мы обозначим s как s(x, V, i).
Уточним V
Фр^н^пФр (v ).
Продолжив циклически уточнять V по всем узлам сетки, получим последовательность функций sl, i = 1, 2,... . Процесс уточнения начинаем с узлов вблизи границы области дП и движемся по направлению к центру. Такой выбор последовательности узлов обусловлен тем фактом, что вблизи границы дП значение параметров V определяются точнее (известны точные значения функции на границе).
6. Многосеточный алгоритм
Пусть задана точность или допустимая ширина двустороннего решения е > 0. Потребуем, чтобы ширина двустороннего решения не превышала е:
wid(s) < ex £ П.
(13)
Рис. 4. Примеры вспомогательных сеток.
Построим функцию зм € ), такую, что 'ш^б) удовлетворяет соотношению (13).
При решении практических задач мы стремимся строить решение за минимальное число операций. Многосеточные методы — одни из таких алгоритмов.
Пусть р0 = 2 < р1 < ... < рт < то — последовательность целых чисел и пусть численное решение задачи (1) з0 € ¿^(ТО) построено с использованием метода конечных элементов на сетке 70 и известно, что размерность пространства ¿П(Т0) невелика.
Замечание 1. Если нам известно численное решение М", полученное разностным методом или методом конечных элементов, с применением кусочно-линейных элементов, начальное приближение з0 € ¿П на сетке 70 мы можем построить, используя аппроксимации конечными элементами высоких порядков и алгоритм уменьшения ширины двустороннего решения.
Пусть С0 = ФР0 ("0) и С = ФР4 ("¿). Рассмотрим переход с сетки 7^-1 на сетку 7т. Предположим, что мы имеем решение зт-1 € ¿П(7т-1). Построим решение на 7т с
7 \ га—1
~ ( Т ) Ст—1 •
\Дт-1 /
Ш!аг 1 (аппроксимация). Используя оператор аппроксимации из раздела 3, построим
зт,0
зт,0 А(Тт, зт-1).
Ш!аг 2 (уточнение). Используя метод уточнения решений, рассмотренный в разделе 6.6, мы можем уточнить зт,0 и построим зт>1.
ШШаг 3 (уменьшение). В заключение построим решение на сетке 7т, используя оператор уменьшения ширины двустороннего решения с р = рт:
Вычислим ширину двустороннего решения, если ширина построенного двустороннего решения удовлетворяет неравенству (13), следовательно, требуемое решение построено, в противном случае переходим на следующую сетку 7т+1.
Замечание 2. Один из возможных путей уменьшения ширины двустороннего решения — сгущение сетки в окрестности точек с большими значениями невязок.
Пусть и £ Сга+1(П), тогда ширина окончательного двустороннего решения б удовлетворяет соотношению
1М(в)||^(П) < КГ-1, (14)
где Н — шаг сетки Тм , К — константа, не зависящая от Н.
7. Численный пример
Рассмотрим модельную задачу
Ди = / £ П, (15)
и = 0 £ дП, (16)
где
/ = -2п2 яп(пж1) яп(пж2), П = [0,1] х [0,1]. Точное решение этой задачи:
и = б1п(пх1) в1п(пж2).
Пусть нам необходимо построить двустороннее решение с шириной, не превышающей £ = 0.01. Функция в искалась в виде эрмитовых сплайнов третьей степени, сетки выбирались равномерные с шагами Н = 2-г, параметры р = 2\
Первая сетка имела всего одну внутреннюю точку. Сплайн воС^о) был построен как приближенное решение задачи
Ф2(^о) = П11П Ф2(V).
Вспомогательные сетки в (12) выбирались равномерными с шагами Н = Н^/4. Значение ширины wid(si) построенных двусторонних решений приведены в таблице.
Номер сетки 1 2 3 4
wid(si) 0.0629 0.0475 0.0136 0.0035
Для достижения требуемой точности нам потребовалось построить четыре сетки. Как видно из таблицы, асимптотическая сходимость ширины двустороннего решения соответствует теоретической оценке.
Заключительное замечание. Рассмотренный метод для построения двустороннего решения может быть с успехом применен для широкого класса уравнений в частных производных.
Как показано в монографии [1], оценка (14) может быть справедлива для в, построенных непосредственно как аппроксимации численных решений ин на равномерных сетках, т. е. число сеток в многосеточном методе может быть равно единицам. Следовательно, при решении реальных задач (при условии, что начальные данные достаточно хорошие) достижение необходимой точности не потребует большого числа сеток.
Список литературы
[1] Добронец б. с., шайдуров в. в. Двусторонние численные методы. Наука, Новосибирск, 1990.
[2] DüBRüNETs b. s. Numerical Methods using Defects. Reliable Computing, 1, No. 4, 1995, 383-391.
[3] collatz l. Funktionalanalysis und Numerische Mathematik. Berlin et al., SpringerVerlag, 1964.
Поступила в редакцию 3 ноября 1997 г.