Вычислительная математика и программирование - Боглаев Ю.П.
ISBN 5-06-00623-9
Скачать (прямая ссылка):
443
вызова В8А1 с удвоенным значением N (этот фрагмент алгоритма здесь опускается). Программа может иметь следующий вид:
REAL A,B,T0,T1,U(101),E,W(1657),DT INTEGER M,N,K,L,I EXTERNAL PDEF,BNDY DATA A,B,T0,T1/0.,1.,0.,1./,W/101*0./,E/1.E—4/
DATA M,N,K, L,I/0,101,1657,0,0/,DT/0.1 /
С ВЫЧИСЛЕНИЯ ВРЕМЕННЫХ СЛОЕВ С ПОМОЩЬЮ
С ПРОГРАММЫ В8А1
DO 1 J = 1,10 Tl =T0+DT
CALL B8A1 (M, А, В, TO, T1, U, N, E, W, К, L, I)
1=0 •••?
С ВЫВОД НА ТЕРМИНАЛ ВРЕМЕННОГО СЛОЯ
WRITE (5,2) T1,(U(I),I= 1,100,10)
2 FORMAT (2Х, 'T=', F4.1,10Е13.6)
1 CONTINUE
END
С ВНЕШНЯЯ ПОДПРОГРАММА, ВЫЧИСЛЯЮЩАЯ
С ПРАВУЮ ЧАСТЬ ДИФФ. УРАВНЕНИЯ
SUBROUTINE PDEF(X, T, U, DU, F, Q)
REAL X,T,U,DU,F,Q
F= l.+U*U+SIN(T)*SIN(T)+X*X
Q=COS(DU)
RETURN
END
С ВНЕШНЯЯ ПОДПРОГРАММА, ВЫЧИСЛЯЮЩАЯ
С ФУНКЦИИ В КРАЕВЫХ УСЛОВИЯХ
SUBROUTINE BND Y (T, U, I, S, G, R)
REAL T,U,S,G,R INTEGER I IF (I.EQ.l) GO TO 1 S=SIN(T)
G=COS(T)
R=EXP(—U*U)
GO TO 2
1 S=l.+T G=EXP(—T)
R=SIN(T+U)
2 CONTINUE RETURN END
\
’ V
Глава 12 БИБЛИОТЕКА ФОРТРАН-ПРОГРАММ
В настоящей главе описывается библиотека, составленная из программ, входящих обычно в стандартные библиотеки для научно-технических расчетов. Отличием представленных программ является их полная независимость друг от друга. Описание выполнено для простейших вариантов применения программ. Вся библиотека имеет объем ~512К байт.
# 12.1. Каталог библиотеки
В каталоге приводится список разделов библиотеки. Слева от названия раздела дается обозначение его индекса.
АО. Вычисление элементарных функций А1. Вычисление специальных функций А2. Вычисление элементарных функций комплексного переменного АЗ. Аппроксимация функций А4. Интегрирование А5. Суммирование рядов А6. Фурье-анализ
А7. Численное дифференцирование А8. Операции с матрицами и векторами А9. Решение систем линейных алгебраических уравнений
ВО. Вычисление собственных значений и векторов
В1. Линейная оптимизация
В2. Решение линейных интегральных уравнений
ВЗ. Корни полиномов
В4. Корни нелинейных уравнений
В5. Нелинейная оптимизация
В6. Решение обыкновенных дифференциальных уравнений; задача Коши В7. Решение обыкновенных дифференциальных уравнений; краевая задача В8. Решение уравнений с частными производными
445
• 12.2. Содержание разделов
Библиотека состоит из 19 разделов. Каждый раздел содержит подпрограммы, которым присвоено имя, состоящее из индекса раздела и индекса программы в нем, например имя программы А1А2 означает: раздел А1, программа А2. Исключение составляют библиотечные функции фортрана, которые приводятся и с их обычными именами. Всюду, кроме некоторых программ раздела АО, вещественные значения берутся с одинарной точностью.
A0A0:ABS(X) AOAl:IABS(lU A0A2:DABS (X) АОАЗ: FLOAT (I)
*
A0A4:IFLX(X)' A0A5:SNGL (X)
A0A6:DBLE (X)
A0A7:AINT (X)
A0A8:INT (X) 4
A0A9:IDINT (X) AOBO:AMOD(X,Y) AOB1 :MOD (X, Y) AOB2:DMOD(X,Y)
A0B3:
A0B4:
A0B5:
A0B6:
A0B7:
A0B8:
A0B9:
AOCO:
A0C1:
A0C2:
446
АО. Вычисление элементарных функций
вещественное абсолютное значение | л: | целое абсолютное значение | i \ абсолютное значение с двойной точностью преобразование целой величины в вещественную
преобразование вещественной величины в целую
преобразование величины с двойной точностью в вещественную величину с одинарной точностью
преобразование вещественной величины с одинарной точностью в величину с двойной точностью
выделение целой части вещественной величины с представлением результата в вещественном виде
выделение целой части вещественной величины
выделение целой части величины с двойной точностью
вычисление вещественного остатка от деления вещественных чисел х/у вычисление целого остатка от деления целых чисел х/у
вычисление остатка с двойной точностью от деления чисел с двойной точностью х/у AMАХО (I, J,...) максимальное (минимальное) вещественное AMIN0(I,J,...) значение из списка целых чисел AM АХ (X, Y,...) максимальное (минимальное) вещественное AMIN(X,Y,...) значение из списка вещественных чисел MAX0(l,J,...) максимальное (минимальное) целое значение MIN0(l,J,...) из списка целых чисел MAX(X,Y,...) максимальное (минимальное) целое значение MIN(X,Y,...) из списка вещественных чисел DMAX(X,Y,...) максимальное (минимальное) значение с DMIN(X,Y,...) двойной точностью из списка чисел с двойной точностью
\
V.
A0C3:SIGN (X,Y,) A0C4:ISIGN (I,J) A0C5:DSING(X,Y)
A0C6:DIM (X,Y)
A0C7:IDIM(I,J) A0C8:EXP (X)
A0C9:DEXP (X)
AODO:ALOG(X)
A0D1 :ALOG 10 (X)
AOD2:DLOG(X)
A0D3:DLOG10(X)
A0D4:SQRT (X)
A0D5:DSQRT (X)
A0D6:SIN (X)
A0D7:DSIN (X)
AOD8:COS(X)
AOD9:DCOS (X)
AOEO:TANH(X)
A0E1:ATAN(X)
A0E2:DATAN (X)
вещественное присваивание знака (| x | sign v) целое присваивание знака (| /1 sign7) присваивание знака с двойной точностью (| ЛГI sign у)
вещественная положительная разность (x-min(x, >>))
целая положительная разность (/—min(/,y)) вещественное значение е* от вещественного аргумента
значение ех с двойной точностью от аргумента с двойной точностью вещественное значение 1пх от вещественного аргумента
вещественное значение lgx от вещественного аргумента