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

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

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

треугольное разложение В = LLT, сформировать С = L lALT и по­

ложить х = LTv. Матрица С и в этом случае будет симметричной, если симметрична матрица А. Последний способ реализован в [81, 149] для решения обобщенной задачи на собственные значения с плотными сим­ метричными матрицами А, В, где В — положительно определенная матрица. Отметим, что ленточная и профильная структуры матрицы В наследуются матрицей L.

В работе [130] предложен алгоритм, позволяющий обобщенную за­ дачу на собственные значения для ленточных Л и S привести к обыч­ ной задаче без использования дополнительной памяти. (Возможны также некоторые способы преобразования.)

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

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

Когда треугольное разложение матриц затруднительно (например, в случае очень высоких порядков А и Б), то для специального класса задач иногда могут быть полезными метод обратных итераций [86], метод последовательной верхней релаксации [155], градиентные мето­ ды [33, 88, 93].

Для ускорения сходимости итерационных методов градиентного типа используются приемы преобусловливания, или, что то же, регу­ ляризации (см. например, [33, 47, 88, 89, 93]).

Представляет определенный интерес решение обобщенной пробле­ мы собственных значений итерационными методами, реализуемыми на последовательности сеток [100, 115].

VII. 3. Нелинейные алгебраические и трансцендентные уравнения

Эффективное и надежное получение решений систем нелинейных ал­ гебраических уравнений с приближенными исходными данными тре­ бует, как и в случае линейных систем (параграф VII. 1), рассмотрения вопросов о корректной постановке задачи, об обусловленности систе­ мы, о способах оценки достоверности вычисленных решений и т. п. В данном случае эти вопросы еще более трудны и недостаточно изучены.

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

Найти принадлежащие отрезку [0, 5] корни уравнения

f(x) = x2 — 2x + с = 0, 0 < * < 5 ,

(VII.23)

если заданы приближенное значение свободного члена с = 0,84 и оцен­ ка погрешности

| с - с | < 6 .

(VII.24)

Легко проверить, что приближенное уравнение

 

/(* ) = *22х-\-с = 0, с = 0,84,

(VII.25)

имеет на отрезке [0, 5] два корня:

 

хх = 0,6, * 2 = 1 ,4 .

(VII.26)

Но как эти значения связаны с корнями точного уравнения (VII.23)

при условии (VII.24)? Допустим, что б = 0,2. Тогда с может прини­ мать любое значение из отрезка [0,64; 1,04]. При этом в пределах точ­ ности исходных данных возможны следующие ситуации: уравнение

(VII.23) — имеет на указанном отрезке два корня, если с < 1;— имеет

один двукратный

корень, если с = 1; — не имеет ни одного действи­

тельного

корня,

если

с > 1 . Очевидно, поставленную задачу (V II.24),

(VI 1.25)

при б =

0,2 нельзя считать корректно поставленной. Пред­

положим

теперь,

что

б = 0,09, т. е. значение с находится в пре­

делах отрезка [0,75; 0,93]. В этом случае

при любом значении с урав­

нение (VII.23) имеет два корня — **, **:

 

0,5 < х; < 1 — v 0Д)7 « 0,74,

1,26 < х\ < 1,5.

Они достаточно хорошо приближаются корнями (VI 1.26):

|*i — х\ |^ 0,14, |х2х* |^ 0,14.

Таким образом, в данном случае можно говорить о корректной поста­ новке задачи (VII.24), (VII.25) с приближенными исходными данными. Поскольку исследование упомянутых выше вопросов еще далеко от завершения, в данном параграфе будут затронуты лишь некоторые из них.

1. Погрешность машинной реализации вычислительных алгорит­ мов. Пусть задана система нелинейных уравнений

Р(х) = х — Ф(х) = 0,

x£D,

(VII.27)

где

 

 

 

F ( * ) = l h ( х ) , f 2( * ) ,

f n ( * ) f ,

* = [ * 1 , * 2,

, X n f ,

D — область /г-мерного евклидова пространства. Отображение Ф на­ зывается сжимающим на множестве D0 a D, если существует такое

значение 0 < а < 1, что |Ф (х) — Ф (</) |<

а |* — у Ц при любых

*> У D0.

если отображение Ф (х)

Как известно (см., например, [6, 85]),

сжимающее на замкнутом множестве D 0 C

D H значение Ф (х) £ D0 при

х £ D0, то система (VI 1.27) имеет в D0 единственное решение х*

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

итерации, реализуемый по формуле

 

 

хк = Ф(х1:~\ £ = 1 , 2 ,

(VII.28)

где х° — некоторое начальное приближение. Доказано (см., например, [6, 51]), что при выполнении указанных выше условий (обеспечиваю­ щих существование единственного х*) последовательность х1, х2, сходится при любом х° 6 £>о к решению х*, а скорость сходимости ха­ рактеризуется неравенствами

II** — **||<a*||x° — **|,

(VII.29)

ИЛИ

 

||/— * i < - r~ -| | * ° — ф(*°)||, £ = 1 , 2 ,

 

Однако при построении приближений (VII.28) на ЭВМ неизбежно возникают погрешности и за счет применения вычислений по прибли­ женным формулам, например для значений элементарных функций, и за счет ошибок округления. При этом вместо (VI 1.28) выполняются равенства

/ = ф ( / - ' ) + д ъ

£ = 1 , 2 ,

 

где Дд, — погрешность на fe-й

итерации, для

которой

известна оценка

И * К

6,

£ = 1 , 2 ,

 

 

 

В результате, как показано

в работе

[51], вместо

(V II.29) имеем

| | /-**| | < a*| | *°-**!|

+

T - ^ r ,

 

откуда следует, что при k

оо приближенные решения хк уже могут

не сходиться к точному решению я* системы

(VI 1.27).

 

Проиллюстрируем сказанное

решением уравнения

 

fix) = 0,001 — 100е-(10+*/5) =

0,

 

10,

корень которого

 

 

 

 

 

 

л; = 5(5 In 10— 10)^7,565.

Приближения к искомому корню строим по формуле = 1»

Xk+i = x k — 0,001 + 100g_(lo+^ 5), £ = 0, 1,

В данном примере функция

ф (х) = X — 0,001 + 1OOe_<10+*/5)

является сжимающей, так как

 

|ф'(х)| = |1 — 20e_(l0+*/5)|= а < 1 ,

0 < х < 10,

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

 

|<р (*) — <р (у) К а |х у |, 0 <

х, у < 10.

Задача решалась на ЭВМ МИР-2 при разрядности 4. После выполне-

ния условий

 

«

/

I

*k| ^

\

при

окончания итерации

^а именно — ~ j ^

 

 

значении е =

10-2

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

машинное решение х =

5,005,

при

в =

10-3 тоже х =

5,005. Увеличение длины машинного

слова

до

восьми десятичных

разрядов по той же программе на той же ЭВМ поз­

волило получить х-%= 7,518 856 5 за k =

219 54

итераций

(при г =

-

Ю-2) и xj = 7,559 634 1 за k =

33237

итераций (при

е =

10_3).

 

Для решения этой задачи использован метод Ньютона,

реализуе­

мый по формуле х0 = 1,

 

 

 

 

 

 

 

хА+, = xk — 0,00005e(10+**/5) + 5,

k = 0,

1, 2,

 

 

 

со своим условием окончания итераций (см. [79]). При длине машинного

слова в четыре десятичных знака

для е = 10-2 за четыре итерации

было получено х4 = 7,518, а для е =

10-3 за пять итераций х5 = 7,579.

Использование в расчетах восьми десятичных цифр при реализации той

же программы метода Ньютона для г =

10“ 2 за четыре итерации поз­

волило получить

х4 = 7,564 40 56 и для

е = 10” 3 за пять итераций

*б = 7,564 628 4.

 

 

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

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

2. Характеристика некоторых методов и программ решения систем нелинейных уравнений. Численное решение систем нелинейных алге­ браических или трансцендентных уравнений представляет собой слож­ ную и до конца не исследованную проблему вычислительной матема­ тики. Для решения систем нелинейных уравнений можно использовать метод простой итерации, метод секущих, метод Ньютона, квазиньютоновские методы и другие, описание которых можно найти, например, в работах [6, 79, 85]. Простая итерация обладает линейной скоростью сходимости, метод Ньютона — квадратичной (при выполнении соот­ ветствующих условий), а квазиньютоновские методы — сверхлиней­ ной скоростью сходимости. Несмотря на то что квазиньютоновские методы обладают более медленной по сравнению с методом Ньютона

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

Отметим, что решение системы нелинейных уравнений может быть сведено к задаче минимизации функций.

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

В настоящее время разрабатываются методы решения систем нели­ нейных уравнений, обладающих глобальной сходимостью (см., на­ пример, [8]). К этим же методам принадлежит метод продолжения по параметру (см., например, [120, 143]).

кСреди часто используемых программ решения систем нелинейных уравнений с матрицами Якоби произвольного вида можно отметить программы, реализующие методы Брента и Брауна [125, 151].

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

VII.4. Задачи Коши для систем обыкновенных дифференциальных уравнений

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

Задачи Коши для систем обыкновенных дифференциальных урав­ нений получают и в результате применения метода Бубнова — Галеркина к задачам с начально-краевыми условиями. Так, если решаются уравнения параболического типа, то получают следующую задачу:

M -^ - = — Ku + F, Ми (0) = Ф.

Как следует из рассмотрений гл. III, компоненты вектора правых час­ тей F имеют вид Fk = f / , t) <pft (х) dx. Применяя те или иные фор­ мулы численного интегрирования, мы вносим некоторую погрешность.

Кроме того, вносим погрешность и при вычислении вектора начальных условий. Возникает вопрос о влиянии этих погрешностей на точность решения исходной задачи. Для выяснения этого вопроса рассмотрим задачу Коши для одного уравнения:

J jL = f{u ,x ),

х € [х 0, X],

(VII.30)

и(х0) =

и„.

(VII.31)

Пусть в замкнутом прямоугольнике D плоскости (х, и), определяемом неравенствами |х — х0 |^ а, \и и0 |^ Ь, где а, b — некоторые положительные постоянные, функция f (х, и) непрерывна и удовлет­ воряет условию Липшица по и:

|f(x, щ) — !{х, U^ K L I UJ — ы2|, L — const.

Как известно, при этих предположениях гарантируются существо­ вание и единственность решения задачи (VII.30), (VII.31) в некотором промежутке х0Хг < х < х0 + Xt. В дальнейшем всегда предпола­ гается, что точное решение задачи Коши существует на всем заданном промежутке [х0, X].

Пусть наряду с задачей (VII.30), (VII.31) имеется возмущенная

задача

 

 

= / (х, у) + б(х),

х £ [х0, X],

(VII.30')

у(х0) = и0 +

80,

(VII. ЗГ)

где б (х), б0 предполагаются достаточно малыми.

Однако даже малые погрешности в задании исходных данных могут существенно исказить решение. Действительно, точное решение за­

дачи

Коши

 

 

 

 

 

 

 

 

=

« — х,

0 < х < 1

0 0 , и (0) =

1

 

имеет вид и (х) = 1 +

х,

следовательно,

и (100) =

101. Задача

Коши

с возмущенным начальным условием

 

 

 

 

 

- g - = t/ - x ,

0 < х < 1 0 0

,

у(0 ) = 1

+ 1(Гб

 

имеет

точное решение

у (х) =

1 + х +

10- б е* и у (100) « 2,7

1087.

Таким образом, небольшое изменение исходных данных сильно изменило решение. В связи с этим весьма существенным является во­ прос об отыскании условий, при которых достаточно малые изменения начальных данных вызывают малые изменения в решении задачи Ко­ ши. Если х изменяется на конечном отрезке [х0, X], то ответ на постав­ ленный вопрос дает теорема о непрерывной зависимости решений от начальных значений (см., например, [1191). Если же х может прини­ мать сколь угодно большие значения, то эти вопросы относятся к тео­ рии устойчивости [21, 58].

Пусть выполняются сформулированные выше условия для функции f (х, и). Тогда для решения у (х) возмущенной задачи (VII.30'), (VII.ЗГ)

можно получить следующую оценку:

шах |ы(*)- ■ < /W K - f ((£+l)etx- l ) ,

х0^х^Х

где е = шах (| б0 1, max I 6 (х) |).

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

Рассмотрим задачу Коши для линейной системы п обыкновен­ ных дифференциальных уравнений

*L = AU

£/(0) =

t/„,

* € [0 , X],

(VII.32)

dx

A U ’

 

 

 

 

где U (x) = [«1 (x),

ы2 (x) ....... un(x)]r ,

A

вещественная

матрица с

простыми собственными числами. Тогда существует такая невырож­ денная матрица С, что

С~'АС = А,

где

0

0

-

Л = 0

К

0

 

_ 0

0

 

 

Х\— i-e собственное число матрицы А. Если ввести замену

ных

 

 

 

и (х) = CZ (х),

Z (х) = [zx (х),

г2 (х),

WJ7.

то система (VII.32) преобразуется в систему

 

=

* =

1 ,2 ...........

я.

перемен­

(VII.33)

Таким образом, исследовать поведение решения системы (VI 1.32) мож­ но с помощью системы (VI 1.33). Более того, устойчивость решения си­ стемы дифференциальных уравнений (VII.33) можно изучать на уравне­ нии

du = Xu,

(VII.34)

dx

 

которое называют тестовым [147]. Будем

предполагать, что X = а +

+ ф принадлежит полю комплексных

чисел. Решение уравнения

{V II.34) называется асимптотически устойчивым, если a = ReX<.

<0, устойчивым, если a = 0, и неустойчивым, если а = Re Х > 0. Несколько слов о постановке и исследовании задачи Коши для

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

■%T = F(x, U), U(*о) = U„

х g [х0, X],

(VII.35)

где

 

 

 

U(x) = [ui(x),

и2(х),

, ип(х)]т,

 

F (х, U) = [/, (х, U),

ft (х, U),

f„ (х, U)f.

 

Пусть в замкнутом параллелепипеде D

 

|дс — х01^ а, |и{то | b,

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

функции ft (х, U) непрерывны и удовлетворяют условию Липшица

по переменным ик:

П ^

Ifi{x, т...........«„) — ft{x, ................ \“k — Uk\> k=\

i == 1 > 2, •••| tty

L — константа Липшица.

Выполнение этих условий гарантирует существование и един­ ственность решения задачи (VII.35).

Заметим, что условие Липшица часто записывают в виде

IIF (х, 0) F(x, t /)| < L | £ /_ £ /| f

где I |— некоторая норма в конечномерном пространстве.

Если функция F (х, U) — непрерывно дифференцируема по U> то качественное исследование системы дифференциальных уравнений

(VI 1.35) вблизи некоторого частного решения

U* (х) можно провести

следующим образом. Разложим F (х, U) в окрестности

U* (х) в ряд

Тейлора:

 

 

 

 

 

F (х, U) = F (Ху U*) +

J(Ху U*) (U— U*) +

 

где

J(х, U*) — матрица Якоби,

J(x, U*) = |-^-J |у=уф, i, j 1 , 2 , . . .

... п.

Тогда согласно (V II.35)

имеем

 

 

 

■ЪГ »■ т

+

J (х, U*) (U-

U*).

(VII .36)

Если изменение элементов матрицы J (х, U*) на некотором интервале изменения х достаточно мало, то J (х, U*) можно заменить локально постоянной матрицей А и свести исследование устойчивости решения системы (VI 1.35) к исследованию устойчивости решения линейной си­ стемы обыкновенных дифференциальных уравнений с постоянными коэффициентами.

Рассмотрим теперь задачу Коши для обыкновенного дифференциаль­ ного уравнения

- З Г » ? ( « - Р ( * ) ) + -2 Г , иф) = и0,

(VII.37)

где q = const. Решение этой задачи, как нетрудно убедиться,

и(х) = (и0 — р (0)) е** + р (х).

Если q — большое положительное число, то решение задачи (VI 1.37) неустойчиво; если q — малое положительное число, то решение зада­ чи устойчиво на некотором конечном интервале. В случае, когда q большое по модулю отрицательное число, каким бы ни было выбрано значение и0, через достаточно малый промежуток [0, x j, называемый

переходным участком (или пограничным слоем), кривая решения и (х) становится как угодно близкой к кривой частного решения и* (х) = = р (х) уравнения (VII.37). Эта сверхустойчивость решения дифферен­ циальной задачи является идеальной в смысле распространения на­ следств 'иной ошибки в дифференциальном уравнении, но она создала ряд трудностей численного решения задач на ЭВМ. Одна из них со­ стоит в том, что хотя решение за пределами переходного участка ве­ дет себя как р (х) и практически не зависит от q (при q < 0), тем не менее из условия устойчивости шаг численного интегрирования прихо­ дится выбирать зависящим от q (см. работу [90]). Чем большее значе­ ние |q |, тем меньший шаг интегрирования (жесткие ограничения на шаг интегрирования). Такие задачи получили название жестких. Аналогично может быть рассмотрена задача Коши для систем обыкно­ венных дифференциальных уравнений.

Для выяснения вопроса, является ли задача Коши (VII.35) жест­ кой, необходимо исследовать поведение решений системы уравнений (VI 1.35) в окрестности некоторого частного решения U* (х) этой систе­ мы. Будем предполагать, что система локально устойчива, т. е. все ло­ кальные собственные числа Хс (х) матрицы Якоби J (х) = J (х, U* (х)) различны и Re ^ < 0, i = 1, 2, .... л. При этих предположениях в работе [147] находим следующее определение жесткой задачи Коши.

Задача Коши (VI 1.35) называется жесткой на некотором интервале

J с : [х0, X], если для

всех х £ / выполняются условия

 

R e Xi< 0 ,

t = 1, 2,

. . . . п, s(x) =

maxRe(— X,)/minRe(— А<)> 1,

где

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

числа матрицы

Якоби J (х) = J (х, U*). Вели­

чину s (х)

называют

локальным

коэффициентом жесткости

задачи.

Если

s (х)

есть величина О (10),

то

задачу можно считать

жесткой.

В ряде прикладных задач коэффициент жесткости достигает величины

О ( 10е).

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

Приведем еще одно определение жесткой системы [90]. Система обыкновенных дифференциальных уравнений (VI 1.35) называется жест­ кой на отрезке lc, d], принадлежащем интервалу существования ее

решений, если при любом векторе начальных значений

U0 — U (х0)

и на любом отрезке

[х0, х0 + |] с [с,

d] найдутся

такие числа т, L,

N, удовлетворяющие соотношениям

 

 

 

 

0 <

т 4 £ d - c ,

0 < 1 < р ( У ( х , t /))< | 7 (x , £/)В,

{х, U)£D,

N ^ 1 ,

что

справедливы

неравенства

 

 

 

 

 

 

| -^ М

 

< -^ -m a x| u ft(x)|,

k = \ , 2 , . . . , n ,

(VII.38)

 

 

| “*

 

'v

*€Д,

 

 

 

 

где

Аг — [х0 +

т,

х0 + £],

Д2 = [х0, х0 + £].

 

обозначения:

 

В

данном

определении

использовались следующие

р (J (х, U)) — максимальный модуль собственных чисел матрицы Яко­

би,

|

|— принятая

норма матрицы.

Отметим,

что

для

жестких

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

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

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

/ > 1.

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

Рассмотрим основные проблемы, возникающие при численном ре­ шении задачи Коши для одного уравнения:

du

0 < х < Х ,

(VII.39)

— = f(x,u),

и(0) =

и0.

(VII.40)

Предполагаем, что существует достаточно гладкое решение этой зада­ чи, а функция f (х, и) удовлетворяет по и условию Липшица

I f (xt ч±) f {х*

I ^ L I Ui ^2 1*

Для численного решения задачи (VII.39), (VII.40) область непре­ рывного изменения аргумента [0, X] заменяют сеткой

Здесь N — число узлов сетки, h — шаг сетки.