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

Основы метода конечных элементов

..pdf
Скачиваний:
25
Добавлен:
15.11.2022
Размер:
12.47 Mб
Скачать

Оценки (VI1.14) — (VII. 16) свидетельствуют о том, что погрешности машинной реализации особенно опасны для систем линейных алгебраи­ ческих уравнений с большим числом обусловленности матрицы.

Рассмотрение этих оценок позволяет говорить о хорошей или плохой обусловленности задачи в связи с численной устойчивостью машинного решения к суммарным ошибкам округления. Но здесь понятие хоро­ шей или плохой «машинной» обусловленности системы тесно связано с возможностями конкретной машины.

В результате одна и та же система может классифицироваться для одной машины или одной длины мантиссы машинного слова как плохо «машинно обусловленная», а для другой — как хорошо «машинно обус­ ловленная». Увеличивая длину машинного слова, всегда можно полу­ чить машинное решение, достаточно близкое к математическому реше­ нию задачи.

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

 

 

/ + 1) = / >

+

тг№,

r(k) =

b — Axik),

т =

^ д - .

(VII. 17)

Здесь

S ^ А.* ^

Д,

где

Кс,

i 1,

2,

п собственные

числа мат­

рицы. С

учетом ошибок округления справедлива оценка

 

 

 

и -

х1к)К

' - г ^

г ^ I - ^ <0)— ЬI) +

1 = ^ ' тсо,

 

где х{к) — машинное решение, полученное на &-й итерации,

q = \Е

|,

Е — единичная матрица,

х<0>=

х0 — начальное

приближе­

ние,

(о =

max

|г( |, et — ошибки округления

l-то

шага

итерацион­

 

 

н о й

 

 

 

_

 

 

 

 

 

ного процесса. Отметим, что х{к) точно удовлетворяет итерационной схеме (VI 1.17) с возмущенной правой частью, причем это возмущение имеет вид

dbk = i ((Е — тЛ)РГ ' р*, р—о

где р* есть суммарная ошибка округления k-vo шага.

При использовании итерационного процесса всегда предполагает­ ся, что процесс останавливается на каком-то k-u приближении. Окон­ чание итерационного процесса (VI 1.17) при выполнении условия

шах

(ft+D

„(*)

^mlne

I*1i

xi

i

\х\»\

 

1 + в •

(где е — некоторое

заданное положительное

число) гарантирует

справедливость неравенства

 

 

max

1 * - * р + ,)1

Х{

0.

i

i*/i

 

 

Здесь xt — компоненты точного решения заданной системы. Другие условия окончания различных итерационных процессов приведены в работе [72]. Отметим, что для рассматриваемого в (VII. 17) итерацион­ ного процесса справедливо соотношение

cond А яа

____ 2______

ц^(*+1) _ XWд

 

 

In ||*(А>_ *<*—D||

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

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

шение х к физическому решению х. Во-вторых, для некорректно по­ ставленных задач изменение длины машинного слова не может помочь в построении решения обычными методами, даже если исходные данные системы будут точными, а система совместной. В подобных задачах не существует «классического» единственного решения. При рассмотре­ нии таких задач необходимо доопределить понятие искомого решения

ииспользовать специальные алгоритмы его построения.

4.Характеристика некоторых методов и программ решения систем линейных алгебраических уравнений. Для решения систем линейных алгебраических уравнений в настоящее время разработаны машинные методы (см., например, [14, 23, 79, 96, 106]) и программы, удовлетво­ ряющие самым высоким требованиям. Так, для решения достаточно ши­ рокого класса систем линейных алгебраических уравнений имеется

возможность использования программ из пакетов UNPACK [133] и АРАС [75].

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

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

мять ЭВМ ЕС. Это позволяет, например, на ЕС 1060 (аналог IBM 370/ 168) с дисками объемом 100 Мбайт решить систему с плотной матрицей 1200-го порядка за 120 мин 17,23 с (CPU) на оперативной памяти (ОП) объемом 1294 кбайт, а систему с ленточной положительно определен­ ной матрицей 28 000-го порядка при половине ширины ленты 200 — за 128 мин 48 с (CPU), ОП — 750 кбайт.

Применение МКЭ для решения современных прикладных задач в ряде случаев приводит к возникновению очень больших систем линей­ ных алгебраических уравнений с разреженными матрицами (поря­ док — до нескольких десятков тысяч). Для эффективного решения та­ ких больших задач в настоящее время широко применяются два под­ хода, конкретный выбор которых зависит от типа используемого ме­ тода решения — прямой или итерационный.

Решение больших разреженных систем прямыми методами с прием­ лемыми затратами вычислительных ресурсов предполагает максималь­ ный учет разреженности исходной матрицы системы и минимизацию ее заполнения в процессе решения, т. е. ограничение появления новых ненулевых элементов там, где прежде были нули. Оказалось, что для большинства разреженных систем возможна такая перенумера­ ция переменных и перестановка уравнений (т. е. такое упорядочение строк и столбцов исходной матрицы), которая приводит к существен­ ному сокращению заполнения, а следовательно, к экономии памяти и машинного времени решения. Особенно эффективно проблема подхо. Дящего упорядочения решается для разреженных систем с симметрии * ными положительно определенными матрицами, так как в данном сл у­ чае обеспечена численная устойчивость процесса вычисления решения.

Проиллюстрировать эффективность и роль процедуры переупорядо­ чения можно на следующем простейшем примере. Симметричная и по­ ложительно определенная матрица системы имеет структуру вида

~ Х

X X X

X X "

X

X

 

X

X

0

X

 

X

X

0

X

_ Х

 

X _

где X — ненулевые элементы; порядок матрицы — 3000, количества ненулевых элементов в нижнем треугольнике, включая главную диа­ гональ,— 5999.

Если для решения системы с такой матрицей применить стандарт­ ную программу метода квадратных корней (профильный алгоритм), то в процессе факторизации нижняя треугольная матрица превра­ тится в плотную, и для хранения ее элементов потребуется 4 501 500 машинных слов. В результате предпринятого упорядочения (предназ­ наченного для уменьшения профиля) исходная матрица была преобра­

зована к виду

 

 

 

 

 

 

X

0

X

 

 

 

 

 

 

 

X

 

 

 

 

 

X

0

 

 

X

 

 

 

 

X

0

 

 

 

X

 

0

 

X

0

 

 

 

 

X

 

 

X

0

 

0

 

 

 

X

 

X

0

 

 

 

 

 

 

X

X

0

X

X

X

X

X

X

X

X

X

0

0

0

0

0

0

0

X

X

Теперь при ее факторизации тем же профильным алгоритмом метода квадратных корней для хранения необходимой информации о нижней треугольной матрице понадобилось только 5999 слов, т. е. в данном случае не появилось ни одного добавочного ненулевого элемента. Для упорядочения и вычисления решения заданной системы при двой­ ном машинном слове на ЕС 1060 потребовалось 4,97 с (CPU) и опера­ тивная память 204 кбайт. Несомненно, что столь «совершенное» упоря­ дочение на практике случается исключительно редко; тем не менее для многих больших разреженных систем можно найти достаточно удачное упорядочение, чтобы при использовании соответствующего вычисли­ тельного алгоритма сделать процесс решения эффективным.

Как известно, структура разреженности матрицы конечно-элемент­ ной системы линейных алгебраических уравнений существенно зави­ сит от нумерации узлов сетки. Поэтому проблема упорядочения матри­ цы является проблемой соответствующей (подходящей для данного алгоритма решения) нумерации узлов. Важно отметить, что найти эф­ фективное упорядочение («удачную» нумерацию узлов) можно до ре­ ального вычисления элементов матрицы и ее реальной факторизации, работая только с соответствующим (конечно-элементным) графом мат­ рицы, что значительно упрощает весь процесс решения задачи. Под­ робное описание подхода к решению больших разреженных систем пря­ мыми методами можно найти, например, в работах [23, 114]. В настоя­ щее время имеется также ряд пакетов программ, реализующих этот подход (см., например, описание пакета SPARSPAK в [23], а также других пакетов в [37, 38]).

Второй подход к эффективному решению больших разреженных систем связан с использованием итерационных методов и сводится к предварительной подготовке заданной системы для применения итера­ ционного процесса. Процедура подготовки известна под названием преобусловливание, и ее подробное описание можно найти в работах [26, 121, 136, 139, 146, 152]. Преобусловливание состоит в переходе от исходной системы к эквивалентной, но с таким изменением спектра матрицы, что для преобразованной системы становится эффективным применение итерационного метода, скорость сходимости которого за­ висит от числа обусловленности матрицы системы. Явное или неяв-

цое преобразование исходной системы линейных алгебраических урав­ нений в эквивалентную ей, но с другим спектром матрицы в разных работах называют по-разному: масштабированием, нормализацией, гфеобусловливанием, регуляризацией и т. д. Связь между преобусловдиванием и построением быстросходящихся итерационных процессов решения систем разностных уравнений, по-видимому, впервые была установлена в работе [26].

Описание результатов решения одной большой разреженной систе­ мы с использованием процедуры преобусловливания приведено в параграфе VI.4 данной монографии.

В настоящее время для решения систем линейных алгебраических уравнений, возникающих при использовании МКЭ и метода конечных разностей, разработаны и широко применяются многосеточные итера­ ционные процессы [ПО, 111, 140, 141]. Характерной особенностью цх является одновременное использование нескольких сеток для по­ строения каждого последующего приближения к искомому решению. Самой мелкой сетке соответствует основная дискретная задача, решение которой и является искомым. Для того чтобы избежать непосредствен­ ного решения этой большой системы, предлагается в итерационном про­ цессе использовать еще несколько аналогичных вспомогательных диск­ ретных задач, соответствующих более грубым сеткам. Многосеточные Итерационные процессы отличаются высокой скоростью сходимости и достаточно экономичны: количество вычислений на одну итерацию,

как правило,

пропорционально числу

узлов сетки; искомое решение

с точностью

е может

быть получено

за О (| log е |п) операций, где

П— порядок

основной

системы.

 

5.Оценки достоверности решений, полученных прямыми методами.

Впунктах 2, 3 рассматривались теоретические аспекты близости мате­ матического к физическому и машинного к математическому решениям задачи. Рассмотрим теперь некоторые практические приемы, позволяю­ щие оценить достоверность полученного на ЭВМ решения х(1). Для упрощения будем считать, что погрешность перевода исходных данных из десятичной системы в двоичную равна нулю («машинная» система сов­ падает с системой (VII.2)). Рассмотрение невязки г = ЪАх(1) для оценки точности вычисленного решения иногда оказывается бесполез­ ным, так как далекие от точного решения векторы могут давать очень малые невязки. Это бывает в системах, у которых норма обратной матрицы велика. Действительно, если точное решение системы (V II.2) представим в виде х = х(1) + б, то для вычисления поправки б полу­ чим систему

АЬ = Ь - А х П)= г('К

Отсюда следует, что б = Л-|г(1> и 1 б |^ | А~хЦ J г<’>[.

Очевидно,

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

оказаться

весьма большой, если норма QА~ху велика.

Получить информацию о близости машинного решения *(1) к мате­ матическому решению х, а в ряде случаев устранить погрешность, вы­ званную суммарным эффектом ошибок округления, можно с помощью

итерационного процесса [105, 106]

r(s) = bAx(s>,

QP6(S>=

r(‘\ x(5+,) = x(s) + 6W,

s = 0,

1,

2,

x(0)^ 0 ,

«“W

(VII. 18)

» .

Здесь поправки 6(s),

s =

1,

2,

находят

с

использованием уже

реально выполненной при вычислении х*1* факторизации матрицы А : : QP = А + F, где F — соответствующее эквивалентное возмущение (см. (VII. 13)). Таким образом, вычисление 6(s) (s !> -1) сводится к со­ ответствующей обработке правых частей и вычислениям по формулам обратного хода. Поэтому процесс итерационного уточнения решения требует небольшого дополнительного времени по сравнению с перво­ начальным решением системы и может быть организован как решение выбранным прямым методом одной системы с разными последовательно вводимыми правыми частями. В (VII. 18) невязки rls) необходимо вы­ числять с повышенной точностью за счет либо накопления скалярного произведения, либо удвоения длины машинного слова на этом этапе вычислений по сравнению со всем остальным расчетом. В случае когда не слишком плохо «машинно обусловлена» матрица системы, последо­ вательность x(s), s = 1,2, ..., сходится к точному (в пределах длины машинного слова) решению заданной системы. Практически матрица А рассматривается как слишком плохо «машинно обусловленная», если наблюдается неубывание норм двух последовательных поправок

6м или чрезмерно медленное их убывание: за итерацию уточняется менее двух двоичных или половина десятичного разряда. Заметим, что термин «слишком плохая машинная обусловленность» матрицы относится к данной конкретной длине машинного слова.

Сравнение решения х(1) и первой поправки 6(1> позволяет (при за­ метном убывании б(1)) определить число т) верных десятичных цифр полученного решения х(1):

. »«(1)L

На основе выполненной при вычислении х<*> факторизации матрицы системы А « QP можно получить достаточно хорошую оценку числа обусловленности матрицы А. Для этого достаточно решить системы уравнений

(QP)Ty = f и QPz = у

со специально подобранным вектором f и вычислить оценку по формуле

cond Л я* [ Л li -jjyji-

Этот способ достаточно экономичен (так как сводится только к вычисле­ нию двух решений системы уже с факторизованной матрицей) и доста­ точно надежен. Подробное описание его и обоснование различных ме­ тодик выбора вектора дано в работе [128].

Используя приближенное значение cond А, можно вычислить чис­ ло обусловленности системы (VII.2) по формуле (VII.7), а по форму­ лам (VII.5), (VII.6) — относительную наследственную погрешность математического решения задачи. Если окажется, что относительная погрешность велика, то к такому математическому результату следует подходить с осторожностью. В этом случае желательно повысить точ­ ность задания исходных данных, а если это невозможно, задачу необ­ ходимо сформулировать по-новому относительно других параметров.

VII.2. Задачи на собственные значения матриц

1.Обусловленность в задачах на собственные значения. Как показано

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

Kv = KMv,

где К — матрица жесткости, а М — матрица массы (см., например, (IV.27), (IV.28)). Данная обобщенная задача на собственные значения может быть сведена к обычной проблеме на собственные значения. При описании прикладных задач на собственные значения крайне ред­ ко возникают индивидуально задаваемые системы

Av = %v.

Наиболее типичным является задание системы

 

 

Ло =

Ь

(VII. 19)

и погрешности в исходных данных

 

 

 

[А — ЛI =

ЦДЛ ||< е.

(VI 1.20)

Не всегда близость элементов матриц А и А обеспечивает

близость

собственных значений матрицы. Так, собственные числа матрицы

 

Г1

10000]

 

 

[0

1

J

 

суть

= 1, X,s ** 1, а возмущенной

матрицы

 

 

Г 1

10000]

 

 

L 0,0001

 

1 J ~

 

Я<2 = 2, Я>2 = 0.

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

перейти от чисто диагональной формы к недиагональной, канониче­ ской форме Жордана. При этом изменяется даже количество линейно независимых собственных векторов.

Из приведенных выше рассуждений видно, что прикладные задачи на собственные значения порождают (с учетом (VII.20)) множество уравнений (VII. 19), обладающих достаточно широким классом фор­ мально допустимых решений. Решение проблемы собственных чисел заключается в определении одного из допустимых решений, получении этого решения и оценке наследственной погрешности в математиче­ ском решении задачи.

Для характеристики устойчивости (чувствительности) решений задачи (VII. 19) к возмущениям исходных данных ДЛ используют по­ нятие обусловленности задачи. Однако в данном случае ситуация слож­ нее, чем в задаче решения системы линейных алгебраических уравне­ ний (см. п. 2 параграфа VII. 1). Здесь можно говорить об обусловлен­ ности матрицы А по отношению к полной проблеме всех собственных чисел, об устойчивости отдельного собственного числа, об обусловлен­ ности проблемы собственных векторов.

Рассмотрим вопрос об устойчивости проблемы собственных значе­ ний лишь для случая матрицы простой структуры, т. е. когда каждому собственному числу Xt матрицы А соответствует столько собственных векторов Xlt какова кратность Я, как корня характеристического урав­ нения det ХЕ) = 0.

Пусть Xh i = 1, 2, ..., n,— собственные числа матрицы А порядка /1 , среди которых могут быть и равные, а X— собственное число возмущен­ ной матрицы А + АА. Тогда, как показано в монографии 1105], спра­ ведлива оценка

min |%t- %|< IЯ "1|21Н fl21ДА |2)

(VII.21)

i

 

где Я — матрица, составленная из собственных векторов матрицы А; | |2 — спектральная норма матрицы.

Из приведенного неравенства очевидно, что изменение собственных

чисел может быть в К (Я) == |Я ” '11|2 |Я |2

раз большее, чем возму­

щение I ДЛ |2. Величину К (Я) называют

спектральным числом обус­

ловленности матрицы Л по отношению к полной проблеме собственных чисел.

Так как матрица Я — не единственна (каждый столбец может быть умножен на произвольный числовой множитель), то считают, что спек­ тральное число обусловленности матрицы А — это наименьшее зна­ чение К (Я) для всех допустимых Я.

Если Л — нормальная матрица: Л Л = Л Л 7(в частности, если Л — вещественная симметричная), то можно взять матрицу Я унитарной (ортогональной) и тогда К (Я) = 1, ибо спектральная норма такой матрицы равна единице. Отсюда следует, что проблема собственных чисел для нормальных (в частности, вещественных симметричных) мат­ риц всегда хорошо обусловлена и

|Д^| = |Х — Я,|<ЦДЛ I

Отметим, что это не обязательно справедливо для проблемы собствен­ ных векторов.

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

cond А, =

t

i = 1, 2, . . . , п,

 

где X,, Yt — соответствующие нормированные (спектральной

нормой,

т- е. евклидовой длиной) собственные векторы матриц А и Ат

 

Пусть матрица А имеет только

простые собственные числа, а воз­

мущенная матрица А +

АЛ близка к ней, т. е. АЛ — мало. Если соб­

ственные числа возмущенной матрицы обозначить через А, +

ДА,,, то

с точностью до членов второго порядка малости справедлива оценка (см. [108])

|ДА, К cond А, ЦДЛ |а.

Если собственные векторы возмущенной матрицы Л + ДЛ обозна­ чить через X , + ДX,, i = 1,2, ..., я, то в данном случае соответствен­ но имеем

1ДХ,|3<|ДЛ122 !Ф 1. (VI 1.22)

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

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

2. Погрешность машинной реализации алгоритмов. Основными во­ просами машинной реализации численных методов являются получе­ ние на ЭВМ решения, обеспечение оценки близости машинного и мате­ матического решений задачи. Машинная реализация методов нахожде­ ния собственных чисел и собственных векторов задачи (VII. 19), (VII.20) вносит погрешность, определяемую свойствами матрицы Л, методами решения проблемы собственных значений и особенностями вычисле­

ний на ЭВМ.

точными

Вычисленные на ЭВМ собственные значения являются

собственными значениями некоторой возмущенной матрицы

А + dAf

причем возмущение dA — не единственно и определяется

выбран­

ным алгоритмом, порядком матрицы Л и длиной мантиссы машинного слова.

Теоретически при вычислении на ЭВМ всех собственных чисел можно использовать следующую апостериорную оценку близости ма­ шинного и математического решений задачи [105]:

m i n | p , _ A , | < X ( ^ - J ^ - .

где |i( — машинное приближение к Xt (собственному числу матрицы А), V( — машинное приближение к собственному вектору, соответствую­ щему К (Н) — спектральное число обусловленности, 0 = A Vt

V-iVt — невязка задачи на собственные значения.

Рассматривая суммарную погрешность машинной реализации в за­ дачах на собственные значения как возмущение dA матрицы А, можно получить для соответствующих возмущений собственных чисел и соб­ ственных векторов оценки, аналогичные приведенным в предыдущем пункте. Так как здесь dA определяется порядком матрицы, методом решения задачи и длиной машинного слова, то, увеличивая длину ма­ шинного слова, можно повысить точность вычисленных собственных значений и получить достаточную близость машинного и математиче­ ского решений задачи.

3. Характеристика некоторых методов и программ вычисления соб­ ственных значений. Для нахождения собственных чисел и собственных векторов матриц разработаны машинные методы (см., например [79, 8 6 , 105, 1061) и создан ряд программных средств достаточно высокого научного уровня [81, 106, 149].

Пакеты программ EISPACK [149] и СПАН [81] позволяют прово­ дить идентификацию задачи и обеспечивают автоматический выбор алгоритма решения задачи. Пакет СПАН позволяет получить оценки погрешности вычисленного решения. В этом пакете имеются программы решения «больших» задач на собственные значения, которые активно используют дисковую память ЭВМ ЕС. Имеются программы, реализу­ ющие алгоритмы переупорядочения для разреженных матриц.

На ЭВМ ЕС 1060 с помощью программных средств пакета СПАН были решены задачи нахождения всех собственных чисел и собственных векторов плотных симметричных матриц до 10 00 -го порядка, задачи нахождения нескольких наименьших собственных чисел и собственных векторов ленточных симметричных матриц до 10 000-го порядка и разреженных симметричных матриц до 20 000-го порядка.

Как уже упоминалось в начале данного параграфа, обобщенную задачу на собственные значения

Av = XBv, det В Ф 0,

часто преобразуют к обычной

Сх = %х.

Имеется несколько способов осуществления такого преобразования, например формированные матрицы С = B~lA (х == v). Однако мат­ рица С может оказаться несимметричной, даже если А к В были веще­ ственными симметричными, а это, как известно, ухудшает обусловлен­ ность задачи. < 3

Если А и В — вещественные симметричные матрицы и В —■поло­ жительно определенная, то вместо исходной обобщенной задачи мож­ но решать обычную, где С = В^'АВ-1'*, х = B4'v, причем такая матрица С будет симметричной. Если матрица В — симметричная и положительно определенная, то можно применить способ преобразо­ вания, уже рассмотренный в параграфе IV.2, а именно: построить