Android-приложение для поиска дешевых авиабилетов: play.google.com
Главная -> Применение эвм

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

Поясним назначение параметров подпрограммы. Сначала отметим что подпрограмма R KGS обращается к двум подпрограммам: Fcf для вычисления правых частей системы уравнений, записанной в виде (1.61), и ОиТР для вывода результатов расчета. Эти подпрограммы составляются пользователем для конкретной задачи. Их имена являются формальными параметрами RKGS, и они должны быть описаны в головной программе с помощью оператора EXTERNAL.

В массив PRMT длиной пять или более элементов записываются следующие входные параметры: PRMT (1) - начальное значение аргумента тц, PRMT (2) - конечное значение аргумента т., PRMT (3) - начальное значение шага интегрирования Дт, PR.MT (4) - допустимое значение локальной погрешности е / .

Оценка локальной погрешности к решения системы уравнений (и}, на шаге / находится иа основе оценок погрешностей е1 каждой из искомых функций следующим образом:

елок = 2 i =--1

где ф,- - некоторые весовые коэффициенты, которые являются размерными величинами в том случае, если искомые функции и{ представляют собой различные физические величины. Эти весовые коэффициенты задаются в числе входных параметров подпрограммы RKGS.

Т - массив для хранения N текущих значений искомой сеточной функции, в который должны быть записаны начальные значения {i= 1, .... iV).

DERY - массив для хранения N текущих значений производных /, (Tj, u(, uQ. При обращении к R KGS в него должны быть записаны весовые коэффициенты ф,- для расчета локальной погрешности по N значениям сеточной функции.

IHLF - выходной параметр, который показывает, сколько раз первоначальное значение шага PRMT (3) делилось на два в процессе автоматического выбора шага с целью достижения заданной локальной погрешности. При IHLF-11 происходит передача управления в головную программу.

AUX -рабочий массив длиной 8*N.

Обращения к подпрограммам, которые должен составить пользователь, имеют следующий вид. Для подпрограммы вычисления производных: CALL ЕСТ (TIME, Т, DERY), где TIME - текущее значение аргумента т; Т - массив текущих значений функции uf {{ -= = 1, jV); DERY - выходной массив значений производных

Л {-h "У-

Для подпрограммы вывода результатов:

CALL OUTP(TlME. Т, DERY. IHLF, N, PRMT),

смысл всех параметров был пояснен выше. Ззметим, что в процессе автоматического уменьшения или увели-ения шага Дт первоначальное значение РРЛ\Т (3) ие может быть превышено.

6 ПРОГРАММНАЯ РЕАПИЗАЦИЯ РАСЧЕТА НЕСТАЦИОНАРНЫХ СРЕДНИХ ТЕМПЕРАТУР

Рассмотрим более простую по сравнению с описанной в § 1.1 систему, включающую только твердые тела и среды с постоянными температурами. В этом случае нестационарный тепловой режим описывается системой уравнений

/=1 k=]

1=1, N,

С начальными условиями

(1.63)

(1.64)

Решение по схеме Эйлера. Сначала остановимся на программе решения задачи (1.63). (1.64) по неявной схеме Эйлера, которая имеет вид

/4-1 / -

2 а-К+-е,). N„ / = 0, 1, (1.65)

k= 1

здесь - сеточная функция, соответствующая значению температуры Tt в момент времени т, = /Дт; Дт - величина шага по времени. Отличие неявных схем для одного линейного уравнения и для системы уравнений состоит в том. что разностная схема (1.35) разрешалась в явном виде относительно м+, а в данном случае мы имеем систему N- линейных алгебраических уравнений для определения значений сеточной фуикции 1)+ мЧ. м+}.

Запишем эту систему в матричной форме

AU+ =В+, (1.66)



где А - матрица размером Лт X Лт. коэффициенты которой вычисляют по формулам

а В/+1 - вектор-столбец с элементами.

(1.68)

Таким образом расчет по неявной схеме Эйлера сводится к решению на каждом шаге по времени системы линейных уравнении (1.66), которое может быть выполнено с помощью какой-либо стандартной подпрограммы. В рассматриваемой задаче матрица А является симметричной, так как согласно (1.67) a-i

12 13 14 !5 16 17 16 19 2в 21 22 23

ГСЖШНАЯ ПРОГРАША РШНИЯ СИСТЕМЫ НЕСТАЦИОНАРНЫХ УРАВНЕНИЙ

ТОНОВОГО БАЛАНСА ПО НЕЯВНОЯ СХИЕ ЭЙЛЕРА

DiarXSIOH Р(28).С(г8).Т(2в).ТС(5).Ы(гвв). «IK(5e),Sy(5e),SIK(25).TV(28).A(4ee).AUX(2«)

ела WOD(Nl,HK.P.C.T.TC.NIJ,NIK.IJ,IH, »SIJ,SIH.TAU.11£AX,TV)

ЦИКЛ ПО ЗРОЕНИ

1 TlUE-TItfE+TAU

ела MATOI(NI,HK,P.C,T.TC.NIJ,NIK,IJ,IK. »SU.SIH.TAU.A.T) CALL GELS{r.A.NI.l,i.!>-7.1B?.AU)() IF(IER.fffi.0)PRIW 2.Ш

2 FORMATC ОШИБКА Ш=,12) IF(TI11E.LT.TV(L))G0T0 3 L-UI

reiNT 4.T1UE.(T(I).I-1,NI) 4 FCMAT{/ ВРЕЛЯ-.0!в.З/

» гшшРАТзте ш/(вси.з))

3 IFdlHE.LT.TVAXJGOTO 1

ггор ш

Рис. 1.6

поэтому используется подпрограмма GELS (см. § 1.3).

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

И 12 13 14 15 16 17 IS

2в 21 22 23 24 25 26 27 28 29

4в 4[

42 43 44 -45 46 47 48 48 5в Ъ1 52 53 54

С ПОДПРОГРАММА ВВОДА ДАННЫХ ДЛЯ РЕШЕНИЯ СИСТЕМЫ С НЕСТАЦИОНАРНЫХ УРАВНЕНИЙ ТЕПЛОВОГО БАЛАНСА PUBROUTlJffi WOD

i»{?JI,NK.P.C,T.TC.NIJ,NlH.IJ,IH, »SIJ,SlK.TAU.T!ilAX,TV)

DIMENSION Р(П,С<1),Т{1).ТС{1),Ы{(). «lK(!).SIJ(i).SIK(i),TV(I)

READ J.NI.NK

1 F0RMAT(iei5) PRINT S.NI.NK

2 FORMATC ЧИСЛО ТЕЛЛЗ. ЧИСЛО СРЕД.13) READ 3.(Р(1),1.1.МП

3 F0RMAT(5Fie.3) PRINT 4.(P(I),I=!,NI)

4 FORMATC M0H0CTH7(5Fie.3)) READ 3,(C(I).I=1,NI)

PRINT 5.(C(n,I=l.NI)

5 FORMATC ТЕПЛ0Ш0СП)7!&Г1г1.3)) READ 3.(1(1).I-l.NI)

PRINT 6,(T(I).I=1.NI)

6 FORKATC НАЧАЛЬНЫЕ ТШ1ЕРАТУРЫ7(5Е!0.3)) READ 3,(TC(I).I=!.NH)

PRINT 7.(TC{I),I=!.NK)

7 FORMATC ТЕМПЕРА17РУ CPEa7(5Fie.3)) READ l.NIJ.NIK

PRINT S.NIJ.NIK 6 FORMATC NIJ=M3. Nll{=,13) N=2*NIJ

READ J.IIJ(]),I=1.N) READ 3,(SIJ{I).I=1,H1J) PRINT 8

9 FORKATf ШДОВЫЕ СВЯЗИ ШШ ТШШ/

. # НОМЕР I НОМЕР J проводамостьi

DO 10 1=1.NIJ le PRINT (I.IJ(2#I-n.IJ(2«l),SIJ(I) ti F0RMAT(14.11I,F15.3)

N=a»NIH

READ l.dHdJ.M.NJ READ 3,(SIK(I).I=1.NIH) PRI.VT J2

!2 FORMATC ТЕПЛОВЫЕ СВЯЗИ МЕЯДУ ТЕЛАМИ И СРЕДАМИ7 » НОМЕР 1 HOMLP К ПРОВОДИМОСТЬ) DO (3 I=i,NIK

13 RUNT U.IH(2#I-1).IK(2»I).SIK(I> READ S.TAU.TVAX

PRINT J4.rAU.Tm

14 FORMATC ШАГ ПО ВРЕМЕНИ.Е!в.З/ * МАКС. HEJW.FIO.S)

READ Ijv

READ 3i(TV(I),M.IV) PRINT i5.(TV(I).I-I.IV)

15 FORMATC ВРЕМЕНА ВЫВОДА НА ПЕЧАТЪ/(5Р1в.З)) . RETURN

Рис. 1.7



1 с П0Д1РОГРАМНА ФОРМИРОВАНИЯ МАТРИЦЫ ДЛЯ РЕШЕНИЯ ОКЛВЫ

2 С НЕСТАШЮНЛРНЫХ УРАВНЕНИЙ ТЕПЛОВОГО БАЛАНСА

3 С ПО НЕЯВНМ) СХЕМЕ ЭЙЛЕРА

4 SUBROUTINE MATRN

5 •(NI.KK.P,C,T,TC,NU,NIH.IJ.IH.

6 «SIJ.SIH.TAU.А,В)

7 С ВХОДНЫЕ ПАРАМЕТРУ:

8 С N1 - ЧИСЛО ТЕЛ

9 С NK - ЧИСЛО СРЕД С ЗАДАННОЙ ТЕМПЕРАТУРОЙ

1в С P(NI) - мощности ИСТОЧНИКОВ ТЕПЛОТЫ В ТЕЛАХ

И С C(NI) - ПОЛНЫЕ ТЕПЛОЕМКОСТИ ТЕЛ

12 С T(NI) - та1ПЕРАТУРЫ ТЕЛ НА ПРЕДЫДЛПЕМ ШАГЕ ПО ВРЕМЕНИ

13 С ТС(т) - ТШ1ЕРА1УРЫ СРЕД

14 С NIJ - ЧИСЛО СВЯЗЕЙ ИЕВДУ ТЕЛАМИ

15 С Ш - ЧИСЛО СВЯЗЕЙ ИЕЙДУ ТЕЛАМИ И СРЕДАМИ

16 С IJ(2»HIJ) - НОМЕРА I И J СМЗАНШа ТЕЛ

17 С I1{{2»N1H) - НСЖРА СВЯЗАННЫХ ТЕЛА I И СРЕЦЫ Н

18 С sij(niJ) - тволтхгги межпу телами

19 с SIHCNIH) - ПРОВОДИМОСТИ МЕЙДУ ТЕЛАМИ И СРЕДАМИ

20 С TAU - ШАГ ПО ВРЕМЕНИ

21 С ШХОДНЫЕ ПАРАМЕТРЫ:

22 С А - МАССИВ ДЛЯ ХРАНЕНИЯ ВЕРХНЕЙ ТРЕУГОЛЬНА! ЧАСТИ СИММЕТРИЧНОЙ

23 С МАТРИЦЫ СИСТЕМЫ УРАВНЕНИЙ НЕЯВНОЙ СХЕМЫ ЭЙЛЕРА. ДЛИНА МАССИВА

24 С РАВНА NU(NI+I)/2

25 С B(NI) - ВЕКТОР-СТОЛБЕЦ СВОВОДНЫХ ЧШОВ

26 С

27 DIMENSION Р(1),С(1).Т(i).ТС( 1).Ud). 1И( 1).SIJ{1),SIH( 1),

28 »А(1),В(1)

29 С 1. ОБНУЛЕНИЕ МАТРИЦЫ Зв NA=I*(NI+l)/2

31 DO I r=I.NA

32 1 A(I)=e.

33 С 2. ЦИКЛ ПО ТЕЛАМ. ЗАПИСЬ Б ДИАГОНАЛЬНЫЕ ЭЛЕМЕНШ МАТИВЩ А

34 С И Б ЗЕКГОР В ПАРАМЕТРОВ ТЕЛ

35 DO 2 1=1.N1

36 K=I«(I+l)/2

37 A(K)=C(I)/TAU

38 2 B(I)=P(I)+C(I)/TAU.T(I)

38 С 3. ЦИКЛ ПО СВЯЗЯМ "ТЕЛО - ТЕЛО". ЗАПИСЬ В МАТРИЦУ А"

40 С ТЕПЛОВЫХ ПРОВОДИМОСТЕЙ

41 IF(NIJ.EQ.e)GOTO 4

42 ЮЗ H=I,fJIJ

43 l=IJ(2»M-l)

44 J»IJ(2»M)

45 S=SIJ(M)

48 K=I#n+l)/2

47 A(K)=A(K)fS

48 K«J»(J+l)/2 43 A(K)=.A(K)+S

50 IF(I.LE.J)K=J«(J-l)/e+I

51 IF(I.GT.J)K-b(I-i)A+J

52 3 А(К)-А(И)-3

53 С 4. mm ПО СВЯЗЯМ "ТЕЛО - СРЕДА". ЗАПИСЬ ПРСвОДвЮСГПЯ

54 55

57 58 58 60 81 62 63 64

В ДИАГОНАЛЫШЕ ЭШЕНШ МАТРИВД А И ТШЮВНХ ПОТОКС»

В ВШОР В

4 1Е(ШК.ВД.0)С»ТО 6 I>0 5M=1,NIK 1=Ш2»»*-1) К=1К(2»М) J=I»(Ul)/2 A(J)=A(J)+S]K{W

5 B(I)=B(I)+SIKtM)*TC(K)

6 ШШ

Рис. 1.8 Продолжение

оованне матрицы А и столбца В путем обращения к подпрограмме MATRN, решение системы (1.66) с помощью подпрограммы GELS, а в заданные моменты времени выполняется вывод температур {"jlfjj на печать. Начальное распределение и" = Т;о задается в подпрограмме ввода путем заполнения массива Т значениями начальных температур тел. Заметим, что при обращении к подпрограмме MATRN массивы температур Т и свободных членов В совмеи1.ены.

Все исходные данные описаны в комментариях к тексту подпро-гpaммыMATRN. Способ описания взаимодействий между телами и межд> телами и средами {aV- и аТ) полностью идентичен рассмотренному в§1.4. Формирование массивов А и В, соотвегствуюн1Н\ матрице и столбцу свободных членов, проводится после их преднарительного обнуления также путем последовательного суммирования «вкладов» от отдельных тел и тепловых связей согласно формулам (1.67), (1.68). Отличие от рассмотренной ранее подпрограммы SYSTT состоит в том, что симметричной матрице А соответствует одномерный массив, содержащий лишь верхнюю треугольную ее часть, .(аиисанную по столб1.ам, как это требуется для подпрограммы GELS. Поэтому после выяснения индексов i. / коэффициента матрицы Оц выполняется расчет индекса п для одномерного массива по формуле п - / (/ -- I) 2 -Ь i. Замети.м, что если положить С; = О и выполнить один шаг по времени, то сразу патучим решение соответствуюп],ей стапио-нарной задачи.

Отметим одно обстоятельство, обусловленное ли[ейностью рас-"матриваемой задачи (L63), (1.64). Поскольку компоненты матрицы не изменяются во времени при const, Ci const, целесообразно один раз перед началом цикла по времени вычислить обратную Матрицу А-1 а затем дальнейшие расчеты в цикле свести к формированию столбца В+ и определению температур U" путем умноже-"я обратной матрицы на вектор-столбец; 1)+ -•= А-В+\ Обратная матрица может быть найдена, например, с помощью подпрограммы MINV (см. §-1.3). Таким путем можно достичь значительной ономии машинного времени по сравнению с формированием матри-ьt и решением системы на каждом шаге по времени.

Рис. 1.8



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



0.0114
Яндекс.Метрика