Дульнев Г.Н., Парфенов В.Г., Сигалов А.В. Применение ЭВМ для решения задач теплообмена (Дульнев Г.Н., Парфенов В.Г., Сигалов А.В. Применение ЭВМ для решения задач теплообмена.djvu), страница 5
Описание файла
DJVU-файл из архива "Дульнев Г.Н., Парфенов В.Г., Сигалов А.В. Применение ЭВМ для решения задач теплообмена.djvu", который расположен в категории "". Всё это находится в предмете "компьютерный практикум по специальности" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 5 - страница
АццАУ (МОРЕ, Ы, М, ХО, МО, В, А), где МОРŠ— код преобразования (! — одномерный массив в двумерный, 2 — двумерный в одномерный); И, М вЂ” фактическое число строк н столбцов матрицы; ХО, МΠ— число строк и столбцов, определенных для матрицы в операторе Р1МЕМБ1ОЫ;  — одномерный массив длиной Х» М (вектор); А — двумерный массив (матрица). Вектор В н матрица А могут быть в памяти совмещены.
Например, рассмотренное выше преобразование матрицы А (4, 4) в векторную форму прн М вЂ” — 3 реализуется оператором СА1Л. АКТАУ (2, 3, 3, 4, 4, А, А). 2. Можно формировать матрицу в подпрограмме, входными параметрами которой являются массив А, число строк Х и число столбцов М. При этом в подпрограмме следует описать массив А как двумерный массив переменного размера с помощью оператора ИМЕЙ)- ЯОХ А (Х, М).
Тогда при формировании матрицы все ее элементы будут записаны подряд без «пробелов» в памяти, как это и требует векторная форма. В головной вызывающей программе надо лишь определить максимально возможную длину массива А, причем его можно описать как одномерный, например ИМЕг)ЯОЫ А (1000). Описанный путь реализован в большинстве приводимых в данной книге программ. 3. Можно сразу формировать матрицу в виде одномерного массива, в котором индекс К, соответствующий индексам 1, Л матрицы с М строками и М столбцами вычисляется по формуле К = (Л вЂ” 1)» И + ! Если матрица имеет специальный вид, например является симметричной или ленточной, то для работы со стандартными подпрограммами коэффициенты матрицы всегда должны быть записаны подряд в одномерный массив в последовательности, зависящей от вида матрицы и используемой подпрограммы.
Примеры таких способов записи матриц будут рассмотрены ниже. Перейдем к краткому описанию ряда наиболее важных подпрограмм. Характеристика стандартным программ. Подпрограмма обращения матрицы М1й)Ч реализует вычисление обратной матрицы А-' ме- гй годом Гаусса — Жордана !21. Вызов этой подпрограммы производится так: СА1Л. М1ХЧ (А, М, Р, 1., М), где А — входная матрица размером Х х й), которая на выходе заменяется обратной матрицей; (з — определитель матрицы, вычисляемый в подпрограмме; 1 и М вЂ” целые рабочие массивы длиной Ы, которые следует описать в вызывающей программе.
Подпрограмма решения системы линейных уравнений оби(его вида 6Е).6 реализует решение методом последовательного исключения Гаусса с выбором главного элемента. Эта и последующие подпрограммы предусматривают возможность решения г( систем с одной и той же матрицей А, но с различными столбцами правых частей В. Для этого правые части задаются как матрица размером М х й(, а Ы векторов решений также расположены в одном массиве последовательно по М элементов. Такая возможность реализована с целью экономии машинного времени, поскольку в случае й! отдельных обращений к подпрограмме с разными правыми частями В над матрицей А будут производиться одни и те же операции исключения неизвестных.
Обращение к подпрограмме имеет вид СА1Л. ЙЕ1.6 (В, А, М, Х, ЕРЯ, 1ЕЙ), где  — матрица правых частей размером М х Х, которая на выходе заменяется матрицей решений; А — матрица коэффициентов системы уравнений размером М х М (в ходе вычислений эта матрица «портится»); М вЂ” число уравнений; Ы вЂ” число правых частей; ЕР5 — входная константа, используемая при контроле потери точности; 1ЕЙ вЂ” выходной параметр ошибки. В программе в процессе реализации процедуры исключения предусмотрен контроль потери точности.
Лля этого на каждом шаге й исключения главный элемент аи, на который производится деление а формулах (!.11), (!.14), сравнивается с величиной ЕРЯ в а „„., где а„„, — максимальный по модулю элемент матрицы. Если абсолютная величина главного элемента оказывается меньше, чем это произведение, то параметр ошибки принимает значение (й + 1). Обычно задают ЕРЬ =- (!О-' —: 1О-').
Выходной параметр ошибки 1ЕК = — — 1 в случае, когда на каком-то шаге исключения главный элемент равен нулю и, следовательно, решение получено быть не может. Значение 1Ей = О свидетельствует об отсутствии ошибок. Параметр 1Ей следует анализировать после обращения к подпрограмме бЕ(.6, и в случае 1ЕК чь О предусматривать соответствующее сообщение. Зля систем линейных уравнений с матрицами специального вида разработаны программы, реализующие модификации метода исключения с учетом структуры матрицы.
При этом экономится память при хранении матриц, а в алгоритме исключения не проводятся опе- 20 анин над нулевыми коэффициентами, что сокращает время решейия системы. Программа СЕЕЬ реализует решение системы линейных уравнений с симметричной матрицей коэффициентов. Обращение к ней имеет вид СА)) СЕРБ(В, А, М, )Ц, ЕРЯ, !ЕР, А()Х!. 3десь А — массив, в который последовательно по столбцам записана верхняя треугольная часть симметричной матрицы, т.
е. этот массив содержит М э (М -- !),'2 элементов в такой последовательности: аио аци агм а.з. азз, амь ..., а,м, ..., амм, А1)Х вЂ” рабочий массив длиной (М вЂ” !), который должен быть описан в вызывающей пРогРамме; ос- аи а, Оо 0 тальные параметры по смыслу полностью совпадают с одноименными параметрами ам пм ам азч О подпрограммы СЕЕС. При формировании массива А коэффициент матрицы азэ (при з ( !) записывается в элемент массива А (К), номер которого определяется по формуле К = 3 э (Я— — 1)!2+ 1. Решение методом Гаусса систем линей- Рис. !.3 ных уравнений с ленточной матрицей реализует подпрограмма СЕЕВ.
Существенной особенностью этой подпрограммы является способ записи коэффициентов матрицы. Лля его пояснения рассмотрим матрицу с числом верхних диагоналей 2 и числом нижних диагоналей 1, показанную на рис. 1.3. В массив А следует записать по строкам все коэффициенты, лежащие в пределах ленты матрицы, т. е. для данного примера массив А должен содержать такую последовательность коэффициентов: агм ами амь азм аги а,„аем ..., ам, ааи Подпрограмма вызывается с помощью следующего обращения: СА1) СЕ1.В (В, А, М, )Ц, .ъНЛ), М11), ЕРЯ, 1ЕК), 0 Озз азз азч аз О О 04з пчз азз О О 0 054 и где М вЂ” число уравнений; Я вЂ” число правых частей; М1ЛЭ вЂ” число верхних диагоналей, т. е.
лежащих выше главной; М).1) — число нижних диагоналей, т. е. лежащих ниже главной; А — матрица, записанная по строкам в одномерный массив, под который в вызывающей программе должно быть отведено (М э МС вЂ” МЕ ч (М1. + !)!2) ячеек; здесь М1. = (МС вЂ” М1.1) — !), МС = ппп (М, 1 + МИ) -'- + М11!) — ширина ленты, остальные параметры совпадают с одноименными параметрами подпрограммы СЕЕС. В главах 3 и 4 будут рассмотрены еще две подпрограммы: 3УЯТЯР— для решения систем с трехдиагональной матрицей и МСН — для решения систем уравнений с ленточной симметричной матрицей методом квадратного корня. $ СА ПРОГРАММНАЯ РЕАЛИЗАЦИЯ РАСЧЕТА СТАЦИОНАРНЫХ СРЕДНИХ ТЕМПЕРАТУР При составлении программы для расчета стационарных средних температур в системе тел и потоков теплоносителей используем систему уравнений (1.2) — (1.5).
Приравнивая производные по времени нулю и подставляя выражения (1.5) для средней температуры теплоносителя Ц, в уравнения баланса (1.2), (1.3), получим систему алгебраических уравнений относительно температур Т! (! = 1, ..., А(,), Ц!", Ц!вж (! = 1, ..., А! ). Зля составления программы целесообразно сгруппировать коэффициенты при неизвестных и записать эту систему в следующей форме: уравнения для твердых тел (! = 1, ..., Ж,) | 'тт ~ж 'тс и ~ж ~ч ! отт ! ч~ отж,' '%~~~~ отс 7', ~т отт Т ~ отж (1 )' ) Цвт ./= ! !=! в=! Г= ! 1= ! ~ж и ! ! = ! .и !с с Эт Отж Г Цв!вв р 1 т Отс 8 != ! в=! уравнения для объемов с теплоносителем (! = 1, ..., А! ) л и отж 7'.
+ ~ отж 7' + с 6 Цвыв + с-! 7 хт в= ! (1.27) < !тж с ! !тж 'тс У с 6 !+ ~чРс„бвт Цвв — ~чР с 6,Ц "= ~ч; сс6„!Оь",(1.28) ж=! в=! ж=! с=! здесь в уравнении (1.27) 6! — — 2 6„, + 26в!. Представим систему (1.26) — (1.28) в матричной форме АХ=В, где А — матрица размером А( Х Ж, !т' = й(, + 2 * л(; Х вЂ” столбец неизвестных температур, содержащий л!' членов;  — столбец из т!l свободных членов.
Примем следующий порядок нумерации У неизвестных температур: первые й(, членов столбца Х соответствуют температурам тел Т„..., Тн,, далее парами следуют 2 с й! температур теплоносителей на выходе и на входе Ц! ", Ц;", ..., Ц„", Цл" . Будем использо- уравнения для определения температур теплоносителя на входе Ц!" вать также следующую нумерацию уравнений системы: первые У, уравнений совпадают с уравнениями (1.26), далее следуют парами 2 э Ф уравнений (1.27), (1.28). Приводимая ниже программа расчета средних температур (рис. 1.4) оформлена в виде подпрограммы, параметрами которой являются все необходимые исходные данные и рабочие массивы, описанные в комментариях к тексту.