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

Численные методы в уравнениях математической физики. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
912 Кб
Скачать

2.2. МЕТОД ПРОСТОЙ ИТЕРАЦИИ

2.2.1. СХЕМА МЕТОДА

Наиболее простым для решения системы нелинейных конечноэлементных уравнений (57) является так называемый метод простой итерации. Он заключается в следующем.

Выбирается некоторое начальное приближение – функция u0 или

вектор весов q(0) разложения u0 по базису i . Это начальное приближение обычно выбирается на основе некоторых априорных данных. С помощью выбранного начального приближения q(0) вычисляются коэффициенты конечноэлементной матрицы Aij (q(0) ) и вектора

правой части fi (q(0) ) (см. соотношения (58) – (60)). При этом пара-

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

l в виде линейной комбинации базисных функций. Например, коэффициент диффузии может быть представлен интерполянтом

j uh (q(0) ) j ,

 

j

 

 

где (в случае использования элементов лагранжева

типа)

j uh (q(0) )

– значение коэффициента uh (q(0) )

в j-м узле;

j

базисная функция, соответствующая j-му узлу.

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

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

ми qˆi , полученными на предыдущей итерации по нелинейности или из

начального приближения.

Итерационный процесс в методе простой итерации строится следующим образом. На первом шаге решается система линейных алгеб-

21

раических уравнений A(q(0) )q(1) b(q(0) ) . В результате решения этой

СЛАУ находится новое приближение q(1) решения нелинейной системы (57), которое, в свою очередь, используется для нахождения ком-

понент матрицы Aij (q(1) ) и вектора bi (q(1) ) , затем решается система

A(q(1) )q(2) b(q(1) ) и т. д.

2.2.2. ОСТАНОВ ИТЕРАЦИОННОГО ПРОЦЕССА

Решение q(k) на k -й итерации можно считать решением системы

нелинейных конечноэлементных уравнений (57), если выполняется условие

A(q(k) )q(k) b(q(k) )

, (61)

b

где – некоторое малое число, выбранное как требуемая точность решения нелинейной задачи. В данном случае норма абсолютной не-

вязки нелинейной системы A(q(k ) )q(k ) b(q(k ) ) делится на норму ее

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

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

этом в качестве вектора b можно брать как вектор b(q(0) ) , вычисленный по начальному приближению, так и вектор b(q(k) ) , вычисленный

по значению q(k) , полученному на текущей итерации по нелинейно-

стям.

В ряде случаев в качестве критерия выхода можно использовать условие q(k) q(k 1) q(k) , где – некоторое малое число. Это

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

22

2.2.3. ИСПОЛЬЗОВАНИЕ РЕЛАКСАЦИИ

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

q(k ) k q(k ) (1 k )q(k 1) ,

(62)

где k – коэффициент релаксации, а q(k) – решение системы

A(q(k 1) )q(k ) b(q(k 1) ) .

Значение коэффициента релаксации k можно получать в результате минимизации по k невязки нелинейной системы (57) (при под-

становке в нее вместо q значения q(k) , определяемого соотношени-

ем (62)):

R( k ) A( k q(k) (1 k )q(k 1) ) ( k q(k) (1 k )q(k 1) )

 

b( k q(k) (1 k )q(k 1) ) .

(63)

Для минимизации функционала (63) по k может быть использо-

ван любой метод одномерной оптимизации.

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

2.3. МЕТОД НЬЮТОНА

Метод Ньютона основан на линеаризации нелинейных уравнений системы (57) с использованием разложения в ряд Тейлора. Суть такой линеаризации заключается в следующем.

23

Каждый нелинейный член уравнений системы (57) представляется

в виде разложения в ряд Тейлора в окрестности точки q0 ( q0 – вектор

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

A

(q)q j Aij (q0 )q0j

(Aij (q)q j )

 

qr qr0 ,

 

qr

 

ij

r

 

q q0

 

 

 

а компоненты вектора правой части – в виде

bi (q) bi (q0 )

bi (q)

 

 

qr qr0 .

 

 

r

qr

 

q q0

 

 

 

В результате из системы (57) получается система линейных алгеб-

раических уравнений

 

 

 

 

ALq bL ,

(64)

которую мы будем называть линеаризованной по методу Ньютона конечноэлементной системой.

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

аризацию отдельных слагаемых уравнений системы (57) нужно проводить на уровне локальных матриц и векторов и только после этого со-

бирать из них глобальные матрицу AL и вектор правой части bL линеаризованной конечноэлементной системы.

 

Рассмотрим конечный элемент m . Как обычно, обозначим через

ˆ

ˆ

A

локальную матрицу элемента m , через b – его локальный вектор

правой части, а через qˆ – подвектор глобального вектора q , состоящий из весов (в локальной нумерации) базисных функций конечного элемента m .

24

Представим слагаемое

ˆ

в виде разложения в ряд Тейлора в

Aij (qˆ )qˆ j

окрестности значения qˆ 0 и ограничимся членами с первой производной:

ˆ

 

 

ˆ

 

 

 

 

0

 

0

 

 

 

 

 

 

ˆ

(qˆ )qˆ j

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nˆ Aij

 

 

 

A

(qˆ )qˆ j Aij (qˆ

 

)qˆ j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

qˆr qˆr

 

 

 

 

 

 

 

 

 

qˆr

 

 

 

 

 

ij

 

 

 

 

 

 

 

 

 

 

 

 

 

r 1

 

 

 

 

 

 

 

 

 

 

 

qˆ qˆ 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ˆ

 

 

 

 

 

 

 

 

nˆ

ˆ

(qˆ )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

0

 

 

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Aij

 

 

 

 

 

 

 

 

 

Aij

(qˆ

 

 

)qˆ j

 

 

 

 

 

 

 

 

 

 

 

 

qˆ j

qˆr qˆr

 

 

 

 

 

qˆr

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r 1

 

 

 

 

qˆ qˆ

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ˆ

 

 

 

 

0

 

 

 

ˆ

 

 

 

 

 

 

 

 

 

0

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Aij (qˆ )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Aij

(qˆ

 

)

 

 

 

 

 

 

 

 

 

 

 

 

 

qˆ j

 

qˆ j qˆ j

 

 

 

 

qˆ j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

qˆ

qˆ

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ˆ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ˆ

 

 

0

 

 

 

 

nˆ

(qˆ )

 

 

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Aij

 

 

 

 

 

 

 

 

 

Aij (qˆ

 

 

)qˆ j

 

 

 

 

 

 

 

 

 

 

 

 

 

qˆ j

qˆr qˆr

,

(65)

 

 

 

 

qˆr

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r 1

 

 

 

 

qˆ qˆ

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где nˆ – размер локальной матрицы (и, естественно, вектора) элементаm , а qˆ 0 – значение qˆ на предыдущей итерации1 метода Ньютона.

1 На первой итерации в качестве qˆ0j обычно берут коэффициенты разложения начального приближения uh,0 по локальным базисным функциям ˆ j

конечного элемента m , т. е. uh,0 nˆ qˆ0 j и, например, для лагранжевых

j ˆ

j 1

элементов в качестве qˆ0j можно взять значения uh,0 в соответствующих узлах конечного элемента m .

25

Аналогично линеаризуются и компоненты локального вектора правой части:

ˆ

ˆ

0

nˆ

)

bi (qˆ ) bi (qˆ

 

r 1

ˆ

 

qˆr

qˆr0 .

 

 

 

bi (qˆ )

 

(66)

qˆr

 

qˆ qˆ 0

 

 

 

 

 

Из соотношения (65) видно, что в результате линеаризации слагае-

мого

ˆ

появляются слагаемые, содержащие кроме qˆ j

еще и

Aij (qˆ )qˆ j

другие компоненты вектора решения. Это значит, что в результате ли-

неаризации слагаемого

ˆ

мы получим вклады не только в ком-

Aij (qˆ )qˆ j

ˆ L

 

 

ˆ

L

линеаризованной СЛАУ, но и в

поненту Aij

локальной матрицы A

 

 

 

 

ˆ L

. Так, например, даже если i 1 и

другие компоненты i -й строки A

 

 

 

 

 

 

ˆ

 

 

 

 

 

 

 

 

j 1 слагаемое

 

Aij (qˆ )

 

 

 

qˆ1

 

 

 

 

 

 

 

 

 

ˆ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A (qˆ )

 

 

 

 

 

равный

 

ij

 

 

 

qˆ0j

 

 

ˆ

 

 

 

q1

 

qˆ qˆ 0

 

 

 

 

0

qˆ1

0

даст вклад в компоненту

ˆ L

,

qˆ j

qˆ1

A

qˆ qˆ 0

 

 

 

i1

 

 

 

 

 

 

это множитель перед qˆ1 . Кроме того, правая

часть (65) имеет слагаемые, не содержащие компоненты вектора решения, а значит, являющиеся добавками в правую часть линеаризованно-

 

ˆ

 

 

 

 

 

 

 

 

 

 

 

 

 

го уравнения. Так, все слагаемые

Aij (qˆ )

 

 

qˆ

0qˆ

0

, возникающие в

 

 

 

 

qˆr

 

qˆ qˆ 0

 

j

r

 

 

 

 

 

 

 

 

ˆ

 

являются вкладами в

 

 

 

результате линеаризации слагаемого Aij (qˆ )qˆ j ,

компоненту локального вектора правой части ˆiL линеаризованной b

конечноэлементной системы.

В свою очередь из соотношения (66) видно, что в результате лине-

аризации компоненты ˆi (qˆ ) вектора правой части появляются слагае- b

мые, содержащие компоненты вектора решения. Это означает, что в результате линеаризации компонент вектора правой части системы (57) появляются добавки в компоненты матрицы линеаризованной

26

 

 

ˆ

 

 

 

 

 

 

 

 

конечноэлементной системы. Так, слагаемые

 

bi (qˆ )

 

 

qˆr из правой

 

qˆr

 

qˆ qˆ 0

 

 

 

 

 

 

ˆ

 

 

 

 

 

 

 

 

 

 

 

части разложения (66) дают вклады вида

bi (qˆ )

 

 

 

 

в компонен-

 

qˆr

 

 

 

qˆ qˆ 0

 

 

 

 

 

 

ты

ˆ L

локальных матриц линеаризованной системы.

Air

 

Таким образом, линеаризованная система (64) собирается из ло-

 

ˆ

L

и локальных векторов

ˆ L

следующего вида:

 

кальных матриц A

 

b

 

 

 

 

 

 

nˆ

ˆ

 

 

 

 

 

ˆ

 

 

 

 

ˆ L

ˆ

 

 

0

)

Air (qˆ )

 

 

 

 

0

bi (qˆ )

 

 

 

 

Aij

Aij (qˆ

 

 

 

 

 

qˆr

 

 

 

,

(67)

 

qˆ j

 

 

 

qˆ j

 

 

 

 

 

 

 

r 1

 

qˆ

qˆ

0

 

qˆ

qˆ

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ˆL

ˆ 0

nˆ

0

nˆ

Aij (qˆ )

 

 

 

ˆ

bi

bi (qˆ

) qˆ j

 

 

qˆr

 

 

j 1

 

r 1

nˆ

qˆr0

qˆ qˆ 0

r 1

ˆ

 

 

 

 

 

 

bi (qˆ )

 

qˆ0.

(68)

 

qˆr

 

qˆ qˆ 0 r

 

 

 

Итерационный процесс в методе Ньютона строится аналогично тому, как был построен итерационный процесс в методе простой итера-

ции. Очередной его шаг заключается в генерации по q0 на первой итерации q0 формируется из начального приближения, на последующих в качестве q0 берется q(k 1) линеаризованной системы (64) и ее решении, в результате чего (возможно, с использованием релаксации

(62)) находится новое приближение q(k) . После этого проверяется

критерий останова (61), и в случае его невыполнения осуществляется переход к следующей итерации метода Ньютона.

Обратим внимание на то, что при оценке невязки используются матрица и вектор нелинеаризованной системы. Это значит, что при

вычислении невязки должны быть использованы не матрица AL и

вектор bL , собираемые из локальных матриц и векторов вида (67) и (68), а матрица A(q) и вектор b(q) , компоненты которых вычисляются,

27

как и в методе простой итерации, по формулам (58) – (60), и в этих

формулах в качестве вектора q берется вектор q(k) , полученный в ре-

зультате решения линеаризованной системы (64).

Вообще говоря, полученный на k -й итерации в результате ре-

шения линеаризованной системы (64) вектор q(k) не гарантирует уменьшения невязки исходной нелинейной системы (57), вычис-

ленной как A(q(k) )q(k) b(q(k) ) , по сравнению с невязкой

A(q(k 1) )q(k 1) b(q(k 1) ) на предыдущей итерации. Увеличение невязки может произойти в том случае, когда нелинейность в коэффици-

ентах задачи значительная, и вектор q(k 1) , по которому2 вычисляются компоненты матрицы и вектора линеаризованной системы, довольно

далек от решения нелинейной системы. В результате решение q(k) линеаризованной системы (64) может значительно отличаться от векто-

ра q(k 1) (по которому выполнялась линеаризация) и попасть в об-

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

Чтобы не допустить этого, можно ограничивать отход вектора q(k)

от вектора q0 = q(k 1) , по которому выполняется линеаризация, т. е. оставлять вектор q в зоне, где невязка линеаризованной системы еще

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

вектор q(k) по формуле (62), т. е. использовать нижнюю релаксацию. Очевидно, что при значении коэффициента релаксации k , близком к

нулю, значение q(k) будет близко к q0 = q(k 1) , линеаризованная система будет также близка к исходной нелинейной системе и пониже-

2 При генерации вкладов в линеаризованную систему этот вектор был обозначен нами как q0 .

28

ние невязки линеаризованной системы должно приводить к понижению невязки нелинейной системы. Лучше всего коэффициент релакса-

ции k выбирать из условия минимума невязки R( k ) , определяемой

соотношением (63).

Заметим также, что при использовании метода Ньютона из-за особенностей вычисления производных по u зависимостей (u) , f (u) и

других

 

 

 

 

коэффициентов нелинейной краевой задачи производные

 

 

 

 

(u) ,

f (u)

 

и другие входят, как мы покажем чуть позже, в выраже-

u

 

u

 

ˆ

 

 

 

 

ния, определяющие в соотношениях (67) и (68) производные

Air (qˆ )

 

qˆ j

 

 

 

 

ˆ ˆ

 

 

 

 

 

и bi (q)

результирующая линеаризованная матрица AL в отличие

qˆ j

 

 

 

 

 

 

 

 

 

 

от A(q(k 1) )

может перестать быть положительно определенной. Из-

бежать этого можно введением так называемого коэффициента «демпфирования» 0,1 , который ставится перед добавками с производ-

ными (сравните с (67) и (68)):

 

 

 

 

 

 

 

 

 

 

 

nˆ

 

ˆ

 

 

L

 

 

 

0

 

 

 

 

 

 

ˆ

 

 

ˆ

 

 

 

 

Air (qˆ )

 

Aij

 

Aij (qˆ )

 

 

qˆ j

 

 

 

 

 

 

 

 

 

 

r 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nˆ

 

 

nˆ

 

ˆ

ˆL

ˆ

 

(qˆ

0

 

 

qˆ

0

 

Air (qˆ)

 

 

b

b

 

 

)

 

j

 

 

 

 

 

 

 

 

 

 

 

 

i

i

 

 

 

 

 

 

 

qˆr

 

 

 

 

 

 

 

 

 

j 1

 

r 1

 

 

 

 

 

 

 

 

 

 

 

 

 

qˆ qˆ 0

qˆ qˆ 0

qˆ

 

ˆ

 

 

 

 

,

 

 

 

 

0

bi (qˆ )

 

 

 

 

 

r

qˆ j

 

 

0

 

 

 

 

 

qˆ qˆ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

ˆ

 

 

qˆr0

ˆ

bi (qˆ)

 

qˆr0

 

 

qˆr

 

r 1

 

qˆ qˆ 0

 

 

(69)

. (70)

На каждой итерации коэффициент выбирается сначала равным

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

29

решения линеаризованной системы), коэффициент уменьшают и

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

3.ГАРМОНИЧЕСКИЕ ПО ВРЕМЕНИ ЗАДАЧИ

3.1.ПАРАБОЛИЧЕСКИЕ И ГИПЕРБОЛИЧЕСКИЕ ЗАДАЧИ С ГАРМОНИЧЕСКИМИ ПО ВРЕМЕНИ ИСТОЧНИКАМИ

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

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

Система уравнений Максвелла в общем виде имеет следующий вид:

 

ст

 

( E)

,

 

(71)

rot H J

E

t

 

 

 

 

 

 

 

 

 

 

 

 

B

 

 

 

 

 

 

rot E

 

,

 

 

(72)

 

t

 

 

 

 

 

 

 

 

 

 

divB 0 ,

 

 

 

(73)

 

div E ,

 

 

 

(74)

 

 

 

 

 

 

ст

вектор плотностей

где H – напряженность магнитного поля; J

 

сторонних токов (возбуждающих электромагнитное поле); E – напряженность электрического поля; – проводимость среды; – диэлек-

трическая проницаемость среды; B – индукция магнитного поля (свя-

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]