Промышленный лизинг Промышленный лизинг  Методички 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 [ 51 ] 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124

Так как верхнюю релаксацию можно рассматривать как коррекцию результатов, полученных методом Гаусса - Зайделя, на основе линейной экстраполяции с предыдущих итераций, то естественно ожидать, что другие, возможно, более точные (с точки зрения погрешности аппроксимации) экстраполяционные зависимости могут быть использованы для ускорения сходимости итерационного процесса. И действительно, для этих целей успешно применяются экстраполяционные формулы Эйткена и Ричардсона. Соответствующие методы подробно описаны в книгах по вычислительной математике; мы же лишь отметим, что целесообразность использования более сложных методов экстраполяции необходимо тщательно взвесить, так как они ведут к увеличению числа алгебраических действий и требуют большей памяти ЭВМ. К преимуществам метода последовательной верхней релаксации относятся его простота и то, что при включении его в алгоритм можно обойтись без введения дополнительных массивов.

Блочные итерационные методы. Метод Гаусса - Зайделя с последовательной верхней релаксацией является лучшим из пока подробно рассмотренных в этой главе методов решения эллиптических уравнений. Обычно количество итераций можно сократить, используя блочные итерационные методы. Однако при этом увеличивается число алгебраических операций на каждой итерации, и заранее не ясно, компенсирует ли уменьшение количества итераций увеличение времени счета на каждой итерации. Этот вопрос для каждой задачи надо решать конкретно. Можно привести примеры, когда применение блочных итерационных методов позволило действительно сократить суммарное время решения задачи, поэтому эти методы заслуживают внимательного изучения. Интересное сопоставление скорости сходимости точечных (явных) и блочных итерационных методов проведено в работах [Forsythe, Wasow, 1960; Ames, 1977].

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



> В связи с последним членом п числителе заметим, что в общем случае хотя бы одна неизвестная в калчдом уравнении должна быть уже вычислена на -f 1)-м слое.

Последовательная верхняя релаксация по строкам. Хотя эта процедура применима к любому итерационному алгоритму, наиболее целесообразно использовать се совместно с методами Гаусса - Зайделя и последовательной верхней релаксации. Эту процедуру можно с равным успехом применять как к строкам, так и к столбцам. Проиллюстрируем ее на примере пятиточечной разностной схемы решения уравнения Лапласа с граничными условиями Дирихле в квадратной области. Для большей общности рассмотрим случай, когда шаг Ал: не обязательно равен Ау. Обозначая через р = Ах/Ау отношение шагов разностной сетки, запишем разностные уравнения для решения методом Гаусса -Зайделя )

~ 2(1 + Р) слгб)

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

i,f - 2(l + p2) • l.lZj

Если посмотреть внимательно на это соотношение, то можно заметить, что в него входят лишь три неизвестных, так как величина мfY Jyжe известна либо из условий на нижней границе, если уравнение записано для первой строки, либо из решения, уже полученного на (+ 1)-й итерации для ниже расположенной строки. В последнее соотношение входит значение неизвестной на итерации с номером k, а не + так как нашей задачей было получить уравнение с тремя неизвестными, чтобы для решения системы уравнений можно было использовать эффективный метод прогонки. Схематически описанный алгоритм показан на рис. 4.22.

Задача сводится теперь к решению системы 1 - 2 линейных уравнений с / - 2 неизвестными значениями Uij на (+1)-й итерации. Прежде чем перейти к следующей строке, можно применить метод последовательной верхней релаксации так же, как это было сделано в предыдущем разделе. Существует несколько способов включения верхней релаксации в рассматриваемый алгоритм. Первый из них состоит в том, что после решения методом прогонки системы уравнений (4.124) для каждой



строки значения всех неизвестных в этой строке корректируются по формуле (4.122), после чего осуществляется переход к решению для следующей строки.

Другой способ состоит во включении параметра релаксации (О в алгоритм до решения уравнений прогонкой. Для этого подставим правую часть (4.124) в правую часть (4.122). В результате получим систему уравнений

которая для каждой строки решается методом прогонки. При таком подходе последовательная верхняя релаксация органи-

l,Jf-.-.-.-.-.-. I,J

Направление движения по строкам

{известно)

Рис. 4.22. Последовательная верхняя релаксация по строкам. К ряду, обведенному штриховой линией, применить метод прогонки, после чего перейти к следующей строке.

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

релак-

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

При последовательной верхней релаксации по строкам один цикл итерации заканчивается после того, как системы уравнений с трехдиагональной матрицей решены для всех строк. После этого процесс повторяется до тех пор, пока не будет выполнено условие сходимости итераций. Эймс [Ames, 1977] показал, что при решении задачи Дирихле рассматриваемым методом требуется в л/2 раз меньше итераций, чем при решении той же задачи методом Гаусса - Зайделя с последовательной верхней релаксацией (для одинакового уменьшения начальной ошибки). С другой стороны, применение метода прогонки ведет к некоторому увеличению времени расчета одной итерации.



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 [ 51 ] 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124