Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы научных вычислений. Введение в численные методы для физиков и инженеров
.pdf
3.7. Заключительные замечания 81
Собственные значения этой матрицы (с точностью до четырёх десятичных знаков):
≈ 1.4142,λ2≈−1.4142,
λ
1
≈ 2.2360,λ4≈−2.2360.
λ
3
Результат применения QR-метода к матрице A −σI (σ =1) показан
вТаблице3.6.
3.7. Заключительные замечания
В течение последних десятилетий был достигнут значительный прогресс в области вычислительной линейной алгебры. Это привело к созданию эффективного и надёжного программного обеспечения для решения
задач на собственное значение. Все основные пакеты программ, такие
как IMSL
дур для решения этой проблемы. Эти процедуры реализуют различные
виды ортогональных разложений (одно из них, QR-разложение, мы обсуждали) для различных типов матриц. В случае стандартной задачи
на собственное значение (3.1) имеются вычислительные процедуры для
вещественных симметричных и несимметричных матриц, комплексных
общего вида и эрмитовых матриц. В случае обобщённой задачи на собственное значение Az
для следующих ситуаций:
,NAGиLAPACK,включаютвсебябольшойнаборпроце-
= λnMznимеются вычислительные процедуры
n
1) матрицы A и M симметричные, и матрица M также положитель-
но-определённая;
2) матрицы A и M вещественные или комплексные матрицы общего
вида.

ГЛАВА 4
Решение систем нелинейных
уравнений
Список обозначений
x =(x
,...,xN)
1
N — число уравнений
· — норма вектора или матрицы
ε
p
∗
∗
=(x
x
(k)
x
(k)=x∗−x(k)
e
λ
n
s(B)=max
F(x)=
, ..., x
1
(k)
=(x
1
(B) — n-е собственное значение матрицы B
n
∂x
Тема, обсуждаемая в этой главе, часто представляет довольно труд-
ную проблему. Решение системы из N нелинейных уравнений часто требует гораздо больших усилий, чем просто решение N одномерных уравнений. Например, как мы видели в Главе 1, первая производная функции
играет важную роль в создании итерационных алгоритмов. В случае N
уравнений она заменяется матрицей из N
ных. Некоторые методы, применяемые для решения уравнения f (x)=0,
могут быть обобщены на случай систем нелинейных уравнений, однако
простые методы, типа метода деления отрезка пополам, не имеют аналогов в многомерном случае. Поэтому, прежде чем использовать ту или
иную итерационную схему, часто необходим некоторый предварительный анализ, чтобы определить приближённое расположение решения.
T
— вектор (жирные строчные буквы)
— требуемая точность вычисления
приближённого решения
∗
T
)
N
(k)
(k)
1
"
N
T
)
,...,e
, ..., x
=(e
|λn(B)| — спектральный радиус матрицы B
∂f
n
(x)
m
— точное решение системы нелинейных
уравнений (f (x
∗
) ≡ o)
— k-е приближение к точному решению
(k)
)T—ошибкаk-го приближения
N
—матрицаЯкоби
2
первых частных производ-

4.1. Метод простой итерации 83
.....................
.....................
.....................
.................
...
.
.....................
...................
...................
...................
...................
.........
.....................
.....................
.....................
.................
...
.
.....................
Система нелинейных уравнений, в общем виде, записывается как
f(x)=o (4.1)
или в развёрнутой форме:
, ..., xN)=0
f
1(x1
............
, ..., xN)=0.
f
N(x1
ВслучаеN уравнений мы должны заменить интервалы на некото-
рые множества в R
S
c(x0
S
o(x0
Форма шара зависит от векторной нормы. Например, на рисунке 4.1
показаны различные формы шаров для N =2.
a) b) c)
a
Рис. 4.1. Sc((0, 0),a) для некоторых векторных норм: a) ·1;b)·2;c)·
N
,аименно:
,a)={x ∈ RN: x − x0 a} (закрытый шар),
,a)={x ∈ RN: x − x0 <a} (открытый шар).
x
1
a
x
2
a
x
2
a
x
1
a
x
4.1. Метод простой итерации
2
∞
По аналогии с (1.1), систему (4.1) можно представить в следующей
эквивалентной форме:
x = g(x) (4.2)

84 Глава 4
или
x
= g1(x1, ..., xN)
1
............
= gN(x1, ..., xN),
x
N
где g(x) — итерационная вектор-функция векторного аргумента.
Системы нелинейных уравнений часто возникают непосредствен-
но в виде (4.2) (например, в численных схемах для дифференциальных
уравнений), в этом случае никаких дополнительных усилий для преобразования уравнений (4.1) в систему (4.2) не требуется. Если продолжить
аналогию с методом простой итерации для одного уравнения, то итерационный процесс, основанный на уравнении (4.2), можно организовать
следующим образом:
1) выбирается некоторый начальный вектор x
гается, что x
∗
∈ So(x0,a));
(0)
∈ So(x0,a) (предпола-
2) последующие приближения вычисляются по формуле:
или
(k+1)
x
1
(k+1)
x
= g1(x
= g(x
(k)
, ..., x
1
(k)
) (4.3)
(k)
)
N
............
(k+1)
x
N
= gN(x
(k)
, ..., x
1
(k)
N
)
k =0, 1,...
3) если
(k+1)
x
x
или
x
(k+1)
− g(x
то итерационный процесс завершён и
∗
− x
x
x∗
− x
(k+1)
(k)
(k)
(k)
ε
p
) εp,
.
ε
p

4.1. Метод простой итерации 85
Как и раньше, нам необходимо выяснить, при каких условиях
(k)
lim
x
k→∞
= x∗.
Обсудим этот вопрос, выполнив простой анализ. Вначале мы введём
ошибку k-го приближения как e
(k)
, ..., x
(x
1
и
(k+1)
(x
Подставим эти выражения в (4.3) и разложим g(x
(k)
ням e
в окрестности x∗как функцию векторного аргумента (предполагая, что все частные производные функции g(x) непрерывны). Учитывая
также, что x
, ..., x
1
∗
= g(x∗),мыполучим
e
(k+1)
n
(k+1)
N
=
(k)
N
(k+1)
x
N
m=1
(k)
(k)
x
)=(x
)=(x
∂g
∂x
(k)−x∗
= x
= x∗+ e
∗
+ e
1
= x∗+ e
(k+1)
∗
+ e
1
1
n
(x∗)e
m
.Тогдамыможемзаписать
(k)
,
(k)
, ..., x
1
(k+1)
(k)
m
,
, ..., x
+ O((e
(k)
∗
+ e
N
(k)
n
)
N
(k+1)
∗
+ e
N
N
∗
+ e
)2)
).
(k)
) по степе-
или в матричной форме:
(k)
= Be
n
(x∗)"— итерационная матрица.
m
+ O(e
(k)2
), (4.4)
достаточно мала, то вторым слагаемым в
где
B = {b
nm
Если норма ошибки e
} =
(k+1)
e
∂g
∂x
(k)
правой части выражения (4.4) можно пренебречь, и тогда оно совпадает
с выражением (2.16). Следовательно, условие сходимости итерационного
процесса (4.3) вблизи точного решения описывается Теоремой 2.1.
Сходимость метода простой итерации
Необходимое и достаточное условие для сходимости итерационного
процесса (4.3):
s(B)=max
|λn(B)| < 1,
n

86 Глава 4
и достаточное условие:
B < 1. (4.5)
Эти условия имеют скорее теоретическое, чем практическое значение, так как мы не знаем x
которое может быть полезным. Пусть x
∗
. По аналогии с (1.11), получим условие,
∗
∈ So(x0,a) иматрицаЯкоби
для функции g(x)
⎛
C(x)={c
nm
(x)} =
∂g
1
⎜
∂x
1
⎜
∂g
⎜
∂g
n
(x)"=
∂x
m
⎜
⎜
⎜
⎜
⎜
⎝
∂x
∂g
∂x
2
1
N
1
.
.
.
(x)
(x)
(x)
∂g
∂x
∂g
∂x
∂g
∂x
N
1
(x) ...
2
2
(x) ...
2
.
.
.
(x) ...
2
∂g
∂x
∂g
∂x
∂g
∂x
⎞
1
(x)
⎟
N
⎟
⎟
2
(x)
⎟
⎟
N
⎟
.
⎟
.
.
⎟
⎠
N
(x)
N
существует для всех x ∈ S
,a) (заметим, что C(x∗)=B). Если
o(x0
элементы матрицы C(x) удовлетворяют неравенству
1
,n,m=1,...,N, (4.6)
N
для всех x ∈ S
|c
(x)| <
nm
,a), тогда достаточное условие (4.5) также выполня-
o(x0
ется для любой матричной нормы.
П
РИМЕР 4.1 (МЕТОД ПРОСТОЙ ИТЕРАЦИИ). Рассмотрим следующую
систему уравнений:
#
f
1(x1,x2
f
2(x1,x2
)=x2(x1− 1) − 1=0,
2
1
− x
2
− 1=0.
2
)=x
(4.7)
Одна из возможностей представить эту систему в эквивалентной форме
(4.2) — выразить x
из первого уравнения и x2из второго уравнения:
1
⎧
⎨
=1+1/x2= g1(x1,x2),
x
1
=x
2
− 1=g2(x1,x2).
1
⎩
x
2
Тогда итерационная схема имеет вид
(k+1)
x
2
(k+1)
=1+1/x
x
1
$
2
(k)
x
=
− 1,k=0, 1, ... .
1
(k)
2
,

4.1. Метод простой итерации 87
Точ ное решен ие x∗∈ So((2, 2), 1). Выберем начальный вектор x
=(2, 2) и ε
Таблица 4.1.
=10−5. Результаты вычислений представлены в Таблице 4.1.
p
k x
1.50000
1
1.73205
(k)
(k)
x
− x
(k−1)
2/x
(k)
2f(x
2.0056e − 01 1.7551e − 00
(k)
... ... ... ...
1.69258
10
1.34646
4.4561e − 02 8.5105e − 02
... ... ... ...
1.71914
20
1.40036
4.4992e − 03 9.0029e − 03
... ... ... ...
1.71642
30
1.39483
4.5324e − 04 9.0258e − 04
... ... ... ...
1.71669
40
1.39536
4.5665e − 05 9.0982e − 05
... ... ... ...
1.71667
47
1.39532
6.2770e − 06 4.4503e − 05
)
(0)
=
2
Эти результаты показывают, что сходимость довольно медленная.
Для того чтобы получить количественную характеристику сходимости,
проведем простой анализ, считая x
(47)
точным решением. Матрица Яко-
би C(x) для нашей итерационной функции имеет вид
⎞
1
2
x
⎟
2
,
⎠
0
C(x)=
⎛
⎜
⎝
x
x
0 −
1
2
− 1
1

88 Глава 4
тогда матрица B приближённо оценивается как
B = C(x
∗
) ≈ C(x
(47)
) ≈
0 −0.51
1.23 0
.
Легко проверить, что ни условие (4.5), ни условие (4.6) не удовлетворяются, но сходимость имеет место, так как s(B) ≈ 0.8.
Часто можно ускорить сходимость метода простой итерации, слегка
изменив процесс вычислений. Идея такой модификации очень проста:
для вычисления n-й компоненты вектора x
только
(k)
x
(m = n, ...,N),
m
(k+1)
можно использовать не
но также уже вычисленные компоненты вектора следующего приближения:
(k+1)
(l =1, ...,n− 1).
x
l
Таким образом, модифицированный метод простой итерации может
быть представлен в виде следующей итерационной схемы:
(k+1)
x
N
(k+1)
x
2
(k+1)
x
1
= g2(x
.....................
= gN(x
= g1(x
(k+1)
1
(k+1)
1
(k)
, ..., x
1
(k)
,x
2
, ..., x
(k)
N
, ..., x
(k+1)
,x
N−1
)
(k)
)
N
(4.8)
(k)
),
N
k =0, 1,... .
Если приближения, генерируемые итерационным процессом (4.3),
сходятся, то итерационный процесс (4.8) сходится, как правило, быстрее
за счёт более полного использования информации.
П
РИМЕР 4.2 (МОДИФИЦИРОВАННЫЙ МЕТОД ПРОСТОЙ ИТЕРАЦИИ). Мо-
дифицированная простая итерация для системы (4.7) представляется в
виде
(k+1)
x
2
Как и прежде, выберем начальный вектор x
(k+1)
=1+1/x
x
1
$
=
(k+1)
x
1
2
(k)
,
2
− 1,k=0, 1, ... .
(0)
=(2, 2) и εp=10−5.
Результаты вычислений представлены в Таблице 4.2.

4.2. Метод Ньютона 89
Таблица 4.2.
k x
1.50000
1
1.11803
(k)
(k)
x
− x
(k−1)
2/x
(k)
2f(x
3.5844e − 01 4.4098e − 01
(k)
)
2
... ... ... ...
1.72076
10
1.40036
7.5781e − 03 9.3355e − 03
... ... ... ...
1.71671
20
1.39538
7.6678e − 05 5.9607e − 05
... ... ... ...
1.71667
25
1.39533
7.7251e − 06 9.5041e − 06
Небольшое изменение порядка вычислений привело к уменьшению
количества итераций в два раза, а значит, и к уменьшению количества
операций в два раза.
4.2. Метод Ньютона
В Главе 1 мы рассматривали метод Ньютона, который является
очень эффективным методом для решения скалярного уравнения. Этот
метод обобщается и на случай системы уравнений. Пусть x
и первые частные производные векторной функции f (x) существуют,
тогда можно разложить f
(k)
∈ So(x0,a) по степеням (x − x
x
f
n(x1
N
m=1
∂f
∂x
+
= p
(x) в окрестности некоторого приближения
n
, ..., xN)=fn(x
n
(k)
(x
m
)(xm− x
, ..., xN)+O((xn− x
n(x1
(k)
):
(k)
1
(k)
)+O((xn− x
m
, ..., x
(k)
n
(k)
N
)2),
)+
(k)
n
n =1, ..., N.
)2)=
∗
∈ So(x0,a)

90 Глава 4
Это разложение можно также представить в матричной форме:
f(x)=f (x
(k)
)+F(x
(k)
)(x −x
(k)
= p(x)+(O(x − x
)+O(x − x
(k)2
),
(k)2
)=
где
⎛
∂f
1
⎜
∂x
1
⎜
∂f
(k+1)
)(x
⎜
⎜
∂x
⎜
⎜
⎜
⎜
⎝
∂f
∂x
)=o или
(k+1)
− x
2
1
N
1
∂f
n
F(x)=
∂x
(x)"=
m
есть матрица Якоби для функции f (x). Следующее приближение определяется из условия p(x
(k)
F(x
.
.
.
(x)
(x)
(x)
(k)
∂f
∂x
∂f
∂x
∂f
∂x
)+f(x
1
(x) ...
2
2
(x) ...
2
.
.
.
N
(x) ...
2
(k)
)=o. (4.9)
∂f
∂x
∂f
∂x
∂f
∂x
⎞
1
(x)
⎟
N
⎟
⎟
2
(x)
⎟
⎟
N
⎟
.
⎟
.
.
⎟
⎠
N
(x)
N
На практике вычисления по методу Ньютона организуются следующим образом:
1) выбирается некоторый начальный вектор x
(0)
;
2) для каждого значения k =0, 1,...решается система линейных уравнений
относительно вектора Δx
ющее приближение вычисляется очень легко: x
(k+1)
+Δx
;
F(x
(k)
)Δ x
(k+1)
(k+1)
= −f(x
,гдеΔx
(k+1)
(k)
) (4.10)
= x
(k+1)
− x
(k+1)
(k)
.Следу-
= x
(k)
+
3) если
(k+1)
x
x
или
f(x
то итерационный процесс завершён и
∗
x
− x
x∗
− x
(k+1)
(k+1)
(k)
) εp,
(k)
ε
ε
p
p
.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
