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

Основы научных вычислений. Введение в численные методы для физиков и инженеров

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
1.3. Заключительные замечания 31
Для выбора начальных значений x0и x1можно использовать такое
же условие, как для метода Ньютона, только применяя его к x
f(x
)f(xm) > 0,m=0, 1. (1.27)
m
П
РИМЕР 1.7 (МЕТОД СЕКУЩИХ).
f(x)=exp(−x) − sin(x)=0,x
(x)=−(exp(−x)+cos(x)),
f

(x)=exp(−x)+sin(x).
f
∗
∈ [0,π]=I,
0
Условие (1.27) для данной функции выполняется, например, при
= −0.01 и x1=0. Результаты расчетов для εp=10−5приведены
x
0
вТаблице1.7.
Таблица 1.7.
k x
|xk− x
k
| |f(xk)|
k−1
2 0.49875 4.98753e − 01 1.28956e − 01
3 0.57259 7.38395e − 02 2.22481e − 02
4 0.58798 1.53952e − 02 7.55890e − 04
5 0.58853 5.41454e − 04 4.79203e − 06
и x1:
Можно также получить формулу для приближенного вычисления

(x). Тогда, если подставить формулы для приближенного вычисления
f
f
(x) и f(x) в (1.22), (1.23) и (1.24), мы получим некоторые одноточеч­ные итерационные процессы с памятью и n из (1.6) равняется двум. Эта процедура приводит к очень громоздким выражениям, в то же время скорость сходимости этих методов лишь немного выше, чем в методе секущих (но ниже, чем в методе Ньютона).
1.3. Заключительные замечания
Выбор численного метода для решения уравнения f(x)=0обуслов-
лен в основном двумя факторами:
1) если необходимо решить одно уравнение, то можно использовать метод деления отрезка пополам или обратиться к процедуре из до­ступного пакета программ;
32 Глава 1
2) если некоторая вычислительная процедура включает в себя много­кратное решение уравнения f(x)=0, то, возможно, потребуется ис- пользовать метод, который вычисляет приближенное значение корня наиболее эффективным образом.
Эффективность метода зависит от того, насколько просто значе-
ния производной функции f (x) могут быть вычислены. Если вычисле­ние значений f нее использовать метод секущих. Если можно достаточно легко оце­нить значение f
(x) требует значительных затрат, тогда предпочтитель-
(x), тогда можно использовать метод простой итера-
ции с процессом Эйткена. Например, рассмотрим следующее уравнение:
f(x)=J
мы хотим найти x ции f
(x) −ax (J0(x) и J1(x) — функции Бесселя первого рода), и
0
(x)=−(J1(x)+ax). Из графика функции J1(x) видно, что
∗
∈ [0, 2] = I. Первая производная исходной функ-
max
J1(x) ≈0.6.
x∈I
Таким образом, константа α в (1.13) определяется как α ≈ 1/(a +0.6).
Если затраты на вычисление значения f
(x) сравнимы с затратами на вычисление значения f (x), тогда метод Ньютона или многоточечная итерация будут наиболее эффективными.
Итерационные схемы третьего порядка (1.22), (1.23) и (1.24) требу­ют сравнительно большого количества операций на итерацию. Поэтому, эти методы могут найти применение, только когда затраты на вычисле­ние значений f лить корень с очень высокой точностью. Например, рассмотрим уравне­ние f (x)=exp(−x) −x =0. Вычисление производных f может быть организовано эффективным образом: значение exp(−x
(xk) и f(xk) относительно низки и необходимо опреде-
(xk) и f(xk)
) со-
k
храняется и затем используется для вычисления производных:
f(x
)=exp(−xk) −xk,
k
(xk)=−exp(−xk) −1,
f

f
(xk)=exp(−xk).
ГЛАВА 2
Решение систем линейных уравнений
Список обозначений
A = {a
} — матрица (заглавные буквы, жирный шрифт)
nm
x — вектор (строчные буквы, жирный шрифт)
N — размер матрицы или вектора
· — норма вектора или матрицы
T
T
, x
A (x, y)=x
T
y — скалярное произведение векторов x и y
— транспонированная матрица или вектор
SPD — симметричная, положительно-определенная
(матрица) (Symmetric Positive Definite)
det(A) — определитель матрицы diag(a
I — единичная матрица (I =diag(1,...,1)) A
ε
,...,aN) — диагональная матрица с элементами a1,...,a
1
−1
p
— обратная матрица (A−1A = I) — требуемая точность вычисления
приближенного решения
e
p
e
a
e
r
∗
x
(k)
x
(k)
= x∗− x
e
(k)
= Ax
r z
(B) — n-й собственный вектор матрицы B
n
(B) — n-е собственное значение матрицы B
λ
n
s(B)=max|λ N
ops
(k)
(k)
− f — вектор невязки
n
— ошибка возмущения —ошибкаалгоритма — ошибка округления — точное решение системы линейных уравнений
(Ax
∗
≡ f ) — k-е приближение к точному решению —ошибкаk-го приближения
(B)| — спектральный радиус матрицы B
— общее количество операций (сложения
и умножения/деления), необходимое для решения системы линейных уравнений
N
34 Глава 2
2.1. Необходимые сведения из линейной алгебры
Вначале мы кратко рассмотрим некоторые основные определения из линейной алгебры, которые необходимы для понимания матричных вы­числений. В дальнейшем мы будем предполагать, что матрицы и вектора вещественные. Тогда вектора представляют собой элементы N -мерного евклидова пространства R ющие операции:
сложение: x + y = y + x, (x + y)+z = x +(y + z), умножение на скаляр: a(x + y)=ax + ay, x, y, z ∈ R
N
. В этом пространстве определены следу-
N
.
В дополнение, любой паре векторов x, y ∈ R
N
ставится в соответ­ствие вещественное число (x, y), которое называется скалярным про­изведением. Для скалярного произведения постулируются следующие аксиомы:
(x, y)=(y, x), (αx, y)=α(x, y), где α — вещественное число, (x + y, z)=(x, z)+(y, z), (x, x) > 0 при x = o,гдеo обозначает нулевой вектор, (o, o)=0,
N
x, y, z ∈ R
.
Векторы-столбцы
⎞
⎛
1
⎟
⎜
0
⎟
⎜
.
⎟
⎜
b
=
⎜
1
⎜ ⎝
, b
⎟
.
⎟ ⎠
.
=
2
0
образуют стандартный базис в R ложены по базису b
(n =1,...,N):
n
x = x
1b1
⎞
⎛
0
⎟
⎜
1
⎟
⎜
.
⎟
⎜ ⎜ ⎜ ⎝
⎟
.
⎟ ⎠
.
,..., b
=
N
0
N
. Все другие вектора могут быть раз-
⎛
⎜ ⎜ ⎜ ⎜ ⎜ ⎝
⎞
0
⎟
.
⎟
.
⎟ ⎟
.
⎟ ⎠
0 1
+ ...+ xNbN.
Коэффициенты x
представляют собой компоненты вектора x,иэто
n
представление обычно записывается в компактной форме:x=(x
,...,xN)T.
1
2.1. Необходимые сведения из линейной алгебры 35
Надстрочный индекс T обозначает операцию транспонирования, которая превращает векторы-столбцы в векторы-строки и наоборот. Скалярное произведение двух векторов x =(x
,...,xN)Tи y =(y1,...,yN)Tвы-
1
числяется следующим образом
N
T
(x , y)=x
y =
xnyn.
n=1
Два вектора x и y ортогональны, если (x, y)=0.Длятогочто­бы работать с каким-нибудь объектом, нам необходим способ его из­мерения. С этой целью вводится понятие нормы. Норма вектора x есть вещественное число xсо следующими свойствами:
x > 0 для x = o и o=0, αx= |α|·x, где α — некоторое вещественное число,x + yx+ yдля любых x, y.
Для вектора x =(x
,...,xN)Tвещественное число
1
x
N
=
p
n=1
|xn|
1/p
p
есть норма при любом значении p 1 (p-норма Гёльдера). На практике часто применяются следующие нормы:
N
x
x
x
Каждая квадратная матрица образует линейный оператор в век­торном пространстве R
=
1
2
∞
N
|xn|,
n=1
N
=
n=1
|xn|
1/2
2
=(x , x),
=maxn|xn|.
.Есливекторy представляет собой линейную
функцию вектора x,тогда
y = Ax, A = {a
nm
}
36 Глава 2
или
N
y
=
n
anmxm,n=1,...,N.
m=1
Правила операций над матрицами следуют из свойств линейных отображений. Так C = A+ B представляет собой сумму двух линейных функций, заданных матрицами A и B,гдеc
= anm+ bnm.Произве-
nm
дение AB представляет собой результат применения отображения B,а затем отображения A.Еслимыимеемy = A(Bx)=ABx = Cx,тогда компоненты матрицы C определяются по формуле:
N
=
c
nm
Транспонирование матрицы A осуществляется вращением A отно­сительно её главной диагонали: A
ankbkm,n,m=1,...,N.
k=1
T
= {anm}T= {amn}.
Диагональная матрица D имеет все нулевые компоненты, кроме компонент d
на главной диагонали: D = diag(d1,...,dN).
n
Теперь рассмотрим нормы матриц. Вещественное число Aесть норма матрицы, если выполняются следующие условия:
A > 0 для A = O,гдеO обозначает нулевую матрицу иO=0, αA= |α|A, где α — некоторое вещественное число,A + BA+ B, ABAB.
На практике часто применяются следующие нормы:
N
A
A
A
=max
1
=
2
=max
∞
N
n=1
n=1
m=1
N
m=1
|anm|,
N
|anm|.
1/2
2
a
nm
,
m
n
2.2. Системы линейных уравнений 37
В дальнейшем символ · будет обозначать некоторую из рассмот­ренных выше норм. Матричная норма называется согласованной с век­торной нормой, если AxA·x.Например,A
, A2с x2и A∞—сx∞.
с x
1
согласована
1
Свойство определённости матрицы играет важную роль в матрич­ных вычислениях. Так, матрица A называется положительно (отрица­тельно) определённой, если (x, Ax) > 0 (< 0) для всех ненулевых векто­ров x. Если знак скалярного произведения (x, Ax) зависит от вектора x, тогда матрица A называется неопределённой.
2.2. Системы линейных уравнений
Система линейных уравнений может быть представлена в виде:
Ax = f, det(A) =0, (2.1)
или в развернутой форме:
a
+ a12x2+ ...+ a1NxN= f1,
11x1
.
. .
+ aN2x2+ ...+ aNNxN= fN,
a
N1x1
где A = {a N на N , x =(x и f =(f
,...,fN)T— заданный вектор правой части размером N .
1
} — квадратная матрица коэффициентов размером
nm
,...,xN)T— вектор неизвестных размером N
1
Некоторые физические задачи непосредственно приводят к систе­мам линейных уравнений, например статический анализ конструкций (мост, здание, несущая конструкция самолёта), проектирование элек­трических сетей. Многие физические процессы описываются дифферен­циальными уравнениями, которые часто не могут быть решены аналити­чески. В этом случае строится приближенный, дискретный аналог этих дифференциальных уравнений, и это часто приводит к системам ли­нейных уравнений (если дифференциальные уравнения линейные). Так­же системы линейных уравнений возникают как промежуточный этап в других вычислительных процессах. Например, одна из процедур ре­шения систем нелинейных уравнений включает в себя решение набора систем линейных уравнений.
Классический метод решения систем линейных уравнений — ме­тод Крамера, но он очень неэффективный и, следовательно, бесполезен
38 Глава 2
с практической точки зрения. Для того чтобы решить этим методом си­стему с N неизвестными, необходимо вычислить N +1 определитель, а это потребует ∼ N небольшая система), тогда N неэффективный подход (если мы имеем A ния x тривиально: x = A
2
N! операций. Например, если N = 100 (довольно
ops
−1
f), потому что обращение матрицы требует
∼ 10
162
.Обращениематрицы—также
−1
,тогдавычислениереше-
приблизительно в три раза больше вычислений и в два раза больше оперативной памяти по сравнению с другими методами решения систем линейных уравнений.
Для того чтобы выбрать тот или иной метод для решения системы (2.1), следует учитывать свойства матрицы A, такие как симметрия, определённость, ленточная структура и разреженность. Это позволяет решить систему линейных уравнений более эффективно. Выбор метода также зависит от типа решаемой проблемы, а именно:
тип 1) решить систему линейных уравнений Ax = f один раз; тип 2) решить набор систем линейных уравнений Ax
k
= fk,
k =1,...,M,гдематрицаA остается неизменной для всех k.
2.3. Типы матриц, часто встречающиеся при решении
задач
1. Разреженные матрицы. Матрицы, большинство элементов ко-
торых — нули, называются разреженными. Одно из определений разре­женной матрицы следующее: матрица A размером N на N считается разреженной, если число её ненулевых элементов ∼ N Например, при N = 103 и γ =0.5 число ненулевых элементов 31 622 (общее число элементов 10
6
).
2. Ленточные матрицы. Многие задачи приводят к матрицам, которые не только разрежены, но имеют ленточную структуру ненулевых элементов. Матрица A = {a
} называется ленточной, если anm=0
nm
при |n − m| >k и l =2k +1есть ширина ленты:
A =
⎛
∗∗ ∗
⎜
∗ ..∗ 0
⎜
∗ ...∗
⎜ ⎜
∗←l →∗
⎜ ⎜ ⎜ ⎝
∗ ...∗
0 ∗ ..∗
⎞
⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠
∗∗∗
1+γ
(γ 0.5).
.
2.3. Типы матриц, часто встречающиеся при решении задач 39
3. Симметричные положительно-определённые матрицы. Мно­гие физические задачи приводят к симметричным положительно-опре­деленным (SPD) матрицам. Такие матрицы имеют следующие свойства:
T
1) A = A
(симметрия);
2) (x, Ax) > 0 для всех ненулевых векторов x (положительная опре- делённость).
Непосредственно использовать определение 2) для выяснения опреде­лённости матрицы невозможно. Однако существуют другие критерии, которые могут быть использованы на практике. Во-первых, все соб­ственные значения положительно-определенной матрицы положительны. Это может быть легко проверено с помощью теоремы Гершгорина (смот­ри Главу 3). Во-вторых, положительно-определенная матрица A разме­ром N на N имеет следующие свойства:
а) a
б) a
> 0 для всех n;
nn
nnamm
> (anm)2для n = m;
в) наибольший по модулю элемент должен лежать на главной диаго-
нали.
4. Треугольные матрицы. На практике часто возникают два ти-
па треугольных матриц:
L =
⎛
∗ ∗∗ 0
⎜ ⎜
∗ . ∗
⎜ ⎝
∗ ..∗
⎞
⎟ ⎟ ⎟ ⎠
∗∗∗∗∗
— нижняя треугольная (a
=0при m>n),
nm
⎛
∗∗∗∗∗
⎜ ⎜
U =
⎜ ⎝
∗ ..∗
∗ . ∗
0 ∗∗
⎞
⎟ ⎟ ⎟ ⎠
∗
—верхняятреугольная(a
=0при m<n).
nm
40 Глава 2
Система линейных уравнений Lx = f может быть решена прямой
подстановкой:
x
= f1/a
xn=
1
f
a
nn
1
n−1
−
n
m=1
anmx
11
,n=2,...,N.
m
(2.2)
Аналогично, система линейных уравнений Ux = f решается с помощью обратной подстановки:
x
= fN/a
−
m=n+1
N
T
N
f.
xn=
5. Ортогональные матрицы. Если матрица A ортогональная, то-
T
гда A
A = I или AT= A−1, и система линейных уравнений (2.1)
1
f
nn
n
a
решается очень легко: x = A
anmx
NN
,n= N − 1,...,1.
m
(2.3)
6. Разложимые матрицы. Квадратная матрица A называется
разложимой, если строки и столбцы этой матрицы можно переставить таким образом, что она представляется в следующем виде:
A =
BC OD
,
где B — квадратная матрица размером M на M , D — квадратная мат- рица размером L на L, C — матрица размером M на L и O —нулевая матрица размером L на M (M +L = N). Это свойство позволяет разбить исходную систему на две системы меньшего размера, что значительно уменьшает объем вычислений. Вначале разделим каждый из векторов x и f на два вектора:
x
=(x1,...,xM)T, x2=(x
1
=(f1,...,fM)T, f2=(f
f
1
M+1
,...,fN)T.
M+1
,...,xN)T,
Тогда система Ax = f решается в два этапа:
а) Dx
б) Bx
= f2;
2
= f1− Cx2.
1
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]