Дульнев Г.Н., Парфенов В.Г., Сигалов А.В. Применение ЭВМ для решения задач теплообмена (Дульнев Г.Н., Парфенов В.Г., Сигалов А.В. Применение ЭВМ для решения задач теплообмена.djvu), страница 4
Описание файла
DJVU-файл из архива "Дульнев Г.Н., Парфенов В.Г., Сигалов А.В. Применение ЭВМ для решения задач теплообмена.djvu", который расположен в категории "". Всё это находится в предмете "компьютерный практикум по специальности" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 4 - страница
Описанный метод называется меаи<дом простой итерации для решения кеазилинейных систем (не путать с рассмотренным выц<е методом простой итерации для линейных систем). Второй подход, приводящий к методу Ньютона, более сложен в реализации, но позволяет во многих случаях ускорить сходимость итерационного процесса, а иногда являегся и единственным способом решения, приводящим к успеху.
Рассмотрим его основную идею на примере системы двух нелинейных уравнений ! а,<(и<, и») и,+а„(и», и») и»=Ь», (1. 23) ам (и„и») и<+ ам (и„и2) и» = Ь». Предположим, что найдены приближенные значения искомых величин и<' — '1, и< — '1 на (з — 1)-й итерации. Построим линейную 1 2 систему уравнений для приближенных значений и<',1, и<*1 следующей з-й итерации. Для этого представим новые значения в виде и<',1 = = и<'-'1+ би<«1, и< ° 1 и<' — '1+ Ьи<'1 где Аи<'1 би<'1 — уточняю! 1' 2 2 2 Ф 2 15 Шие приращения для приближений неизвестных на з-й итерации.
Очевидно, что определение Ли<;> эквивалентно определению и<,'>. В методе Ньютона система линейных уравнений обычно записываегся: относительно приращений Ли(5). Для ее получения значения коэфс фициентов а<;,> представим, используя разложение в ряд Тейлора в точке (и<' —, '>, и(* — ')) и ограничиваясь его первым членом, в следующем виде: а„(и<*>, и('>) ж а, (и<$ — ' >, и<,* — '>) + да(!'! да('! + Ли<'> + " Ли(*>. ди( ди$ (1.24) Подставив теперь выражения для коэффициентов вида (1.24) и и<,'> = и<' —,. '> + Ли<;> в исходную систему (1.23) и отбросив члены второго порядка малости (произведения Ли<',> Ли(,'?), получим нужную нам систему линейных уравнений относительно приращений Ли('>, Ли<а !' 2' да(5 да(!'2 а($ — И+ "' и(.— !)+ "' и(* — !) Ли(5>+ 11 ди1 ди( д ('-!) а!2 д (' + а(' — '>+ и<' — '>+ и<' — '> Ли<') = 1$ $ 1 $ ди$ ди, = Ь вЂ” а<' — '> и('-') — а(' '> и(' — '> (1.25) с д<' '> д (' а(5 — !> + и(5- !) > и(* !) Ли<5 !>+ а22 $1 д 1 И1 ди и1 да<' >> да + а<$ — !>+ '22 и<5 — !!+ 2 ии — !> 22 ди$ ди$ 2 $1 =Ь вЂ” а<,', ') и(' '> — а,", '> и<' ').
16 Линейность системы (1.25) относительно приращений Ли<,*), Ли<'> следует из того, что все ее коэффициенты рассчитаны по значениям искомых величин на предыдущей итерации. На каждом шаге итераций можно использовать для решения (1.25) наной-либо прямой метод. Легко увидеть, что выражения в правых частях уравнений системы (1.25) представляют собой невязки для исходной системы (1.23) при значениях и<' —, '> и и(' — '>. Если итерационный процесс сошелся, то в правых частях получим нули и решение системы (!.25) даст Ли(н = Ли(*) = О. ! 2 В заключение отметим, что оба рассмотренных метода можно применять и для решения систем нелинейных алгебраических уравнений общего вида. Для общего случая изложение метода простой итерации и метода Ньютона приведено в 12, 101.
ь СЗ. ПРОГРАММНОЕ ОЕЕСПЕЧЕНИЕ РЕШЕНИЯ СИСТЕМ ЯИНЕЙНЫХ АЛГЕЕРАИЧЕСКИХ УРАВНЕНИЙ В математическом обеспечении ЕС ЭВМ имеется пакет прикладных программ, предназначенных для решения систем линейных алгебраических уравнений (!5(. Подпрограммы написаны наФОРТРАНе и могут быть использованы не только на ЕС ЭВМ, но и на других типах ЭВМ. Эти подпрограммы реализуют прямые методы какдля матриц общего вида, так и для матриц специального вида (симметричных, ленточных).
Ниже рассмотрим несколько широко применяемых подпрограмм, которые далее будут использованы при решении задач теплопроводности, лучистого и конвективного теплообмена. Чтобы решить систему линейных уравнений с помощью какой-либо стандартной подпрограммы, пользователь должен составить головную (вызывающую) программу, в которой элементы матрицы А н столбца правых частей В линейной системы АХ = В записываются в некоторые массивы, а затем выполняется вызов стандартной подпрограммы. При работе со стандартными подпрограммами из пакета (15( начинающие программисты часто допускают некоторые типичные ошибки, связанные с формированием массивов, в которые записываются элементы матриц.
Например, такие ошибки возникают, когда в вызывающей программе матрица формируется в виде двумерного массива А, предельные размеры которого, установленные в операторе О!МЕ(ЧЫОй(, превышают фактические размеры М х М. Остановимся на данном вопросе подробнее. Формы представления матриц. Входными параметрами рассматриваемых ниже подпрограмм являются массивы А и В, содержащие элементы матрицы А и столбца В, расположенные в строго определенной последовательности, число уравнений М, а также некоторые дополнительные параметры для матриц специального вида. Эти стандартные подпрограммы позволяют решать системы с произвольным числом уравнений М, поскольку число М и массивы А, В входят в число формальных параметров подпрограммы, а фактические размеры массивов устанавливаются в головной программе.
Таким образом стандартная подпрограмма оперирует с матрицей А как с массивом переменной длины М х М и «не знает» о предельных размерах массивов, определенных в головной программе пользователем в операторе О1МЕХЫО(Ч. При этом элементы матрицы А должны быт' расположены в массиве А подряд в определенной последовательности. Например, для матрицы общего вида в соответствуюц(ей области машинной памяти последовательно по столбцам должны быть записаны М' элементов: а„, аго ..., амм ..., а|м, ", амм.
В головной программе матрицу часто бывает удобно формировать в виде двумерного массива А, первый индекс которого соответствует номеру строки, а второй — номеру столбца. Рассмотрим форму хранения двумерных массивов в памяти ЭВМ. Пусть, например, для хранения матрицы А предусмотрен двумерный массив, описанный оператором 01МЕИЯОМ А (4, 4), а фактический размер равен в дан. ной задаче трем. Тогда девять элементов матрицы будут размещены в 16 зарезервированных под массив А последовательных ячейках памяти следующим образом: а„ а„ аз, азз азз азз азз азз азз 4-й столбец 3-й столбец 1-й столбец 2-й столбец Пример показывает, что если фактический размер матрицы М меньше указанного максимального размера МО в операторе Р1- МЕМЯОХ, то элементы в ячейках памяти располагаются не подряд.
Порядковый номер ячейки К, соответствующей элементу А (1, 3), определяется формулой К = (Д вЂ” 1) в МО + 1, где МΠ— максимально возможная длина столбца. Однако, как отмечалось выше, в вызываемой стандартной подпрограмме матрица А представлена в виде массива переменной длины, а элементы матрицы должны быть расположены в массиве А подряд без пропусков ячеек. Поэтому при обращении к стандартной подпрограмме, проводимом при М = 3, будут использованы числа, содержащиеся в первых девяти (М в М = 3 3 =- 9) ячейках, зарезервированных под массив А в вызывающей программе. Очевидно, что эти числа не соответствуют коэффициентам построенной в вызывающей программе матрицы А (3, 3). Это происходит потому, что при описании матрицы в подпрограмме в виде массива А (М, М) переменной длины выбор номера К ячейки памяти, соответствующей элементу А (!, 3), производится на основе формулы К = (3 — 1) в М вЂ” , + 1, где М вЂ” фактическая длина столбца, указанная при обращении к подпрограмме.
Таким образом, при М чь МЯ матрица А будет передаваться в подпрограмму неправильно. Чтобы избежать рассмотренного несоответствия, следует перейти к векторной форме хранения матриц, при которой каждый столбец располагается в памяти непосредственно за предыдущим. В этом случае все М * М элементов расположатся в памяти подряд, а последующие (МО* МΠ— М * М) ячеек из общего числа зарезервированных останутся пустыми. Для нашего примера элементы матрицы А при М = 3 будут при использовании векторной формы хранения расположены так: аз, аз, аз, а„азз азз а,з азз азз 1-й столбец х-й столбец 3-й столбец свободная область Переход к векторной форме хранения матриц, необходимый для работы со стандартными подпрограммами, можно осуществить одним из следующих трех способов.
18 1. Можно сформировать матрицу в вызывающей программе в двумерной форме, а перед обращением к стандартной подпрограмме осуществить преобразование двумерной формы в векторную, т. е. реализовать «сжатие» области памяти, в которой находятся элементы матрицы. Эта операция может быть выполнена с помощью специальной стандартной подпрограммы АККАУ, которая осуществляет преобразование одномерного массива матрицы в векторной форме в двумерный и наоборот. Обращение к этой подпрограмме имеет вид СА1Л.