МИНИСТЕРСТВО ОБРАЗОВАНИЯ РФ СТАВРОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ _________________________________________________...
16 downloads
198 Views
1MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РФ СТАВРОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ______________________________________________________
На правах рукописи
Плюта Алексей Иванович Об итерационных методах решения операторных уравнений второго рода Специальность 05.13.18. – «математическое моделирование, численные методы и комплексы программ» Диссертация на соискание ученой степени кандидата физико-математических наук
Научный руководитель – доктор физико-математических наук, профессор, член-корреспондент АН Таджикистана, академик МАИ В.Я. Стеценко
Ставрополь – 2004
2
ОГЛАВЛЕНИЕ ВВЕДЕНИЕ…………………………………………………………………….
4
ГЛАВА 1. Обзор литературы…………………………………………………
8
§1. Метод последовательных приближений...................................................
8
§2. Метод ускорения сходимости монотонных приближений к решению уравнения вида x = Ax + f ……………………………………………………..
15
§3. Метод однопараметрического итеративного агрегирования решения линейных операторных уравнений вида x = Ax + f , где оператор A - матрица n - го порядка…………………………………………………………….
21
§4. Метод однопараметрического итеративного агрегирования решения нелинейных операторных уравнений вида x = F ( x) + f , где F ( x) - нелинейный оператор………………………………………………………………
27
ГЛАВА 2. Построение приближений, сходящихся к спектральному радиусу и собственному вектору линейного оператора………………………
32
§5. Построение приближений, сходящихся к спектральному радиусу линейного оператора……………………………………………………………..
32
§6. Построение приближений, сходящихся к собственному вектору линейного оператора……………………………………………………………..
41
ГЛАВА 3. Развитие методов построения приближений, сходящихся к точному решению операторного уравнения вида x = Ax + f ……………….
56
§7. Об одном итерационном методе решения системы линейных алгебраических уравнений вида x = Ax + f с квадратной матрицей A , в случае, когда спектральный радиус матрицы A , больше чем единица…………….
56
§8. Получение двусторонних оценок точного решения x* операторного уравнения вида x = Ax + f , в случае, когда спектральный радиус оператора A не обязательно меньше единицы…………………………………….
65
§9. О некоторых подходах к уточнению границ решения операторных уравнений вида x = Ax + f в случае, когда спектральный радиус оператора A не обязательно меньше единицы. §10. “Гибрид” методов ускорения сходимости монотонных приближений к решению x* уравнения вида x = Ax + f и однопараметрического итера-
73
3
тивного агрегирования………………………………………………………..
86
§11. Об одном варианте метода ускорения сходимости монотонных приближений к решению уравнения вида x = Ax + f …………………………....
93
§12. Об одном варианте метода Зейделя…………………………………….
100
ЗАКЛЮЧЕНИЕ……………………………………………………………….. 112 ЛИТЕРАТУРА………………………………………………………………… 114 ПРИЛОЖЕНИЕ……………………………………………………………….. 121
4
Введение При решении широкого класса задач математического анализа, алгебры, экономики требуется находить решение операторных уравнений. В тех случаях, когда процесс отыскания точного решения является затруднительным, на помощь приходят итерационные методы, позволяющие найти приближенное решение с определенной степенью точности.
Соответствующий
класс задач можно представить с помощью операторного уравнения вида x = Ax + f
(1)
с линейным или нелинейным оператором А, действующим в банаховом пространстве Е, и свободным членом f из этого пространства. Большое практическое значение приобретает возможность строить приближения un и, соответственно, vn к решению x* операторного уравнения вида (1), та-
кие что un ≤ x* ≤ vn
При этом, оказывается, параллельно решаются две важные задачи теории приближенных методов решения операторных уравнений – задача об оценке погрешности приближенного решения, а также задача об априорной оценке относительной погрешности приближенного решения. Использование современных ЭВМ открывает широкие возможности для решения таких задач. Математическое моделирование стало активно внедряться в практику научных и прикладных разработок при исследовании сложных явлений и процессов, происходящих в экономике. Лишь с помощью современных ЭВМ удается проводить численное моделирование достаточно сложных экономических процессов. Существенные прикладные преимущества, проведенные исследования практической скорости сходимости итерационных процессов к точному решению x* операторного уравнения вида (1), возможность контроля результатов в процессе решения и наличие математических обоснований, дают повод обратить серьезное внимание на итерационные методы не только как на объект интересных тео-
5
ретических исследований, но и как на новые подходы к организации и проведению реальных расчетов плановых задач большой размерности и сложной структуры. Актуальность проблемы. Балансовая модель производства является одной из наиболее простых математических моделей. Она записывается в виде системы уравнений, каждое из которых выражает требование равенства (баланса) между количеством продукции, производимой отдельным экономическим объектом, и совокупной потребности в этом продукте. Отсюда происходит название модели. Впервые балансовые модели начали использоваться в СССР в 20-х годах. В более или менее законченном виде теория балансовых моделей была разработана американским ученым В.В. Леонтьевым в середине 30-х годов. Однако в те годы ни уровень развития математической науки, ни качество вычислительной техники не позволили широко распространить балансовый метод. За разработку и внедрение в практику метода межотраслевого баланса группа советских экономистов под руководством академика А.Н. Ефимова в 1968 году была удостоена Государственной премии СССР. В настоящее время большое количество работ посвящается этой модели и ее применению для решения различных задач. Такой интерес к балансовой модели определяется тем, что, как оказалось, эта модель хорошо отображает многие существенные особенности современного производства и в то же время легко поддается расчету. Во многих странах мира балансовый метод используется для экономического анализа, планирования и прогнозирования. В связи с внедрением ЭВМ в научные разработки, значительно повысился интерес к различным численным методам и алгоритмам, реализация которых граничит с проведением вычислительного эксперимента. Потребность в таком подходе к решению задач математической экономики диктуется все усложняющимися запросами практики, а также связана с попыткой создания более рациональных и более общих теоретических моделей для изучения сложных экономических явлений.
6
Активное использование методов численного моделирования позволяет резко сократить сроки научных и конструкторских разработок. Цели работы - приближенное решение операторных уравнений вида (1) в случаях, когда спектральный радиус ρ ( A) оператора A не обязательно меньше единицы; построение итерационных последовательностей сходящихся к решению уравнения (1), к собственным значениям и собственным векторам оператора A ; разработка новых методов, повышающих скорость сходимости итераций к решению уравнения (1); разработка соответствующего программного обеспечения, позволяющего реализовать предложенные методы. Научная новизна результатов работы. Развитие теории линейных и нелинейных операторов, действующих в полуупорядоченных банаховых пространствах. Так, например, предложены развития методов решения операторных уравнений вида (1) в случаях, когда у оператора A спектральный радиус r ( A) не обязательно меньше единицы. Предложен метод построения двусторонних оценок точного решения x* операторного уравнения вида (1) в случае, когда спектральный радиус оператора A не обязательно меньше единицы. Предложены варианты методов, позволяющие строить приближения к решению уравнений вида (1), обладающие высокой скоростью сходимости. Разработано программное обеспечение на языке программирования TURBO PASCAL, реализующее предложенные итерационные методы. Достоверность результатов работы вытекает из математической строгости постановки и решения исследуемых задач, а также из совпадения ряда полученных результатов в частных случаях с известными в литературе. Практическая значимость работы заключается в возможности применения полученных методов решения уравнения (1) при решении конкретных задач математики и экономики. Отдельные результаты могут быть использованы при чтении специальных курсов и подготовке учебных пособий. На защиту выносятся следующие положения:
7
- итерационный метод решения системы линейных алгебраических уравнений вида (1) с квадратной матрицей A , в случае, когда наибольшее по модулю собственное значение матрицы A , больше чем единица; - методы получения двусторонних оценок точного решения x* операторного уравнения вида (1), в случае, когда спектральный радиус оператора A не обязательно меньше единицы, а также подходы к уточнению полученных оценок; - синтез методов ускорения сходимости монотонных приближений к решению x* уравнения вида (1) и однопараметрического итеративного агрегирования; - метод ускорения сходимости монотонных приближений к решению уравнения вида (1), в случае выбора в качестве начальных приближений векторов, которые ограничивают точное решение x* уравнения вида (1) «сверху« и «снизу»; - вариант метода Зейделя, позволяющий строить приближения, сходящиеся к точному решению x* уравнения (1) с помощью метода ускорения сходимости. Структура и объем диссертации. Диссертация состоит из введения и трех глав, заключения, списка литературы и приложения. В ней принята сквозная нумерация параграфов, для утверждений и формул введена двойная нумерация, включающая номер параграфа и порядковый номер утверждения или формулы в нем. Диссертация изложена на 167 страницах, список использованной литературы содержит 82 наименования.
8
ГЛАВА 1. ОБЗОР ЛИТЕРАТУРЫ §1. Метод последовательных приближений Одним из наиболее известных итерационных методов решения систем линейных уравнений является метод последовательных приближений [4] (метод простой итерации). Система уравнений Ax = b
тем или иным методом преобразуется к виду уравнения “второго рода”: x = Bx + f
(1.1)
после чего его решение находится как предел последовательности xm +1 : xm +1 = Bxm + f ,
(m = 0,1,2,...)
(1.2)
где B - матрица порядка (n × n) , f - свободный вектор, f ∈ R n , x - неизвестный вектор, x ∈ R n , x0 - начальное приближение. Метод (1.2) называется методом простой итерации. Теорема 1.1. (о достаточном условии сходимости метода простой итерации) Если норма матрицы B меньше единицы: B < 1 , то система уравнений (1.1) , при любом свободном члене f ∈ R n , имеет единственное решение и итерационный процесс (1.2)
сходится к решению x* = x* ( f ) со скоростью
геометрической прогрессии: m
x* − xm +1 ≤ c ⋅ x1 − x0 ⋅ B ,
m = 0,1,2,... , c − const.
Качество итерационного процесса удобно характеризовать скоростью убывания отношения погрешности после m итераций к начальной погрешности: || xm || || B m x0 || = sup =|| B m || . x 0 ≠ 0 || x0 || x 0 ≠ 0 || x0 ||
S m = sup
m
Можно гарантировать, что величина S m ≤ ε , если B ≤ ε , т.е. при m ≥ mε =
ln(ε −1 ) . ln(|| B ||−1 )
Если существуют постоянные γαβ, γβα такие, что при x ≠ 0
9 || x||β
≤γαβ,
|| x||α
|| x||α ≤ γ βα , || x||β
то нормы x α и x β в R n называются эквивалентными. Имеем || r m ||β ≤ γ αβ || r m ||α ≤ γ αβ || B||αm || r 0 ||α ≤ γ αβ γ βα || B||αm || r 0 ||β .
Таким образом, если условие изложенной выше теоремы выполнено для нормы . α , то утверждение справедливо относительно любой эквивалентной ей норме. Любые две нормы в конечномерном пространстве являются эквивалентными. В частности, нормы x 1 , x 2 , x ∞ , вычисляемые соответственно по формулам, || x||1 =
m
∑ |x | , j
m
∑ |x |
|| x||2 =
2
j
,
|| x ||∞ = max | x j | 1≤ j ≤ m
j =1
j =1
эквивалентны между собой вследствие справедливости цепочки неравенств x
∞
≤ x 2 ≤ x 1 ≤ m x ∞.
Определение 1.1. Норма A называется согласованной с нормой x в пространстве, если для каждого x из пространства векторов выполняется Ax ≤ c x ,
где с-const. Согласованные с вышеперечисленными нормами в пространстве матриц являются соответственно нормы m
A 1 = max (∑ | aij |) , 1≤ j ≤ m
i =1
A 2 = max λi( A* A) , 1≤ i ≤ m
m
A ∞ = max(∑ | aij |) , 1≤ i ≤ m
j =1
где λiD - собственные значения матрицы D = A* ⋅ A , а A* - матрица, сопряженная к матрице A (т.е. это результат комплексного сопряжения к матрице транспонированной по отношению к матрице A ). При решении уравнения вида (1.1) методом последовательных приближений (1.2) по заданной точности ε > 0 вычислений бывает важно определить число итераций "m" . Поясним как найти m - количество итераций, обеспечи-
10
вающих, для получения искомого решения системы (1.1) , приближение к решению с точностью до ε . При известных
условиях к решению уравнения (1.1) сходится итераци-
онный процесс (1.2) , при любом начальном приближении x0 , при этом таковыми известными условиями является одно из следующих условий: n
a)
max ∑ aij ≤ q1 <1;
б)
max ∑ a ji ≤ q2 <1;
i = 1, n j = 1 n
i = 1, n j = 1
n
в)
n
∑∑a
2 ij
i =1 j =1
≤ q 3 <1.
Пусть ε > 0 заданное число, тогда для того чтобы гарантировать неравенство: x − xm+1 *
(i )
qim ≤ ⋅ x1 − x0 1 − qi
(i )
< ε , (i = 1,2,3)
где x (i ) соответственно одна из следующих норм: x
( 1)
= max xi , x i = 1, n
2
=
n
∑ i =1
xi , x 3 =
n
∑x
2 i
,
i =1
положив ln
ε (1 − qi )
z=
x1 − x0 ln(qi )
(i )
,
достаточно определить m по формуле: m = [z ] + 1,
где [z ] обозначает целую часть числа z (наибольшее целое число, не превосходящее z ). Отметим явные преимущества метода последовательных приближений: - относительная простота построения последовательности xm , сходящейся к решению уравнения (1.2) ;
11
- легкость реализации метода на ЭВМ. Недостатками метода последовательных приближений является, вообще говоря, недостаточно высокая скорость последовательных приближений (1.2) , к решению уравнения (1.1) , особенно в тех случаях, когда наибольшее
по модулю собственное значение матрицы B , близко к единице. Рассмотрим соответствующие примеры, когда по заданной точности ε определяется количество приближений к вектору являющимся решением данной системы уравнений. В примере 1 выполняются все три условия (а,б,в). Пример 1. Рассмотрим систему уравнений вида (1.1) , где . 0.4 0.4 01 B = 0.3 0.2 0.4 , 0.3 . 012 . 01
1 f = 1 . 1
5.337423 Заметим, что значение точного решения x = 4.754601 3.006134 *
а спектральный
радиус оператора B : r ( B) = 0.7707 . Используем метод (1.2) . В качестве на 1 чального приближения выберем вектор x0 = 1 . Пусть 1
ε = 0.0001 . Получен-
ные значения последовательных приближений представим в виде таблицы. Таблица 1 № п/п, m
Значения приближений xm
1
1.900000
1.900000
1.520000
2
2.672000
2.558000
1.874000
4
3.750516
3.450924
2.336384
10
5.004784
4.481399
2.865818
17
5.283694
4.710473
2.983470
28
5.334361
4.752086
3.004843
42
5.337343
4.754535
3.006101
12
52
5.337417
4.754596
3.006132
53
5.337418
4.754597
3.006133
На основании сказанного выше, имеют место оценки близости x* − xm 2 < ε В данном примере m = 53 . Рассмотрим пример в котором не выполняется условие а). Пример 2. Рассмотрим систему уравнений вида (1.1) , где 0 .4 0 .6 0 .1 B = 0 .3 0 .2 0 .4 , 0.1 0.12 0.3
1 f = 1 . 1
8.681318 Заметим, что значение точного решения x = 6.387362 3.763736 *
а спектральный
радиус оператора B : r ( B) = 0.8404 . Используем метод (1.2) . В качестве начального приближения выберем 1 вектор x0 = 1 . Определим ε = 0.0001 . Полученные значения последователь 1
ных приближений представим в виде таблицы. Таблица 2 № п/п, m
Значения приближений xm
1
2.100000
1.900000
1.520000
2
3.132000
2.618000
1.894000
8
6.723696
5.059942
3.106727
10
7.298678
5.449825
3.299700
20
8.438316
6.222588
3.682180
42
8.676017
6.383767
3.761957
62
8.681154
6.387251
3.763681
130
8.681318
6.387362
3.763736
152
8.681318
6.387362
3.763736
13
В данном примере m = 152 . На основании сказанного выше, имеют место оценки близости x* − xm 2 < ε . Рассмотрим пример, в котором выполняется лишь условие в). Пример 3. Рассмотрим систему уравнений вида (1.1) , где 0 .4 0 .6 0 .1 B = 0 .3 0 .2 0 .4 , 0 .1 0 .2 0 .3
1 f = 1 . 1
10 Заметим, что значение точного решения x = 7.5 , а спектральный радиус 5 *
оператора B : r ( B) = 0.8662 . Используем метод (1.2) . В качестве начального приближения выберем 1 вектор x0 = 1 . Определим ε = 0.00001 . Полученные значения последователь 1
ных приближений представим в виде таблицы. Таблица 3 № п/п, m
Значения приближений xm
1
2.100000
1.900000
1.600000
2
3.140000
2.650000
2.070000
8
7.098880
5.451648
3.764142
25
9.747447
7.321683
4.892414
60
9.998342
7.498829
4.999293
100
9.999994
7.499996
4.999997
491
10.00000
7.500000
5.000000
777
10.00000
7.500000
5.000000
В данном примере m = 777 . На основании сказанного выше имеют место оценки близости x − xm 3 < ε . Проиллюстрируем пример у которого не выполняется ни одно из данных условий (а,б,в).
14
Пример 4. Рассмотрим систему уравнений вида (1.1) , где 0 .4 0 .6 0 .1 B = 0 .3 0 .2 0 .4 , 0 .1 0 .3 0 .3
1 f = 1 . 1
12.474226 Заметим, что значение точного решения x* = 9.587628 , а спектральный 7.319587
радиус оператора B : r ( B) = 0.8973 . Используем здесь метод (1.2) . В качестве начального приближения выбе 1 рем вектор x0 = 1 . После выполнения соответствующих действий замечаем, 1
что ни одно из данных условий не выполняется. При решении данного примера методом последовательных приближений получим итерационный процесс, сходящийся к точному решению x* , но, используя, изложенный выше метод мы не можем определить количество итераций по заданной наперед точности ε . Отметим, что проиллюстрированные выше примеры были реализованы при помощи разработанной автором программы на языке программирования TURBO PASCAL. Из приведенных примеров видно, что для одного и того же ε , номер приближений, начиная с которого выполняется неравенство, бывает различным, а это говорит о том, что для достижения одной и той же точности ε для приближения к искомому вектору решения заданной системы уравнений приходится совершать различное количество приближений. В этой связи уместно ввести характеристику, которую можно назвать скоростью сходимости метода последовательных приближений. Эта скорость определяется числом тех итераций, которые необходимо совершить для того, чтобы соответствующие приближения xm +1 отличались от точного решения x* меньше чем на ε . Оказывается [10], что эта скорость определяется величиной спектрального радиуса r ( B) матрицы B .
15
§2. Метод ускорения сходимости монотонных приближений к решению уравнения вида x = Ax + f Рассмотрим операторное уравнение вида x = Ax + f ,
(2.1)
где A - линейный положительный оператор относительно телесного нормального конуса K в банаховом пространстве E , f некоторый вектор из E . Предположим, что спектральный радиус r ( A) < 1 ; в этом случае уравнение (2.1)
имеет единственное решение
x* ,
которое является пределом
последовательных приближений xn +1 = Axn + f , (n = 0,1,2,...)
при любом начальном приближении x 0 ∈ E . Допустим, что начальное приближение x 0 = u 0 выбрано так, что u0 ≤ Au0 + f .
(2.2)
Тогда последовательные приближения un +1 = Aun + f
будут удовлетворять соотношениям u 0 ≤ u1 ≤ ... ≤ u n ≤ u n +1 ≤ ... ≤ x * .
(2.3)
Аналогично, если начальное приближение x 0 = v 0 удовлетворяет соотношению v0 ≥ Av0 + f ,
(2.4)
то последовательные приближения vn +1 = Avn + f
удовлетворяют соотношениям x * ≤ ... ≤ v n +1 ≤ v n ≤ ... ≤ v1 ≤ v 0 .
(2.5)
Таким образом, если удается найти элементы u 0 и v 0 , удовлетворяющие соответственно соотношениям (2.2) и (2.4) , то мы получаем монотонные приближения по избытку и по недостатку к точному решению x * операторного уравнения (2.1) . Наличие двусторонних монотонных приближений дает
16
одновременно оценку погрешности: если приближенным значениям решения x * считать элемент
1 (u n + v n ), то из (2.3) 2
и (2.5)
вытекает двусторонняя
оценка −
1 (v n − u n ) ≤ 1 (u n + v n ) − x * ≤ 1 (v n − u n ). 2 2 2
Из этой оценки, как правило, нетрудно получить оценку для норм разности x* − vn , .
x* − un .
Основную трудность составляет отыскание начальных приближений u 0 и v 0 . В [36] указан алгоритм отыскания таких начальных приближений.
Конечно, в различных частных случаях элементы u 0 и v 0 можно выбирать более простым способом. Например, если f ∈ K , то в качестве u 0 , конечно, можно выбрать элемент f . Пусть u 0 и v 0 удовлетворяют соответственно соотношениям (2.2) и (2.4) . Будем считать дополнительно, что выполнены неравенства u1 − u 0 ≥ p1 (v 0 − v1 ) , v 0 − v1 ≥ q1 (u1 − u 0 ) ,
где одно из чисел p1 и q1 положительно (при p1 = q1 = 0 эти неравенства совпадают с (2.2) и (2.4) ). Определим тогда элементы u1* =
u1 + p1 v1 , 1 + p1
(2.6)
v1* =
v1 + q1u1 . 1 + q1
(2.7)
Справедлива следующая теорема [36]. Теорема 2.1. Справедливы соотношения u1 ≤ u1* ≤ x * ≤ v1* ≤ v1 .
(2.8)
Формулы (2.6) и (2.7) можно рассматривать как рекуррентный процесс построения последовательностей u n* , v n* . Теорема 2.1 означает, что этот рекур-
17
рентный процесс сходится не медленнее последовательностей (2.3) и (2.5) , и сохраняет монотонность последовательных приближений. Многочисленные примеры показывают, что при достаточно общих условиях процесс (2.6) и (2.7) сходится существенно быстрее обычного метода последовательных приближений. Проиллюстрируем рассмотренный выше метод ускорения сходимости соответствующими примерами. Пример 1. Пусть дано уравнения вида x = Ax + f , где 0.2 0.3 A= , 0.4 0.2
9 f = . 10 19.615384
, а спектральный раТочное решение данного уравнения x * = 22.307692
диус оператора A : r ( A) = 0.5464 . 1 1
Пусть z 0 = . Тогда искомые векторы u 0 и v0 , согласно предложенному выше алгоритму соответственно равны −25 u0 = , −25
25 v0 = . 25
Используя вышеизложенный метод, получим приближения un* и vn* , между которыми заключено решение исходного уравнения. Соответствующие приближения un* и vn* , к координатам вектора решения представим в виде таблицы. Таблица 4 Приближения к 1-ой координате вектора решения №, n “ un* ”
“ vn* ”
1
17.776595
21.500000
2
19.124786
20.063157
3
19.575000
19.648888
18
5
19.590081
19.637779
10
19.614102
19.616522
12
19.615001
19.615724
13
19.615175
19.615570
Приближения к 2-ой координате вектора решения 1
20.531914
25.000000
2
21.685470
22.757894
3
22.270000
22.355555
5
22.278662
22.333750
10
22.306211
22.309005
12
22.307250
22.308084
13
22.307450
22.307906
Как видно из таблицы точность
вычислений на 13 шаге составляет 10-3.
Отметим тот факт, что при отыскании решения данного уравнения методом последовательных приближений (см.§1) для достижения такой точности потребуется совершить 30 итераций. Пример 2. Пусть дано уравнение вида x = Ax + f , где . 01 . 0.7 0.01 01 0.5 0.05 015 . 015 . A= , 0.2 0.7 0.02 0.08 0.8 0.2 0.3 0.3
1 2 f = . 3 4
Точное решение: 191.056645 194.439858 * x = . 211151244 . . 370112372
Заметим, что спектральный радиус матрицы A : r ( A) = 0.9899 достаточно близок к числу 1.
19 1 2 Пусть z0 = . Тогда искомые векторы u 0 и v0 , согласно предложенному 3 4
алгоритму, соответственно равны: − 40286.255084 − 40814.407850 u0 = , − 44113.308750 − 76611.114187
40286.255084 40814.407850 v0 = . 44113.308750 76611.114187
Используя вышеизложенный метод, получим приближения un* и vn* , между которыми заключено решение исходного уравнения. Соответствующие приближения un* и vn* , к координатам вектора решения представим в виде таблицы. Таблица 5 Приближения к 1-ой координате вектора решения №, n “ un* ”
“ vn* ”
1
-38878.481325
40071.486916
30
-9218.280631
9571.871840
400
-26.957225
408.409659
500
112.248339
269.626061
800
187.334137
194.767868
1221
191.005313
191.107820
1500
191.053642
191.059638
2000
191.056626
191.056663
Приближения к 2-ой координате вектора решения 1
-39402.665953
40613.759665
30
-9361.829864
9721.742109
400
-26.978429
415.186970
500
114.400913
274.236183
20
800
190.659221
198.209034
1221
194.387724
194.491833
1500
194.436808
194.442897
2000
194.439839
194.439876
Приближения к 3-й координате вектора решения 1
-42673.917726
43987.251206
30
-10125.634450
10516.603526
400
-28.351559
449.928053
500
124.575055
297.464998
800
207.061821
215.228271
1221
211.094852
211.207464
1500
211.147945
211.154532
2000
211.151223
211.151264
Приближения к 4-ой координате вектора решения 1
-74917.128645
77220.207697
30
-17806.713604
18491.839792
400
-51.043768
789.991882
500
217.871592
521.891671
800
362.921284
377.281662
1221
370.013210
370.211233
1500
370.106572
370.118154
2000
370.112336
370.112408
Итак, на 2000 шаге точность вычислений составляет 10-4. Рассмотренные выше примеры были реализованы при помощи, разработанной автором программы на языке программирования TURBO PASCAL.
21
§3. Метод однопараметрического итеративного агрегирования решения линейных операторных уравнений вида x = Ax + f , где оператор A матрица n - го порядка В этом параграфе мы изложим еще один приближенный метод решения систем алгебраических уравнений, позволяющий строить приближения к решению уравнений методом однопараметрического итеративного агрегирования. Соответствующий метод изложен в монографии [25] и является удобным и эффективным методом приближенного решения уравнений вида (2.1) . Рассмотрим уравнение вида (2.1) x = Ax + f ,
где A - матрица порядка (n × n) , f - свободный вектор, f ∈ R n , x - неизвестный вектор, x ∈ R n . Предполагается, что f ≥ 0 и что спектральный радиус r ( A) матрицы A меньше единицы: r ( A) < 1 .
В этих условиях, как хорошо известно, уравнение (2.1) имеет и притом единственное неотрицательное решение x = x * , к которому сходится обычный метод последовательных приближений. Если r ( A) не удовлетворяет данному условию, то широко известный метод последовательных приближений не позволяет построить приближения, сходящиеся к точному решению x* уравнения (2.1) . В такой ситуации важную роль приобретают другие численные методы решения уравнения вида (2.1) . К числу таких методов относят так называемые методы итеративного
агрегирования. По поводу которых, сразу можно отметить, что для их сходимости совсем не обязательно выполнение условия r ( A) < 1 (т.е. методы итеративного агрегирования сходятся в частных случаях, когда r ( A) > 1 ). Ниже предлагается и исследуется способ, изложенный в [17], построения приближений {x n } к решению x * , являющийся развитием метода итеративного агрегирования в задачах математической экономики.
22
Рассмотрим скалярное уравнение t ⋅ l 0 ( x0 ) = t ⋅ l 0 ( Ax0 ) + l 0 ( f ),
(3.1)
где l 0 - некоторый неотрицательный выбранный функционал агрегирования, а x0 - выбранное начальное приближение к решению x * и пусть t = t (x0 ) - решение этого уравнения (если оно существует). Заметим, что для однозначной разрешимости уравнения (3.1) достаточно выполнения условия A*l0 ≤ α ⋅ l0 , α < 1 .
(3.2)
Решение уравнения (3.1) , в случае если l 0 (x0 ) − l 0 ( Ax0 ) ≠ 0 выражается формулой t (x0 ) =
l0 ( f ) l0 ( f ) = . l 0 ( x0 ) − l 0 ( Ax0 ) (l 0 − A*l 0 )( x0 )
Определим теперь оператор F (x ) равенством F ( x ) = t ( x ) ⋅ Ax + f .
Имеют место следующие утверждения [17]. Лемма 3.1. Пусть выполнено условие (3.2) . Тогда для каждого x > 0 определено значение оператора F (x ) и для x > 0 выполняется неравенство F (x ) ≥ f .
Следствие. Если x0 > 0 , то определена последовательность {x n } : x n +1 = F (x n ),
(n = 0,1,2,...)
(3.3)
причем x n +1 ≥ f .
Всюду здесь предполагается выполненным условие (3.2) . Лемма 3.2. Функционал t (x ) и оператор F (x ) непрерывны в каждой точке x > 0.
Лемма 3.3. В области x≥ f >0
выполняется неравенство
23 1 . 1−α
t (x ) ≤
Лемма 3.4. Оператор F (x ) удовлетворяет в области x1 ≥ f , x 2 ≥ f условию Липшица: F ( x1 ) − F ( x 2 ) 1 ≤ [c1 x1 1 +q] x1 − x2 1 ,
где c1, q - const. Теорема 3.1. Пусть выполнено неравенство q=
A1
1−α
< 1.
Тогда последовательность (3.3) сходится к решению x * уравнения (2.1) при любом начальном приближении x0 ≥ f . Рассмотрим соответствующие примеры. Пример 1. Рассмотрим систему вида (2.1) , а именно x = Ax + f ,
где 0.01 0.1 0.15 A = 0.2 0.18 0.11 , 0.12 0.09 0.07
1 f = 2 . 3
1.932344 Точное решение x = 3.420915 . 3.806197 *
Спектральный радиус оператора A равен r ( A) = 0.3491 . В качестве начального приближения к вектору решения системы уравнений вида (2.1) возьмем 3 вектор x0 = 3 . Полученные значения приближений по методу однопарамет 3
рического итеративного агрегирования представим в виде таблицы. Таблица 6 №, n
Значения приближений x n x n(1)
x n( 2)
x n( 3)
24
1
1.791878
3.492385
3.852792
2
1.947898
3.415026
3.801422
4
1.932529
3.420841
3.806139
8
1.932345
3.420915
3.806197
10
1.932344
3.420915
3.806197
12
1.932344
3.420915
3.806197
Как видно из таблицы уже на 12 шаге точность вычисления составляет 10-6. Отметим также, что и в некоторых случаях когда r ( A) > 1 , метод однопараметрического итеративного агрегирования может «сходится» к решению уравнения вида (2.1) . Пример 2. Рассмотрим систему уравнений вида (2.1) , где 0.1 0.2 A = 0.3 0.1 0.2
0.2 0.3 0.1 0.1 0.4
0.1 0.4 0.2 0.4 0.1
0.3 0.5 0.4 0.1 0.1
0.4 0.3 0.1 , 0.2 0.1
1 2 f = 3 . 4 5
− 25.645350 − 39.107519 Точное решение x * = − 22.258140 . − 17.519325 − 21.944249
Спектральный радиус оператора A равен r ( A) = 1.1256 . В качестве начального приближения к вектору решения системы уравнений вида (2.1) возьмем 1 1 вектор x0 = 1 . Полученные значения приближений по методу однопарамет 2 3
рического итеративного агрегирования представим в виде таблицы. Таблица 7 №, n
Значения приближений x n
25 x n(1)
x n( 2)
x n( 3)
x n( 4)
x n( 5)
1
-24.384615
-30.307692
-16.615384
-12.153846
-8.846154
2
-25.930732
-43.561306
-27.143312
-19.443471
-27.233280
6
-25.626347
-39.062892
-22.240283
-17.472515
-21.900795
10
-25.645331
-39.107303
-22.257782
-17.519409
-21.943912
14
-25.645352
-39.107525
-22.258144
-17.519330
-21.944256
19
-25.645350
-39.107519
-22.258140
-17.519325
-21.944249
20
-25.645350
-39.107519
-22.258140
-17.519325
-21.944249
Как видно из таблицы 20 итераций метода однопараметрического итеративного агрегирования дают точность вычислений при определении неизвестного решения порядка 10-6. По сравнению с предыдущим примером заметно снизилась скорость приближения к решению уравнения вида (2.1) (это связано с тем, что в этом примере увеличилось значение r ( A) ). Покажем на соответствующем примере, что приближения, полученные с помощью метода однопараметрического итеративного агрегирования, могут сходиться к решению уравнения вида (2.1) и в том случае, когда спектральный радиус намного больше единицы. Пример 3. Рассмотрим систему уравнений вида (2.1) , где 0.9 0.8 A= 0.81 0.6
0.8 0.7 0.6 0.5 0.4 0.5 , 0.6 0.7 0.4 0.2 0.51 0.42
1 2 f = . 3 4
− 3.692044 − 1.588537 * Точное решение x = . − 1.316427 1.371875
Спектральный радиус оператора A равен r ( A) = 2.4409 . В качестве начального приближения к вектору решения системы уравнений вида (2.1) возьмем
26 3 4 вектор x0 = . Полученные значения приближений по методу однопарамет4 4
рического итеративного агрегирования представим в виде таблицы. Таблица 8 №, n
Значения приближений x n x n(1)
x n( 2)
x n( 3)
x n( 4)
1
-4.648855
-2.071246
-1.697201
0.783715
2
-3.826261
-1.709944
-1.328899
1.247948
5
-3.694028
-1.590200
-1.316609
1.371591
9
-3.692045
-1.588538
-1.316427
1.371875
10
-3.692044
-1.588537
-1.316427
1.371875
11
-3.692044
-1.588537
-1.316427
1.371875
Как видно из таблицы на 11-м шаге точность вычисления достигается 10-6. Отметим, что хорошо известный нам метод последовательных приближений в этом случае не применим. Рассмотренные выше примеры были реализованы с помощью разработанной автором программе на языке программирования TURBO PASCAL. Дальнейшим развитием метода однопараметрического итеративного агрегирования является так называемый метод многопараметрического итеративного агрегирования [25]. Обратим внимание на то, что метод многопараметрического итеративного агрегирования обеспечивает, вообще говоря, более высокую скорость сходимости приближений, по сравнению с однопараметрическим итеративным агрегированием, однако в нем на каждом шаге приходится решать не одно уравнение с одним неизвестным, а систему из нескольких уравнений с соответствующим числом неизвестных. В этом случае естественно “рисунок” метода усложняется, но при этом мы выигрываем в скорости сходимости.
27
§4. Метод однопараметрического итеративного агрегирования решения нелинейных операторных уравнений вида x = F ( x) + f , где F (x) - нелинейный оператор. Заметим, что метод однопараметрического итеративного агрегирования применим также и для решения нелинейных систем алгебраических уравнений. Рассмотрим аналог метода итеративного агрегирования для случая нелинейных уравнений вида x = F ( x) + f ,
(4.1)
с нелинейным оператором F (x) . Примером таких уравнений может, например, служить следующая система уравнений: 1 1 5 . ( x ) + 01 . ( y) 3 + 1 x = 01 1 y = 0.01x + 0.2 ( y ) 3 + 1
Если воспользоваться методом итеративного агрегирования (в его нелинейном варианте), изложенным в [67], т.е. перейти от уравнения (4.1) к следующему уравнению: tl 0 ( x 0 ) = tl 0 [F ( x0 )] + l 0 ( f ),
где l 0 - некоторый выбранный функционал агрегирования, а x0 - выбранное начальное приближение, с неизвестной скалярной величиной t ( x0 ) , а затем определить значение t ( x0 ) : t ( x0 ) =
l0 ( f ) , l 0 ( x 0 ) − l 0 [ F ( x 0 )]
при условии что l0 ( x0 ) − l0 [F ( x0 )] ≠ 0 . Тогда можно определить следующее приближение x1 по формуле: def
x1 = Φ ( x0 ) = t ( x0 ) ⋅ F ( x 0 ) + f .
Аналогично, по индукции положим: x n +1 = Φ ( x n ) = t ( x n ) ⋅ F ( x n ) + f .
(4.2)
28
Последовательность (4.2) определяет алгоритм метода итеративного агрегирования, в случае нелинейного операторного уравнения. Пусть для любых x выполнено условие:
[c F ( x) + q(t ( y))] ≤ q
1
(4.3)
< 1,
где q таково, что выполнено F (x ) − F ( y ) ≤ q x − y .
Теорема 4.1. Пусть выполнено условие (4.3) . Тогда уравнение (4.1) имеет и притом единственное решение x * , и к этому решению сходятся последовательные приближения (4.2) . Заметим, что в случае, когда F (x) - линейный оператор, этот метод совпадает с изложенным в §3 методом итеративного агрегирования. Если же F (x) нелинейный оператор, то здесь фактически предлагается новый вариант метода, а именно нелинейный вариант метода итеративного агрегирования. В работе [67] получены достаточные условия сходимости нелинейного варианта метода итеративного агрегирования. Рассмотрим примеры. Пример 1. Рассмотрим нелинейную систему вида x = 0.01x + 0.02 y 0.5 + 0.01z 0.25 + 3 0.5 0.25 . z 0.1 + 4 y = 0.03x + 0.01y + 01 z = 0.01x 0.25 + 0.2 y 0.5 + 0.4 z 0.5 + 5
Точное решение: x*=3.087732, y*=4.187488, z*=6.437405. 2 В качестве начального приближения выберем вектор x0 = 2 . Полученные 2
значения приближений представим в виде таблицы. Таблица 9 №, n
1
Значения приближений xn
yn
zn
3.146834
4.394059
7.099478
29
2
3.083696
4.176646
6.397830
4
3.087717
4.187447
6.437256
6
3.087732
4.187488
6.437404
7
3.087732
4.187488
6.437404
Как видно из таблицы уже на 6-м шаге точность вычислений достигается до 10-6. При реализации метода итеративного агрегирования возможно появление приближения, содержащего комплексные числа. В этом случае метод фактически нереализуем. Приведем пример соответствующий этому случаю. Пример 2. Рассмотрим нелинейную систему вида x = 0.9 x 0.5 + 0.8 y 0.25 + 1 0.5 y = 0.7 x + 0.9 y + 1 3
В качестве начального приближения возьмем вектор x0 = . Полученные 3 значения приближений представим в виде таблицы. Таблица 10 №, n
Значения приближений
1
-8.965667
-13.928957
2
комплексное число
комплексное число
Как видно из таблицы на 2-м шаге вычислений появляются комплексные числа. Предложенный метод на данном примере нереализуем. При реализации метода итеративного агрегирования возможны, также, такие случаи, когда на нечетном шаге наблюдается приближение “снизу” к вектору решения, а на четном шаге наблюдается приближение “сверху” к вектору решения. Приведем пример соответствующий этому случаю. Пример 3. Рассмотрим нелинейную систему вида x = 0.5 x + 0.5( y )0,5 + 1 y = 0.9 x 0.5 + 1
30 3
В качестве начального приближения возьмем вектор x0 = . Полученные 3 значения приближений представим в виде таблицы. Таблица 11 №, n
Значения приближений xn
yn
1
3.280364
2.502408
2
3.824302
2.893678
6
3.699622
2.764530
7
3.613336
2.687309
12
3.655982
2.725457
24
3.649138
2.719333
25
3.648906
2.719125
30
3.649022
2.719229
31
3.648990
2.719200
Точное решение данной системы уравнений: x=3.649003 и y=2.719212. Как видно из таблицы на 30-м шаге наблюдается сходимость к решению до 4-го знака. Интересно отметить, что в процессе реализации предложенного метода итеративного агрегирования возможна такая ситуация, когда на первый взгляд метод сходится, однако наблюдается сходимость к вектору, не являющемуся решением системы. Приведем соответствующий пример. Пример 4. Рассмотрим нелинейную систему вида x =| y|0.5 +0.2| z|0.5 +1 . | x|0.5 +0.3| y|0.3 +0.5| z|+2 y = 01 z =| x|0.25 +0.5| y|+5| z|0.5 +3
31
В качестве начального приближения к вектору решения возьмем вектор 1 x0 = 2 . Полученные приближения представим в виде таблицы. 3
Таблица 12 №, n
Значения приближений xn
yn
zn
1
-0.259054
0.591686
-4.623341
2
0.637854
1.209162
-0.551321
6
0.210033
1.314923
-1.283281
24
0.151685
1.328081
-1.479733
30
0.151675
1.328082
-1.479756
31
0.151675
1.328082
-1.479758
После соответствующей проверки замечаем что вектор, к которому сходятся значения приближений по методу однопараметрического итеративного агрегирования не является решением данной системы уравнений. Из этого следует, что сам факт сходимости еще не гарантирует, что значения приближений сходятся именно к решению данной системы уравнений. Рассмотренные выше примеры были реализованы при помощи разработанной автором программы на языке программирования TURBO PASCAL.
32
ГЛАВА 2. АЛГОРИТМЫ ПОСТРОЕНИЯ ПРИБЛИЖЕНИЙ, СХОДЯЩИХСЯ К СПЕКТРАЛЬНОМУ РАДИУСУ И СОБСТВЕННОМУ ВЕКТОРУ ЛИНЕЙНОГО ОПЕРАТОРА §5. Построение приближений, сходящихся к спектральному радиусу линейного оператора Знание нормы оператора, а точнее говоря информации о том, что норма оператора меньше единицы, позволяет строить приближение к решению уравнения с этим оператором. Однако, величина нормы оператора существенно зависит от того, каким образом введена норма в соответствующим пространстве. Один и тот же оператор может иметь разные нормы, в зависимости от способа введения нормы в пространстве, при этом не исключено, что одна норма будет меньше единицы, а другая больше единицы. Поэтому возникает принципиальный вопрос о том, в каких случаях можно гарантировать существование эквивалентной нормы [36] в пространстве, в которой норма оператора будет меньше единицы. В силу неоднозначности введения нормы в пространстве, возникает необходимость иметь какую-нибудь общую характеристику, знание которой будет давать информацию о сходимости итерационного процесса к точному решению операторного уравнения. Одной из таких характеристик является спектральный радиус оператора A , который тесно связан с понятием спектра оператора A [36]. Часть предыдущего материала, а также и дальнейшее изложение материала тесно связано с понятием спектрального радиуса оператора A [36]. Пусть A - линейный оператор в n-мерном пространстве E n . Число λ называется собственным значением оператора A , если уравнение Ax = λx
имеет ненулевое решение. Совокупность всех собственных значений называется спектром оператора A , а все остальные значения λ называются регулярными значениями оператора A . Иначе говоря, λ есть регулярное значе-
33
ние, если оператор ( A − λI ) имеет ограниченный обратный оператор. В конечномерном пространстве возможны два случая: 1) уравнение Ax = λx имеет ненулевое решение, т.е. λ есть собственное значение для A , оператора ( A − λI )−1 при этом не существует; 2) существует ограниченный оператор ( A − λI )−1 , т.е. λ есть регулярная точка. Определение 5.1. Пусть λ A - собственное значение оператора A . Положим r ( A) = sup λ A
величина r ( A) - называется спектральным радиусом оператора A . Сразу отметим следующий очевидный результат [36]: если у оператора A есть собственное значение λ , такое что λ > 1 , то при любой эквивалентной нормировке пространства норма оператора больше единицы. Выше уже отмечалось, что для существования у системы уравнений (2.1) неотрицательного решения x* = x* ( f ) для заданного неотрицательного вектора f достаточно, чтобы выполнялось неравенство: r ( A) < 1,
где r ( A) - спектральный радиус матрицы А. В этой связи отметим следующую теорему [4]. Теорема 5.1. Пусть A - линейный оператор, действующий в банаховом пространстве Е, r ( A) - спектральный радиус оператора A , ε>0 - произвольно заданное число. Тогда в пространстве Е можно ввести новую норму x ε , эквивалентную заданной норме пространства Е и такую, что будет выполняться неравенство: A ≤ r ( A) + ε .
Следствие. Для существования в пространстве Е по отношению к заданному оператору A - эквивалентной нормы, такой, что выполняется неравенство:
34 A <1
достаточно, чтобы выполнялось неравенство r ( A) < 1 . Это следствие позволяет ответить на вопрос, в каких случаях можно рассчитывать на то, чтобы оператор A был оператором сжатия. Тем самым вопрос о том, существует ли такая эквивалентная норма, в которой будет оператор A - оператором сжатия сводится к вопросу об оценке сверху спектрального радиуса r ( A) - этого оператора. Отметим, что проблеме оценок спектрального радиуса оператора r ( A) как сверху, так и снизу, посвящены многочисленные результаты [34], [36], [38], [39],[66]. В этой связи важную роль играют двусторонние оценки для значений спектрального радиуса r ( A) линейного положительного оператора A . Для получения этих оценок можно воспользоваться следующими результатами [36]. Теорема 5.2. Пусть u0 ∈ R n - вектор у которого все компоненты (u0 )i (i=1,2,..n) являются положительными числами: (u0 )i > 0 . Пусть α ≥ 0 и β ≥ 0 таковы, что αu0 ≤ Au0 ≤ β u0
(здесь и далее запись x ≥ y , x, y ∈ R n означает, что для всех i = 1, n выполняются неравенства ( x)i ≥ ( y )i ). Тогда α ≤ r ( A) ≤ β . При этом если α n , β n соответственно таковы, что α n = max{α : αu0 ≤ Anu0 }, β n = min{β : Anu0 ≤ β u0 },
то α n1 / n ≤ r ( A) ≤ β n1 / n
и при этом последовательности {α n1 / n } и {β n1 / n } сходятся, соответственно монотонно возрастая и монотонно убывая, к r ( A) .
35
На этом результате базируется следующий алгоритм построения монотонно сходящихся приближений к величине r ( A) , который в подробной записи имеет следующий вид. Пусть α n и β n определяются формулами ( Anu0 )i ( A nu0 )i α n = min ; β n = max . i =1 , n i =1, n (u 0 ) i (u 0 ) i
Замечание. Как следствие из работ Красносельского М.А., Стеценко В.Я. и др. [34], [36], [38], [39], [66], можно установить, что
некоторые под-
последовательности этих последовательностей являются сходящимися, причем их предел равен r ( A) . Тем самым построение этих последовательностей можно использовать для вычисления спектрального радиуса оператора A . Далее запись α n1 / n ↑ r ( A) означает факт монотонной сходимости “снизу” последовательности {α n1 / n } к спектральному радиусу r ( A) , а β n1 / n ↓ r ( A) - факт монотонной сходимости последовательности {β n1 / n } “сверху” к числу r ( A) . С помощью разности β 1/n n - α 1/n n можно контролировать степень близости соответствующих последовательностей к величине r ( A) . По предложенному в теореме 5.2 алгоритму автором была разработана соответствующая программа на языке программирования TURBO PASCAL. Пример 1. Пусть 0.1 0.2 A = 0.1 0.2 0.6
0.1 0.3 0.1 0.6 0.1
0.1 0.2 0.1 0.6 0.3
0.3 0.1 0.2 0.1 0.2
0.2 0.5 0.3 , 0.5 0.4
1 1 u0 = 1 . 1 1
Используя вышеизложенный алгоритм, найдем приближения (соответственно снизу и сверху) к спектральному радиусу матрицы A . Вычисления представим в виде таблицы.
36
Таблица 13 № п/п, n
α n1 / n ↑ r ( A)
β n1 / n ↓ r ( A)
1
0.800000
2.000000
2
1.081665
1.555634
3
1.134447
1.466982
4
1.172925
1.418077
8
1.228434
1.351138
16
1.257382
1.318685
32
1.272111
1.302752
64
1.279540
1.294858
Как можно заметить из таблицы, на уже на 64-м шаге значение спектрального радиуса данной матрицы A заключено между 1.279540 и 1.294858. Точное значение спектрального радиуса данной матрицы равно 1.287012. Этот алгоритм в аналогичной форме приемлем для получения оценок снизу, соответственно сверху для спектрального радиуса интегрального оператора вида Ax ( t ) =
∫ K ( t , s ) x ( s ) ds
(5.1)
Ω
с неотрицательным непрерывным ядром K (t , s) . В этом случае последовательности имеют вид α n = min t ∈Ω
∫K
n
( t , s ) u 0 ( s ) ds
Ω
u0 ( t )
, β n = max t ∈Ω
∫K
n
( t , s ) u0 ( s ) ds
Ω
u0 ( t )
,
где K n (t , s ) - n -ое итерированное ядро, а u0 (t ) - непрерывная и положительная на Ω функция. Отметим, что скорость сходимости последовательностей α 1/n n и β 1/n n к ве 1 n
личине спектрального радиуса r ( A) имеет порядок O . В связи с вышеизложенными результатами выясняется актуальность оценок спектрального радиуса r ( A) оператора A как в случае когда A – это
37
квадратная (n × n) матрица, так и в случае, когда A - интегральный оператор вида (5.1) . Важную роль в теории для справедливости принципа Хикса в случае интегрального уравнения с неотрицательным ядром играет условие вида (5.2)
r ( A) < 1 ,
где r ( A) - спектральный радиус интегрального оператора A с ядром K (t , s) . Естественно иметь признаки, обеспечивающие выполнение условия (5.2) . Необходимо получить соответствующие признаки для случаев, когда A : 10) A = (aij )
(i, j = 1, n);
20) A - интегральный оператор вида (5.1) , в котором Ω - ограниченное замкнутое множество из евклидова пространства R m , K (t , s) - функция, для которой при некоторых p > 1 и q =
p выполняется условие: p −1 1
q q | K ( t , s )| ds dt < +∞ . ∫ ∫ Ω Ω
(5.3)
При выполнении условия (5.3) оператор (5.1) , как известно, действует в пространстве Lp (Ω) и является вполне непрерывным оператором в этом пространстве [66]. Соответствующие признаки для случая 10) были получены в работах Стеценко В.Я. Получим соответствующие признаки для случая 20). Предварительно напомним определение неразложимости оператора. Положительный линейный оператор A назовем неразложимым, если из того, что x > θ , x ≥ αAx (α > 0 ) , следует, что x >> θ .
Введем в рассмотрение следующие функции P ( t ) = ∫ | K ( t , s)| ds , Ω
Q( t ) = ∫ | K ( s, t )| ds . Ω
Теорема 5.3. Пусть для некоторого α ∈ [0,1] выполняется следующее неравенство
38 Pα (t )Q1−α (t ) ≤ 1 , (t ∈ Ω )
(5.4)
и, кроме того, выполняется одно из двух следующих условий: 10) в неравенстве (5.4) равенство допускается лишь на множестве точек лебеговой меры нуль; 20) в неравенстве (5.4) строгое неравенство выполняется для всех t из некоторого множества ω ∈ Ω , mesω > 0 , оператор A - неразложим в пространстве L p (Ω ) . Тогда спектральный радиус r ( A) интегрального оператора A (5.1) в пространстве L p (Ω ) меньше чем единица: r ( A) < 1.
Доказательство. Не ограничивая общности, можно считать, что K (t , s) ≥ 0 , так как в противном случае мы бы перешли от оператора A к оператору A+ : A+ x ( t ) = ∫ | K ( t , s)| x ( s) ds , Ω
для которого выполняются все условия теоремы и ядро которого неотрицательно. Если для этого оператора будет доказано утверждение теоремы, т.е. если доказано, что r ( A+ ) < 1 , то учитывая неравенство r ( A) ≤ r ( A+ )
мы получим утверждение теоремы. Итак, оператор A положителен в L p (Ω ) . Положим Aλ = λ ⋅ A.
Очевидно Aλ , а, следовательно, и r ( Aλ ) непрерывно по λ , а так как A0 = θ и r ( A0 ) = 0 , то для всех достаточно малых λ > 0 выполнено неравенство r ( Aλ ) < 1.
Возможны два случая: 1) r ( A1 ) < 1 ; 2) r ( A1 ) ≥ 1 .
39
В первом случае теорема доказана, так как A1 = A . Во втором случае найдется хотя бы одно значение λ = λ0 ∈ (0;1] , для которого r ( Aλ ) = 1 . В этом слу0
чае r ( Aλ ) = 1 является собственным значением оператора Aλ , которому отве0
0
чает неотрицательная собственная функция x0 ( t ) ∈ Lp (Ω ): Aλ0 x0 (t ) = x0 (t ),
откуда в силу (5.4)
∫ Kλ (t , s) x (s)ds ≥ P
α
0
0
(t )Q1−α (t ) x0 (t ) ,
(5.5)
Ω
где Kλ ( t , s) = λ 0K ( t , s). 0
Установим, что в неравенстве (5.5) знак строгого неравенства имеет место на некотором множестве ω1 : ω1 ∈ Ω, mesω1 > 0 для каждого из случаев 10), 20). При условии 10) это утверждение очевидно. При условии 20) утверждение следует из того, что неотрицательная собственная функция положительного неразложимого оператора в пространстве L p (Ω ) , как квазивнутренний элемент конуса K неотрицательных функций
пространства L p (Ω ) , почти всюду в Ω принимает положительные значения. Замечая, что Kλ 0 ( t , s) = Kλα0 ( t , s) ⋅ Kλ1−0 α ( t , s)
и применяя к левой части в (5.5) неравенство Гельдера с показателями p=
1
α
,
q=
1 , 1− α
получим 1
1
p q ∫ Kλ 0 ( t , s) ds ∫ Kλ 0 ( t , s) x0q ( s) ds ≥ x0 ( t ) ≥ Pα ( t ) Q1−α ( t ) x0 ( t ). Ω Ω
Так как при этом Kλ 0 ( t , s) ≤ K ( t , s),
то
40 ∫ K (t , s )ds Ω
α
1−α
∫ K (t , s ) x0q ( s )ds Ω
≥ Pα (t )Q1−α (t ) x0 (t ) ,
(5.6)
причем здесь строгое неравенство выполняется для всех t ∈ ω1 , где ω1 ∈ Ω и mesω1 > 0 .
Нетрудно видеть, что для всех t ∈ Ω , для которых x0 (t ) > 0 выполняется также неравенство: P(t ) > 0 .
Действительно, если для некоторого множества ω1 , ω1 ∈ Ω , P(t ) = 0
(t ∈ ω1 ) ,
то в силу неотрицательности K (t , s) это означает, что для t ∈ ω1 , функция K (t , s ) как функция аргумента s на Ω эквивалентна нулю для всех t ∈ ω1 . То-
гда эквивалентна нулю для всех t ∈ ω1 на множестве Ω и функция K (t , s) x0 ( s) и поэтому для t ∈ ω1 x0 ( t ) = λ 0 ∫ K ( t , s) x0 ( s) ds = 0, Ω
т.е. x0 (t ) ≡ 0 для t ∈ ω1 . Сказанное означает, что из неравенства (5.6) следует неравенство ∫ K ( t , s) x0q ( s) ds Ω
1− α
≥ Q1−α ( t ) x0 ( t ),
(5.7)
причем в (5.7) знак строгого неравенства имеет место по крайней мере для t ∈ ω1 . Извлекая из обеих частей неравенства (5.7) корень степени (1 − α ) , а за-
тем, интегрируя по t на множестве Ω , получим
∫ dt ∫ K (t , s) x
q 0
Ω
Ω
( s )ds > ∫ Q(t ) x0q (t )dt. Ω
Меняя в левой части порядок интегрирования, найдем что
∫ Q( t ) x
Ω
q 0
( t ) dt > ∫ Q( t ) x0q ( t ) dt . Ω
Полученное противоречие доказывает невозможность неравенства r ( A1 ) ≥ 1.
Теорема доказана.
41
Аналогичный результат имеет место и в том случае, когда интегральный оператор Ax(t ) = ∫ K (t , s ) x( s )ds Ω
действует в пространстве С (Ω) и неразложим в этом пространстве относительно конуса неотрицательных функций пространства С (Ω) . §6. Построение приближений, сходящихся к собственному вектору линейного оператора Большое количество работ Крейна М.Г., Красносельского М.А., Стеценко В.Я. и др. посвящено проблеме отыскания собственных векторов как линейных, так и нелинейных операторов. В случае нелинейных операторных уравнений, проблема отыскания собственных векторов и собственных значений нелинейных операторов является существенно более сложной. В этом параграфе рассматривается задача на построение приближений к собственным значениям, собственным векторам, т.е. построение приближений к таким λ , x ∈ E , что λx = F (x) ,
(6.1)
где F (x) - линейный или нелинейный оператор, действующий в банаховом пространстве E . По аналогии с предыдущим материалом будем считать, что пространство E полуупорядоченно с помощью конуса Крейна K [36]. Предположим, что оператор F (x) положительный, т.е для ∀x ∈ K следует, что F ( x) ∈ K . При дополнительных предположениях относительно оператора F (x) , уравнение
(6.1)
имеет для некоторого значения λ = λ0 решение
x0 = x* (λ0 ) , принадлежащее K . Соответствующий вектор x0 естественно на-
звать собственным вектором оператора F (x) , отвечающим собственному значению λ0 . Точное значение собственного вектора может быть найдено лишь в весьма частных случаях, поэтому возникает задача о построении приближений к собственному вектору, с заданной степенью точности. При этом
42
особый интерес представляют методы позволяющие строить такие приближения un , vn к собственному вектору x* , которые удовлетворяют условию un ≤ x* ≤ vn
и при этом x* − un → 0 , x* − vn → 0 . В этом случае, естественно, называть элементы un и vn как приближения к собственному вектору x* по недостатку и соответственно по избытку. Предложим соответствующие способы построения собственных векторов и собственных значений для некоторых классов линейных операторов. Рассмотрим вначале случай линейного положительного оператора. Его, в отличие от случая нелинейного оператора, привычнее обозначать не буквой F , а буквой A . Уравнение (6.1) в этом случае перепишется в виде
λx = Ax .
Элементы
x, y ∈ K называются эквивалентными, если tx ≥ y и ty ≥ x при
некотором t > 0 . Конус K распадается на классы попарно эквивалентных элементов – компоненты эквивалентности. Для эквивалентных элементов x, y ∈ K определена величина
θ ( x, y ) =
inf {t : tx ≥ y} . sup{t : tx ≤ y}
Оператор A будем предполагать не только положительным, но и фокусирующим. Напомним определение фокусирующего оператора [36]. Определение 6.1. Оператор A называется фокусирующим на конусе K , если он u0 -положительный и если для всех x > θ , y > θ существует постоянная κ 2 , такая что θ ( Ax, Ay ) ≤ κ 2 .
При этом число κ назовем постоянной фокусирования [38]. Приведем критерий фокусирования. Утверждение 6.1. Для того чтобы положительный оператор A был фокусирующим, необходимо и достаточно, чтобы существовали такие u0 ∈ K , ρ − const , что для каждого x ∈ K выполняется неравенство
43
λ ( x)u0 ≤ Ax ≤ ρλ ( x)u0 .
(6.2)
Здесь u0 - фиксированный элемент конуса K . Это утверждение означает, что AK ⊂ K u , ρ . 0
Примерами фокусирующих операторов являются матрицы с положительными элементами. Лемма 6.1. Пусть x > θ , y > θ
и y ≤ bx ,
(6.4)
|| x||u0 =|| y||u0 = 1 .
(6.5)
x ≤ ay,
причем
Тогда функционал δ ( x, y ) = ln θ ( x, y ) обладает свойством: x ≤ eδ ( x , y ) y ,
y ≤ eδ ( x . y ) x.
(6.6)
Заметим, что δ ( x, y ) является полуметрикой на множестве всех сравнимых между собой по конусу K элементов [36]. Теорема 6.1. Если A - фокусирующий оператор с постоянной фокусирования κ , тогда для всех x , y ∈ Ku [36]: 0
δ ( Ax , Ay ) =
κ −1 δ (x , y ) , κ +1
т.е. в полуметрике δ ( x, y ) фокусирующий оператор является оператором сжатия на множестве Ku с постоянной q : 0
q≤
κ −1 < 1. κ +1
(6.7)
В случае, когда A - матрица с положительными элементами, постоянная фокусирования определяется следующей теоремой [38]. Теорема 6.2. Константа фокусирования относительно конуса K + ⊂ R n линейного оператора А порожденного матрицей A с положительными элементами aij определяется равенством κ ( A, K+ ) = max i , j , p ,q
Для всех x ∈ Ku определим оператор Aˆ : 0
aip a jq a jp aiq
.
44 Aˆ x =
Оператор
Aˆ
рассмотрим
Ax . || Ax ||u 0
на
множестве
E1 = Ku0 ∩ S1 ,
где
{
S1 = x: x ∈ Eu0 ,|| x||u0 = 1 } . Полуметрика δ ( x, y ) , рассматриваемая на E1 , является
метрикой. В самом деле, из равенства δ ( x, y ) = 0 ( x, y ∈ E1 ) следует, что x = µy, µ > 0 , но так как || x||u0 =|| y||u0 = 1 ,
то µ = 1, т.е. x = y . Оператор Aˆ является на E1 оператором сжатия этого метрического пространства, последний факт доказан в [38]. В силу сказанного Aˆ имеет в E1 единственную неподвижную точку x* : Aˆ x* = x*
т.е. Ax * =|| Ax * ||u0 x *
и к x* сходится метод последовательных приближений xn +1 = Aˆ xn ,
(n = 0,1,2,...)
при любом начальном приближении x0 ∈ Ku , x0 ≠ θ . 0
При этом на основании утверждения принципа сжатых отображений имеет место следующая оценка близости xn к x* : qn δ ( x , xn ) ≤ δ ( x1 , x0 ) . 1− q *
Здесь δ ( x, y ) определяется следующим образом. Пусть x ≤ t1 y,
(6.8) y ≤ t2 x , то-
гда δ ( x, y ) = ln max(t1 , t2 ) . Тем самым установлена справедливость следующей теоремы. Теорема 6.3. Пусть A - фокусирующий оператор с постоянной κ .Тогда A имеет в Ku0 собственный вектор x* , которому отвечает собственное
значение λ1 . К этому вектору x* сходится метод xn + 1 =
Axn || Axn ||u0
(n = 0,1,2,...)
45
при любом x0 ∈ Ku , x0 ≠ θ . При этом справедлива оценка близости (6.8) , где q 0
удовлетворяет неравенству (6.7) . К собственному вектору x* также сходятся последовательности un и vn , которые удовлетворяют следующему неравенству un ≤ x* ≤ vn
где a un = b b vn = a
κ −1 κ −1 ⋅ 2 κ +1
κ −1 κ −1 ⋅ 2 κ +1
n
Aˆ n x0 ,
(6.9)
Aˆ n x0 ,
(6.10)
n
а постоянные a и b таковы, что ax0 ≤ Ax0 ≤ bx0 .
Ясно, что коэффициенты в правой части (6.9) и (6.10) при n → ∞ стремятся к единице. Как уже отмечалось в последней теореме последовательность Aˆ n x0 сходится к собственному вектору x* , в силу чего un и vn сходятся к x* по норме пространства Е. Итак, мы получили возможность строить последовательности un и vn , сходящиеся к x* , при этом un сходится по норме пространства E снизу, а vn сверху. Если теперь вместо оператора A взять сопряженный оператор A* , то учитывая, что этот оператор является положительным в E * относительно полугруппы K * , мы аналогичным образом получим способ построения приближений l1( n ) , l2( n ) , к собственному функционалу l * оператора A* : l1( n ) ≤ l * ≤ l2( n ) .
С помощью этих последовательностей мы на основании λ0 − r ( A) =
можем утверждать, что
l0 (v0 ) l0 (u0 )
46
λ0 −
l2( n ) (v0 ) l1( n ) (v0 ) ≤ ≤ λ + , r ( A ) 0 l1( n ) (u0 ) l2( n ) (u0 )
а это позволяет строить две последовательности, сходящиеся к r ( A) , соответственно, снизу и сверху, тем самым с любой точностью находить значение спектрального радиуса r ( A) оператора A . Проиллюстрируем эти результаты соответствующими примерами. Пример 1. Пусть 1 3 A= , 2 1
1 u0 = , 1
1 x0 = . 1
В данном примере точное значение собственного вектора, отвечающего 1 . 0.816
ведущему собственному значению λ1 : x * =
Выберем в данном примере n=7. Используя метод, описанный в теореме 6.3 получим приближения к соответствующим координатам собственного вектора x* . Представим эти приближения в виде следующей таблицы. Таблица 14 №
п/п,
Приближения к координатам вектора x*
n
x1
x2
1
1
0.750000
2
1
0.846154
3
1
0.804348
4
1
0.821656
5
1
0.814338
6
1
0.817405
7
1
0.816115
Теперь, на основании теоремы 6.3, получим приближения к соответствующим координатам собственного вектора x* “снизу” и “сверху”. В данном примере a=3, b=4, κ=2.449. Эти приближения также представим в виде таблицы.
47
Таблица 15 № п/п, n
un
vn
1
0.91612 0.68709
1.09156 0.81867
2
0.96385 0.81557
1.03750 0.87789
3
0.98465 0.79200
1.01559 0.81689
4
0.99352 0.81633
1.00652 0.82701
5
0.99727 0.81212
1.00274 0.81657
6
0.99885 0.81647
1.00115 0.81834
7
0.99952 0.81572
1.00048 0.81651
Используя формулу (6.8) , оценим в какой близости от точного решения x* на 7-м шаге мы находимся: δ ( x7 , x* ) = 0.00114 . В приведенном примере приближение x0 = (1;1)T случайно оказалось достаточно близким от x* в метрике δ ( x, y ) : δ ( x0 , x* ) = 0.49617 .
Возьмем теперь начальное приближение x0 = (1;4)T , сильнее отклоняющееся от x* : δ ( x0 , x* ) = 3.72455 .
В этом случае получим последовательно x1 = (1;0.46)T , x2 = (0.97;1)T ≈ x0 .
Отметим, что для получения приближения с той же точностью, что и при выборе x0 = (1;1)T нам понадобится в этом новом случае всего на две итерации больше, чем в предыдущем случае, т.е. пример говорит о том, что данный метод не очень “чувствителен” к выбору начального приближения x0 .
48
Пример 2. Пусть . 01 0.2 A = 01 . 0.2 0.6
01 . 0.3 01 . 0.6 01 .
01 . 0.3 0.2 1 0.2 01 . 0.5 1 01 . 0.2 0.3 , u0 = 1 , 0.6 01 . 0.5 1 0.3 0.2 0.4 1
1 2 x0 = 3 . 4 1
В данном примере точное значение собственного вектора, отвечающего 0.483 0.693 ведущему собственному значению λ1 : x * = 0.467 . Возьмем 10 итераций, ис 1 0.788
пользуя метод, описанный в теореме 6.3, получим приближения к соответствующим координатам собственного вектора x* . Представим эти приближения в виде следующей таблицы. Таблица 16 № п/п, Приближения к координатам вектора x* n
x1
x2
x3
x4
x5
1
0.487805
0.560976
0.414634
1
0.707317
2
0.517167
0.706009
0.491416
1
0.841202
3
0.476503
0.695812
0.464674
1
0.793159
4
0.483112
0.693664
0.467055
1
0.785725
5
0.483335
0.692887
0.466967
1
0.788263
6
0.483425
0.693335
0.466967
1
0.788628
7
0.483303
0.693293
0.466882
1
0.788491
8
0.483326
0.693289
0.466892
1
0.788472
9
0.483326
0.693286
0.466890
1
0.788480
10
0.483326
0.693288
0.466891
1
0.788481
Теперь, на основании теоремы 6.3, получим приближения к соответствующим координатам собственного вектора x* “снизу” и “сверху”. В данном примере a = 0.56, таблицы.
b = 2.9, κ = 6 . Эти приближения также представим в виде
49
Таблица 17 № п/п, un
vn
1
0.02643 0.03039 0.02246 0.05418 0.03832
9.00416 10.35478 7.65354 18.45853 13.05603
2
0.06445 0.08798 0.06124 . 012462 . 010483
4.15009 5.66548 3.94345 8.02466 6.75035
3
. 010766 . 015721 010499 . 0.22593 . 017920
2.10904 3.07972 2.05668 4.42608 . 351058
4
. 016696 0.23972 016141 . 0.34559 0.27154
1.39794 2.00720 1.35148 2.89362 2.27359
5
0.22628 0.32439 0.21848 0.46816 0.36904
1.03240 1.48001 0.99681 2.13600 1.68373
6
0.28112 0.40319 0.27155 0.58153 0.45861
0.83130 . 119226 0.80300 1.71961 1.35613
n
50 7
0.32814 0.47071 0.31699 0.67895 0.53534
0.71184 1.02113 0.68766 1.47287 . 116134
8
0.36654 0.52577 0.35408 0.75837 0.59796
0.63732 0.91418 0.61565 1.31861 1.03969
9
0.39668 0.56900 0.38319 0.82073 0.64713
0.58890 0.84472 0.56887 1.21842 0.96070
10
0.41972 0.60205 0.40544 0.86839 0.68471
0.55658 0.79836 0.53765 . 115155 0.90798
Ниже предлагаются два алгоритма построения собственных векторов x* и l * операторов
A и A* , соответствующего значению λ1 .
Пусть A - неразложимый вполне непрерывный положительный оператор, u0 - фиксированный внутренний элемент K , α n
и β n - последовательности
такие, что α n = inf {α : Anu0 ≤ αu0 , u0 >> θ }, β n = sup{β : Anu0 ≥ βu0 , u0 >> θ }.
Построим последовательности: 1−
1 n
1−
2 n
1 n n
1−
1 n
1−
2 n
1 n n
un = β n u0 + β n Au0 + ... + β An − 2u0 + An −1u0 , vn = α n u0 + α n Au0 + ... + α An − 2u0 + An −1u0 .
Тогда согласно результатам [66] последовательности
51 A
un , Aun
A
vn Avn
сходятся к единственному нормированному вектору оператора A , отвечающего собственному значению r ( A) . Для отыскания l * проводятся аналогичные построения применительно к сопряженному оператору A* . Пусть A - линейный положительный оператор, действующий в банаховом пространстве E , полуупорядоченном конусом K , то есть AK ⊂ K . Как известно [36,38,69] в этом случае оператор A , при некоторых дополнительных предположениях, имеет в K собственный вектор x* , отвечающий спектральному радиусу r ( A) оператора A : Ax* = r ( A) x*.
Занумеруем собственные значения λ оператора A в порядке убывания их абсолютных величин, то есть r ( A) = λ1 ≥ λ2 ≥ ... ≥ λn . Тогда всякая точка λ спектра σ ( A) оператора A удовлетворяет неравенству λ ≤ r ( A) = λ1 ,
(λ ∈ σ ( A) ).
Для различных классов положительных операторов (сильно положительные, u0 - положительные, фокусирующие, острые [36,38,69]) гарантировано строгое неравенство λ < r ( A)
(λ ∈ σ ( A), λ ≠ λ1 ) .
(6.11)
Дополнительно предположим, что E = H - гильбертово пространство, A самосопряженный положительный оператор, то есть A* = A . Пусть y0 ∈ K , y0 ≠ θ , l0 ∈ K * , l0 ≠ θ . Положим τ1 =
l0 ( Ay0 ) l0 ( y0 )
и определим элементы l1 = y1 = τ 1 Ay0 , l2 = y2 = τ 2 Ay1.
Вообще, пусть уже определены τ n −1 , yn −1 , ln −1. Положим
52
τn =
ln −1 ( Ayn −1 ) , ln −1 ( yn −1 )
ln = yn = τ n Ayn −1.
Для определенности последовательностей {τ n }, {yn }, {ln } необходимо и достаточно выполнения условия ln ( yn ) ≠ 0 для любого n . Для этого, например, достаточно, чтобы оператор A был неразложимым [36]. Наряду с последовательностью {yn } образуем последовательность xn = ϕ n = An y0
(n = 1,2,...) .
Ясно, что для каждого n l2 = y2 = (τ 2 ⋅ τ 1 )x2 = (τ 2 ⋅ τ 1 )ϕ 2 ,...,
l1 = τ 1 x1 = τ 1ϕ1 ,
n n ln = yn = ∏τ i xn = ∏τ i ϕ n . i =1 i =1
Поэтому τn =
ln −1 ( Ayn −1 ) ϕ n −1 ( Axn − 1 ) = . ϕ n − 1 ( xn − 1 ) ln −1 ( yn −1 )
Положим xn
x n(1) =
xn
=
ϕn ϕn
= ϕ n(1) ,
тогда, как легко видеть, имеет место неравенство τn =
В силу (6.11)
ϕ n(1−)1 ( Axn(1−)1 ) ϕn(1−)1 ( xn(1−)1 )
(n = 1,2,...) .
(6.12)
последовательности {xn(1) } = {ϕ n(1) } сходятся к собственному
вектору x* = ϕ * оператора A = A* , и поэтому в силу (6.12) последовательность
{τ n } сходится к числу λ1 =
ϕ * ( Ax* ) . ϕ * ( x* )
Аналогичным свойством сходимости к λ1 обладает последовательность tn =
l0 ( Ayn −1 ) , l0 ( yn −1 )
53 λ n при этом разность tn − λ1 имеет порядок Ο 2 . Оказывается , что после λ 1
довательность {τ n } имеет более высокую скорость сходимости, а именно λ 2 n τ n − λ1 = Ο 2 . λ1
Естественно теперь распространить этот метод на операторы, действующие
в
банаховом
пространстве
E
с
конусом
K.
Исходя
из
y0 ∈ K , y0 ≠ θ , l0 ∈ K * , l0 ≠ θ , положим
τn =
ln −1 ( Ayn −1 ) , (n = 1,2,...) ln −1 ( yn −1 )
где ln = τ n A*ln −1 ,
yn = τ n Ayn −1
(n = 1,2,...) .
Пусть x* , l * - собственные векторы операторов A, A* , соответственно, x* ∈ K , l * ∈ K * такие, что
x * = l * =1. Тогда имеют место асимптотические
оценки λ 2 n τ n − λ1 = Ο 2 , λ1
x* −
yn yn
,
λ n ln l − = Ο 2 . ln λ 1 *
В отличие от самосопряженного оператора здесь, хотя объем работы возрастает в два раза, мы получаем приближения не только к собственному значению λ1 и собственному вектору x* оператора A , но и к собственному вектору l * сопряженного оператора A* . По предложенным
выше алгоритмам, автором были составлены про-
граммы на языке программирования TURBO PASCAL. Выше оператор A предполагался линейным. Построим приближения к собственному вектору x* для некоторых классов нелинейных операторов F ( x) . Выделим соответствующий класс нелинейных операторов F ( x) , дейст-
54
вующих в полуупорядоченном банаховом пространстве, являющимися монотонными относительно нормального конуса K и такими, что F (αx) ≤ α µ F ( x)
для всех x ∈ K и α ∈ [1;+∞ ], где µ < 1, µ − const . Если в полуупорядоченном банаховом пространстве E с конусом K ввести следующую метрику: для двух элементов x, y ∈ K таких, что x ≤ λy ,
y ≤ µx
(6.13)
положить d ( x, y ) = ln max{λ0 , µ0 },
где λ0 , µ0 , соответственно, точные нижние и верхние границы всех чисел λ , µ для которых выполняются неравенства (6.13) , то, во-первых, d ( x, y ) удовлетворяет всем аксиомам метрики и во-вторых, для нормального конуса K всякая компонента связности Ck конуса K становится полным метрическим пространством в метрике d ( x, y ) , а оператор F ( x) является оператором сжатия соответствующей компоненты связности. При этом собственные векторы оператора F ( x) из конуса K являются неподвижными точками оператора 1
λ
F ( x ) , а каждая фундаментальная по метрике d ( x, y )
последовательность
элементов {xn } является фундаментальной и по норме пространства E и наоборот. При этом пределы последовательностей {xn } по норме пространства E и по метрике d ( x, y ) совпадают.
Из этого в силу принципа Банаха сжатых отображений следует справедливость следующей теоремы. Теорема 6.4. Пусть конус K нормален и пусть для некоторых u0 > θ элементы u0 и F (u0 ) принадлежат одной составляющей конуса K . Тогда для всех λ , ( λ > 0 ) оператор F ( x) имеет на составляющей Ck (u0 ) собственный вектор x* (λ ) , отвечающий собственному значению λ . Этот вектор может быть построен методом последовательных приближений
55
xm +1 (λ ) =
1
λ
F ( xm (λ ) )
при любом начальном приближении x0 ∈ Ck (u0 ) . При этом справедлива оценка близости d ( x * (λ ), xm+ 1 (λ )) ≤
µm d ( x1 (λ ), x0 (λ )) . 1− µ
(6.14)
Замечание. Неравенство (6.14) позволяет также получить оценку относительной погрешности для приближений
xm +1 (λ ), т.е. оценку величины
|| x * (λ ) − xm+1 (λ )|| , || x * (λ )||
и позволяет утверждать, что в методе последовательных приближений наряду с абсолютной погрешностью, так же и относительная погрешность приближенного решения стремится к нулю. Последнее крайне важно, так как в линейных задачах на собственные векторы определяющим в оценке точности полученного приближения является именно оценка относительной погрешности полученного приближения.
56
ГЛАВА 3. НОВЫЕ АЛГОРИТМЫ И МЕТОДЫ ПОСТРОЕНИЯ ПРИБЛИЖЕНИЙ, СХОДЯЩИХСЯ К ТОЧНОМУ РЕШЕНИЮ ОПЕРАТОРНОГО УРАВНЕНИЯ ВИДА x = Ax + f §7. Об одном итерационном методе решения системы линейных алгебраических уравнений вида x = Ax + f с квадратной матрицей A , в случае, когда спектральный радиус матрицы A , больше чем единица В работе [69] был предложен метод решения уравнения вида x = Ax + f
(7.1)
с матрицей A , спектральный радиус которой больше единицы. Этот метод основан на переходе от уравнения вида (7.1) к уравнению y = By + g
(7.2)
с матрицей B , спектральный радиус которой меньше, чем спектральный радиус матрицы A (r ( B) < r ( A) ) . Данный метод был реализован [69] для неотрицательных матриц A , спектральный радиус которых больше единицы. Однако этот метод обладает существенно большими потенциальными возможностями, в силу которых мы предлагаем прием решения уравнений вида (7.1) с матрицами A , необязательно являющихся неотрицательными матрицами. Данный прием основан на предварительном преобразовании уравнения (7.1)
к новому уравнению вида (7.2) , для которого, в случае
выполнения определенных условий, будет выполнено неравенство: r ( B) < 1
и, следовательно, для решения которого может быть использован метод последовательных приближений: xm +1 = Bxm + f ,
(m = 0,1,...)
при любом начальном приближении x0 . Переходим к описанию этого метода. Занумеруем собственные значения λ матрицы A в порядке убывания их абсолютных величин, т.е. ρ(A)=λ1≥|λ2|≥...≥|λn|. Тогда всякая точка λ спектра
57
σ(A) матрицы A удовлетворяет неравенству |λ|≤ρ(A)=λ1
(λ∈σ(A)).
Хорошо известно [34,36,38], что при некоторых дополнительных предположениях число λ = r ( A) является собственным значением матрицы A и собственным значением сопряженной матрицы, которой отвечают собственный вектор x* ∈ K матрицы A и собственный функционал l * ∈ K * матрицы A* , где K * - сопряженная к K полугруппа (т.е. совокупность всех линейных
функционалов,
принимающих
на
элементах
конуса
K
неотрицательные значения): Ax* = r ( A) x* ,
A*l * = r ( A)l * .
Способы отыскания этих собственных векторов приведены в Главе II. Собственные векторы матрицы A и A* , и собственное значение λ , необходимы нам для реализации преобразов55ания, уменьшающего спектральный радиус матрицы A , входящей в уравнение (7.1) . Ниже предполагается, что A - вполне непрерывный оператор. Соответствующий метод основан на результатах работ В.Я Стеценко, Т.А. Костенко, В.А. Семилетова и заключается в следующем. Пусть у оператора A среди собственных значений только одно больше единицы, тогда: l * матрицы A и A* , 10) нормируем собственные векторы x* и соответственно условием l * ( x* ) = 1; 20) по матрице A строим матрицу B согласно формуле def
Bx = Ax − λ1l * ( x) x* ,
где λ1 = r ( A) . При этом явный вид матрицы B может быть найден по виду матрицы A и виду векторов x* и l * . Спектр матрицы B расположен внутри круга с центром в начале координат и радиусом равным единице, что позволяет применять для решения уравнения с матрицей
B
метод
последовательных приближений. Как установлено в [69] наибольшее собственное значение матрицы B будет совпадать со вторым собственным значением λ2 матрицы A , при этом λ2 < λ1 и, следовательно, спектральный радиус матрицы B будет меньше
спектрального радиуса матрицы A . Если при этом λ2 < 1 , то матрица B
58
является оператором сжатия. В этом случае соответствующее уравнение (7.2) имеет и притом единственное решение и это решение можно получить по методу последовательных приближений ym +1 = Bym + g
(m = 0,1,...)
при этом мы можем найти это решение с любой наперед заданной точностью. Указанная схема позволяет решать уравнения с оператором A (ρ(A)>1, |λ2|<1), если удастся установить связь между решениями xA и xB уравнений (7.1)
и (7.2) соответственно. Для установления соответствующей связи
предположим, что xA является решением уравнения (7.1) , тогда, очевидно, в силу (7.3) имеем xA-BxA=f+λ1l*(xA)x* и в случае, если ρ(B)<1, отсюда получаем xA=(I-B)-1[f+λ1l*(xA)x*], т.е.
x A = ( I − B ) −1 f + λ 1 l ∗ ( x A ) ⋅ ( I − B ) −1 x ∗ = 14243 ( I − B )−1 x∗ , + = xB c ⋅
так как, очевидно, что xB=(I-B)-1f – это решение уравнения x=Bx+f. Тем самым установлено, что xA=xB+c(I-B)-1x*. Введем обозначение (I-B)-1x*=yB. Ясно, что yB – решение уравнения y=By+x* и так как Bx*=θ, то yB=x*. Таким образом, установлено, что xA=xB+c x*.
(7.4)
Итак, решение уравнения (7.1) можно представить в виде суммы решения xB уравнения (7.2) при g=f и собственного вектора x*. В случае если собственный вектор x* точно не известен, а известно некоторое приближение * ~ x ∗ к x , то решение уравнения (7.1) можно представить в виде суммы
решения xB уравнения (7.2) при g=f и решения yB уравнения (7.2) при g= ~x ∗ . Это значит, что вместо того, чтобы решать уравнение с оператором A (напомним, что в общем случае ρ(A) может быть больше 1), достаточно решить 2 раза уравнение (7.2) : один раз с правой частью f, второй раз с
59
правой частью x*. Остается в этой схеме объяснить, как находить множитель c в формуле (7.4) . Для этого достаточно подставить выражение (7.4) в уравнение (7.1) , в
результате чего мы получим уравнение с одной скалярной неизвестной c, что позволяет легко найти c. После этого c подставляем в (7.4) и в результате мы находим решение уравнения (7.1) . В реальной ситуации нам не всегда бывают известны векторы x* и l*, однако, существуют методы, позволяющие найти приближения к этим ~ элементам. Предположим, что ~x ∗ и l ∗ достаточно близкие приближения к x*
и l* соответственно. Тогда оператор ~ ~ B x = Ax − λ1l ∗ ( x) ~ x∗ ~
достаточно близок к оператору B и поэтому ρ ( B ) ≈ ρ ( B ) , при этом не исключено,
что
~
ρ( B ) < 1 .
В
результате
мы
получили
возможность
использовать изложенную схему отыскания приближенного решения ~x B ~
уравнения с оператором B , которое в силу сказанного будет достаточно близко к решению xB. Тем самым мы имеем возможность приближенного решения уравнения с оператором A в тех случаях, когда x* и l* точно неизвестны. Пример1. Рассмотрим систему линейных алгебраических уравнений вида (7.1) , где 0.6 0.7 , A = 0.7 0.6
2 f = . 1
− 4.54545 . − 5.45454
Точное решение x* =
Для отыскания собственных векторов
x*
и l * матриц
A
и
A* ,
соответствующего собственного значения λ1 = r ( A) воспользуемся способом, изложенном в §6. В данном случае
()
r ( A) = 1.3 x* = l *
T
0.70711 . = 0.70711
60
Заметим, что r ( A) = 1.3 > 1 поэтому решение уравнения (7.1)
методом
последовательных приближений не представляется возможным. В результате применения формулы (7.3) матрица B примет следующий вид: − 0.05 0.05 , из которого следует, что r ( B) = 0.1 < 1 . B = 0.05 − 0.05
С помощью метода последовательных приближений решаем уравнение x = Bx + f . Этот метод
сходится достаточно быстро, так как r ( B) = 0.1 . В
качестве начального приближения x0
выберем x0 = f . Итерации метода
последовательных приближений представим в виде таблицы. Таблица 18 m
Приближения xm
1
(1.95000, 1.05000)
2
(1.95500, 1.04500)
3
(1.95450, 1.04550)
4
(1.95455, 1.04545)
5
(1.95454, 1.04545)
10
(1.95454, 1.04545) Подставим x A ≈ x10 + c ⋅ x*
в (7.1) , получаем − 0.21213 1.95000 = c ⋅ , − 0 . 21213 1.95000
откуда c = −9.19239 . Поэтому решение x A исходного уравнения: − 4.5454 . x A = − 5.4545
Как показывает практика, существуют примеры, в которых после однократного применения формулы
(7.3)
у полученной матрицы
B
спектральный радиус снова остается большим единицы. В случаях, когда среди собственных значений матрицы A есть значение меньше единицы,
61
тогда к полученной матрице B следует повторно применить формулу (7.3) , считая, что A = B , x* - собственный вектор полученной ранее матрицы B , l * собственный вектор матрицы B* ( B* -матрица сопряженная B ), а r ( B) спектральный радиус матрицы B . Приведем пример соответствующий этому случаю. Пример 2. Рассмотрим систему (7.1) , где 1 3 4 A = 2 3 1 , 2 2 1
1 f = 1 . 1
− 0.1667 Точное решение x = − 0.3333 . 0 *
Применяя способ, изложенный в §6 отыскания собственных векторов x* и l * матриц A и A* , а также
собственного значения λ1 = r ( A) матрицы A
(при этом в качестве начального приближения взяты векторы l0 = (1,1,1)T и y0 = (1,1,1) ) находим, что в данном случае T
0.6794 0.4668 * r ( A) = 6.25 , x = 0.5617 , l = 0.7331 . 0.4720 0.4944 *
Применяя преобразование (7.3) к матрице A , получаем матрицу B1 : − 0.9854 − 0.1180 1.8971 0.4221 − 0.7387 B1 = 0.3585 0.6207 − 0.1661 − 0.4609
у которой r ( B) = 1.9 > 1 . Повторно применяя к матрице B1 преобразование (7.3) (при этом для отыскания собственных векторов x* и l * матриц B1 и B1* , ( B1* - матрица сопряженная B1 ) и спектрального радиуса матрицы B1 в качестве начального приближения взяты векторы l0 = (2,1,1)T и y0 = (1,1,2 )T ), получаем матрицу B2 :
62 − 0.0394 − 0.1641 0.5903 0.4365 0.3302 , B2 = 0.0627 0.1661 − 0.1439 0.1672
у которой r ( B) = 0.6 < 1. С помощью метода последовательных приближений решаем уравнение x = B2 x + f . После 45 итераций получаем следующее приближение к решению
уравнения x = B2 x + f : 1.5125 x45 = 1.1825 . 1.2980
Далее, подставив xB1 ≈ x45 + cB1 ⋅ xB*1 ,
в уравнение x = B1 x + f находим cB , а затем соответственно x B1 - решение 1
уравнения вида x = B1 x + f . Аналогично, подставив x A ≈ xB1 + c A ⋅ x*A
в уравнение (7.1) , найдем − 0.1667 x A = − 0.3333 . 0.0000
В действительности существуют и такие примеры, в которых даже после двукратного использования преобразования (7.3)
получаем некоторую
матрицу, спектральный радиус которой все еще больше единицы. Продолжая применять преобразование (7.3) к только что полученной матрице мы можем рассчитывать получить такую матрицу, спектральный радиус которой меньше единицы (это возможно только в случаях, если среди собственных значений исходной матрицы исходной матрицы A есть значение меньше единицы), что позволяет применить к ней метод последовательных приближений для отыскания решения уравнения вида x = Bs x + f , где s общее количество полученных матриц
B.
Связь между решениями
63
уравнений вида x = Bs −1 x + f и x = Bs x + f
можно установить следующей
формулой:
x B s − 1 = x n ( B s ) + c B s − 1 ⋅ x B* s − 1
(7.6)
,
где Bs - последняя полученная матрица, для которой r ( Bs ) < 1 , n - число итераций для уравнения вида x = Bs x + f ,
cBs −1 - скалярный множитель, x B* s − 1
- собственный вектор матрицы Bs −1 , отвечающий r ( Bs −1 ) ,
xn ( Bs ) - вектор решения уравнения вида x = Bs x + f ,
xBs −1
- вектор решения уравнения вида x = Bs −1 x + f .
При этом A = B0 . Пример 3. Рассмотрим систему вида (7.1) , где 1 2 A= 4 3
1 1 2 1
2 3 3 1
3 1 , 2 1
1 1 f = . 1 1
Применяя способ, изложенный в §6, отыскания собственных векторов x* и l * матриц A и A* , а также спектрального радиуса матрицы A (при этом в качестве начального приближения взяты векторы l0 = (2,1,1,1)T и
y0 = (1,2,1,1)T ),
находим: 0.4229 0.6156 0 . 4741 0 . 3168 r ( A) = 7.87, x* = , l* = . 0.6866 0.5446 0.3534 0.4732
Используя преобразование (7.3) к матрице A , получаем матрицу B1 : 1.4239 − 1.0503 − 0.0553 0.1859 0.7666 − 0.2983 − 0.1829 0.9666 B1 = , 0.6715 0.2869 0.0551 − 0.5585 1.2867 0 . 1182 0 . 5158 0 . 3170 − −
у которой r ( B) = 2.3 > 1 .
64
Повторно применяя к матрице B1 преобразование (7.3)
(при этом для
отыскания собственных векторов x* и l * матриц B1 и B1* , ( B1* - матрица сопряженная B1 ) и спектрального радиуса матрицы B1 в качестве начального приближения взяты векторы l0 = (1,2,1,1)T и y0 = (1,1,2,1)T ), получаем матрицу B2 : 2.4086 − 2.3265 − 0.1969 0.5630 − 0.3980 − 0.1940 0.9960 − 0.6897 B2 = , 1.2944 0.3560 − 0.1290 − 1.0391 2.2968 0.2302 − 0.8143 − 1.0963
у которой r ( B2 ) все еще больше единицы. В случаях многократного использования формулы (7.3) при реализации предложенного метода, можно установить общую связь между матрицами Bs −1 и Bs , считая что A = B0 :
B s x = B s − 1 x − r ( B s − 1 ) ⋅ l B* * ( x ) ⋅ x B* s − 1
(7.7)
s−1
Повторно применяя к матрице B2 теперь уже преобразование (7.7) (при этом для отыскания собственных векторов x* и l * матриц B2 и B2* ,
( B2* -
матрица сопряженная B2 ) и спектрального радиуса матрицы B2 в качестве начального приближения взяты векторы l0 = (1,1,1,2)T и y0 = (2,1,1,1)T ), получаем матрицу B3 : 0.0847 − 0.1892 0.4509 0.2148 − 0.1994 − 0.1720 0.9373 − 0.8426 B3 = , 0.0540 0.2186 0.2382 − 0.0836 0.2854 − 0 . 0074 0 . 2189 0 . 4532
у которой r ( B3 ) = 0.81 < 1 . С помощью метода последовательных приближений решаем уравнение x = B3 x + f .
После 30 итераций получаем следующее приближение к решению уравнения x = B3 x + f :
65 2.5381 − 0.7879 x30 (B3 ) = . 0.9645 2.7556
Далее
используя
формулу
(7.6) ,
получаем
решение
исходного
уравнения (7.1) : 0.9983 − 2.4958 xA = . − 1.4983 1.4974
Возможности применения этого метода достаточно значительны, о чем в частности свидетельствуют рассмотренные выше примеры. §8. Получение двусторонних оценок точного решения x* операторного уравнения вида x = Ax + f , в случае, когда
спектральный радиус не обязательно меньше единицы. В данном параграфе предлагается метод получения оценок вида u ≤ x* ≤ v ,
(8.1)
где x* - решение линейного операторного уравнения второго рода x = Ax + f ,
(8.2)
где A - линейный оператор, действующий в пространстве E , f - заданный элемент пространства E . Пространство E предполагается полуупорядоченным при помощи конуса K , неотрицательных элементов.
При этом в параграфе используются понятия и терминология банаховых пространств, полуупорядоченных с помощью конуса Крейна K (K ⊆ E ) . Наличие оценок вида (8.1) , которые естественно назвать двусторонними оценками решения, представляется достаточно важным и информативным. В самом деле оценка вида (8.1)
позволяет утверждать, что нам известны
приближения un к решению x* уравнения (8.2) «по недостатку», а также
66
приближения vn к x* «по избытку», при этом элементы x* − un , и vn − x* представляются как оценки (векторные) для решения x* . Если конус K обладает свойством нормальности, то величина погрешности, с которой мы знаем эти приближения к решению x* , характеризуется нормой разности δ , которое не превосходит величины v − u : δ ≤ v−u .
Отсюда следует важность получения оценок u, v решения x* . Отметим, что для отыскания приближений un , vn , известны разные методы [36]. В данном параграфе предлагаются новые подходы к получению таких оценок u, v неизвестного решения x* уравнения (8.2) . Соответствующие оценки базируются на следующих теоремах [66]: Теорема
8.1.
Пусть
xn − p , xn , xn + p
(n = 0,1,2,...)
соответствующие
приближения к решению x* метода последовательных приближений xm +1 = Axm + f .
(m = 0,1,2,...) .
(8.3)
Подчеркнем, что при этом сходимость этих последовательных приближений к x* заранее не предполагается. Пусть постоянная γ такова, что γ ∈ [0;1) и при этом выполнено неравенство xn + p − xn ≤ γ (xn − xn − p ).
(8.4)
Тогда для решения x* уравнения (8.2) (если это решение существует) справедлива следующая оценка x * ≤ xn + p +
γ 1− γ
( xn + p − xn ) ,
которую естественно назвать априорной оценкой “сверху” неизвестного решения x* . Теорема
8.2.
Пусть
xn − p , xn , xn + p
(n = 0,1,2,...)
соответствующие
приближения к решению x* метода последовательных приближений (8.3) . Пусть постоянная β неравенство
такова, что β < 1 и при этом выполняется
67
β (xn − xn − p ) ≤ xn + p − xn ,
(8.5)
тогда справедлива следующая априорная оценка “снизу” для неизвестного решения x* : x * ≥ xn + p +
β 1− β
( xn + p − xn ) .
Важно подчеркнуть, что приведенные оценки “снизу” и “сверху” являются на самом деле достаточно точными даже в тех случаях, когда приближения xn − p , xn , xn + p (n = 0,1,2,...) достаточно далеки от точного решения x* . Удивительным является и тот факт, что оценки “снизу” и “сверху” для x*
могут
сходиться
к
решению
даже
последовательных приближений (8.3)
в
том
случае,
когда
метод
вообще не сходится (последнее
заведомо будет иметь место в случае когда спектральный радиус оператора A больше чем единица). Предложенные ниже примеры иллюстрируют такую
ситуацию. Приведем примеры применения вышеизложенного метода получения двусторонних оценок. Пример 1. Рассмотрим уравнение вида (8.2) , где 0.1 0.12 A = 0.15 0.1 0.14
0.15 0.14 0.11 0.1 0.13
0.13 0.14 0.13 0.11 0.12 0.1 0.13 0.13 0.17 0.1
Точное решение данного уравнения
радиус r ( A) = 0.6199 .
0.1 0.14 0.12 , 0.12 0.12
1 2 f = 3 . 4 5
5.85367655 7.04617563 x* = 7.64556639 , а спектральный 8.61739842 10.11023145
68 1 1 В качестве начального приближения выберем вектор x0 = 1 . Выбрав в 1 1
данном примере n = 4 , p = 2 , получим: 3.2332000 4.3282000 x2 = 5.1026000 6.1686000 7.3192000
4.8478793 6.0010283 x4 = 6.6679146 , 7.6764155 9.0362385
5.4670630 6.6444378 x6 = 7.2697728 . 8.2557006 9.6974076
Используя (8.4) , (8.5) , получаем γ и β : γ = 0.38506, β = 0.38347 .
Тогда точное решение x* исходного уравнения заключено между следующими границами: 5.85479 5.85219 7.04733 7.04463 7.64412 ≤ x* ≤ 7.64665 . 8.61844 8.61601 10.11142 10.10865
Итак, здесь точность вычислений составляет 10−2 . Пример 2. Рассмотрим уравнение вида (8.2) , где . 013 . 0.31 0.2 011 0.37 0.241 0.33 01 . A= , 0.34 0.32 0.3 0.2 . 0.24 0.2 0.31 01
Точное решение данного уравнения
радиус r ( A) = 0.9388 .
1 1 f = . 1 1
12.80737245 18.32392049 * x = , а спектральный 20.26207124 14.82644337
69 1 1 В качестве начального приближения выберем вектор x0 = . В данном 1 1
примере выбрав n = 4 , p = 1 , получим: 3.0636876 3.9727109 x3 = , 4.3060713 3.3881505
3.6598517 4.8508063 x4 = , 5.2823728 4.0880412
4.2195602 5.6751766 x5 = . 61989277 . 4.7450875
Найдем γ и β используя (8.4) , (8.5) : γ = 0.93885, β = 0.93878 .
Тогда точное решение x* исходного уравнения заключено между следующими границами: 12.81289 12.80306 18.31743 ≤ x * ≤ 18.33192 . 20.27100 20.25490 14.83287 14.82132
Любопытно отметить, что оценку для решения мы получаем и в том случае, когда спектральный радиус оператора A больше единицы (r ( A) > 1) , т.е. в случае когда метод последовательных приближений заведомо расходится. Приведем соответствующий этому случаю пример. Пример 3. Рассмотрим уравнение вида (8.2) , где 0.43 0.5 A= 0.44 0.2
011 . 0.232 0.41 0.52 0.31
0.33 0.3 01 .
Точное решение данного уравнения
радиус r ( A) = 1.2923 .
0.4 01 . , 0.4422 0.51
1 1 f = . 1 1
−2.8541858 −3.9317454 * x = , а спектральный −4.9413177 −2.62002046
70 1 1 В качестве начального приближения выберем вектор x0 = . Выбрав 1 1 n = 5, p = 2 , получим: . 55789683 11.2320483 20.6730281 . . 6.5091982 135079548 251967418 . x3 = ,x = ,x = 7.7995472 5 16.3381634 7 30.6004789 5.3022657 10.6108577 19.4786376
Используя (8.4) , (8.5) получим γ и β : γ = 1.67046, β = 1.67006.
Тогда точное решение x* исходного уравнения заключено между следующими границами: −2.84934 −2.85772 −3.93645 ≤ x * ≤ −3.92608 . −4.93433 −4.94699 −2.61559 −2.62346
Важно также подчеркнуть, что приближения xn − p , xn , xn + p (n = 0,1,2,...) могут быть получены не только по методу последовательных приближений, но и по методу однопараметрического итеративного агрегирования [72]. В данном случае получим два вектора, находящиеся в определенной степени близости от точного решения x* , причем точность полученных таким способом векторов будет выше, чем точность соответствующих
приближений,
полученных по методу однопараметрического итеративного агрегирования. Отметим также, что хотя при помощи этих векторов нельзя будет оценить точное решение x* «снизу» и «сверху», тем не менее, их степень точности будет намного выше, чем у соответствующих оценок точного решения x* . Приведем соответствующий пример. Пример 4. Рассмотрим уравнение вида (8.2) , где
71 0.43 0.5 A= 0.44 0.2
011 . 0.232 0.41 0.52 0.31
0.33 0.3 01 .
Точное решение данного уравнения
0.4 01 . , 0.4422 0.51
1 1 f = . 1 1
−2.8541858 −3.9317454 * x = , а спектральный −4.9413177 −2.62002046
радиус r ( A) = 1.2923 . 1 1 В качестве начального приближения выберем вектор x0 = . Выбрав 1 1 n = 5, p = 2 , получим: −2.8475888 −2.8533233 −2.8542158 . −38955860 −3.9328087 −3.9318695 x3 = , x5 = , x7 = . −4.8900915 −4.9414894 −4.9415040 −2.5896551 −2.6192712 −2.6201374
Используя (8.4) , (8.5) получим γ и β : γ = 0.15564, β = −0.02523.
Тогда точное решение x* исходного уравнения можно оценить при − 2.85419 − 3.93189 помощи векторов − 4.94150 − 2.62011
− 2.85438 − 3.93169 и , при этом не обязательно точное − 4.94150 − 2.62029
решение x* заключено между этими векторами. Как видно из этого примера, по сравнению с предыдущим, заметно повысилась точность оценки решения. В данном случае точность составляет 10-3. Пример 5. Рассмотрим уравнение вида (8.2) , где
72 0.8 0.3 0.2 0.78 A = 0.29 015 . 0.2 . 017 0.3 0.23
014 . 019 0.2 0.21 . 0.63 01 015 . . , 01 0.4 012 . . 0.28 0.29 0.71 0.23
1 1 f = 1 . 1 1
0.2
Точное решение данного уравнения
−2.49235353 −2.18734811 x * = −1.43998764 , а спектральный −0.57455446 −2.82970158
радиус r ( A) = 1.5031 . 1 1 В качестве начального приближения выберем вектор x0 = 1 . Выбрав 1 1 n = 6, p = 2 , получим: −2.4869409 −2.4905301 −2.4918539 −2.1972947 −2.1901038 −2.1882051 x4 = −1.4535331 , x6 = −1.4412772 , x8 = −1.4398975 . −0.5889179 −0.5762146 −0.5748209 −2.8323441 −2.8303238 −2.8297327
Используя (8.4) , (8.5) получим γ и β : γ = 0.36883, β = 0.10972 .
Тогда точное решение x* исходного уравнения можно оценить при − 2.49201 − 2.18797 помощи векторов − 1.43972 − 0.57464 − 2.82965
− 2.49262 − 2.18709 и − 1.43909 , при этом не обязательно точное − 0.57400 − 2.82938
решение x* заключено между этими векторами. Приведенные
примеры
подтверждают,
что
применение
метода
однопараметрического итеративного агрегирования фактически способствует увеличению точности получаемых оценок решения уравнения.
73
По предложенному в этом параграфе методу автором составлена программа на языке программирования TURBO PASCAL.
§9. О некоторых подходах к уточнению границ решения операторных уравнений вида x = Ax + f в случае, когда спектральный радиус r ( A) не обязательно меньше единицы. В данном параграфе предлагается способ уточнения оценок вида (8.1) . Приведенные оценки могут быть уточнены, если известно, что оператор A p обладает дополнительными свойствами, например, если этот оператор u0 -ограничен снизу [66].
Оператор
Ap
называется
u0 -ограниченным
фиксированный элемент, если для каждого
снизу,
x >θ
где
u0 > θ
существует такое
δ = δ ( x) > 0 , что выполняется неравенство A p x ≥ δ ( x)u0 .
В частности A p u0 ≥ δ 0u0
(δ 0 > 0) .
(9.1)
Возможность улучшения полученных оценок для u0 - ограниченных снизу операторов основана на том, что для таких операторов из неравенства xn + p − xn ≤ γ (xn − xn − p ),
(9.2)
где xn + p , xn , xn − p - приближения к точному решению x* , полученные по методу последовательных приближений ( n и p - фиксированные натуральные числа
(n ≥ p ) ), причем
0 < γ < 1 , вытекает более сильное, чем неравенство xn + sp − xn + ( s −1) p ≤ γ s −1 ( xn + p − xn ) ,
(последнее
справедливо
для
любого
натурального
s ≥ 2,
благодаря
положительности, а потому и монотонности линейного оператора A), неравенство вида xn + sp − xn + ( s −1) p ≤ γ s − 1 ( xn + p − xn ) − σ n( s,)p ,
74
где σ n( s,)p ≥ θ . Справедлива следующая теорема [66]. Теорема 9.1. Пусть оператор A p является u0 - ограниченным снизу. Пусть выполнено неравенство (9.2) и γ > δ 0 . Тогда имеет место следующее уточнение оценки “сверху” для решения x* уравнения (8.2) : x * ≤ xn + p +
γ 1− γ
( xn + p − xn ) −
δ (1 − γ )(1 − δ 0 )
u0 ,
где γ и δ 0 определяются согласно (9.2) и (9.1) , а δ = δ [γ (xn − xn − p ) − (xn + p − xn )] > 0.
Теорема 9.2. Пусть оператор A p является u0 - ограниченным снизу. Пусть для последовательных приближений
xn + p , xn , xn − p ,
где
n
и
p
фиксированные натуральные числа (n ≥ p ) , выполняется неравенство β (xn − xn − p ) ≤ xn + p − xn ,
(9.3)
причем 0 < β < 1 и β > δ 0 . Тогда имеет место следующее уточнение оценки “снизу” для решения x* уравнения (8.2) : x * ≥ xn + p +
β 1− β
( xn + p − xn ) +
δ1
(1 − β )(1 − δ 0 )
u0 ,
где β и δ 0 определяются в соответствии с неравенствами (9.3) и (9.1) , а δ1 = δ1 [(xn + p − xn ) − β (xn − xn − p )] > 0.
Ниже будут рассмотрены примеры, в которых реализовывается метод получения оценок точного решения x* операторного уравнения вида (8.2) и способ
улучшения
этих
оценок.
Также
рассматривается
вариант
предложенного метода в “связке” с методом однопараметрического итеративного агрегирования. К полученным таким методом оценкам точного решения x* операторного уравнения вида (8.2) улучшения этих оценок.
применяется способ
75
Пример 1. Рассмотрим уравнение вида (8.2) , где 01 0.31 . . 0.05 012 0.06 0.27 0.29 013 . A= , 0.41 0.053 011 0.21 . 0.04 0.36 0.22 . 017
1 2 f = . 3 4
В данном примере спектральный радиус
начального
приближения
выберем
вектор
r ( A) = 0.727 .
1 1 x0 = . 1 1
В качестве
Точное
решение
7.135319126 9.39508034 * x = . Зафиксируем n = 5, p = 2 , получим: 9.99663311 11.77896844 4.338243 5822515 . , x3 = 6.583639 . 8110907
5.650142 6.350149 7.505754 8.396079 x5 = , x7 = . 8189273 9.041989 . 9.849658 10.759054
Здесь γ = 0.53358 , β = 0.52302 . Тогда вектор решения x* данного уравнения заключен между следующими векторами: 7.11771 7.15096 9.37233 ≤ x * ≤ 9.41461 . 9.97700 10.01750 11.75622 11.79941
Как видно точность полученных оценок составляет 10-1. Теперь применим к полученным результатам способ улучшения оценок, который был описан 1 1 выше. Выберем в качестве u0 = . Тогда оценки точного решения x* примут 1 1
следующий вид:
76 7.13307 7.13826 9.38769 ≤ x * ≤ 9.40192 . 9.99236 10.00481 11.77158 11.78671
Точность у полученных оценок возросла и составляет 10-2. Воспользуемся теперь для этого же примера синтезом метода получения оценок точного решения
x* операторного уравнения вида (8.2) и метода
однопараметрического итеративного агрегирования. В данном случае приближения
xn + p , xn , xn − p
получены
по
методу
однопараметрического
итеративного агрегирования. Здесь также n = 5, p = 2 . Получим соответствующие приближения: 7.13136 7.13723 3.34939 9.39738 x3 = , x5 = , 9.97545 9.99566 11.70409 11.78115
7.13526 9.39514 x7 = . 9.99668 11.77909
Здесь γ = 0.05071, β = −0.33579 . Тогда точное решение x* можно оценить при помощи следующих векторов: 7.13576 7.13516 9.39570 и 9.39502 . 9.99642 9.99674 11.77961 11.77898
Как видно по сравнению с предыдущими оценками здесь заметно возросла точность и теперь она составляет 10-3. В данном случае модификация предложенного метода намного улучшает оценки точного решения x* операторного уравнения вида (8.2) . Рассмотрим теперь пример с таким линейным оператором A , у которого спектральный радиус r ( A) > 1 . Пример 2. Рассмотрим уравнение вида (8.2) , где
77 0.45 0.06 A= 0.41 . 017
0.31 0.27 0.29 013 . , 0.53 011 0.21 . 0.47 0.36 0.22 012 .
01 .
1 2 f = . 3 4
В данном примере спектральный радиус
начального
приближения
выберем
вектор
r ( A) = 1.015 .
1 1 x0 = . 1 1
В качестве
Точное
решение
− 158.9741086 − 114.8110005 * x = . Зафиксируем n=8, p=2, тогда получим: − 181.2641594 − 182.3613668 14.52504 19.91487 12.31833 16.26772 x6 = , x8 = , 18.73744 24.95073 20.35843 26.65614
25.47222 20.33980 x10 = . 31.35698 . 3314946
Отметим тот факт, что в данном случае приближения, полученные по методу последовательных приближений не сходятся к решению уравнения вида (8.2) , т.к. r ( A) > 1 . Тем не мене получим следующие оценки точного решения x* , где γ = 1.03108, β = 1.03106 : −159.02434 −158.89897 −114.84789 ≤ x * ≤ −114.75602 . −181.32226 −18117774 . −182.42023 −182.27374
Итак, несмотря на то, что метод последовательных приближений в данном случае фактически “расходится”, полученные оценки достаточно близки от точного решения x* . Воспользуемся теперь модификацией метода получения оценок точного решения
x*
операторного
уравнения
вида
(8.2)
и
метода
78
однопараметрического итеративного агрегирования. Здесь также n=8, p=2, 1 1 x0 = . Получим соответствующие приближения: 1 1 −159.01063 −114.84337 x6 = , −181.30776 −182.41119
−158.97515 −114.81199 x8 = , −181.26545 −182.36289
−158.97413 −114.81103 x10 = . −181.26419 −182.36141
Здесь γ = 0.03086, β = 0.02873 . Тогда точное решение x* можно оценить при помощи следующих векторов: −158.974106 −158.974214 −114.811001 и −114.811110 . −181.264158 −181.264266 −182.361368 −182.361475
В данном случае заметно возросла точность и теперь она составляет 10-3. Применение в данном случае модификации предложенного метода намного улучшает оценки точного решения x* операторного уравнения вида (8.2) . Но применение здесь способа улучшения оценок не увеличивает точность полученных оценок. Напомним еще раз, что в данном случае r ( A) > 1 . Итак, применять способ улучшения полученных оценок точного решения x* , возможно только в том случае, если спектральный радиус оператора A
меньше единицы r ( A) < 1 . Если до этого мы рассматривали примеры, у которых линейный оператор A - матрица, у которой все элементы были положительными, то теперь
рассмотрим такие примеры, у которых матрица A , таким свойством не обладает. Пример 3. Пусть дано уравнение вида (8.2) , где 0.47 −0.31 . 0.05 −012 −0.06 0.27 0.29 013 . A= , 0.41 0.053 011 −0.21 . 0.04 −0.36 0.22 . −017
1 2 f = . 3 4
79
В данном примере спектральный радиус r ( A) = 0.7604 . В качестве
начального
приближения
выберем
вектор
1 1 x0 = . 1 1
Точное
решение
0.7990584 4.5837095 * x = . Зафиксировав n=8, p=2, тогда получим: 3.1281162 3.7453674 0.88105 4.59444 x6 = , 3.20047 3.67094
0.84543 0.825725 4.59210 4.588753 x8 = , x10 = . 3.17126 3.153246 3.70245 3.720579
Здесь γ = 1.43655, β = 0.55320 . Тогда координаты вектора точного решения x* можно оценить при помощи следующих векторов: 0.80133 4.58460 3.13094 3.74302
0.89057 4.59979 и . 3.21254 3.66093
Как видно в этом случае точное решение x* нельзя оценить “снизу” и “сверху”, при помощи полученных векторов, как, например, это было в случае, когда линейный оператор
A
- матрица с положительными
элементами. Попробуем применить способ улучшения оценок в данном случае. 1 1 Выберем в качестве u0 = . Тогда для оценки точного решения x* получим 1 1
следующие векторы: 0.80018 0.85749 4.58345 4.56671 3.12979 и 3.17946 . 3.74187 3.62786
Принципиально ситуация не изменилась.
80
А теперь применим к рассматриваемому примеру модификацию методов получения оценки точного решения x* и однопараметрического итеративного
агрегирования. Здесь также
1 1 x0 = , n=8, 1 1
p=2. Получим следующие
приближения: 1.00624 4.60087 x6 = , 3.31259 3.55834
0.91708 0.86711 4.59250 4.58861 x8 = , x10 = . 3.23603 3.19080 3.63808 3.68338
Здесь γ = 0.59085, β = 0.46347 . Тогда точное решение можно оценить при помощи следующих векторов: 0.82395 0.79495 4.58526 4.58301 3.15172 и 3.12547 . 3.72251 3.74880
Итак, в случае, когда матрица A ( r ( A) < 1 ) не является положительной, нельзя получить оценки снизу” и “сверху” точного решения x* и, соответственно получить уточнение полученных оценок. Если в предыдущем примере r ( A) < 1 , то теперь рассмотрим пример в котором r ( A) > 1 . Пример 4. Пусть дано уравнение вида (8.2) , где 0.47 −0.31 . 0.05 −012 −0.6 0.27 0.59 013 . A= , 0.69 0.53 0.71 −0.21 −0.27 0.04 −0.36 0.22
1 2 f = . 3 4
81
В данном примере спектральный радиус r ( A) = 1.26617 . В качестве
начального
приближения
выберем
вектор
1 1 x0 = . 1 1
Точное
решение
−7.523184 4.206156 * x = . Зафиксировав n=16, p=1, получим: −8.446543 . 11846489 155.75808 87.24385 x15 = , 332.23149 −144.35238
199.21668 109.35176 x16 = , 422.91068 −185.92579
254.24363 137.34191 x17 = . 537.72694 −238.56595
Как видно, приближения, полученные по методу последовательных приближений, “удаляются” от точного решения x* . Тем не менее, точное решение x* можно оценить при помощи следующих векторов: −7.59769 −7.49774 4.15304 и 4.20389 . −8.61703 −8.40846 . 11.91803 1182240
Отметим, что полученные оценки обладают достаточно высокой точностью. Применение к полученным векторам способа улучшения оценок не дает ожидаемого эффекта. Из проделанных вычислений следует, что использование в данном случае модификации
методов
получения
оценки
точного
решения
x*
и
однопараметрического итеративного агрегирования не дает выигрыша в точности. Рассмотрим теперь пример с таким оператором A , спектральный радиус которого «намного» больше единицы. Пример 5. Пусть дано уравнение вида (8.2) , где
82 0.97 −0.31 . 1 0.95 −012 2 −0.6 0.89 0.59 0.93 , f = . A= 3 0.99 0.38 0.71 −0.21 4 −0.2 0.84 −0.03 0.92
В данном примере спектральный радиус r ( A) = 2.0022 . В качестве 1 1 начального приближения выберем вектор x0 = . Заметим, что в данном 1 1 −2.189895 −5.620456 * . Зафиксируем n=4, p=1. Для оценки примере точное решение x = −2.652581 −2.545337
точного решения x* , получим соответствующие приближения: 10.51584 17.69660 27.78023 25.31423 5016418 95.00877 . x3 = , x4 = , x5 = . 17.47908 30.55574 52.02921 23.25953 44.03518 82.19429
Здесь γ = 1.83672, β = 1.40426 . Тогда точное решение заключено между следующими векторами: −7.24697 5.64526 −60.76652 ≤ x * ≤ −3.43134 . −22.56253 4.89195 . −50.35785 −157026
Как видно, полученные оценки очень далеки от точного решения x* , тем не менее, они позволяют получить “нижнюю” и “верхнюю” границы точного решения x*
операторного уравнения вида (8.2) . Использование в данном
случае способа улучшения полученных оценок ситуацию не изменяет. Ситуация не изменяется и при применении модификации методов получения оценки
точного
агрегирования.
решения
x*
и
однопараметрического
итеративного
83
Итак, из рассмотренных выше примеров можно сделать вывод, что предложенный выше способ и метод в [59] и их модификации обладают большим потенциалом. Оценку v решения x* назовем активной оценкой решения уравнения вида (8.2) сверху, если Av + f ≤ v .
Аналогично, оценку u решения x* назовем активной оценкой решения уравнения вида (8.2) снизу, если Au + f ≤ u.
Очевидно, что наличие активных оценок «сверху» и «снизу» решения x* позволяет их улучшать. Именно, если un = Aun −1 + f , vn = Avn −1 + f (n = 1,2,...; u0 = u, v0 = v) ,
где u0 ,v0 - активные оценки, то un , vn при всех n также являются активными оценками. При этом, если r ( A) < 1 , то un , vn сходятся к решению x* , причем для всех значений n un ≤ x* ≤ vn ,
то есть мы имеем сходящиеся к решению x* двусторонние приближения. Понятно, что это свойство активных оценок представляет значительный интерес, а получение таких оценок представляется весьма актуальным. В этой связи
интересно исследовать полученные выше оценки на предмет
наличия у них свойства активности. Однако прежде сделаем следующее замечание. Очевидно, всякое решение x* уравнения (8.2) является для любого натурального s также решением уравнения x = As x + f1 ,
(9.4)
где f1 = As −1 f + As − 2 f + ... + Af + f ,
то есть уравнения
(9.5)
84 x = A1 x + f1
при A1 = As . Оператор As , очевидно, линеен и положителен одновременно с оператором A . Теорема 9.3. Все оценки, полученные в теоремах 8.1, 8.2, 9.1, 9.2, являются активными. Доказательство. Ограничимся доказательством
активности оценки
«снизу» теоремы 8.2 (для остальных оценок доказательства аналогичны). Итак, пусть выполнены условия теоремы 8.2. Пусть в (9.4) и (9.5) s = p и A1 = A p . Тогда, очевидно, для элемента u1 = xn + p +
β 1− β
( xn + p − xn ) достаточно доказать, что A1u1 + f1 ≥ u1 .
Последнее неравенство эквивалентно неравенству ( xn + 2 p − xn + p ) +
β 1− β
( xn + 2 p − xn + p ) ≥
β 1− β
( xn + p − xn ) ,
а это неравенство, в свою очередь, эквивалентность неравенству 1 β ( xn + 2 p − xn + p ) ≥ ( xn + p − xn ) . 1− β 1− β
Справедливость последнего неравенства следует из условия теоремы 8.2 и монотонности оператора A1 Теорема доказана. Наличие активных оценок «снизу» и «сверху» решения x* позволяет использовать более эффективный прием их улучшения, чем итеративные методы улучшения, изложенный выше. Этот прием приводит к новым активным оценкам решения. Опишем этот прием на примере его применения к оценкам в теоремах 8.1, 8.2, полагая, для простоты записи и выкладок, что в последних p = 1 . Теорема 9.4. Пусть числа γ и β удовлетворяют, соответственно, неравенствам (8.4) и (8.4) , а число m1 неравенству
85 1 [( xn +1 − xn ) − β ( xn − xn −1 )] ≥ m1 1 [γ ( xn − xn −1 ) − ( xn +1 − xn )]. 1− β 1− γ
(9.6)
Тогда для решения x* уравнения (8.2) верна следующая оценка «снизу»: x* ≥
1 β γ ( xn +1 − xn ) + m1 xn +1 + ( xn +1 − xn ) . xn +1 + 1 + m1 1− β 1− γ
(9.7)
Аналогично, если m2 удовлетворяет неравенству 1 [γ ( xn − xn −1 ) − ( xn +1 − xn )] ≥ m2 [( xn +1 − xn ) − β ( xn − xn −1 )] 1− γ 1− β
(9.8)
то x* ≤
1 γ β ( xn +1 − xn ) + m2 xn +1 + ( xn +1 − xn ) . xn +1 + 1 + m2 1− γ 1− β
(9.9)
Остановимся на доказательстве оценки (9.7) . Условие (9.6) , как нетрудно проверить, означает справедливость следующего неравенства ( Au0 + f ) − u0 ≥ m1 [v0 − ( Av0 + f )] ,
где u0 и v0 , соответственно выражаются формулами u 0 = xn + v0 = xn +
β 1− β
γ 1− γ
( xn − xn −1 ) , ( xn − xn −1 ).
Тогда из результатов работы [64] следует справедливость оценки (9.7) . Аналогично, условие (9.8) означает, что v0 − ( Av0 + f ) ≥ m2 [( Au0 + f ) − u0 ] ,
из которого опять на основании [64] вытекает оценка (9.9) . Оценки (9.7) и (9.9) заведомо лучше оценок в теоремах 8.1, 8.2, соответственно, если
m1 > 0 и m2 > 0 . Последнее условие выполняется, если
конус K телесен, а оператор A переводит ненулевые элементы конуса K во внутренние элементы K . В случае A = (aij ) , E = R n при конусе K векторов с неотрицательными координатами, последнее имеет место, если все элементы матрицы A положительные.
86
§10. “Гибрид” методов ускорения сходимости монотонных приближений к решению x* уравнения вида x = Ax + f и однопараметрического итеративного агрегирования В данном параграфе предлагается один вариант метода, позволяющего строить приближения к решению системы линейных уравнений вида (8.2) , обладающего достаточно высокой скоростью сходимости. Заметим, что предлагаемый вариант по существу представляет собой сочетание методов итеративного агрегирования и использует идею ускорения сходимости для известного варианта [36] ускорения сходимости метода последовательных приближений. Предлагаемый в данном параграфе метод по существу гарантирует достаточно высокую скорость сходимости к исходному решению и отличается простотой в его реализации. Немаловажной особенностью этого метода является то, что этот метод способен сходится к решению уравнения вида (8.2) и в случае, когда спектральный радиус матрицы A больше единицы r ( A) > 1 . Сущность данного “гибрида” методов для отыскания решения уравнения вида (10.1)
x = Ax + f , где A – матрица
порядка (n × n ) , f – свободный вектор, f ∈ R n , x –
неизвестный вектор, x ∈ R n , заключается в следующем алгоритме. Сначала находим такие векторы u0 ,v0 , для которых выполняются неравенства: u0 ≤ u1 = Au0 + f ,
(10.2)
v1 = Av0 + f ≤ v0
(10.3)
(существование таких векторов будет обеспечено при выполнении условия r ( A) < 1 ).
Алгоритм поиска векторов u0 и v0 был описан в §2. Затем из уравнения вида u = Au + f ,
по u0 строим u1
методом
однопараметрического итеративного агрегирования и из уравнения вида
87 v = Av + f
по v0 строим v1 методом однопараметрического итеративного
агрегирования. Потом определяем поправочные коэффициенты
p1 и q1 следующим
образом. Пусть p1 , q1 - такие два числа, для которых выполняются неравенства: u1 − u0 ≥ p1 (v0 − v1 ) , v0 − v1 ≥ q1 (u1 − u0 ) .
Здесь p1 и q1 определяются из условия p1 ≤
( u1 − u0 )i ; ( v0 − v1 )i
q1 ≤
( v0 − v1 )i ( u1 − u0 )i
(i = 1,2,...) .
В частности можно положить p1 = min i = 1, n
( u1 − u0 )i (v − v ) ; q1 = min 0 1 i . i = 1, n ( u − u ) ( v0 − v1 )i 1 0 i
на первой итерации заключено
Тогда решение уравнения вида (10.1) между элементами u1* , v1* , где u1* =
Итак,
выше
был
u1 + p1v1 , 1 + p1
описан
v1* =
один
v1 + q1u1 . 1 + q1
шаг
рекуррентного
процесса
предлагаемого метода. Аналогично, пусть определены un и vn , по индукции положим un* =
un + pn vn , 1 + pn
vn* =
vn + qn un . 1 + qn
Отметим тот факт, что при применении схемы ускорения сходимости поправочные коэффициенты p и q можно определять другим способом (отличным от описанного выше). Он заключается в следующем: а) возьмем отношения
(u1 − u0 ) i (v0 − v1 ) i , (v0 − v1 ) i (u1 − u0 ) i
(i = 1,2,...)
88
б) в качестве
p1 выбираем среднее арифметическое, составленное из
соответствующих координат вектора
(u1 − u0 ) i , а в качестве (v0 − v1 ) i
арифметическое из соответствующих координат вектора ,
q1 среднее
(v0 − v1 ) i . (u1 − u0 ) i
Но как показывают примеры, если определены начальные приближения u0 и v0 , удовлетворяющие условиям (10.2) и (10.3) , то возможна такая ситуация, при
которой
“гибрид”
методов
ускорения
сходимости
монотонных
приближений и однопараметрического итеративного агрегирования не работает, т.к. на некотором шаге при определении
u n* , vn*
будет появляться
недопустимая операция (деление на ноль). Отметим, что последовательности un* и vn* обладает более высокой скоростью сходимости к точному решению x* , чем метод ускорения сходимости. Пример 1. Рассмотрим уравнение вида (10.1) , где 0.2 0.3 , A = 0.4 0.2
1 f = . 2 2.692307 . Пусть 3.846153
Спектральный радиус r ( A) = 0.546 . Точное решение x* = 1 − 2.5 , z0 = , тогда u0 = 1 − 2.5
2.5 v0 = . 2.5
Соответствующие приближения un* и vn* , к координатам вектора решения представим в виде таблицы. Таблица 19 Приближения к 1-ой координате вектора решения n
1 2
“ un* ”
“ vn* ”
2.6667
2.6667 Деление на ноль
89
Приближения к 2-ой координате вектора решения 1
4.000
4.000
2
Деление на ноль
В рассмотренном выше примере недопустимая операция возникла из-за действия параметра, при определении последовательностей un и vn методом последовательных приближений. Но как показывают практика в качестве начальных приближений можно выбрать такие неотрицательные векторы u0 и удовлетворять условиям
(10.2)
и
(10.3) ,
v0 ,
которые не будут
но при этом
полученные
последовательности un* и vn* будут сходится к точному решению x* , хотя это решение не всегда будет заключено между этими последовательностями. При этом скорость сходимости в некоторых случаях заметно увеличится. Здесь, по сути, мы имеем две независимые последовательности un* и vn* , сходящиеся к точному решению x* уравнения вида (10.1) . Рассмотрим соответствующий пример. Пример 2. Рассмотрим уравнение вида (10.1) , где 0 .3 0 .4 0 .1 A = 0 .1 0 .5 0 .2 , 0 .2 0 .3 0 .4
1 f = 2 . 3
10.17391304 Точное решение x = 11.73913043 , а спектральный радиус r ( A) = 0.828 . 14.26086956 *
В качестве начальных приближений возьмем векторы: 1 u0 = 2 , 3
5 v0 = 7 . 8
Используя вышеизложенный метод, получим приближения un* и vn* , между которыми заключено решение исходного уравнения. Соответствующие приближения un* и vn* , к координатам вектора решения представим в виде таблицы.
90
Таблица 19 Приближения к 1-ой координате вектора решения n
“ un* ”
“ vn* ”
1
12.44537815
12.466832216
2
10.65854778
10.43895004
6
10.17369452
10.17378128
9
10.17391466
10.17391530
12
10.17391306
10.17391305
15
10.17391304
10.17391304
Приближения к 2-ой координате вектора решения 1
13.00840336
13.00510274
2
12.94980838
12.16330283
6
11.73867845
11.73872240
9
11.73913495
11.73913590
12
11.73913048
11.73913048
15
11.73913043
11.73913043
Приближения к 3-й координате вектора решения 1
14.54621849
14.52806509
2
15.60339011
14.67062656
6
14.26039228
14.26039700
9
14.26087469
14.26087558
12
14.26086961
14.26086962
15
14.26086956
14.26086956
Как видно из таблицы точность вычислений на 15-м шаге составляет 10-8. При реализации данного метода значения последовательностей un* и vn* можно
находить
для
некоторых
фиксированных
значений
последовательностей un и vn , т.е определять значения последовательностей un* и vn* в “узловых” точках последовательностей un и vn , при этом скорость
91
схождения
приближений
к
решению
исходного
уравнения
заметно
возрастает. Применим данные рассуждения для вышеизложенного примера, причем значения u * и v* будут определяться для u4 n , v4 n . В качестве начальных приближений возьмем следующие векторы: 6 u0 = 5 , 4
1 v0 = 2 3
Соответствующие приближения un* и vn* , к координатам вектора решения представим в виде таблицы. Таблица 20 Приближения к 1-ой координате вектора решения n
“ un* ”
“ vn* ”
1
11.05524862
11.41860465
2
10.16937891
10.17410479
3
10.17391086
10.17391655
4
10.17391304
10.17391306
Приближения к 2-ой координате вектора решения 1
8.64088398
6.27906977
2
11.73508279
11.73888093
3
11.73912821
11.73913563
4
11.73913042
11.73913046
Приближения к 3-й координате вектора решения 1
9.47513812
6.02325581
2
14.25823541
14.26040731
3
14.26086792
14.26087442
4
14.26086955
14.26086959
Понятно, что если повысить порядок “узловых” точек, то скорость схождения к вектору решения исходного уравнения увеличится.
92
Можно при помощи следующего графика провести сравнительный анализ рассмотренных ранее численных методов.
120 метод последовательных приближений метод ускорения сходимости
Количество итераций
100 80 60
гибрид ускорения сходимости
40 гибрид ускорения сходимости (узл.)
20 0 1
2
3
4
5
6
7
Порядок точности
Рис. 1. Сравнение скорости сходимости «гибрида» методов ускорения сходимости и однопараметрического итеративного агрегирования
с
известными ранее методами. В данном графике по оси абсцисс указаны количество верных знаков после запятой, а по оси ординат – количество итераций. В
заключении
отметим,
что
условие
монотонной
сходимости
приближений к решению x* уравнения вида (10.1) , при решении их гибридом методов ускорения сходимости и однопараметрического итеративного агрегирования в рассмотренных примерах не выполняется.
93
§11. Об одном варианте метода ускорения сходимости монотонных приближений к решению уравнения вида x = Ax + f В этом параграфе приближения “снизу” и “сверху” к точному решению x* операторного уравнения вида (11.1)
x = Ax + f ,
где A - матрица порядка (n × n) , f
- свободный вектор, f ∈ R n , x -
неизвестный вектор, x ∈ R n , строятся по методу ускорения сходимости монотонных приближений (см.§2) к точному решению x* уравнения вида (11.1) по следующим формулам[36]: un* =
un + pn vn , 1 + pn
vn* =
При построении приближений (11.2)
vn + qn un . 1 + qn
(11.2)
возникают проблемы с выбором
начальных приближений u0 , v0 , для которых выполняются следующие неравенства: u0 ≤ u1 = Au0 + f ,
(11.3)
v1 = Av0 + f ≤ v0
(11.4)
(существование таких векторов обеспечивает условие r ( A) < 1 ). И если в качестве вектора u0 всегда можно выбрать свободный вектор f , то с вектором v0 дела обстоят несколько сложнее (существует определенный алгоритм
отыскания
приближений
u0 , v0
u0 , v0 ).
векторов предлагается
Здесь
выбрать
в
качестве
векторы,
начальных
полученные
по
следующим формулам (см.§7): xn + p + xn + p +
β 1− β
γ 1− γ
( xn + p − xn ) , ( xn + p − xn ) ,
где xn − p , xn , xn + p (n = 0,1,2,...) соответствующие приближения к решению x* метода последовательных приближений: xn +1 = Axn + f , (n = 0,1,2,...)
94
постоянная β такова, что β < [0,1) и при этом выполняется неравенство: β (xn − xn − p ) ≤ xn + p − xn
постоянная γ такова, что γ ∈ [0,1) и при этом выполнено неравенство: xn + p − xn ≤ γ (xn − xn − p ).
Заметим, что в данном случае векторы u0 , v0 будут находиться в определенной близости от точного решения x* ( u0 ≤ x* ≤ v0 ) и при этом для них будут выполняться неравенства (11.3) и (11.4) . Отметим, что данный выбор векторов u0 , v0 увеличивает скорость сходимости двусторонних приближений к точному решению x* уравнения (11.1) . Проиллюстрируем вышесказанное на соответствующем примере. Пример 1. Пусть дано уравнение вида (11.1) , где . . 012 0.3 0.2 01 1 . . . 0.26 015 017 01 1 A= , f = . 013 1 . . 0.28 019 0.21 . . . 01 0.2 018 011 1
Заметим, что в данном примере спектральный радиус r ( A) = 0.702 , а 3.41546595 3.31263729 * . Здесь n=2, p=1 и для получения векторов точное решение x = 3.70159569 2.98449283
u0 , v0
1 1 в качестве начального приближения выберем вектор x0 = . Тогда 1 1
получим следующие векторы u0 , v0 : 3.40838 3.30559 u0 = , 3.69403 2.97868
3.42103 3.31776 v0 = . 3.70814 2.98907
95
Теперь по формулам (11.2) получим соответствующие приближения “снизу” и “сверху” к точному решению x* уравнения (11.1) . Представим эти приближения в виде следующей таблицы. Таблица 21 n
“ un* ”
“ vn* ”
1
3.414455 3.311699 3.700482 2.983718
3.416105 3.313286 3.702322 2.985073
2
3.414966 3.312155 3.701045 2.984086
8
3.415408 3.312582 3.701531 2.984445
3.415521 3.312690 3.701657 2.984538
16
3.415462 3.312634 3.701591 2.984490
3.415469 3.312640 3.701599 2.984495
29
3.415465 3.312637 3.701595 2.984492
3.415465 3.312637 3.701595 2.984492
3.415889 3.313043 3.702075 2.984844
Итак, на 29-м шаге точность вычислений составляет 10-6, а на 40-м шаге точность вычислений составляет уже 10-8. Отметим тот факт, что при построении приближений, сходящихся к точному решению x* данного примера, методом последовательных приближений точность 10-6 достигается только на 45-м шаге.
96
Для сравнения построим в этом примере приближения методом ускорения сходимости монотонных приближений (см.§2). 1 1 Здесь для определения векторов u0 , v0 выберем вектор z0 = . Тогда по 1 1
алгоритму описанному в §2 , получим следующие векторы u0 , v0 : −5.263 −5.263 u0 = , −5.263 −5.263
5.263 5.263 v0 = . 5.263 5.263
Тогда по формулам (11.2) получим соответствующие приближения “снизу” и “сверху” к точному решению x* уравнения (11.1) . Представим эти приближения в виде следующей таблицы. Таблица 22 Номер прибли
“ un* ”
“ vn* ”
1
2.010526 1.954385 2.136842 . 1828070
4.789473 4.578947 5.263157 . 4105263
2
3.059012 2.971437 3.303166 2.694060
3.658175 . 3549311 3.971307 . 3188090
8
3.383679 3.282047 3.666129 2.958377
3.441629 3.337815 3.730788 3.005988
жений n
97
14
3.411640 3.308956 3.697327 2.981350
3.418614 3.315667 3.705108 2.987079
20
3.415005 3.312194 3.701082 2.984114
3.415844 3.313001 3.702018 2.984804
33
3.415461 3.312632 3.701590 2.984488
3.415469 3.312641 3.701599 2.984496
40
3.415465 3.312636 3.701595 2.984492
3.415466 3.312637 3.701596 2.984493
Итак, на 40-м шаге точность вычислений составляет 10-6. А теперь рассмотрим предложенный метод в случае “гибрида” методов итеративного агрегирования и метода ускорения монотонных приближений [73]. Следует отметить, что в этом случае, при помощи векторов u* , v* , мы можем получить лишь оценку точного решения x* . Реализуем это на уже рассматриваемом здесь примере 1. Тогда здесь векторы u0 , v0 : 3.40838 3.30559 u0 = , 3.69403 2.97868
3.42103 3.31776 v0 = . 3.70814 2.98907
Приближения, полученные по формулам (11.2) представим в виде следующей таблицы.
98
Таблица 23 Номер прибли
“ un* ”
“ vn* ”
1
3.415420 3.312682 3.701559 2.984511
3.415420 3.312628 3.701559 2.984511
2
3.415452 3.312628 3.701587 2.984494
3.415451 3.312628 3.701586 2.984495
3
3.415463 3.312635 3.701595 2.984492
3.415463 3.312635 3.701595 2.984492
4
3.415465 3.312637 3.701595 2.984492
3.415465 3.312637 3.701595 2.984492
жений n
Итак, здесь уже на 4-м шаге точность вычислений составляет 10-6, а на 8м шаге точность вычислений составляет уже 10-8. По сравнению с предыдущими случаями, здесь заметно возросла скорость сходимости приближений. Проведем сравнительный анализ используемых в этом параграфе численных методов при помощи следующего графика.
99 60
Количество итераций
50 40
вариант метода ускорения сходимости
30
метод ускорения сходимости "гибрид" методов ОИА и метода ускорения
20 10 0 1
2
3
4
5
6
7
Порядок точности
Рис. 2. Сравнение варианта метода ускорения сходимости с другими численными методами. По предложенному методу автором разработана программа на языке программирования TURBO PASCAL.
100
§12. Об одном варианте метода Зейделя Балансовая модель производства является одной из наиболее простых математических моделей. Она записывается в виде системы уравнений, каждое из которых выражает требование равенства (баланса) между количеством продукции, производимой отдельным экономическим объектом, и
совокупной
потребностью
в
этом
продукте.
Балансовые
модели
основываются на понятии межотраслевого баланса, который представляет собой таблицу, характеризующую связи между отраслями (экономическими объектами) экономической системы. В настоящее время большое число работ посвящается этой модели и ее применению для решения различных задач. Такой интерес к балансовой модели определяется тем, что, оказалось, эта
модель
хорошо
отражает
многие
существенные
особенности
современного производства и в то же время легко поддается расчету. Во многих странах мира балансовый метод используется для экономического анализа, планирования и прогнозирования. Система балансовых уравнений может быть записана в матричной форме в виде следующего уравнения x=Ax+f. Здесь используется терминология теории положительных операторов [36]. Для того чтобы изложить суть предлагаемого варианта численного метода предварительно опишем метод Зейделя и метод ускорения сходимости приближений. Одна из возможных интерпретаций метода Зейделя, изложенная в [16], решения линейных алгебраических систем и более общих операторных уравнений
заключается в следующем. Если требуется решить уравнение
вида x = Ax + f ,
(12.1)
101
где x – неизвестный элемент некоторого банахова пространства Е, f – заданный элемент из Е, А- линейный оператор, действующий в Е, то при условии, что А=А1+А2 и в предположении, что существует оператор обратный к оператору (I-A1), уравнение (12.1) , можно переписать в эквивалентном виде x = ( I − A1 ) −1 ⋅ A2 x + ( I − A1 ) −1 ⋅ f ,
(12.2)
после чего к полученному уравнению применить метод последовательных приближений xm+1 = (I − A1 ) A2 xm + (I − A1 ) f , −1
−1
(m = 1,2,...) ,
который можно также записать в виде y m +1 = A1 y m +1 + A2 y m + f
(m = 1,2,...) .
(12.3)
Т.е. по сути, применять метод последовательных приближений для решения операторного уравнения вида x = Dx + h ,
(12.4)
где D = (I − A1 )−1 ⋅ A2 , h = (I − A1 )−1 ⋅ f . Именно такую интерпретацию допускает классический метод Зейделя решения линейных систем алгебраических уравнений. Для того, чтобы этот метод был реализуем, достаточно, чтобы число λ = 1 не являлось точкой спектра оператора А1, а для этого, в частности, достаточно, чтобы спектральный радиус r(A1) оператора А1 удовлетворял неравенству (12.5)
r(A1)<1.
При этом для определенных классов операторов А такое преобразование уравнения (12.1) (а именно, переход от уравнения (12.1) к вспомогательному и эквивалентному
уравнению
(12.2) )
обладает
особенностью: спектральный радиус оператора
следующей
полезной
( I − A1 ) −1 A2 ,
как было
установлено в [41], не больше, и, как правило, меньше спектрального радиуса r(A) оператора А в исходном уравнении (12.1) . А это, в частности, обеспечивает,
вообще
говоря,
более
быструю
сходимость
102
последовательности {ym} к единственному решению x * уравнения
(12.1)
метода Зейделя (12.3) по сравнению с обычным методом последовательных приближений x m +1 = ( A1 + A2 ) x m + f
(m = 0,1,...) .
Более того, в этом случае удается получить явные оценки для эффекта ускорения сходимости метода Зейделя по сравнению с обычным методом последовательных приближений и указать другие алгоритмы построения еще более быстро сходящихся приближений к неизвестному решению x * . Рассмотрим уравнение (12.1) с матричным оператором А. В [41] было установлено, что для уравнения (12.1) при условии (12.5) , метод Зейделя монотонно зависит от выбора матрицы А1 , а именно, с возрастанием количества ненулевых элементов матрицы А1 скорость сходимости метода (12.3)
возрастает,
точнее
говоря
не
уменьшается.
Это
можно
интерпретировать следующим образом: чем большую часть А1 матрицы А мы оставляем
в обращаемой части
( I − A1 ) −1
уравнения, тем быстрее
приближения, полученные по методу Зейделя (12.3) , сходятся к решению x * . Уместно, однако, сразу заметить при этом, что с «возрастанием» «доли» А1 , вообще говоря, усложняется процедура определения приближений по методу Зейделя, эта процедура будет самой простой, если в качестве А1 брать «нижнюю» треугольную часть матрицы А, т.е. полагать i −1
n
j =1
j =i
y i( m +1) = ∑ a ij y (jm +1) + ∑ a ij y (jm ) + f i ,
(i = 1, n )
(12.6)
что как раз соответствует классической схеме метода Зейделя. Если же «присоединить» к матрице А1 еще и главную диагональ, то в этом случае метод Зейделя примет несколько нетрадиционный вид: i
n
j =1
j =i +1
y i( m +1) = ∑ a ij y (jm +1) + ∑ a ij y (jm ) + f i ,
(i = 1, n ) ,
(12.7)
т.е. примет вид неявной схемы, при которой для определения (m+1) – го приближения по компоненте с номером i , т.е. при определении y i( m +1) нам
103
придется решать для каждого i одно скалярное уравнение с неизвестным y i( m +1) . Этот метод назовем методом Зейделя первого порядка.
Аналогичным образом определяются методы Зейделя второго и более высоких порядков. Тем
самым, чем «большая» часть матрицы А будет
включаться в А1 , тем сложнее будет фактически реализация метода Зейделя, т.к. с «ростом» матрицы А1 возрастает порядок системы уравнений, которую приходится решать для определения каждого следующего приближения, и соответственно, усложняется схема реализации метода Зейделя. В классической схеме метода Зейделя порядок соответствующей системы фактически равен нулю. Понятно,
что
применение
неявных
схем
требует
решения
вспомогательных систем линейных уравнений. Количество неизвестных в этих системах прямо зависит от «порядка» метода Зейделя. Оно тем больше, чем выше «порядок». В любом случае при применении метода Зейделя «невысокого порядка», «порядок» соответствующей системы, вообще говоря, меньше числа k – порядка исходной системы линейных алгебраических уравнений, и потому применение соответствующей схемы является более простым, нежели решение исходной системы n – уравнений с n – неизвестными. Итак, метод Зейделя осложняется в реализации с «ростом» матрицы А1 , и потому, естественно, на эту более сложную схему метода Зейделя имеет смысл идти лишь в том случае, если при этом улучшается скорость сходимости. Оказывается, что именно так и обстоит дело, что следует из теоремы, доказанной в [41] и приведенной в монографии [36]. Теорема 12.1 . Пусть А≥θ, r(A)<1, и оператор А1 переводит каждый внутренний
элемент
конуса
R +n
неотрицательных
векторов
пространства R n во внутренний элемент. Тогда имеет место неравенство r[ (I − A1 )−1 A2]
104
Следствие .В условиях теоремы 12.1 метод Зейделя сходится быстрее, чем метод последовательных приближений, а метод (12.7) сходится, вообще говоря, быстрее, чем метод (12.6) . Суть излагаемого в данном параграфе варианта метода Зейделя, для построения приближений, сходящихся к точному решению операторного уравнения, состоит в том, что к полученному уравнению (12.4) предлагается применить метод ускорения сходимости приближений, описанный в [36]. Изложим суть применяемого метода. Рассмотрим операторное уравнение вида (12.4) . Предположим, что спектральный радиус r ( D) < 1 ; поэтому уравнение (12.4) имеет единственное решение x * , которое является пределом последовательных приближений x n +1 = Dx n + h, (n = 0,1,2,...)
при любом начальном приближении x 0 ∈ E . Допустим, что начальное приближение x 0 = u 0 выбрано так, что u 0 ≤ Du 0 + h.
(12.8)
Тогда последовательные приближения u n +1 = Du n + h
(12.9)
будут удовлетворять соотношениям u 0 ≤ u1 ≤ ... ≤ u n ≤ u n +1 ≤ ... ≤ x * .
Аналогично,
если
начальное
приближение
(12.10) x0 = v0
удовлетворяет
соотношению v 0 ≥ Dv 0 + h ,
(12.11)
v n +1 = Dv n + h
(12.12)
то последовательные приближения удовлетворяют соотношениям x * ≤ ... ≤ v n +1 ≤ v n ≤ ... ≤ v1 ≤ v 0 .
(12.13)
Таким образом, если удается найти элементы u 0 и v 0 , удовлетворяющие соответственно соотношениям (12.8) и (12.11) , то мы получаем монотонные
105
приближения к точному решению x * операторного уравнения (12.4) . Наличие двусторонних
монотонных
приближений
дает
одновременно
оценку
погрешности: если приближенным значениям решения x * считать элемент 1 (u n + v n ), то из (12.10) и (12.13) вытекает оценка 2 −
1 (v n − u n ) ≤ 1 (u n + v n ) − x * ≤ 1 (v n − u n ). 2 2 2
Основную трудность составляет отыскание начальных приближений u 0 и v 0 . В [36] указан алгоритм отыскания таких начальных приближений. Изложим его суть. Пусть z 0 - внутренняя точка конуса K . Если r ( D) < 1 , то обязательно найдется номер r , такой, что для данного вектора z 0
обязательно будет
выполнено неравенство: D r z 0 ≤ χz 0 ,
где χ < 1 . Тогда элемент z1 = χ
1−
1 r
z0 + χ
1−
2 r
Dz 0 + ... + D r −1 z 0
удовлетворяет неравенству 1 r
Dz1 ≤ χ z1 .
(12.14)
Не ограничивая общности можно считать, что z1 является внутренним элементом конуса K . Поэтому для некоторого вещественного b > 0 будет выполнено следующее неравенство: 1
1
− b(1 − χ r ) z1 ≤ h ≤ b(1 − χ r ) z1 .
(12.15)
Положим тогда u 0 = −bz1 ,
Эти
элементы
удовлетворяют
v 0 = bz1 .
соотношениям
(12.8)
Действительно, в силу (12.14) Du 0 + h = −b ⋅ Dz1 + h ≥ −bχ 1 / r z1 + h,
и (12.8) вытекает из левой части неравенств (12.15) .
и
(12.11) .
106
Аналогично 1
1
1
Dv 0 + h = b ⋅ Dz1 + h ≤ b ⋅ χ r z1 + h ≤ b ⋅ χ r z1 + b(1 − χ r ) z1 = v 0 .
Конечно, в различных частных случаях элементы
u 0 и v 0 можно
выбирать более простым способом. Например, если h ∈ K , то в качестве u 0 , конечно, можно выбирать элемент h . Пусть u 0 и v 0 удовлетворяют соответственно соотношениям (12.8) и (12.11) . Будем считать дополнительно, что выполнены неравенства u1 − u 0 ≥ p1 (v 0 − v1 ) ,
(12.16)
v 0 − v1 ≥ q1 (u1 − u 0 ) ,
где одно из чисел p1 и q1 положительно (при p1 = q1 = 0
эти неравенства
совпадают с (12.8) и (12.11) ). Определим тогда элементы u1* =
u1 + p1 v1 , 1 + p1
(12.17)
v1* =
v1 + q1u1 . 1 + q1
(12.18)
Теорема 12.2. Справедливы соотношения u1 ≤ u1* ≤ x * ≤ v1* ≤ v1 .
Доказательство.
Крайние
непосредственно из (12.17) ,
неравенства
(12.18)
(12.19)
в
(12.19)
вытекают
и из неравенства Du 0 + h ≤ Dv 0 + h .
Очевидно, Du1* + h − u1* =
1 [D(Du 0 + h − u 0 ) + p1 D(Dv 0 + h − v 0 )] 1 + p1
и в силу (12.16) Du1* + h − u1* ≥ θ .
Это значит, что элемент u1* удовлетворяет условию (12.8) . Как нам уже известно, из этого условия вытекает, что u1* ≤ x * . Аналогично
(
)
v1* − Dv1* + h =
1 [D(v 0 − Dv0 − h ) + q1 D(u 0 − Du 0 − h )] ≥ θ . 1 + q1
107
Значит, v1* удовлетворяет (12.11) , и поэтому v1* ≥ x * . Теорема доказана. Формулы (12.17) и (12.18) можно рассматривать как рекуррентный процесс построения последовательностей u n* , v n* . Теорема 12.2 означает, что этот рекуррентный процесс сходится не медленнее последовательностей (12.9) и (12.12) , и сохраняет монотонность последовательных приближений.
Многочисленные примеры показывают, что в достаточно общих условиях процесс (12.17) и (12.18) сходится существенно быстрее обычного метода последовательных приближений. Рассмотрим реализацию предложенного варианта метода Зейделя на конкретных примерах. Пример 1. Пусть дано уравнение вида (12.1) , где 0.15 0.18 A = 0.19 0.27 0.33
0.31 0.36 0.16 0.14 0.22
0.14 0.17 0.21 0.12 0.21
0.21 0.15 0.25 0.13 0.2
0.15 0.14 0.18 , 0.24 0.19
1 1 f = 1 . 1 2
454.9612529 474.9256427 Точное решение уравнения x * = 468.4250761 , а спектральный радиус 433.8284457 545.3775432 r ( A) = 0.9975 .
При решении примера в данном случае метод Зейделя имеет «порядок ноль». Используя вышеизложенный метод ускорения сходимости, получим приближения un* и vn* . Соответствующие приближения un* и vn* , к координатам вектора решения представим в виде таблицы.
108
Таблица 24 “ un* ”
n
“ vn* ”
Приближения к 1-ой координате вектора решения 1
-31581.165783
33302.009434
541
2.457779
906.048065
1434
440.958437
468.920229
2009
453.467382
456.450447
2957
454.923932
454.998456
4196
454.960952
454.961552
5000
454.961239
454.961266
Приближения к 2-й координате вектора решения 1
-32943.148882
34738.487582
541
2.744047
945.628970
1434
460.313883
489.491656
2009
473.366807
476.479597
2957
474.886699
474.964463
4196
474.925329
474.925955
5000
474.925629
474.925656
Приближения к 3-й координате вектора решения 1
-32450.640618
34219.583220
541
3.251564
932.142260
1434
454.030183
482.774902
2009
466.889377
469.955967
2957
468.386711
468.463321
4196
468.424767
468.425384
5000
468.425062
468.425089
Приближения к 4-й координате вектора решения 1 541
-29994.511930
31630.236737
3.465972
862.843575
109
1434
420.510788
447.104409
2009
432.407670
435.244773
2957
433.792951
433.863828
4196
433.828160
433.828730
5000
433.828433
433.828458
Приближения к 5-й координате вектора решения 1
-37631.653423
39686.310105
541
5.420638
1083.643995
1434
528.668463
562.034312
2009
543.594958
547.154547
2957
545.333010
545.421936
4196
545.377184
545.377900
5000
545.377527
545.377558
Проиллюстрируем данные вычисления при помощи следующего графика. 7000
Количество итераций
6000 5000 4000 3000 2000 1000 0 1
2
3
4
5
Порядок точности
Рис.3. Вариант метода Зейделя (порядок «0»).
6
7
110
Рассмотрим теперь применение предложенного варианта метода Зейделя в случае, когда метод Зейделя имеет «порядок один». Реализуем этот случай на вышеизложенном примере. Необходимые начальные условия полностью совпадают с начальными условиями в рассмотренном выше примере. Используя вышеизложенный метод ускорения сходимости, получим приближения un* и vn* . Соответствующие приближения un* и vn* , к координатам вектора решения представим в виде таблицы. Таблица 25 Приближения к 1-ой координате вектора решения Номер приближе
“ un* ”
“ vn* ”
-19145.167945
20488.931731
363
20.887959
887.679663
1185
451.585334
458.327096
1957
454.926203
454.996660
3312
454.961474
454.961498
ний n 1
Приближения к 2-ой координате вектора решения 1
-19935.975115
21336.627643
363
22.692057
925.744732
1185
471.407031
478.430825
1957
474.887660
474.961064
3312
474.924407
474.924432
Приближения к 3-ой координате вектора решения 1 363
-19650.507350
21031.240179
22.616370
912.839387
111
1185
464.956456
471.880463
1957
468.387635
468.459997
3312
468.423861
468.423885
Приближения к 4-ой координате вектора решения 1
-18159.668279
19436.269267
363
21.358973
845.007810
1185
430.619226
437.025430
1957
433.793809
433.860760
3312
433.827326
433.827348
Приближения к 5-ой координате вектора решения 1
-22790.544091
24396.542036
363
28.279619
1060.858104
1185
541.354262
549.385486
1957
545.334120
545.418054
3312
545.376139
545.376167
Как видно из последней таблицы, по сравнению с предыдущим случаем несколько возросла скорость сходимости приближений un* и vn* к точному решению. Отметим также тот факт, что основные вычисления по предложенному варианту метода Зейделя получены с помощью разработанной автором программы на языке программирования TURBO PASCAL
112
ОСНОВНЫЕ ВЫВОДЫ И РЕЗУЛЬТАТЫ Проведенные в диссертационной работе исследования направленные на разработку новых методов решения операторных уравнений, описывающих экономические
модели
(модель
межотраслевого
баланса).
Получены
количестве
примеров
следующие научные и практические результаты. 1. Разработан
и
апробирован
на
большом
итерационный метод решения системы линейных алгебраических уравнений вида x = Ax + f с квадратной матрицей A , в случае, когда наибольшее по модулю собственное значение матрицы A , больше чем единица. 2. Предложен метод получения двусторонних оценок точного решения x* операторного уравнения вида x = Ax + f , в случае,
когда спектральный
радиус не обязательно меньше единицы, а также подходы к уточнению полученных
оценок.
Метод
проиллюстрирован
соответствующими
примерами. 3. Получен приближений
синтез к
методов
решению
ускорения x*
сходимости
уравнения
вида
монотонных x = Ax + f
и
однопараметрического итеративного агрегирования. 4. Предложен вариант метода ускорения сходимости монотонных приближений к решению уравнения вида x = Ax + f , в котором упрощена задача поиска начальных приближений. 5. Разработан и апробирован на большом количестве примеров вариант метода Зейделя, позволяющий строить двусторонние приближения к точному решению уравнения вида x = Ax + f . 6. Составлена библиотека программ на языке программирования TURBO PASCAL, которая позволяет реализовывать полученные в данной работе методы и алгоритмы. Таким образом:
113
- Разработаны новые методы решения операторных уравнений, описывающих экономические модели (модель межотраслевого баланса), обладающих высокой скоростью сходимости последовательностей к точному решению данных уравнений, а также
способностью сходится к точному
решению даже в тех случаях, когда спектральный радиус оператора больше единицы. - Разработан комплекс программ на языке программирования TURBO PASCAL, реализующих эти алгоритмы.
114
Литература. 1. Архангельский, Ю.С. Численные исследования методов итеративного агрегирования для решения задачи межпродуктового баланса /Ю.С. Архангельский, И.А. Вахутинский, Л.М. Дудкин и др. //Автоматика и телемеханика. - 1975. - №7. - С.75-82. 2. Ашманов, С.А. Введение в математическую экономику /С.А. Ашманов. – М.:Наука, 1984. – 296с. 3. Бабаджанян, А.А. О скорости сходимости метода однопараметрического итеративного агрегирования/А.А. Бабаджанян //Автоматика и телемеханика. - 1982. - №11. - С.171-173. 4. Бахвалов Н. Численные методы /Н. Бахвалов, Н. Жидков, Г. Кобельков - М.: Лаборатория Базовых Знаний, 2000. – 624 c. 5. Бахтин, И.А. Исследование уравнений с положительными операторами: Дис. … д-ра физ.-мат. наук /И.А. Бахтин. - Ленинград, 1967. – 320с. 6. Бахтин, И.А. Метод последовательных приближений в теории уравнений с вогнутыми операторами /И.А. Бахтин, М.А. Красносельский // Сибирский математический журнал . - 1961.- Т.2, № 3.- С.313-330. 7. Бахтин, И.А. О непрерывности положительных операторов /И.А. Бахтин, М.А. Красносельский, В.Я. Стеценко // Сибирский математический журнал . - 1962.- Т.3, № 1.- С.8-17. 8. Беллман Р. Квазилинеаризация и нелинейные краевые задачи /Р. Беллман, Р. Калаба. – М.: Мир, 1968. – 270с. 9. Вен, В.Л. Некоторые вопросы агрегирования линейных моделей /В.Л. Вен, А.И. Эрлих //Известия АН СССР. Сер. техническая кибернетика. – 1970.- №5. - С.3-8. 10. Вержбицкий, В.М. Численные методы (линейная алгебра и нелинейные уравнения): Учеб. Пособие для вузов /В.М. Вержбицкий. – М.: Высш. шк., 2000. – 266 с. 11. Вулих, Б.З. Введение в теорию полуупорядоченных пространств /Б.З. Вулих. – М.: Наука, 1961. – 407 с. 12. Вулих, Б.З. Введение в функциональный анализ /Б.З. Вулих. – М.: Физматгиз, 1967.– 415с. 13. Вулих, Б.З. Специальные вопросы геометрии конусов в нормированных пространствах: Учебное пособие /Б.З. Вулих. – Калинин: Издательство калининского университета, 1978. – 84 с. 14. Гантмахер, Ф.Р. Теория матриц /Ф.Р. Гантмахер. – М: Наука, 1966. – 576с. 15. Гробова, Т.А. О методе однопараметрического итеративного агрегирования для решения систем линейных и нелинейных алгебраических уравнений, интегральных уравнений /Т.А. Гробова
115
//Ставропольский государственный университет, Ставрополь, 2001. – 24с. - Деп. в ВИНИТИ 19.11.01 №2392 – В2001. 16. Гробова, Т.А. Об одном новом варианте метода Зейделя /Т.А. Гробова //Научно-методическая конф. преподавателей и студентов «XXI век – век образования». Материалы 46 научно-метод. конф. преподавателей и студентов «XXI век – век образования». – Ставрополь, 2001. – С.4-9. 17. Гробова, Т.А., Об одном аналоге метода однопараметрического итеративного агрегирования /Т.А. Гробова, В.Я. Стеценко //Вестник СГУ. -2001. - Выпуск 28. – С.12-16. 18. Гробова, Т.А. Об одной новой схеме реализации вариантов метода Зейделя /Т.А. Гробова, В.Я. Стеценко // Вестник молодых ученых. Санкт – Петербург, 2001. – С.34-39. 19. Данфорд Н., Шварц Дж. Линейные операторы. Общая теория /Н. Данфорд, Дж. Шварц. – М.: Иностранная литература, 1962. – 895c. 20. Демиденко, Н.А. Применение метода итеративного агрегирования к расширенной модели межотраслевого баланса /Н.А. Демиденко //Экономика и математические методы. – 1977. - Т.13, №3. - С.594598. 21. Дудкин, Л.М. Межотраслевой баланс и материальные балансы отдельных продуктов /Л.М. Дудкин, Э.Б. Ершов // Плановое хозяйство. – 1965. - №5. - С.59-63. 22. Есаян, А.Р. Локализация спектра линейного оператора /А.Р. Есаян, В.Я. Стеценко //Междунар. Конгресс математиков (1966; Москва). Тезисы кр. науч. сообщений Междунар. Конгресса математиков. Секция 5. – М., 1966. – С.45-74. 23. Есаян, А.Р. О разрешимости уравнений второго рода /А.Р. Есаян, В.Я. Стеценко // Труды семинара по функциональному анализу. Воронежский гос. ун-т. – Воронеж, 1963. – Вып. 7. – С.36-41. 24. Есаян, А.Р. Оценки спектра интегральных операторов и бесконечных матриц /А.Р. Есаян, В.Я. Стеценко // Докл. АН СССР. – 1964. – Т. 157, №2. – С.12-19. 25. Итеративное агрегирование и его применение в планировании /Под ред. Л.М. Дудкина. – М.: Экономика, 1979. – 328 с. 26. Канторович, Л.В. Функциональные анализ в нормированных пространствах /Л.В. Канторович, Г.П. Акилов. – М.: Наука, 1977. – 496 с. 27. Канторович, Л.В. Функциональный анализ в полуупорядоченных пространствах /Л.В. Канторович, Б.З. Вулих, А.Г. Пинскер. - М.: Физматгиз, 1959. - 684 с. 28. Канторович, Л.В. Приближенные методы высшего анализа /Л.В. Канторович, В.И. Крылов. – М.-Л.: Физматгиз, 1962. – 708с.
116
29. Коллатц Л. Функциональный анализ и вычислительная математика /Л. Коллатц. - М.: Мир, 1969. - 421с. 30. Колмогоров, А.Н. Элементы теории функций и функционального анализа /А.Н. Колмогоров, С.В. Фомин. - М.: Наука, 1981. - 543с. 31. Коршунова Н. Математика в экономике /Н. Коршунова, В. Плясунов. – М.:Издательство «Вита-Пресс», 1996. – 368с. 32. Костенко, Т.А. К вопросу о существовании и единственности решения операторного уравнения, нелинейного относительно параметра λ. /Т.А. Костенко // «Международная школа-семинар по геометрии и анализу памяти Н.В. Ефимова» (1998; Ростов-на-Дону). Тезисы докладов «Междунар. школы-семинара по геометрии и анализу памяти Н.В. Ефимова» (5-11 сент., 1998г.). – Ростов-на-Дону, 1998. – С.104105. 33. Костенко, Т.А. О разрешимости операторных уравнений второго рода с линейными и нелинейными операторами /Т.А. Костенко // «Проблемы физико-математических наук», науч.-метод. конф. преподавателей и студентов «Университетская наука – региону» (43; 1998; Ставрополь). Материалы XLIII науч.-метод. конф. преподавателей и студентов «Университетская наука – региону». – Ставрополь, 1998. – С.111-122. 34. Красносельский, М.А. Положительные решения операторных уравнений /М.А. Красносельский. – М.: Физматгиз, 1962. – 394с. 35. Красносельский, М.А. Правильные и вполне правильные конусы /М.А. Красносельский // Докл. АН СССР.-1960. - Т.135. - № 2. – С.241-255. 36. Красносельский, М.А. Приближенное решение операторных уравнений /М.А. Красносельский, Г.М. Вайникко, П.П. Забрейко и др. – М: Наука, 1969. – 456с. 37. Красносельский, М.А. Геометрические методы нелинейного анализа /М.А. Красносельский, П.П. Забрейко. - М.: Наука, 1965. - 624с. 38. Красносельский, М.А. Позитивные линейные системы: метод положительных операторов /М.А. Красносельский, Е.А. Лифшиц, В.И. Соболев. – М: Наука, 1985. – 256с. 39. Красносельский, М.А. Положительно обратимые линейные операторы и разрешимость линейных уравнений /М.А. Красносельский, Е.А. Лифшиц, В.В. Покорный, В.Я. Стеценко // Докл. АН Таджикской ССР. -1974. - Т.XVII, № 1. - С.12-15. 40. Красносельский, М.А. О сходимости метода однопараметрического агрегирования /М.А. Красносельский, А.Ю. Островский, А.В. Соболев // Автоматика и телемеханика. – 1978. - №9. - С.102-109.
117
41. Красносельский, М.А. Замечания о методе Зейделя /М.А. Красносельский, В.Я. Стеценко // Журнал вычислительной математики и математической физики. – 1969. - Т.9, №1. - С.177-182. 42. Крейн, М.Г. Линейные операторы, оставляющие инвариантным конус в пространстве Банаха /М.Г. Крейн, М.А. Рутман // Успехи математических наук. - 1948. – Т.1, №3. - С.3-95. 43. Крукиер, Л.А. Численные методы решения задач конвекциидиффузии со смешанными производными /Л.А. Крукиер, Т.С. Мартынова. – г. Ростов-на –Дону: Изд-во РГУ, 2003. -156с. 44. Кубекова, Б.С. Об уточнении оценок решения операторного уравнения в полуупорядоченном пространстве с u0–ограниченным снизу оператором /Б.С. Кубекова // «Понтрягинские чтения –XI», науч. конф. (2000; Воронеж). Тезисы докладов науч. конф. «Понтрягинские чтения –XI» (3-9 мая, 2000г.). – Воронеж, 2000. – С.95-98. 45. Кубекова, Б.С. Отыскание приближений по недостатку и по избытку к решению операторного уравнения с монотонно разложимым оператором /Б.С. Кубекова //«Математическое моделирование в научных исследованиях», Всероссийская науч. конф. (2000). Тезисы докладов Всероссийской науч. конф. «Математическое моделирование в научных исследованиях» (21-30 сент., 2000г.). – Ставрополь, 2000.– С.47-49. 46. Кубекова, Б.С. О методе однопараметрического итеративного агрегирования /Б.С. Кубекова, В.Я. Стеценко, Т.А. Гробова //«Математика. Компьютер. Образование», междунар. конф. (8; 2001; Пущино). Тезисы докладов восьмой междунар. конф. «Математика. Компьютер. Образование» (31 янв. – 5 февр., 2001г.).– Пущино, 2001. - С.230-232. 47. Кубекова, Б.С. Об одном методе построения двусторонних приближений к решению операторного уравнения с монотонно разложимым оператором /Б.С. Кубекова, В.Я. Стеценко, М.Н. Павлова //Журнал вычислительной математики и математической физики.– 2001.– Т.41, № 6. – С.846-854. 48. Кузнецов, Ю.А. К теории итерационных процессов /Ю.А. Кузнецов //Докл. АН СССР. – 1969. - Т.184, №4, -С.863-866. 49. Леонтьев, В.В. Экономика и математические методы /В.В. Леонтьев, Д. Форд. – М: Наука, 1972. – 242с. 50. Лифшиц, Е.А. К теории полуупорядоченных банаховых пространств /Е.А. Лифшиц // Функциональный анализ и его приложения, 1969. Т.3, №1. - С.91–92. 51. Люстерник, Л.А. Элементы функционального анализа /Л.А. Люстерник, В.И. Соболев. – М: Наука, 1965. – 520с.
118
52. Моришима М. Равновесие, устойчивость, рост /М. Моришима. - М.: Наука, 1972. - 179с. 53. Никайдо Х. Выпуклые структуры и математическая экономика /Х. Никайдо. - М.: Мир, 1972. - 518с. 54. Ортега Дж. Итерационные методы решения нелинейных систем уравнений со многими неизвестными /Дж. Ортега, В. Рейнболдт. М.: Мир, 1975. - 327с. 55. Островский, А.Ю. О сходимости монотонных итерационных процессов /А.Ю. Островский //Журнал вычислительной математики и математической физики. – 1977. - Т. 17, №1. - С.233-238. 56. Пароди М. Локализация характеристических чисел матриц и ее применения /М. Пародии. - М.: Иностранная литература, 1960. 270с. 57. Плюта, А.И. Об одном варианте метода ускорения сходимости монотонных приближений к решению уравнения вида x = Ax + f /А.И. Плюта //«Теоретические и прикладные проблемы современной физики», региональная науч. конф. (2002; Ставрополь). Материалы региональной науч. конф. «Теоретические и прикладные проблемы современной физики». – Ставрополь, 2002. – С.255-262. 58. Плюта, А.И. О некоторых методах получения оценок точного решения x * операторных уравнений вида x = Ax + f в случае, когда спектральный радиус ρ ( A) не обязательно меньше единицы /А.И. Плюта //«Итерационные методы и матричные вычисления», Международная летняя школа молодых ученых. -Ростов-на-Дону, 2002. – С.482-486. 59. Плюта, А.И. «Гибрид» методов ускорения сходимости монотонных приближений к решению уравнения вида x = Ax + f и однопараметрического итеративного агрегирования /А.И. Плюта, В.Я. Стеценко //Ученые записки /Ставропольский гос. ун-т, физикоматематический факультет. – Ставрополь, 2002. – С.79-85. 60. Плюта, А.И. Об одном варианте метода Зейделя /А.И. Плюта, В.Я. Стеценко //Математическое моделирование. – Москва. – 2003г. – Т.15, №12. - С.29-36 61. Радченко, В.В. Применение метода Ньютона-Канторовича для расчета нелинейного межотраслевого баланса /В.В. Радченко, В.Я. Стеценко // Модели и методы экономических целенаправленных систем.- Новосибирск, 1977. - С.160-166. 62. Самарский, А.А. Численные методы /А.А. Самарский, А.В. Гулин – М.: Наука, 1989. – 187с. 63. Стеценко, В.Я. Исследование сходимости метода многопараметрического итеративного агрегирования при решении линейных алгебраических систем и интегральных уравнений /В.Я. Стеценко
119
//«Теория и практика использования методов агрегирования в планировании и управлении», совещание (Киев). Материалы совещания «Теория и практика использования методов агрегирования в планировании и управлении». – Киев, 1984. – С. 74-81. 64. Стеценко, В.Я. Исследования по теории положительных операторов в пространствах с конусом: Дисс. … д-ра физ.-мат. наук /В.Я. Стеценко. – Воронеж, 1968. – 307с. 65. Стеценко, В.Я. Об одном методе ускорения сходимости итерационных процессов /В.Я. Стеценко //Докл. АН СССР. – 1968. – Т.178, №3. - С.1021-1024. 66. Стеценко, В.Я. Элементы теории полуупорядоченных пространств. Приближенное решение операторных уравнений: Учеб. пособие /В.Я. Стеценко, В.А. Галкина. – Ставрополь: Изд-во СГУ, 1998. – 168c. 67. Стеценко, В.Я. О методе однопараметрического итеративного агрегирования для нелинейных уравнений /В.Я. Стеценко, Т.А. Гробова // Воронежская зимняя математическая школа: Тезисы докладов. Воронеж, 2001.- С.254-256. 68. Стеценко, В.Я. Квалифицированные двусторонние оценки для спектрального радиуса линейного положительного оператора /В.Я. Стеценко, Т.А. Костенко //Ставропольский государственный университет, Ставрополь. - 1997. – 13с. Деп. в ВИНИТИ 14.11.97 №3321 – В97. 69. Стеценко, В.Я. Метод ускорения сходимости приближений к спектральному радиусу линейного положительного оператора и к решению линейного операторного уравнения /В.Я. Стеценко, Т.А. Костенко //Вестник СГУ. -1999. - Вып. 20. - С.3-13. 70. Стеценко, В.Я. Новые оценки сверху спектрального радиуса матричных и интегральных операторов /В.Я. Стеценко, Л.Н. Кириллова, А.И. Плюта //«Международная школа-семинар по геометрии и анализу памяти Н.В. Ефимова» (2002; Ростов-на-Дону). Труды участников «Междунар. школы-семинара по геометрии и анализу памяти Н.В. Ефимова». – Ростов-на-Дону, 2002.-С.160-161. 71. Стеценко, В.Я. Методы ускорения при отыскании спектрального радиуса линейного оператора и решении линейного операторного уравнения /В.Я. Стеценко, Т.А. Костенко //«Международная школасеминар по геометрии и анализу памяти Н.В. Ефимова» (1998; Ростов-на-Дону). Тезисы докладов «Междунар. школы-семинара по геометрии и анализу памяти Н.В. Ефимова» (5-11 сент., 1998г.). – Ростов-на-Дону, 1998. – С.124-126.
120
72. Стеценко, В.Я. Обзор и реализация на ЭВМ методов решения систем линейных и нелинейных уравнений: Учебное пособие /В.Я. Стеценко, А.И. Плюта. – Ставрополь: Изд-во СГУ, 2003.-71с. 73. Стеценко, В.Я. О некоторых методах построения монотонных приближений к решению линейных операторных уравнений /В.Я. Стеценко, А.И. Плюта //«Теоретические и прикладные проблемы современной физики», региональная науч. конф. (2000; Ставрополь). Материалы региональной науч. конф. «Теоретические и прикладные проблемы современной физики». – Ставрополь, 2002.-С.281284. 74. Стеценко, В.Я. Об одном итерационном методе решения систем линейных алгебраических уравнений вида x = Ax + f с квадратной матрицей A /В.Я. Стеценко, А.И. Плюта //«Современные методы теории функций и смежные проблемы», конф. (2003; Воронеж). Материалы конф. «Современные методы теории функций и смежные проблемы»– Воронеж, 2003. -С.250-251. 75. Фаддеев, Д.К. Сборник задач по высшей алгебре /Д.К. Фаддеев, И. С. Соминский. – М.: Наука, 1964. – 304с. 76. Фаддеев, Д.К. Вычислительные методы линейной алгебры /Д.К. Фаддеев, В.Н. Фаддеева. – М.: Физматгиз, 1960. - 656с. 77. Форсайт Дж. Численное решение систем линейных алгебраических уравнений /Дж. Форсайт, К. Молер. – М.: Мир, 1969. – 354с. 78. Функциональный анализ /Под ред. С.Г. Крейна. – М.: Наука, 1972. – 544с. 79. Хомяков, В.А. Обобщение одного доказательства сходимости процесса итеративного агрегирования для решения систем линейных уравнений /В.А. Хомяков // Автоматика и телемеханика. – 1973.№7. – С.15-23. 80. Шаабан М. Обобщенная норма интегральных операторов и матриц /М. Шаабан //Изв. АН Таджикской ССР. – 1998. – Т.108, №2. – С.312. 81. Щенников, Б.А. Метод агрегирования для решения систем линейных уравнений /Б.А. Щенников // Докл. АН СССР.- 1967.- Т.173, №4. С.781-784. 82. Щенников, Б.А. Применение метода итеративного агрегирования для решения систем линейных уравнений /Б.А. Щенников // Экономика и математические методы. – 1966. – Т.2, №5. - С.723-731.
121
ПРИЛОЖЕНИЕ §1. Метод последовательных приближений. program wer2; var e,k,k1,m1,l,k0,r,max1,max2,k2,k3,k4,k5,max3:real; i,p,m,m01,m2,n:integer; a: array [1..30,1..30] of real; x,b,c,c1,t,c2,t1,c3,t2: array [1..30] of real; procedure wwodm; var i,j: integer; begin writeln('Введите размерность матрицы А:'); readln(n); for i:=1 to n do begin for j:=1 to n do begin write('введите элемент матрицы A[ ',i,',',j,']='); readln(a[i,j]); end; end; end; procedure wwodv; var i:integer; begin writeln('введите координаты свободного вектора f:'); for i:=1 to n do readln(b[i]); end; procedure wwodp; var i:integer; begin writeln('введите координаты начального приближения Х:'); for i:=1 to n do readln(x[i]); writeln('введите необходимую точность вычислений E:'); readln(e); end; procedure umnog; var i,j: integer; begin for i:=1 to n do begin l:=0; for j:=1 to n do begin l:=a[i,j]*x[j]+l;
122
end; c[i]:=l+b[i]; { writeln(c[i]);} end; { for i:=1 to n do begin g[i]:=c[i]+b[i]; end}; end; procedure vivod; var i: integer; begin for i:=1 to n do write(c[i]:11:8,' '); end; procedure usl1; var i,j: integer; begin for i:=1 to n do begin r:=0; for j:=1 to n do begin r:=abs(a[i,j])+r; end; c1[i]:=r; {writeln(c1[i]:3:3);} end; max1:=c1[1]; for i:=2 to n do begin if c1[i]>max1 then max1:=c1[i]; end; { writeln(max1:3:3);} if max1<1 then begin writeln('первое условие выполняется'); umnog; for i:=1 to n do begin t[i]:=c[i]-x[i]; { writeln(t[i]);} end; m1:=t[1]; for i:=2 to n do begin if abs(t[i])>m1 then m1:=abs(t[i]); end; {writeln(m1);} m:=trunc(ln((e*(1-(max1)))/m1)/(ln(max1)))+1; {writeln(m);} end else writeln('первое условие не выполняется'); end; procedure usl2; var i,j: integer;
123
begin for i:=1 to n do begin k:=0; for j:=1 to n do begin k:=abs(a[j,i])+k; end; c2[i]:=k; {writeln(c2[i]:3:3);} end; max2:=c2[1]; for i:=2 to n do begin if c2[i]>max2 then max2:=c2[i]; end; {writeln(max2:3:3);} if max2<1 then begin writeln('выполняется второе условие'); umnog; for i:=1 to n do begin t1[i]:=c[i]-x[i]; {writeln(t1[i]:3:3);} end; k1:=0; for i:=1 to n do begin k1:=k1+t1[i]; end; m01:=trunc((ln((e*(1-max2))/abs(k1)))/(ln(max2)))+1; {writeln(m01:3);} end else writeln('второе условие не выполняется'); end; procedure usl3; var i,j:integer; begin for i:=1 to n do begin k2:=0; for j:=1 to n do begin k2:=sqr(a[i,j])+k2; end; c3[i]:=k2; { writeln(c3[i]:3:3);} end; k3:=0; for i:=1 to n do begin k3:=k3+c3[i]; end; max3:=sqrt(k3); {writeln(max3:3);} if max3<1 then begin writeln('третье условие выполняется'); umnog; for i:=1 to n do begin t2[i]:=c[i]-x[i]; {writeln(t2[i]:3:3);} end; k4:=0; for i:=1 to n do begin k4:=sqr(t2[i])+k4; end;
124
k5:=sqrt(k4); m2:=trunc((ln((e*(1-max3))/k5))/(ln(max3)))+1; writeln(m2:3); end else writeln('третье условие не выполняется'); end; begin {основная программа} wwodm; wwodv; wwodp; umnog; usl1; usl2; usl3; p:=m2; readln; {writeln(m);} for i:=1 to p do begin umnog; write( i,':'); vivod; x:=c; writeln; readln; end; readln; end.
125
§2. Метод ускорения сходимости монотонных приближений к решению уравнения вида x = Ax + f (r ( A) < 1) . program wert; var ch,ch1,zn,zn1,f,z0,z01,z1,a1,a2,a00,b00,b0,u0,v0,u,v,p0,q0,u2,v2,u02,c72,p1,q1,u 1,v1: array[1..25] of real; a: array[1..25,1..25] of real; h1,h2,h01,h02,h11,h12,h101,h102,s,k,b,t,k1,d0,d1,d01,d10,m01,m02,d02,d12,d01 2,d102,k0:real; c,n1,i,j,n,q,l,i1 :integer; procedure wwod; var i,j:integer; begin writeln('введите размерность матрицы A:'); readln(n); writeln('Ввод элементов матрицы А:'); for i:=1 to n do begin for j:=1 to n do begin write('элемент A[',i,',',j,']='); readln(a[i,j]); end; end; writeln('Введите координаты свободного вектора f:'); for i:=1 to n do begin readln(f[i]); end; end; procedure byferr; var i,j:integer; begin for i:=1 to n do begin z01[i]:=z0[i]; { writeln(u01[i]:4:4)} end; end; procedure umn; var i,j: integer; s: real; begin for i:=1 to n do begin s:=0; for j:=1 to n do begin s:=a[i,j]*z01[j]+s; end; a1[i]:=s;
126
end; end; procedure vich; var i,j:integer; begin for i:=1 to n do begin d0:=0; d1:=0; for j:=1 to n do begin d01:=a[i,j]*u0[j]; d0:=d0+d01; d10:=a[i,j]*v0[j]; d1:=d10+d1; end; u[i]:=d0+f[i]; v[i]:=d1+f[i]; end; end; procedure otn; var i,j:integer; begin for i:=1 to n do begin zn[i]:=v0[i]-v[i]; ch[i]:=u[i]-u0[i]; {writeln(u[i]:5:5);} end; h2:=zn[1]; for i:=2 to n do begin if zn[i]>h2 then h2:=zn[i]; end; { writeln(h2:6:6);} h1:=ch[1]; for i:=2 to n do begin if ch[i]
h02 then h02:=ch[i]; end; m02:=h01/h02; { writeln(m02:8:8); } end; procedure byferr2;
127
var i,j : integer; begin for i:=1 to n do begin u2[i]:=u[i]; v2[i]:=v[i]; u02[i]:=u0[i]; c72[i]:=v0[i]; p1[i]:=p0[i]; q1[i]:=q0[i]; end; end; begin {начало основной программы} wwod; writeln('Введите начальные векторы:'); writeln('вектор u0:'); for i:=1 to n do readln(u0[i]); writeln('вектор v0:'); for i:=1 to n do readln(v0[i]); writeln('Введите количество приближений:'); readln(q); for l:=1 to q do begin vich; otn; { writeln(m01:5:5);} for i:=1 to n do begin u1[i]:=(u[i]+m01*v[i])/(1+m01); v1[i]:=(v[i]+m02*u[i])/(1+m02); writeln(l,':',u1[i]:11:8,' ',v1[i]:11:8); end; for i1:=1 to n do begin u0[i1]:=u[i1]; v0[i1]:=v[i1]; end; readln; end; end.
128
§3. Метод однопараметрического итеративного агрегирования решения линейных операторных уравнений вида x = Ax + f , где оператор A - матрица n - го порядка.
program wert; type Mat = Array[1..30,1..30] of real; Vec = Array[1..30] of real; var z : Mat; f,l,x,s,a,y :Vec; m,m1,g,g1,u,u1,h,h1,t:real; r,i,j,k,p,k1 : integer; procedure wwodmatr; var i,j:integer; begin for i:=1 to p do begin for j:=1 to p do begin write('Введите элемент матрицы А[',i,',',j,']='); readln(z[i,j]); end; end; end; procedure wwodf; var i:integer; begin writeln('Введите координаты свободного вектора f:'); for i:=1 to p do readln(f[i]); end; procedure wwodl; var i: integer; begin for i:=1 to p do l[i]:=1; end; procedure wwodx; var i:integer; begin writeln('Введите координаты вектора x (начального приближения) :'); for i:=1 to p do readln(x[i]); end; procedure umnog; var i,j : integer; begin
129
for i:=1 to p do begin m:=0; for j:=1 to p do begin m1:=z[i,j]*x[j]; m:=m1+m; end; s[i]:=m; end; end; procedure scalf; var i :integer; begin g:=0; for i:=1 to p do begin g1:=f[i]*l[i]; g:=g+g1; end; end; procedure scalx; var i:integer; begin h:=0; for i:=1 to p do begin h1:=x[i]*l[i]; h:=h+h1; end; end; procedure scalAx; var i: integer; begin u:=0; for i:=1 to p do begin u1:=s[i]*l[i]; u:=u1+u; end; end; procedure ttt; var t: real; begin t:=g/(h-u); end; procedure rrr ; var i: integer; begin for i:=1 to p do a[i]:=s[i]*t; end; procedure summ;
130
var i: integer; begin for i:=1 to p do y[i]:=a[i]+f[i]; end; procedure wewod; var i: integer; begin for i:=1 to p do write(y[i]:11:8,' '); end; begin { основная программа } writeln('Решение линейного уравнения вида x=Ax+f'); writeln('Введите размерность матрицы А:'); readln(p); wwodmatr; wwodf; wwodl; wwodx; scalf; writeln('ВВЕДИТЕ КОЛИЧЕСТВО ИТЕРАЦИЙ:'); readln(r); for k:=1 to r do begin umnog; scalx; scalAx; t:=g/(h-u); rrr; summ; write(k,':'); wewod; for k1:=1 to p do x[k1]:=y[k1]; writeln; end; writeln('Итак, на ',r,'-м шаге мы получили приближения к решению'); writeln('линейного уравнения вида x=Ax+f'); readln; end.
131
§4. Метод однопараметрического итеративного агрегирования решения нелинейных операторных уравнений вида x = F ( x) + f , где F ( x) - нелинейный оператор. program wert; type Mat = Array[1..30,1..30] of real; Vec = Array[1..30] of real; var z,k1,x1 : Mat; f,l,x,s,a,y :Vec; m,m1,g,g1,u,u1,h,h1,t:real; r,i,j,k,p,k2 : integer; procedure wwodmatr; var i,j:integer; begin writeln('Ввод коэффициентов при неизвестных переменных системы:'); for i:=1 to p do begin for j:=1 to p do begin write(' коэффициент системы [',i,',',j,']='); readln(z[i,j]); end; end; end; procedure wwodf; var i:integer; begin writeln('Введите координаты свободного вектора f:'); for i:=1 to p do readln(f[i]); end; procedure wwodl; var i: integer; begin for i:=1 to p do l[i]:=1; end; procedure wwodx; var i:integer; begin writeln('Введите координаты вектора x (начального приближения) :'); for i:=1 to p do readln(x[i]); end; procedure wwodk; var i,j:integer;
132
begin writeln('Ввод показателей степеней:'); for i:=1 to p do begin for j:=1 to p do begin write(' ',i,'-ая строка уравнения, степень при ',j,'-ом неизвестном:'); readln(k1[i,j]); end; end; end; procedure umnog1; var i,j:integer; begin for i:=1 to p do begin for j:=1 to p do begin x1[i,j]:=exp(k1[i,j]*ln(x[j])); end; end; end; procedure umnog; var i,j : integer; begin for i:=1 to p do begin m:=0; for j:=1 to p do begin m1:=z[i,j]*x1[i,j]; m:=m1+m; end; s[i]:=m; end; end; procedure scalf; var i :integer; begin g:=0; for i:=1 to p do begin g1:=f[i]*l[i]; g:=g+g1; end; end; procedure scalx; var i:integer; begin h:=0; for i:=1 to p do begin h1:=x[i]*l[i]; h:=h+h1; end; end;
133
procedure scalAx; var i: integer; begin u:=0; for i:=1 to p do begin u1:=s[i]*l[i]; u:=u1+u; end; end; procedure ttt; var t: real; begin t:=g/(h-u); end; procedure rrr ; var i: integer; begin for i:=1 to p do a[i]:=s[i]*t; end; procedure summ; var i: integer; begin for i:=1 to p do y[i]:=a[i]+f[i]; end; procedure wewod; var i: integer; begin for i:=1 to p do write(y[i]:11:8,' '); end; begin { основная программа } writeln('Решение нелинейного уравнения вида x=F(x)+f, с нелинейным оператором F(x):'); writeln('Введите размерность матрицы:'); readln(p); wwodmatr; wwodf; wwodl; wwodx;wwodk; scalf; writeln('ВВЕДИТЕ КОЛИЧЕСТВО ИТЕРАЦИЙ:'); readln(r); for k:=1 to r do begin umnog1; umnog; scalx; scalAx;
134
t:=g/(h-u); rrr; summ; write(k,':'); wewod; for k2:=1 to p do x[k2]:=y[k2]; writeln; end; writeln('Итак, на ',r,'-м шаге получили приближения'); writeln(' к решению нелинейного уравнения вида x=F(x)+f'); readln; end.
135
§5. Спектральный радиус. program wert; {uses printer;} var a :array [1..100,1..100] of real; b,d,c,k :array [1..100] of real; maxi,mini,r,c1,p : real; alf, beta :real; i,j,t,l,s : integer; procedure wwod; var i,j:integer; begin writeln('Ввод элементов матрицы А:'); {writeln(lst,'Ввод элементов матрицы А:');} for i:=1 to s do begin for j:=1 to s do begin write('элемент A[',i,',',j,']='); { write(lst,'элемент A[',i,',',j,']='); } readln(a[i,j]); { writeln(lst,a[i,j]:5:3);} end; end; writeln('Введите координаты вектора u (координаты должны'); writeln('быть больше нуля):'); { writeln(lst,'Введите координаты вектора u:');} for i:=1 to s do begin readln(b[i]); { writeln(lst,b[i]:4:4);} end; end; procedure umnog; var r,c1:real; i,j:integer; begin for i:=1 to s do begin r:=0; for j:=1 to s do begin c1:=a[i,j]*k[j]; r:=r+c1; end; c[i]:=r; end; end;
136
procedure delen; var i:integer; begin for i:=1 to s do d[i]:=c[i]/b[i]; end; procedure wibor; var i:integer; begin maxi:=d[1]; for i:=2 to s do begin if d[i]>maxi then maxi:=d[i]; end; mini:=d[1]; for i:=2 to s do begin if d[i]<mini then mini:=d[i]; end; end; begin { основная программа } writeln('Определение спектрального радиуса матрицы А:'); writeln('Введите размерность матрицы:'); readln(s); wwod; for i:=1 to s do k[i]:=b[i]; writeln('Введите количество приближений:'); { writeln(lst,'введите количество приближений:');} readln(t); { writeln(lst,t:4);} for i:=1 to t do begin umnog; delen; wibor; p:=1/i; (alf):=(exp(p*ln(abs(mini)))); (beta):=(exp(p*ln(abs(maxi)))); writeln(i,':', alf:11:8,' ',beta:11:8); { writeln(lst,i,':', alf:11:8,' ',beta:11:8);} for l:=1 to s do k[l]:=c[l]; readln; end; writeln('Итак мы получили на ',t,'-м шаге приближение'); writeln('к спектральному радиусу "снизу"- ',alf:11:8,' и "сверху"- ',beta:11:8,''); readln; end.
137
§6. Собственный вектор. program qq; var t0,t1,t2,t3,t4,t5,t6,t7,t8,g1,g2,max1,max2,max3,min3:real; k1,k2,k3,k4,k,y,y1,y2,y3,y4,max4,max5,max6:real; i,n,r,i1,j,l,p,w:integer; a,b: array [1..30,1..30] of real; x0,u0,c,c1,c2,c3,c4,c5,c6,x00,u1,v1,x1,z1,z2,x: array [1..30] of real; procedure wwod; var i,j: integer; begin writeln('Введите размерность матрицы А:'); readln(n); writeln('Ввод элементов матрицы А:'); for i:=1 to n do begin for j:=1 to n do begin write('введите элемент матрицы A[ ',i,',',j,']='); readln(a[i,j]); end; end; writeln('Введите координаты начального приближения вектора X:'); for i:=1 to n do readln(x0[i]); writeln('Введите координаты вектора u0:'); for i:=1 to n do readln(u0[i]); end; procedure byfer; begin x00:=x0; x:=x0; end; procedure umn; var i,j:integer; begin for i:=1 to n do begin t0:=0; for j:=1 to n do begin t0:=a[i,j]*x00[j]+t0; end; c[i]:=t0; end; for i:=1 to n do c1[i]:=c[i]/u0[i]; max1:=c1[1]; for i:=2 to n do begin if c1[i]>max1 then max1:=c1[i];
138
end; end; procedure umn2; var i,j : integer; begin for i:=1 to n do begin t2:=0; for j:=1 to n do begin t2:=b[i,j]*x0[j]+t2; end; c5[i]:=t2; end; end; begin {основная программа} wwod; byfer; writeln('Введите количество приближений:'); readln(r); writeln('Соответствующие приближения к координатам собственного вектора:'); for i1:=1 to r do begin umn; { writeln('матрица B:');} for i:=1 to n do c2[i]:=c[i]/(max1); if (i1=1) then begin for i:=1 to n do x1[i]:=c2[i]; end; write(i1,':',' '); for i:=1 to n do write(c2[i]:6:6,' '); for i:=1 to n do x00[i]:=c2[i]; writeln; end; readln; writeln('Получим теперь двустороннее приближение к собственному вектору:'); for i:=1 to n do begin t1:=0; for j:=1 to n do begin t1:=a[i,j]*x0[j]+t1; end; c3[i]:=t1; end; for i:=1 to n do c4[i]:=c3[i]/u0[i]; max2:=c4[1]; for i:=2 to n do begin if c4[i]>max2 then max2:=c4[i]; end; for i:=1 to n do begin
139
for j:=1 to n do begin b[i,j]:=a[i,j]/(max2); {write(b[i,j]:3:3,' ');} end; {writeln;} end; for i:=1 to n do c6[i]:=c3[i]/x0[i]; min3:=c6[1]; for i:=2 to n do begin if c6[i]<min3 then min3:=c6[i]; end; max3:=c6[1]; for i:=2 to n do begin if c6[i]>max3 then max3:=c6[i]; end; { for i:=1 to n do writeln(c6[i]:4:4);} writeln('a=',min3:3:3, 'b=',max3:3:3); writeln('Введите первое наибольшее значение матрицы А:'); readln(k1); writeln('Введите второе наибольшее значение матрицы А:'); readln(k2); writeln('Введите первое наименьшее значение матрицы А:'); readln(k3); writeln('Введите второе наименьшее значение матрицы А:'); readln(k4); k:=sqrt((k1*k2)/(k3*k4)); writeln('постоянная оператора сжатия-',k:3:3); g1:=min3/max3; g2:=max3/min3; t3:=(k-1)/2; t4:=(k-1)/(k+1); readln; for l:=1 to r do begin t5:=exp(l*ln(t4)); t6:=t3*t5; t7:=exp(t6*ln(g1)); t8:=exp(t6*ln(g2)); for i:=1 to n do x00[i]:=x0[i]; umn; for i:=1 to n do begin c5[i]:=c[i]/max1; end; for i:=1 to n do begin u1[i]:=t7*c5[i]; v1[i]:=t8*c5[i]; end; for i:=1 to n do begin write(l,':'); write(u1[i]:5:5,' ',v1[i]:5:5);
140
writeln; end; readln; for i:=1 to n do x0[i]:=c5[i]; writeln; end; readln; writeln('Теперь оценим степень близости к точному решению'); for i:=1 to n do z1[i]:=x1[i]/x0[i]; max4:=z1[1]; for i:=2 to n do begin if z1[i]>max4 then max4:=z1[i]; end; for i:=1 to n do begin z2[i]:=x[i]/x1[i]; { writeln(z2[i]:3:3);} end; max5:=z2[1]; for i:=2 to n do begin if z2[i]>max5 then max5:=z2[i]; end; max6:=max4; if max5>max6 then max6:=max5; y:=ln(max6); y1:=(k-1)/(k+1); writeln('Введите номер приближения с котoрого вы хотите определить расстояние до точного решения:'); readln(w); y2:=exp(w*ln(y1)); y3:=y2/(1-y1); y4:=y3*y; writeln('Вы находитесь от точного решения на расстоянии:',y4:8:8); readln; end.
141
§7. Об одном итерационном методе решения системы линейных алгебраических уравнений вида x = Ax + f с квадратной матрицей A , в случае, когда наибольшее по модулю собственное значение матрицы A , больше чем единица.
program trt; {$N+,E+} type matr= record b:array [1..10,1..10] of extended; x,l2:array [1..10] of extended; G:extended; end; matx= array[1..20] of matr; var u: matx; a1,s,a2,a3,a,a0 :array [1..10,1..10] of extended; y0,l0,y00,l00,f,c,cw,c1,l,y,y1,l1,x,z0,z,x1,c2,c3:array [1..10] of extended; i,j,n,k,k1,r0,r,q,w,v,s1,iq:integer; t,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,G1,t01,t11,t21,t31,h:extended; procedure wwod; var i,j: integer; begin writeln('Введите размерность матрицы А:'); readln(n); writeln('Ввод элементов матрицы А:'); for i:=1 to n do begin for j:=1 to n do begin write('элемент A[',i,',',j,']='); readln(a[i,j]); end; end; writeln('Ввод свободного вектора f:'); for i:=1 to n do begin readln(f[i]); end; end; procedure byfer; var i,j:integer; begin for i:=1 to n do begin for j:=1 to n do begin a0[i,j]:=a[i,j];
142
end; end; end; procedure obr_A; var i,j:integer; begin for i:=1 to n do begin for j:=1 to n do begin a1[i,j]:=a0[j,i]; end; end; writeln('Для отыскания собственных значений необходимо'); writeln('ввести вектора l0 и y0.'); writeln; writeln('Введите вектор l0:'); for i:=1 to n do begin readln(l0[i]); end; writeln('Введите вектор y0:'); for i:=1 to n do begin readln(y0[i]); end; end; procedure byfer2; var i :integer; begin for i:=1 to n do begin y00[i]:=y0[i]; l00[i]:=l0[i]; end; end; Procedure otisk; var i,j : integer; begin for i:=1 to n do begin t:=0; for j:=1 to n do begin t:=a0[i,j]*y00[j]+t; end; c[i]:=t; end; t1:=0; for i:=1 to n do begin t1:=l00[i]*c[i]+t1;
143
end; t2:=0; for i:=1 to n do begin t2:=l00[i]*y00[i]+t2; end; u[q].G:=abs(t1/t2); for i:=1 to n do begin y[i]:=u[q].G*c[i]; end; for i:=1 to n do begin t3:=0; for j:=1 to n do begin t3:=a1[i,j]*l00[j]+t3; end; c1[i]:=t3; end; for i:=1 to n do begin l[i]:=u[q].G*c1[i]; end; end; procedure otisk2; var i,j: integer; begin for i:=1 to n do begin t01:=0; for j:=1 to n do begin t01:=a0[i,j]*y00[j]+t01; end; c[i]:=t01; end; t11:=0; for i:=1 to n do begin t11:=l00[i]*c[i]+t11; end; t21:=0; for i:=1 to n do begin t21:=l00[i]*y00[i]+t21; end; G1:=abs(t11/t21); for i:=1 to n do begin y[i]:=G1*c[i]; end; for i:=1 to n do begin t31:=0;
144
for j:=1 to n do begin t31:=a1[i,j]*l00[j]+t31; end; c1[i]:=t31; end; for i:=1 to n do begin l[i]:=G1*c1[i]; end; end; procedure normma; var i:integer; begin for i:=1 to n do begin y1[i]:=sqr(y[i]); l1[i]:=sqr(l[i]); end; t4:=0; t5:=0; for i:=1 to n do begin t4:=y1[i]+t4; t5:=l1[i]+t5; end; t6:=sqrt(t4); t7:=sqrt(t5); for i:=1 to n do begin u[q].x[i]:=y[i]/t6; u[q].l2[i]:=l[i]/t7; end; end; procedure vivod; var i:integer; begin for i:=1 to n do begin writeln(u[q].x[i]:13:13,' ',u[q].l2[i]:13:13); end; end; procedure sobstv; var i,j:integer; begin obr_A; byfer2; writeln('Введите количество приближений для отыскания'); writeln('собственных векторов l,y операторов А и А~ и'); writeln('собственного значения T оператора А:'); readln(k); for k1:=1 to k do
145
begin otisk; normma; writeln(k1,':',' ', 'T=',u[q].G:13:13); vivod; for i:=1 to n do begin y00[i]:=y[i]; l00[i]:=l[i]; end; end; end; procedure metod2; var i,j: integer; begin for i:=1 to n do begin for j:=1 to n do begin u[q].b[i,j]:=a0[i,j]-u[q].G*u[q].x[i]*u[q].l2[j]; end; end; end; procedure metod1; var i: integer; begin writeln('Введите начальные приближения для отыскания решения'); writeln('уравнения вида y=By+f:'); for i:=1 to n do begin readln(z0[i]); end; end; procedure metod3; var i,j:integer; begin for i:=1 to n do begin t8:=0; for j:=1 to n do begin t8:=u[q].b[i,j]*z0[j]+t8; end; z[i]:=t8+f[i]; end; end; procedure vivod1; var i: integer; begin for i:=1 to n do begin write(z[i]:13:13,' ');
146
end; end; procedure ccc; var i,j: integer; begin for i:=1 to n do begin for j:=1 to n do begin if (i=j) then s[i,j]:=1 else s[i,j]:=0; end; end; for i:=1 to n do begin for j:=1 to n do begin a2[i,j]:=s[i,j]-a[i,j] end; end; for i:=1 to n do begin t9:=0; for j:=1 to n do begin t9:=a2[i,j]*u[1].x[j]+t9; end; c2[i]:=t9; end; for i:=1 to n do begin for j:=1 to n do begin a3[i,j]:=a[i,j]-s[i,j]; end; end; for i:=1 to n do begin t10:=0; for j:=1 to n do begin t10:=a3[i,j]*z[j]+t10; end; c3[i]:=t10+f[i]; end; h:=c3[1]/c2[1]; for i:=1 to n do begin x1[i]:=z[i]+h*u[1].x[i]; end; end; procedure ccc1; var i,j: integer; begin for i:=1 to n do begin
147
for j:=1 to n do begin if (i=j) then s[i,j]:=1 else s[i,j]:=0; end; end; for i:=1 to n do begin for j:=1 to n do begin a2[i,j]:=s[i,j]-u[s1].b[i,j]; end; end; for i:=1 to n do begin t9:=0; for j:=1 to n do begin t9:=a2[i,j]*u[s1+1].x[j]+t9; end; c2[i]:=t9; end; for i:=1 to n do begin for j:=1 to n do begin a3[i,j]:=u[s1].b[i,j]-s[i,j]; end; end; for i:=1 to n do begin t10:=0; for j:=1 to n do begin t10:=a3[i,j]*z[j]+t10; end; c3[i]:=t10+f[i]; end; h:=c3[1]/c2[1]; for i:=1 to n do begin x1[i]:=z[i]+h*u[s1+1].x[i]; end; end; begin {основная программа} wwod; q:=0; byfer; repeat q:=q+1; sobstv; metod2; writeln(q,'-я матрица B:'); for i:=1 to n do begin
148
for j:=1 to n do begin a0[i,j]:=u[q].b[i,j]; a1[i,j]:=a0[j,i]; write( u[q].b[i,j]:4:4,' '); end; writeln; end; byfer2; for w:=1 to 9 do begin otisk2; for iq:=1 to n do begin y00[iq]:=y[iq]; l00[iq]:=l[iq]; end; end; writeln('T=',G1:5); if G1>1 then writeln('На ',q,'-ом шаге спектральный радиус больше единицы.') else v:=1 until v=1; readln; metod1; writeln('Введите количество приближений для отыскания решения уравнения y=By+f:'); readln(r); for r0:=1 to r do begin metod3; write(r0,':'); vivod1; for i:=1 to n do z0[i]:=z[i]; writeln; end; for s1:=(q-1) downto 1 do begin ccc1; z:=x1; end; readln; writeln('Решением исходного уравнения x=Ax+f есть вектор:'); ccc; for i:=1 to n do begin writeln(x1[i]:13:13); end; readln; end.
149
§8. Получение двусторонних оценок точного решения x операторного уравнения вида x = Ax + f , в случае, когда спектральный радиус не обязательно меньше единицы. *
program wer2; var t1,t2,t3,max1,min1,l,min2,s1,min3,s2,s3,min4,t4:real; n,k1,k2,k3,i,j,i1,k4,i2,i3,i4 :integer; a: array [1..30,1..30] of real; x,f,c,u1,u2,u3,u4,u5,u6,u7,u8,u0,u00,u9,u10,u11,u12,u13,u14,u15,u16,u140,u100: array [1..30] of real; procedure wwodm; var i,j: integer; begin writeln('Введите размерность матрицы А:'); readln(n); for i:=1 to n do begin for j:=1 to n do begin write('введите элемент матрицы A[ ',i,',',j,']='); readln(a[i,j]); end; end; end; procedure wwodv; var i:integer; begin writeln('введите координаты свободного вектора f:'); for i:=1 to n do readln(f[i]); end; procedure wwodx; var i:integer; begin writeln('введите координаты начального приближения Х:'); for i:=1 to n do readln(x[i]); writeln('введите порядок определения для приближений:'); readln(k1); readln(k2); readln(k3); end; procedure umnog; var i,j: integer; begin for i:=1 to n do begin l:=0; for j:=1 to n do begin
150
l:=a[i,j]*x[j]+l; end; c[i]:=l+f[i]; end; end; procedure umnog2; var i,j: integer; begin for i:=1 to n do begin u9[i]:=(max1*(u2[i]-u1[i]))-(u3[i]-u2[i]); end; writeln('Координаты вектора v0:'); for i:=1 to n do begin writeln(u9[i]:6:6); end; for i:=1 to n do begin u13[i]:=(u3[i]-u2[i])-(min1*(u2[i]-u1[i])); end; writeln('Координаты вектора w0:'); for i:=1 to n do begin writeln(u13[i]:6:6); end; end; begin {основная программа} wwodm; wwodv; wwodx; for i1:=1 to k3 do begin umnog; if (i1=k1) then begin for i:=1 to n do u1[i]:=c[i]; end; if (i1=k2) then begin for i:=1 to n do u2[i]:=c[i]; end; if (i1=k3) then begin for i:=1 to n do u3[i]:=c[i]; end; for i:=1 to n do x[i]:=c[i]; end; writeln('искомый вектор u[',k1,']:'); for i:=1 to n do writeln(u1[i]:7:7); readln; writeln('искомый вектор u[',k2,']:');
151
for i:=1 to n do writeln(u2[i]:7:7); readln; writeln('искомый вектор u[',k3,']:'); for i:=1 to n do writeln(u3[i]:7:7); readln; for i:=1 to n do begin u4[i]:=(u3[i]-u2[i])/(u2[i]-u1[i]); end; max1:=u4[1]; for i:=2 to n do begin if u4[i]>max1 then max1:=u4[i]; end; writeln('"гамма" равно - ',max1:5:5); min1:=u4[1]; for i:=2 to n do begin if u4[i]<min1 then min1:=u4[i]; end; writeln('"бетта" равно - ',min1:5:5); t1:=(max1)/(1-max1); t2:=(min1)/(1-min1); for i:=1 to n do begin u5[i]:=u3[i]+t1*(u3[i]-u2[i]); u6[i]:=u3[i]+t2*(u3[i]-u2[i]); end; writeln('точное решение заключено между следующими векторами:'); for i:=1 to n do begin writeln( ' ',u6[i]:5:5,' ',u5[i]:5:5); end; readln; writeln('Теперь произведем улучшение полученных оценок.'); readln; writeln('Введите координаты вектора u0:'); for i:=1 to n do begin readln(u0[i]); u00[i]:=u0[i]; end; k4:=k2-k1; for i2:=1 to k4 do begin for i:=1 to n do begin s1:=0; for j:=1 to n do begin s1:=a[i,j]*u00[j]+s1; end; u7[i]:=s1; end; for i3:=1 to n do u00[i3]:=u7[i3];
152
end; for i:=1 to n do u8[i]:=u7[i]/u0[i]; min2:=u8[1]; for i:=2 to n do begin if u8[i]<min2 then min2:=u8[i]; end; writeln('q0=',min2:3:3); readln; umnog2; readln; for i3:=1 to k4 do begin for i:=1 to n do begin s2:=0; for j:=1 to n do begin s2:=a[i,j]*u9[j]+s2; end; u10[i]:=s2; end; for i:=1 to n do u9[i]:=u10[i]; end; for i:=1 to n do u100[i]:=u10[i]/u0[i]; min3:=u100[1]; for i:=2 to n do begin if u100[i]<min3 then min3:=u100[i]; end; writeln('q=',min3:5:5); t3:=(min3)/((1-max1)*(1-min2)); for i:=1 to n do u11[i]:=t3*u0[i]; for i:=1 to n do begin u12[i]:=u5[i]-u11[i]; end; for i4:=1 to k4 do begin for i:=1 to n do begin s3:=0; for j:=1 to n do begin s3:=a[i,j]*u13[j]+s3; end; u14[i]:=s3; end; for i:=1 to n do u13[i]:=u14[i]; end; for i:=1 to n do u140[i]:=u14[i]/u0[i]; min4:=u140[1]; for i:=2 to n do begin if u140[i]<min4 then min4:=u140[i];
153
end; writeln('q1=',min4:6:6); t4:=(min4)/((1-min1)*(1-min2)); for i:=1 to n do u15[i]:=t4*u0[i]; for i:=1 to n do begin u16[i]:=u6[i]+u15[i]; end; writeln('После улучшения оценок получаем следующие векторы:'); for i:=1 to n do begin writeln(u16[i]:6:6,' ',u12[i]:6:6); end; readln; end.
154
§9. О некоторых подходах к уточнению границ решения операторных уравнений вида x = Ax + f в случае, когда спектральный радиус r ( A) не обязательно меньше единицы. program wert; type Mat = Array[1..30,1..30] of real; Vec = Array[1..30] of real; var a : Mat; f,l,x,s,y,b,u1,u2,u3,u4,u5,u6,u0,u00,u7,u8,u9,u10,u11,u12 :Vec; u13,u14,u15,u16,u100,u140:Vec; m,m1,g,h,h1,t,t1,t2,max1,min1,s1,min2,min3,min4,s2,s3,t3,t4:real; r,i,j,k,p,k1,k2,k3,i1,k4,n,i2,i3,i4 : integer; procedure wwodmatr; var i,j:integer; begin for i:=1 to p do begin for j:=1 to p do begin write('Введите элемент матрицы А[',i,',',j,']='); readln(a[i,j]); end; end; end; procedure wwodf; var i:integer; begin writeln('Введите координаты свободного вектора f:'); for i:=1 to p do readln(f[i]); end; procedure wwodl; var i: integer; begin for i:=1 to p do l[i]:=1; end; procedure wwodx; var i:integer; begin writeln('Введите координаты вектора x (начального приближения) :'); for i:=1 to p do readln(x[i]); writeln('введите порядок определения для приближений:'); readln(k1); readln(k2); readln(k3);
155
end; procedure umnog; var i,j : integer; begin for i:=1 to p do begin m:=0; for j:=1 to p do begin m:=a[i,j]*x[j]+m; end; s[i]:=m; end; end; procedure scalf; var i :integer; begin g:=0; for i:=1 to p do begin g:=f[i]*l[i]+g; end; end; procedure scalx; var i:integer; begin h:=0; for i:=1 to p do begin h:=x[i]*l[i]+h; end; end; procedure scalAx; var i: integer; begin h1:=0; for i:=1 to p do begin h1:=s[i]*l[i]+h1; end; end; procedure ttt; begin t:=g/(h-h1); end; procedure rrr ; var i: integer; begin for i:=1 to p do b[i]:=s[i]*t; end;
156
procedure summ; var i: integer; begin for i:=1 to p do y[i]:=b[i]+f[i]; end; procedure umnog2; var i,j: integer; begin for i:=1 to p do begin u9[i]:=(max1*(u2[i]-u1[i]))-(u3[i]-u2[i]); end; writeln('Координаты вектора v0:'); for i:=1 to p do begin writeln(u9[i]:6:6); end; for i:=1 to p do begin u13[i]:=(u3[i]-u2[i])-(min1*(u2[i]-u1[i])); end; writeln('Координаты вектора w0:'); for i:=1 to p do begin writeln(u13[i]:6:6); end; end; begin { основная программа } writeln('Введите размерность матрицы А:'); readln(p); wwodmatr; wwodf; wwodl; wwodx; scalf; for i1:=1 to k3 do begin umnog; scalx; scalAx; ttt; rrr; summ; if (i1=k1) then begin for i:=1 to p do u1[i]:=y[i]; end; if (i1=k2) then begin for i:=1 to p do u2[i]:=y[i]; end; if (i1=k3) then begin for i:=1 to p do u3[i]:=y[i]; end; for i:=1 to p do begin
157
x[i]:=y[i]; end; end; writeln('искомый вектор u[',k1,']:'); for i:=1 to p do writeln(u1[i]:7:7); readln; writeln('искомый вектор u[',k2,']:'); for i:=1 to p do writeln(u2[i]:7:7); readln; writeln('искомый вектор u[',k3,']:'); for i:=1 to p do writeln(u3[i]:7:7); readln; for i:=1 to p do begin u4[i]:=(u3[i]-u2[i])/(u2[i]-u1[i]); end; max1:=u4[1]; for i:=2 to p do begin if u4[i]>max1 then max1:=u4[i]; end; writeln('"гамма" равно - ',max1:5:5); min1:=u4[1]; for i:=2 to p do begin if u4[i]<min1 then min1:=u4[i]; end; writeln('"бетта" равно - ',min1:5:5); t1:=(max1)/(1-max1); t2:=(min1)/(1-min1); for i:=1 to p do begin u5[i]:=u3[i]+t1*(u3[i]-u2[i]); u6[i]:=u3[i]+t2*(u3[i]-u2[i]); end; writeln('точное решение заключено между следующими векторами:'); for i:=1 to p do begin writeln( ' ',u6[i]:15:15,' ',u5[i]:15:15); end; readln; writeln('Теперь произведем улучшение полученных оценок.'); readln; n:=p; writeln('Введите координаты вектора u0:'); for i:=1 to n do begin readln(u0[i]); u00[i]:=u0[i]; end; k4:=k2-k1; for i2:=1 to k4 do begin
158
for i:=1 to n do begin s1:=0; for j:=1 to n do begin s1:=a[i,j]*u00[j]+s1; end; u7[i]:=s1; end; for i3:=1 to n do u00[i3]:=u7[i3]; end; for i:=1 to n do u8[i]:=u7[i]/u0[i]; min2:=u8[1]; for i:=2 to n do begin if u8[i]<min2 then min2:=u8[i]; end; writeln('q0=',min2:3:3); readln; umnog2; readln; for i3:=1 to k4 do begin for i:=1 to n do begin s2:=0; for j:=1 to n do begin s2:=a[i,j]*u9[j]+s2; end; u10[i]:=s2; end; for i:=1 to n do u9[i]:=u10[i]; end; for i:=1 to n do u100[i]:=u10[i]/u0[i]; min3:=u100[1]; for i:=2 to n do begin if u100[i]<min3 then min3:=u100[i]; end; writeln('q=',min3:5:5); t3:=(min3)/((1-max1)*(1-min2)); for i:=1 to n do u11[i]:=t3*u0[i]; for i:=1 to n do begin u12[i]:=u5[i]-u11[i]; end; for i4:=1 to k4 do begin for i:=1 to n do begin s3:=0; for j:=1 to n do begin s3:=a[i,j]*u13[j]+s3; end;
159
u14[i]:=s3; end; for i:=1 to n do u13[i]:=u14[i]; end; for i:=1 to n do u140[i]:=u14[i]/u0[i]; min4:=u140[1]; for i:=2 to n do begin if u140[i]<min4 then min4:=u140[i]; end; writeln('q1=',min4:6:6); t4:=(min4)/((1-min1)*(1-min2)); for i:=1 to n do u15[i]:=t4*u0[i]; for i:=1 to n do begin u16[i]:=u6[i]+u15[i]; end; writeln('После улучшения оценок получаем следующие векторы:'); for i:=1 to n do begin writeln(u16[i]:6:9,' ',u12[i]:6:9); end; readln; end. end.
160
§10. “Гибрид” методов ускорения сходимости монотонных приближений к решению x* уравнения вида x = Ax + f и однопараметрического итеративного агрегирования. program wert; { uses printer;} var lr,ch,ch1,zn,zn1,f,sn,sn1,sn2,sn3,z0,z01,z1,a1,a2,a00,b00,b0,u0,v0,u,v,p,q,p1,q1,u 1,v1: array[1..25] of real; a: array[1..25,1..25] of real; it,it1,h1,h2,h3,h11,h12,s,k,b,kt,k1,d0,d1,d01,d10,m01,m02,d02,d12,d012,d102,k0: real; g,g2,t,t1,t2,t3,r,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11:real; c,n1,i,j,n,x,hl,i1,l :integer; procedure wwod; var i,j:integer; begin writeln('введите размерность матрицы A:'); readln(n); writeln('Ввод элементов матрицы А:'); for i:=1 to n do begin for j:=1 to n do begin write('элемент A[',i,',',j,']='); readln(a[i,j]); end; end; writeln('Введите координаты свободного вектора f:'); for i:=1 to n do begin readln(f[i]); end; { writeln('Введите координаты вектора z0 :'); for i:=1 to n do begin readln(z0[i]); end; } for i:=1 to n do lr[i]:=1; end; procedure byferr; var i,j:integer; begin for i:=1 to n do begin z01[i]:=z0[i]; { writeln(u01[i]:4:4)} end; end; procedure umn; var i,j: integer; s: real;
161
begin for i:=1 to n do begin s:=0; for j:=1 to n do begin s:=a[i,j]*z01[j]+s; end; a1[i]:=s; end; end; procedure it_agr; var i,j:integer; begin for i:=1 to n do begin r:=0; r1:=0; for j:=1 to n do begin r:=a[i,j]*u0[j]+r; r1:=a[i,j]*v0[j]+r1; end; sn[i]:=r; sn1[i]:=r1; end; r2:=0; r3:=0; for i:=1 to n do begin r2:=sn[i]*lr[i]+r2; r3:=sn1[i]*lr[i]+r3; end; r4:=0; r5:=0; for i:=1 to n do begin r4:=u0[i]*lr[i]+r4; r5:=v0[i]*lr[i]+r5; end; g:=0; for i:=1 to n do begin g:=f[i]*lr[i]+g; end; t:=g/(r4-r2); t1:=g/(r5-r3); for i:=1 to n do begin u[i]:=t*sn[i]+f[i]; v[i]:=(t1)*sn1[i]+f[i]; end; end; procedure otn; var i,j:integer; begin
162
for i:=1 to n do begin zn[i]:=v0[i]-v[i]; ch[i]:=u[i]-u0[i]; end; for i:=1 to n do begin p[i]:=ch[i]/zn[i]; end; h2:=0; for i:=1 to n do begin h2:=p[i]+h2; end; m01:=h2/n; for i:=1 to n do begin q[i]:=zn[i]/ch[i]; end; h3:=0; for i:=1 to n do begin h3:=q[i]+h3; end; m02:=h3/n; end; begin { начало основной программы } wwod; byferr; writeln('Введите вектор u0:'); for i:=1 to n do begin readln(u0[i]); end; writeln('Введите вектор v0:'); for i:=1 to n do begin readln(v0[i]); end; writeln('Введите количество приближений:'); readln(x); for l:=1 to x do begin it_agr; otn; for i:=1 to n do begin if (m01=-1) or (m02=-1) then begin u1[i]:=u[i]; v1[i]:=v[i]; writeln(l,':',u1[i]:11:8,' ',v1[i]:11:8); writeln('деление на ноль'); end else begin u1[i]:=(u[i]+m01*v[i])/(1+m01); v1[i]:=(v[i]+m02*u[i])/(1+m02); writeln(l,':',u1[i]:11:8,' ',v1[i]:11:8); { writeln(lst,l,':',u1:11:8,' ',v1:11:8);} end; end;
163
for i1:=1 to n do begin u0[i1]:=u[i1]; v0[i1]:=v[i1]; end; readln; end; end. program wert; { uses printer;} var lr,ch,ch1,zn,zn1,f,sn,sn1,sn2,sn3,z0,z01,z1,a1,a2,a00,b00,b0,u0,v0,u,v,p,q,p1,q1,u 2,v2,u02,c72: array[1..25] of real; a: array[1..25,1..25] of real; it,it1,h1,h2,h3,h11,h12,s,k,b,kt,k1,d0,d1,d01,d10,m01,m02,d02,d12,d012,d102,m0 12,m022,u1,v1,k0:real; g,g2,t,t1,t2,t3,r,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,h9,h10,h88,h99:real; c,n1,i,j,n,x,hl,i1,l,dd :integer; procedure wwod; var i,j:integer; begin writeln('введите размерность матрицы A:'); readln(n); writeln('Ввод элементов матрицы А:'); for i:=1 to n do begin for j:=1 to n do begin write('элемент A[',i,',',j,']='); readln(a[i,j]); end; end; writeln('Введите координаты свободного вектора f:'); for i:=1 to n do begin readln(f[i]); end; writeln('Введите координаты вектора z0 :'); for i:=1 to n do begin readln(z0[i]); end; for i:=1 to n do lr[i]:=1; end; procedure byferr; var i,j:integer; begin for i:=1 to n do begin z01[i]:=z0[i]; { writeln(u01[i]:4:4)} end;
164
end; procedure umn; var i,j: integer; s: real; begin for i:=1 to n do begin s:=0; for j:=1 to n do begin s:=a[i,j]*z01[j]+s; end; a1[i]:=s; end; end; procedure it_agr; var i,j:integer; begin for i:=1 to n do begin r:=0; r1:=0; for j:=1 to n do begin r:=a[i,j]*u0[j]+r; r1:=a[i,j]*v0[j]+r1; end; sn[i]:=r; sn1[i]:=r1; end; r2:=0; r3:=0; for i:=1 to n do begin r2:=sn[i]*lr[i]+r2; r3:=sn1[i]*lr[i]+r3; end; r4:=0; r5:=0; for i:=1 to n do begin r4:=u0[i]*lr[i]+r4; r5:=v0[i]*lr[i]+r5; end; g:=0; for i:=1 to n do begin g:=f[i]*lr[i]+g; end; t:=g/(r4-r2); t1:=g/(r5-r3); for i:=1 to n do begin u[i]:=t*sn[i]+f[i]; v[i]:=(t1)*sn1[i]+f[i]; writeln(v[i]:3:3); end;
165
end; procedure otn; var i,j:integer; begin for i:=1 to n do begin zn[i]:=v0[i]-v[i]; ch[i]:=u[i]-u0[i]; end; h2:=ch[1]; for i:=2 to n do begin if ch[i]h9 then h9:=zn[i]; end; m01:=h2/h9; h3:=zn[1]; for i:=2 to n do begin if zn[i]h10 then h10:=ch[i]; end; m02:=h3/h10; end; procedure byferr2; var i,j : integer; begin for i:=1 to n do begin u2[i]:=u[i]; v2[i]:=v[i]; u02[i]:=u0[i]; c72[i]:=v0[i]; end; end; procedure it_agr2; var i,j:integer; begin for i:=1 to n do begin r6:=0; r7:=0; for j:=1 to n do begin r6:=a[i,j]*u02[j]+r6; r7:=a[i,j]*c72[j]+r7; end;
166
sn2[i]:=r6; sn3[i]:=r7; end; r8:=0; r9:=0; for i:=1 to n do begin r8:=sn2[i]*lr[i]+r8; r9:=sn3[i]*lr[i]+r9; end; r10:=0; r11:=0; for i:=1 to n do begin r10:=u02[i]*lr[i]+r10; r11:=c72[i]*lr[i]+r11; end; g2:=0; for i:=1 to n do begin g2:=f[i]*lr[i]+g2; end; t2:=(g2)/(r10-r8); t3:=(g2)/(r11-r9); for i:=1 to n do begin u2[i]:=(t2)*sn2[i]+f[i]; v2[i]:=(t3)*sn3[i]+f[i]; end; end; procedure otn2; var i,j: integer; begin for i:=1 to n do begin ch1[i]:=(u2[i]-u02[i]); zn1[i]:=(c72[i]-v2[i]); end; h11:=ch1[1]; for i:=2 to n do begin if ch1[i]h88 then h88:=zn[i]; end; m012:=h11/h88; h12:=zn1[1]; for i:=2 to n do begin if zn1[i]
167
if ch1[i]>h99 then h99:=ch1[i]; end; m022:=h12/h99; end; begin { начало основной программы } wwod; byferr; writeln('Введите вектор u0:'); for i:=1 to n do begin readln(u0[i]); end; writeln('Введите вектор v0:'); for i:=1 to n do begin readln(v0[i]); end; it_agr; otn; writeln('Введите количество приближений:'); readln(x); for i:=1 to n do begin writeln('приближение к ',i,'-ой координате вектора решения:'); byferr2; m012:=m01; m022:=m02; for l:=1 to x do begin if (m012=-1) or (m022=-1) then begin u1:=u2[i]; v1:=v2[i]; writeln(l,':',u1:11:8,' ',v1:11:8); writeln('деление на ноль'); end else begin u1:=(u2[i]+m012*v2[i])/(1+m012); v1:=(v2[i]+m022*u2[i])/(1+m022); writeln(l,':',u1:11:8,' ',v1:11:8); end; for dd:=1 to 4 do begin for i1:=1 to n do begin u02[i1]:=u2[i1]; c72[i1]:=v2[i1]; end; it_agr2; end; otn2; readln; end; end; end.