C УЗЛАХ ОСИ ПЕРЕМЕННОЙ x. НО ДЛЯ АНАЛИЗА
C ПЕРЕХОДНАГА ПРОЦЕССА ПОЛЬЗОВАТЕЛЬ СЧИТАЕТ
С ДОСТАТОЧНЫМ СДЕЛАТЬ ВЫВОД РЕШЕНИЯ
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 Y(16) - МАССИВ ТЕКУЩИХ ЗНАЧЭНИЙ ВЕКТОРА Y(x), КОТОРЫЕ
С ВЫСЧИТЫВАЮТСЯ В КОНЦЕ КАЖДОГО ШАГА
C МЕТОДОМ РУНГЕ-КУТТА (РАБ. И ВЫХ.ВЕЛИЧИНЫ);
C Z1,Z2,Z3 - СИМВОЛЬНЫЕ ПЕРЕМЕННЫЕ, КОТОРЫЕ ИСПОЛЬЗ. ДЛЯ
С СОХРАНЕНИЯ В ОПЕРАТИВНОЙ ПАМЯТИ
C ИМЕН ФАЙЛОВ ВХОДН. И ВЫХОДНЫХ ДАНЫХ
C (РАБОЧИЕ ПЕРЕМЕННЫЕ)
C NREZ - СЧЕТЧИК КОЛИЧ.ЗАПИСЕЙ, КОТОРЫЕ ВЫВОДЯТСЯ В
С ВЫХОДНЫЕ ФАЙЛЫ
C PRAV - ИМЯ ФАЙЛА, В КОТОРОМ НАХОД. ПОДПРОГР.
С ВЫЧИСЛЕНИЯ ПРАВЫХ ЧАСТЕЙ
C f(x,Y) СИСТЕМЫ ДИФФЕРЭНЦ. УРАВНЕНИЙ ЭТО ИМЯ
С ВКЛЮЧЕНО В СПИСОК ФАКТИЧ. ПАРАМ. ОПЕРАТОРА
C CALL RNGKT4(...,PRAV) ЭТОЙ ПРОГРАММЫ. ПО ПРИЧИНЕ
C ТОГО, ЧТО В СПИСКЕ ФОРМАЛЬН.ПАРАМЕТРОВ
C ОПЕРАТОРА SUBROUTINE RNGKT(...,FNC) ИДЕНТ. PRAV,
С СООТВЕТСТВУЕТ ВТОРОЕ ИМЯ FNC,
C ТО ИМЯ PRAV ОПИСАНО В ОПЕРАТОРЕ EXTERNAL
DIMENSION Y(20),Y0(20)
EXTERNAL PRAV
CHARACTER Z1*8,Z2*8,Z3*8
C ЧТЕНИЕ ИМЕНИ ФАЙЛА ВХОДНЫХ ДАНЫХ С ЭКРАНА
С ДИСПЛЕЯ
WRITE(5,*)'DIFRK2: ВВЕДИТЕ ИМЯ ФАЙЛА ВХОДНЫХ ДАННЫХ',
*' В ВИДЕ AAAA.DAT'
READ 1,Z1
1 FORMAT(A8)
WRITE(5,*)'DIFRK2: ИМЯ ФАЙЛА ВХОДНЫХ ДАННЫХ ВВЕДЕНО'
C ОТКРЫТИЕ ФАЙЛА ВXОДНЫХ ДАННЫХ НА ДИСКЕ И ЧТЕНИЕ
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,*)'DIFRK2: ВХОДНЫЕ ДАННЫЕ ПРОЧИТАНЫ С ДИСКА'
C ОБРАЗОВАНИЕ ИМЕНИ ДВУХ ФАЙЛОВ РЕЗУЛЬТАТОВ В ВИДЕ
C AAAA.REZ I, AAAA.GRF, ГДЕ AAAA - ИМЯ ФАЙЛА ВХОДН.
С ДАННЫХ В ФАЙЛ AAAA.REZ
C ПРОГРАММА DIFRK2 ЗАСЫЛАЕТ ВХОДН. ДАННЫЕ И
С РЕЗУЛЬТАТЫ РЕШЕНИЙ СИТЕМЫ, КОТОРЫЕ ОБЕСПЕЧИВАЮТСЯ
C "ШАПКАМИ". В ФАЙЛ AAAA.GRF ЗАСЫЛАЕТСЯ ТОЛЬКО
C ТАБЛИЦА Y(N) (ВЫХОДНАЯ IНФОРМАЦИЯ В ТАКОМ ВИДЕ
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,*)'DIFRK2 - РЕШЕНИЕ СИСТЭМЫ ДИФЕРЕНЦИАЛЬНЫХ',
*' УРАВНЕНИЙ МЕТОДОМ ЭЙЛЕРА'
WRITE(3,110)N,INTWR,X0,XKAN,H
110 FORMAT(1X,'ВХОДНЫЕ ДАННЫЕ'/1X,' N INTWR X0',
*' XKAN H'/1X,2I10,3F10.5)
WRITE(3,111)(Y0(I),I=1,N)
111 FORMAT(1X,' Y0(N)'/(8G10.5))
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 НАДО ЛИ ЗАПИСЫВАТЬ РЕШЕНИЯ ТЕКУЩЕГО ШАГА В
C ВЫХОДНЫЕ ФАЙЛЫ AAAA.REZ I AAAA.GRF?
4 IF(X-H*REAL(NREZ*INTWR).LT.0.)GO TO 6
C УВЕЛИЧЕНИЕ СЧЕТЧИКА ЗАПИСИ НА ЕДИНИЦУ
NREZ=NREZ+1
C ЗАПИСЬ РЕШЕН. ДЛЯ ВЫБР.УЗЛА В ВЫХОДНОЙ ФАЙЛ
С AAAA.REZ
WRITE(3,103)X,(Y(I),I=1,N)
C ЗАПИСЬ РЕШЕН.ДЛЯ ВЫБР. УЗЛА В ВЫХОДНОЙ ФАЙЛ
С AAAA.GRF
WRITE(4,103)X,(Y(I),I=1,N)
103 FORMAT(10F8.4)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.