С (ВХОДНАЯ ВЕЛИЧИНА).
C МАКСИМАЛЬНОЕ КОЛИЧЕСТВО УРАВНЕНИЙ СИСТЕМЫ
C ПРИНЯТО В ПРОГРАММЕ РАВНОЕ 16, НО ЭТО ОГРАНИЧЕНИЕ
C СВЯЗАНА ТОЛЬКО С ПРИНЯТЫМИ В ПРОГРАММЕ
С РАЗМЕРНОСТЯМИ МАССИВОВ Y(0), Y0(0) И РАЗМЕРАМИ ТАБЛИЦ
C РЕЗУЛЬТАТОВ AAAA.REZ I AAAA.GRF
C INTWR - ИНТЕРВАЛ ПЕЧАТИ - КОЛИЧ. ШАГОВ ПО
С НЕЗАВИСИМОЙ ПЕРЕМЕННОЙ x,
C КОТОРЫЕ ПРОПУСК. ПРИ ВЫВОДЕ РЕЗУЛЬТАТА РЕШЕНИЯ НА
C ЭКРАН ИЛИ ПРИНТЕР (ВХОДН. ВЕЛИЧИНА).
С Напр., ПРИ X0=0, XKAN=0.1, H=0.0001 РЕШЕНИЯ
C СИСТЕМЫ УРАВН.БУДУТ ВЫСЧИТ.В
С (XKAN-XO)/H=(0.1-0.0)/0.0001=1000
C УЗЛАХ ОСИ ПЕРЕМ. x. НО ДЛЯ АНАЛИЗА ПЕРЕХ. ПРОЦЕССА
C ИССЛЕДОВАТЕЛЬ СЧИТАЕТ ДОСТАТ.СДЕЛАТЬ ВЫВОД
С РЕШЕНИЯ СИСТЕМЫ В 100 УЗЛАХ.ТОГДА INTWR=1000/100=10
C (БУДЕТ СДЕЛ. ВЫВОД РЕЗУЛЬТАТОВ РАСЧЕТА
C В КАЖДОМ ДЕСЯТОМ УЗЛЕ НЕЗАВИСИМОЙ ПЕРЕМЕННОЙ x);
C X - НЕЗАВИСИМАЯ ПЕРЕМЕННАЯ x (РАБОЧАЯ И ВЫХОДНАЯ
С ВЕЛИЧИНА)
C X0 - НАЧАЛЬН. ЗНАЧЕНИЕ НЕЗАВИС.ПЕРЕМ. x (ВХОДНАЯ
С ВЕЛИЧИНА);
C XKAN - КОНЕЧН.ЗНАЧ. НЕЗАВИС.ПЕРЕМЕННОЙ x
С (ВХОДНАЯ ВЕЛИЧИНА);
C H - ШАГ ИЗМЕНЕНИЯ НЕЗАВИСИМОЙ ПЕРЕМЕННОЙ x (ВХОД.
С ВЕЛИЧИНА);
C Y0(16) - МАССИВ НАЧАЛЬН.ЗНАЧ. ВЕКТОРА Y(x),
С КОМПОНЕНТАМИ КОТОРОГО ЯВЛЯЮТСЯ
C ЗАВИСИМЫЕ ПЕРЕМЕННЫЕ y(1), y(2),y(3)…(ВХОДНЫЕ
C ВЕЛИЧИНЫ);
C Y(16) - МАССИВ ТЕКУЩИХ ЗНАЧ. ВЕКТОРА Y(x), КОТОРЫЕ
С ВЫСЧИТ. В КОНЦЕ КАЖДОГО ШАГА МЕТОДОМ РУНГЕ-КУТТА
C (РАБОЧИЕ ПЕРЕМЕННЫЕ И ВЫХОДНЫЯ ВЕЛИЧИНЫ);
C Z1,Z2,Z3 - СИМВОЛЬНЫЕ ПЕРЕМ., КОТОРЫЕ ИСПОЛЬЗ. ДЛЯ
C СОХРАНЕНИЯ В ОПЕРАТ.ПАМЯТИ ИМЕН ВХОДН.И
C ВЫХОДН.ДАННЫХ (РАБОЧИЕ ПЕРЕМЕННЫЕ)
C NREZ - СЧЕТЧИК КОЛИЧ. ЗАПИСЕЙ, КОТОРЫЕ ВЫВОДЯТСЯ В
С ВЫХОДН. ФАЙЛЫ
C PRAV - ИМЯ ФАЙЛА, В КОТОРОМ НАХОД. ПОДПРОГР.
С ВЫЧИСЛЕНИЯ ПРАВЫХ ЧАСТЕЙ f(x,Y) СIСТЭМЫ
C ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ. ЭТО ИМЯ ВКЛЮЧЕНО В
C СПИСОК ФАКТ. ПАРАМЕТРОВ ОПЕРАТОРА CALL
C RNGKT4(...,PRAV) ЭТОЙ ПРОГРАММЫ. ПО ПРИЧИНЕ ТОГО, ЧТО В
С СПИСКЕ ФОРМАЛЬНЫХ ПАРАМЕТРОВ ОПЕРАТОРА
C SUBROUTINE RNGKT(...,FNC) ИДЕНТИФ.PRAV СООТВЕТСТВУЕТ
C ВТОРОЕ ИМЯ FNC, ТО ИМЯ PRAV ОПИСАНО В ОПЕРАТОРЕ
С EXTERNAL
DIMENSION Y(16),Y0(16)
EXTERNAL PRAV
CHARACTER Z1*8,Z2*8,Z3*8
C ЧТЕНИЕ ИМЕНИ ФАЙЛА ВХОДНЫХ ДАНЫХ С ЭКРАНА ДИСПЛЕЯ
WRITE(5,*)'DIFRK4: ВВЕДИТЕ ИМЯ ФАЙЛА ВХОДНЫХ',
*' ДАННЫХ В ВИДЕ AAAA.DAT'
READ 1,Z1
1 FORMAT(A8)
WRITE(5,*)'DIFRK4: ИМЯ ФАЙЛА ВХОДНЫХ ДАНЫХ ВВЕДЕНО'
C ОТКРЫТИЕ ФАЙЛА ВХОДНЫХ ДАННЫХ НА ДИСКЕ И ЧТЕНИЕ
C ВХОДНЫХ ДАННЫХ В ОПЕРАТИВНУЮ ПАМЯТЬ
OPEN(UNIT=1,FILE=Z1,STATUS='OLD')
READ(1,*)N,INTWR,X0,XKAN,H
READ(1,*)(Y0(I),I=1,N)
CLOSE(UNIT=1)
WRITE(5,*)'DIFRK4: ВХОДНЫЕ ДАНЫЯ ПРОЧИТАНЫ С ДИСКА'
C ОБРАЗОВАНИЕ ИМЕН ДВУХ ФАЙЛОВ РЕЗУЛЬТАТОВ В ВИДЕ
C AAAA.REZ I, AAAA.GRF, ГДЕ AAAA - ИМЯ ФАЙЛА ВХОДНЫХ ДАНЫХ. В ФАЙЛ AAAA.REZ
C ПРОГРАММА DIFRA ЗАСЫЛАЕТ ВХОДН. ДАННЫЕ И ТАБЛИЦУ
С ЗНАЧЕНИЙ ЗАВИСИМЫХ ПЕРЕМЕННЫХ,
C КОТОРЫЕ ОБЕСПЕЧ. "ШАПКАМИ". В ФАЙЛ AAAA.GRF ЗАСЫЛАC ЕТСЯ ТОЛЬКО ТАБЛИЦА Y(x) (ВЫХОДНАЯ ИНФОРМАЦИЯ В
С ТАКОМ ВИДЕ ЯВЛЯЕТСЯ УДОБНОЙ ДЛЯ ПРОГРАММ,
C КОТОРЫЕ СТРОЯТ РЕШЕНИЯ СИСТЕМЫ НА
C ЭКРАНЕ ДИСПЛЕЯ В ВИДЕ ГРАФИКОВ)
Z2(1:4)=Z1(1:4)
Z3(1:4)=Z1(1:4)
Z2(5:8)='.REZ'
Z3(5:8)='.GRF'
C ОТКРЫТИЕ ФАЙЛОВ РЕЗУЛЬТАТОВ НА ДИСКЕ
OPEN(UNIT=3,FILE=Z2,STATUS='NEW')
OPEN(UNIT=4,FILE=Z3,STATUS='NEW')
C ЗАПИСЬ ВХОДНЫХ ДАНЫХ В ВЫХОДНОЙ ФАЙЛ С ИМЕНЕМ
С AAAA.REZ
WRITE(3,*)'DIFRK4 - РЕШЕНИЕ СИСТЕМЫ ДИФЕР. УРАВНЕНИЙ
WRITE(3,*)'ВХОДНЫЕ ДАННЫЕ'
WRITE(3,*)N,INTWR,X0,XKAN,H
WRITE(3,*)(Y0(I),I=1,N)
C ПОДГОТОВКА К РЕАЛИЗАЦИИ АЛГОРИТМА РУНГЕ-КУТТА
X=X0
NREZ=0
C ПЕРЕСЫЛКА НАЧАЛЬН.ЗНАЧЕНИЙ Y0 ИНТЕГРИРУЕМЫХ
С ПЕРЕМЕННЫХ В МАССИВ Y
DO 3 I=1,N
3 Y(I)=Y0(I)
C ВЫДАЧА ЗАГАЛОВКА ТАБЛИЦЫ РЕЗУЛЬТ. В ВЫХ. ФАЙЛ С
С ИМЕНЕМ AAAA.REZ
WRITE(3,*)' РЕЗУЛЬТАТЫ РАСЧЕТА'
WRITE(3,*)' x y(1) y(2) y(3) y(4) y(5)',
*' y(6) y(7) y(8)' 252
IF(N.LE.8)GO TO 4
WRITE(3,*)' y(9) y(10) y(11) y(12) y(13)',
*' y(14) y(15) y(16)' 254
C НАЧАЛО ЦИКЛИЧЕСКОЙ ЧАСТИ РЕШЕНИЯ СИСТЭМЫ УРАВНЕН.
C НАДО ЛИ ЗАПИСЫВАТЬ ЗНАЧЕНИЯ ТЕКУЩЕГО ШАГА В
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.