Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы научных вычислений. Введение в численные методы для физиков и инженеров
.pdf
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 + y x + 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 + B A + B,
AB AB.
На практике часто применяются следующие нормы:
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
В дальнейшем символ · будет обозначать некоторую из рассмотренных выше норм. Матричная норма называется согласованной с векторной нормой, если Ax A·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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
