Фортран.pptx
- Количество слайдов: 26
Итоговый отчет по лабораторным работам. Попова Елена ФЛА ГС-21
РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ МЕТОДОМ ПРОСТЫХ ИТЕРАЦИЙ Цель работы – привести исходную систему линейных алгебраических уравнений к виду, допускающему применение методов простых итераций. Составить, отладить и просчитать для полученных исходных данных программу на языке Фортран для решения системы методом простых итераций. Порядок работы: Ввели исходную матрицу; Рассчитали матрицу C(I, J); Рассчитали корни уравнения X(I); Сравнили текущее и предыдущее значения корней X(I); Вывели корни уравнения X(I).
Текст программы PROGRAM LR_1 DIMENSION A(4, 4), B(4), C(4, 4), D(4), X(4), Y(4) OPEN(10, FILE='LR 1. REZ') OPEN(20, FILE='LR 1. TXT') WRITE(10, 10) DO 1 I=1, 4 READ(20, *)(A(I, J), J=1, 4), B(I) 6 FORMAT(1 x, 'КОЛИЧЕСТВО ИТЕРАЦИЙ M='I 2/ *1 x, 'ПРИБЛИЖЕННОЕ РЕШЕНИЕ: '/' X(I)=', 4 F 10. 5) STOP END SUBROUTINE IZM(A, B, C, D, X, N) DIMENSION A(N, N), B(N), C(N, N), D(N), X(N) DO 2 I=1, N 1 CONTINUE 10 FORMAT('ИСХОДНЫЕ МАТРИЦА A(I, J) И ВЕКТОР B(I)') 1 C(I, J)=(-1. )*A(I, J)/A(I, I) 11 FORMAT(5 F 7. 1) C(I, I)=0 EPS=0. 0001 MM=20 CALL IZM(A, B, C, D, X, 4) M=0 DO 1 J=1, N D(I)=B(I)/A(I, I) 2 X(I)=D(I) RETURN 2 CALL UMN(C, X, D, Y, 4) IF(M. EQ. 0)WRITE(10, 12) 12 FORMAT('ТЕКУЩИЕ ЗНАЧЕНИЯ КОРНЕЙ УРАВНЕНИЯ X(I)') WRITE(10, 13)M, X PRINT 13, M, X END SUBROUTINE UMN(C, X, D, Y, N) DIMENSION C(N, N), D(N), X(N), Y(N) DO 2 I=1, N Y(I)=0 DO 1 J=1, N 1 Y(I)=Y(I)+C(I, J)*X(J) 13 FORMAT('M=', I 3, ', X=', 4 F 10. 5) 2 Y(I)=Y(I)+D(I) M=M+1 RETURN IF(M. LT. MM)GOTO 4 END PRINT 3 FUNCTION EMAX(Y, X, N) 3 FORMAT('МЕТОД РАСХОДИТСЯ') DIMENSION Y(N), X(N) STOP E=ABS(Y(1)-X(1)) 4 E=EMAX(Y, X, 4) DO 1 I=2, N DO 5 I=1, 4 E 1=ABS(Y(I)-X(I)) 5 X(I)=Y(I) IF(E. GT. EPS)GOTO 2 WRITE(10, 6)M, X IF(E. LT. E 1)E=E 1 1 EMAX=E CONTINUE RETURN END
ИСХОДНЫЕ МАТРИЦА A(I, J) И ВЕКТОР B(I) ТЕКУЩИЕ ЗНАЧЕНИЯ КОРНЕЙ УРАВНЕНИЯ X(I) M= 0, X= 2. 81818 0. 42857 -0. 12500 1. 00000 M= 1, X= 2. 71591 0. 20455 -0. 90584 0. 57744 M= 2, X= 2. 68334 0. 38189 -0. 70659 0. 60877 M= 3, X= 2. 69860 0. 33409 -0. 73644 0. 64856 M= 4, X= 2. 69227 0. 34612 -0. 74730 0. 63415 M= 5, X= 2. 69260 0. 34807 -0. 74261 0. 64011 M= 6, X= 2. 69248 0. 34753 -0. 74512 0. 64016 M= 7, X= 2. 69225 0. 34828 -0. 74506 0. 64028 M= 8, X= 2. 69224 0. 34831 -0. 74517 0. 64054 M= 9, X= 2. 69221 0. 34838 -0. 74527 0. 64056 КОЛИЧЕСТВО ИТЕРАЦИЙ M=10 ПРИБЛИЖЕННОЕ РЕШЕНИЕ: X(I)= 2. 69220 0. 34841 -0. 74528 0. 64060 Вывод: привели исходную систему линейных алгебраических уравнений к виду, допускающему применение методов простых итераций. Составили, отладили и просчитали для полученных исходных данных программу на языке Фортран для решения системы методом простых итераций. 3. 5 3 2. 5 2 X 1 1. 5 X 2 1 X 3 0. 5 X 4 0 -0. 5 -1 -1. 5 0 1 2 3 4 5 6 7 8 9
Решение систем линейных алгебраических уравнений методом Крамера Цель работы. Составить, отладить и просчитать для исходных данных программу на языке Фортран для решения системы линейных алгебраических уравнений методом Крамера Отыскание приближенного значения корня; Уточнение приближенного значения корня до некоторой заданной степени точности. Алгоритм метода локализации корня Ввод исходных данных задачи: значения элементов массивов А и В Решение СЛАУ методом Крамера Вывод результатов на печать
Текст программы Program LR_2 DIMENSION A(4, 4), B(4), X(4) OPEN (10, FILE='LR 2_1. REZ') OPEN (20, FILE='LR 2. ISD') WRITE (10, 10) AS(I, J)=A(I, J-N) AK(I, J, K)=A(I, J-N) AK(I, K+N, K)=B(I) ENDIF 1 CONTINUE DO 4 K=0, N DO 1 I=1, 4 READ (20, *) (A(I, J), J=1, 4), B(I) IF(K. EQ. 0) GOTO 3 WRITE (10, 11) (A(I, J), J=1, 4), B(I) DO 2 J=1, N PRINT 11, (A(I, J), J=1, 4), B(I) DO 2 I=1, N AS(I, J)=AK(I, J, K) 1 CONTINUE 10 FORMAT (' ***МЕТОД КРАМЕРА*** '/ 2 3 *'ИСХОДНАЯ МАТРИЦА A(I, J) И ВЕКТОР B(I)') CONTINUE FORMAT (5 F 7. 1) DDAS= CALL MKR 4(A, B, X, 4) 11 1 AS(1, 1)* WRITE (10, 7) X *(AS(2, 2)*(AS(3, 3)*AS(4, 4)-AS(4, 3)*AS(3, 4)) PRINT 7, X *-AS(2, 3)*(AS(3, 2)*AS(4, 4)-AS(4, 2)*AS(3, 4)) FORMAT(1 x, 'МЕТОД КРАМЕРА: '/' X(I)=', 4 F 10. 5) *+AS(2, 4)*(AS(3, 2)*AS(4, 3)-AS(4, 2)*AS(3, 3))) STOP 2 -AS(1, 2)* 7 END *(AS(2, 1)*(AS(3, 3)*AS(4, 4)-AS(4, 3)*AS(3, 4)) SUBROUTINE MKR 4(A, B, X, N) *-AS(2, 3)*(AS(3, 1)*AS(4, 4)-AS(4, 1)*AS(3, 4)) DIMENSION A(4, 4), B(4), X(4) *+AS(2, 4)*(AS(3, 1)*AS(4, 3)-AS(4, 1)*AS(3, 3))) DIMENSION AS(10, 20), AK(10, 20, 10) 3+AS(1, 3)* *(AS(2, 1)*(AS(3, 2)*AS(4, 4)-AS(4, 2)*AS(3, 4)) *-AS(2, 2)*(AS(3, 1)*AS(4, 4)-AS(4, 1)*AS(3, 4)) DIMENSION DD 4(10) NN=2*N DO 1 K=1, N *+AS(2, 4)*(AS(3, 1)*AS(4, 2)-AS(4, 1)*AS(3, 2))) DO 1 J=1, NN 4 -AS(1, 4)* DO 1 I=1, N *(AS(2, 1)*(AS(3, 2)*AS(4, 3)-AS(4, 2)*AS(3, 3)) IF(J. LE. N) THEN *-AS(2, 2)*(AS(3, 1)*AS(4, 3)-AS(4, 1)*AS(3, 3)) AS(I, J)=A(I, J) *+AS(2, 3)*(AS(3, 1)*AS(4, 2)-AS(4, 1)*AS(3, 2))) AK(I, J, K)=A(I, J) IF (K. EQ. 0. AND. DDAS. EQ. 0. ) PRINT 100 AK(I, K, K)=B(I) ELSE
Текст программы IF (K. EQ. 0. AND. DDAS. EQ. 0. ) WRITE (10, 100) 100 FORMAT('ПРИ РАСЧЕТЕ МЕТОДА КРАМЕРА ОБНАРУЖЕНО, ЧТО: '/ *'СИСТЕМА УРАВНЕНИЙ НЕСОВМЕСТНА-НЕ ИМЕЕТ РЕШЕНИЯ; '/ *'В СИСТЕМЕ ИМЕЮТСЯ ОДИНАКОВЫЕ УРАВНЕНИЯ, ПОЭТОМУ '/ *'!!! ЕЁ НАДО ПЕРЕОПРЕДЕЛИТЬ !!!') IF(K. EQ. 0. ) DDDD=DDAS C IF(K. EQ. 0) WRITE(10, 30) ((AS(I, J), J=1, 10), I=1, N) IF(K. GT. 0) DD 4(K)=DDAS C WRITE (10, 23) (DD 4(I), I=1, N), DDDD 4 CONTINUE XSUM=0 DO 5 K=1, N X(K)=DD 4(K)/DDDD XSUM=XSUM+X(K) 5 CONTINUE RETURN END
Результат значений и график Слау 1 1. 0 2. 0 3. 0 4. 0 5. 0 2. 0 1. 0 2. 0 3. 0 1. 0 3. 0 2. 0 1. 0 4. 0 3. 0 2. 0 1. 0 -5. 0 МЕТОД КРАМЕРА: X(I)=-2. 00000 -3. 00000 Слау 3 2. 0 1. 0 -5. 0 1. 0 8. 0 1. 0 -3. 0 0. 0 -6. 0 9. 0 0. 0 -4. 0 -1. 0 2. 0 -5. 0 4. 0 -2. 0 0. 0 МЕТОД КРАМЕРА: X(I)= -3. 86957 0. 84058 -3. 49275 -2. 56522 Слау 2 2. 0 1. 0 -5. 0 1. 0 8. 0 1. 0 -3. 0 0. 0 -6. 0 9. 0 0. 0 -4. 0 -1. 0 2. 0 -5. 0 4. 0 -2. 00. 0 МЕТОД КРАМЕРА: X(I)= -3. 86957 0. 84058 -3. 49275 -2. 56522 Вывод. Составлена, отлажена и просчитана для исходных данных программу на языке Фортран для решения системы линейных алгебраических уравнений методом Крамера 4 СЛАУ 1 СЛАУ 2 СЛАУ 3 2 0 x 1 x 2 x 3 x 4 -2 -4 -6 x 1 x 2 x 3 x 4 x 1 x 2 x 3 X(I)=
ИСПОЛЬЗОВАНИЕ СИМВОЛЬНЫХ ПЕРЕМЕННЫХ Цель работы. Составить, отладить и запустить для исходных данных программу на языке фортран для ввода и вывода символьных переменных с использованием оператора CHARACTER Порядок работы: Головная программа Подпрограмма ввода данных текущего студента Подпрограмма вывода на экран дисплея данных текущего студента Подпрограмма сохранения на винчестер набранного на компьютере списка группы студентов
Текст программы: PROGRAM LR_3 10 IF (IO. EQ. 1) READ 9, F(II) IF (IO. EQ. 2) READ 9, IM(II) IF (IO. EQ. 3) READ 9, O(II) PRINT 60, II READ 61, I 1 PRINT 7, IO, NAZV(IO) II=1 IF (IO. EQ. 0) GOTO 100 OPEN (3, FILE='LR 3_2. REZ') READ 4, IO OPEN (2, FILE='LR 3_1. REZ') COMMON/IS/IO, II, I 1 IF (IO. EQ. 4) READ 9, GR(II) IF (IO. EQ. 5) READ 9, V(II) IF(I 1. EQ. 0) GOTO 15 CALL VID 99 II=II+I 1 100 60 FORMAT (/ *'GELAETE VVESRI FIO? DA - 1, NET - 0. '/ *'IOI=', I 2, 'VVEDITE OTVET IO 1= '$) 3 61 15 END SUBROUTINE FID 01(NAZV, F, IM, O, GR, V) CHARACTER NAZV(30)*15 I'/ COMMON/IS/IO, II, I 1 PRINT 111, II I'/ CHARACTER F(30)*20, IM(30)*20, O(30)*20, GR(30)*10, V(30)*10 COMMON/IS/IO, II, I 1 CHARACTER F(30)*20, IM(30)*20, O(30)*20, GR(30)*10, V(30)*10 DATA NAZV(1)/'I FAMILIA FORMAT(A) RETURN CHARACTER NAZV(30)*15 FORMAT(1 H+, 14 X, 'I', I 3, 1 X, A, $) 9 SUBROUTINE VID FORMAT(I 2) 7 STOP 4 CONTINUE FORMAT(' VVEDITE NOMER ELEMENTA OT 1 DO 5'/ *' DLA ZAPOMINANIA ZNACHENIA NABERITE-0'$) FORMAT(I 2) GOTO 10 CONTINUE CALL FID 02(NAZV, F, IM, O, GR, V) CONTINUE DO 1 JJ=1, 5 DATA NAZV(2)/'I IMA DATA NAZV(3)/'I OTCHESTVO I'/ IF(JJ. EQ. 1) PRINT 100, JJ, NAZV(JJ), F(II) DATA NAZV(4)/'I GRUPPA IF(JJ. EQ. 2) PRINT 100, JJ, NAZV(JJ), IM(II) DATA NAZV(5)/'I VOZRAST IF(JJ. EQ. 3) PRINT 100, JJ, NAZV(JJ), O(II) IF(JJ. EQ. 4) PRINT 100, JJ, NAZV(JJ), GR(II) I'/ DO 99 I=1, 20 CALL FID 01(NAZV, F, IM, O, GR, V) PRINT 3 --------------------- IF(JJ. EQ. 5) PRINT 100, JJ, NAZV(JJ), V(II) 1 CONTINUE
Текст программы 1 RETURN CONTINUE PRINT 112 END 100 FORMAT(15 X, 'I', I 3, 1 X, A, A, ' I') SUBROUTINE FID 03(NAZV, F, IM, O, GR, V) 101 FORMAT(15 X, 'I', I 3, 1 X, A, F 7. 2, 13 X, ' I') CHARACTER NAZV(30)*15 111 FORMAT(/16 X, ' PROGRAMMA FIO -LR_3. FIO-N: ', I 3/ CHARACTER F(30)*20, IM(30)*20, O(30)*20, GR(30)*10, V(30)*10 *15 X, 42(1 H-)/ COMMON/IS/IO, II, I 1 *15 X, 'I N I', 'NAZVANIE I F I O I'/ IF(II. EQ. 1) WRITE(3, 111) II *15 X, 42(1 H-)) 112 RETURN WRITE(3, 100) II, F(II), IM(II), O(II), GR(II), V(II) 100 FORMAT(3 X, 'I', I 3, 'I', 5(A, ' I')) FORMAT(15 X, 42(1 H-)) 111 FORMAT(/16 X, ' PROGRAMMA FIO -LR_3. FIO-N: ', I 3/ END *1 X, 96(1 H-)/ SUBROUTINE FID 02(NAZV, F, IM, O, GR, V) *1 X, 'I N I', ' CHARACTER NAZV(30)*15 *' CHARACTER F(30)*20, IM(30)*20, O(30)*20, GR(30)*10, V(30)*10 *1 X, 96(1 H-)) COMMON/IS/IO, II, I 1 IF(IO. EQ. 0) WRITE(2, 111) II DO 1 JJ=1, 5 IF(JJ. EQ. 1) WRITE(2, 100) JJ, NAZV(JJ), F(II) IF(JJ. EQ. 2) WRITE(2, 100) JJ, NAZV(JJ), IM(II) IF(JJ. EQ. 3) WRITE(2, 100) JJ, NAZV(JJ), O(II) --------------------- IF(JJ. EQ. 4) WRITE(2, 100) JJ, NAZV(JJ), GR(II) I N INAZVANIE I F I O I IF(JJ. EQ. 5) WRITE(2, 100) JJ, NAZV(JJ), V(II) --------------------- CONTINUE I 1 I FAMILIA CALL FID 03(NAZV, F, IM, O, GR, V) I 2 I IMA IF(IO. EQ. 0) WRITE(2, 112) 1 112 FAMILIA OTCHESTVO I I IMA I', GRUPPA I FORMAT(1 X, 96(1 H-)) RETURN END Таблица результатов PROGRAMMA FIO -LR_3. FIO-N: 1 I KOZLOVA I VIKTORIYA I I I 3 I OTCHESTVO I SERGEEVNA 100 FORMAT(15 X, 'I', I 3, 1 X, A, A, ' I') I 4 I GRUPPA 111 FORMAT(/16 X, ' PROGRAMMA FIO -LR_3. FIO-N: ', I 3/ I GS-21 I 5 I VOZRAST *15 X, 42(1 H-)/ --------------------- *15 X, 'I N I', 'NAZVANIE I F I O I'/ *15 X, 42(1 H-)) 112 FORMAT(15 X, 42(1 H-)) I 19 I VOZRAST I'/ I PROGRAMMA FIO -LR_3. FIO-N: 2 I
Текст программы --------------------- I N INAZVANIE I F I O I --------------------- I 1 I FAMILIA I 2 I IMA I 3 I OTCHESTVO I VALEREVNA I 4 I GRUPPA I 5 I VOZRAST --------------------- I 18 I PROGRAMMA FIO -LR_3. FIO-N: 3 --------------------- I N INAZVANIE I F I O I --------------------- I 1 I FAMILIA I 2 I IMA I 3 I OTCHESTVO I ALEKSEEVNA I 4 I GRUPPA I 5 I VOZRAST --------------------- I DEMIDOVA I I NADEZHDA I GS-21 I 18 I I PROGRAMMA FIO -LR_3. FIO-N: 4 --------------------- I N INAZVANIE I F I O I --------------------- I 1 I FAMILIA I 2 I IMA I 3 I OTCHESTVO I VLADIMIROVNA I 4 I GRUPPA I 5 I VOZRAST I SOLOMKO I MARIA I GS-21 I 18 I I I 2 I IMA I 3 I OTCHESTVO I VECHESLAVOVNA I 4 I GRUPPA I I 1 I FAMILIA I GS-21 I --------------------- I I N INAZVANIE I F I O I I ELENA --------------------- I --------------------- PROGRAMMA FIO -LR_3. FIO-N: 5 I POPOVA I 5 I VOZRAST I 18 I I GRINOVICH I NADEZHDA I GS-21 I I
Результат: N FAMILIA IMA OTCHESTVO GRUPPA VOZRAST 1 I KOZLOVA VIKTORIYA SERGEEVNA GS-21 19 2 I POPOVA ELENA VALEREVNA GS-21 18 3 I DEMIDOVA NADEZHDA ALEKSEEVNA GS-21 18 4 I SOLOMKO MARIA VLADIMIROVNA GS-21 18 5 I GRINOVICH NADEZHDA VECHESLAVOVNA GS-21 18 Вывод. Составлена, отлажена и просчитана для исходных данных программу на языке Фортран для ввода и вывода символьных переменных с использованием оператора CHARACTER
ОПЕРАЦИИ ОБРАБОТКИ СИМВОЛЬНЫХ ПЕРЕМЕННЫХ (оператор READ, IF) Цель работы. Составить, отладить и запустить для исходных данных программу на языке фортран для ввода и вывода и сравнения символьных переменных с использованием оператора READ, IF Порядок работы: Головная программа -формирование файлов исходных данных и результатов сортировки -формирование общей части данных для всей программы -определяются имена и размеры символьных переменных -задается общий порядковый номер символьных переменных -запускаются подпрограммы Подпрограмма сортировки списка группы по конкретному элементу -определение имен и размеров символьных переменных -формирование цикла сортировки элементов -формирование цикла записи по фамилии
Текст программы PROGRAM LR_4 COMMON/IS/IO, II, I 1 CHARACTER FIO(30, 5)*20, FIO 1(30, 5)*20, FIO 2(30, 5)*20, FIO 3(30, 5)* *20, FIO 4(30, 5)*20, FIO 5(30, 5)*20 *'F-1, I-2, O-3, GR-4, V-5'/ *'MM=', I 2, ' VVEDITE NOVOE MM='$) COMMON/M/ MM GOTO 11 COMMON/FI/FIO, FIO 1, FIO 2, FIO 3, FIO 4, FIO 5 *'GELAETE IZMENITI PORIADOK FIO? NET -0. '/ 14 OPEN (11, FILE='LR_4_1. DAT') OPEN (12, FILE='LR_4_2. DAT') CONTINUE GOTO 10 15 CONTINUE STOP OPEN (13, FILE='LR_4_3. DAT') END OPEN (14, FILE='LR_4_4. DAT') SUBROUTINE VID 51 OPEN (15, FILE='LR_4_5. DAT') OPEN (5, FILE='LR 4. REZ') MM=1 COMMON/IS/IO, II, I 1 II=1 COMMON/FI/FIO, FIO 1, FIO 2, FIO 3, FIO 4, FIO 5 COMMON/M/ MM 10 PRINT 60, II READ 61, I 1 11 DO 10 I=1, 10 PRINT 70, MM READ 61, MM WRITE (5, 99) II IF(I 1. EQ. 0) GOTO 15 CHARACTER FIO(30, 5)*20, FIO 1(30, 5)*20, FIO 2(30, 5)*20, FIO 3(30, 5)* *20, FIO 4(30, 5)*20, FIO 5(30, 5)*20 READ(11, 11) (FIO(I, J), J=1, 5) WRITE (5, 100) I, (FIO(I, J), J=1, 5) IF(MM. EQ. 0) GOTO 14 10 II=II+I 1 11 IF(MM. EQ. 1) CALL VID 51 IF(MM. EQ. 2) CALL VID 52 IF(MM. EQ. 3) CALL VID 53 IF(MM. EQ. 4) CALL VID 54 DO 1 J=1, 5 IF(MM. EQ. 5) CALL VID 55 IF(L. EQ. 1) FIO 1(L, J)=FIO(1, J) 60 FORMAT (/ *'IOI=', I 2, 'VVEDITE OTVET IO 1= '$) II=11 DO 2 L=1, II-1 L 1=II-L IF(L. GE. 2) FIO 1(L, J)=FIO(L-1, J) *'GELAETE VVESRI FIO? DA - 1, NET - 0. '/ CONTINUE FORMAT (3 A 15, 2 A 10) 61 FORMAT(I 2) 70 FORMAT(/ 1 CONTINUE DO 2 I=2, II-1 IF(FIO 1(L, MM). GT. FIO(I, MM)) THEN
Текст программы DO 3 J=1, 5 COMMON/IS/IO, II, I 1 FIO 1(L, J)=FIO(I, J) COMMON/FI/FIO, FIO 1, FIO 2, FIO 3, FIO 4, FIO 5 FIO(I, J)='ZZZZZ' COMMON/M/ MM 3 ELSE DO 10 I=1, 10 READ(12, 11) (FIO(I, J), J=1, 5) ENDIF WRITE (5, 99) II CONTINUE 2 WRITE (5, 100) I, (FIO(I, J), J=1, 5) CONTINUE WRITE(5, 111) II 10 11 DO 6 K=1, II-1 WRITE(5, 100) K, (FIO 1(K, J), J=1, 5) II=11 6 CONTINUE 99 FORMAT(/16 X, 'PROGRAMMA FIO-LR_3. FIO-N: ', I 3/ DO 2 L=1, II-1 CONTINUE FORMAT (3 A 15, 2 A 10) L 1=II-L *1 X, 'ISXODNYI SPISOK GRUPPY '/ DO 1 J=1, 5 *1 X, 96(1 H-)/ IF(L. EQ. 1) FIO 2(L, J)=FIO(1, J) *1 X, 'N', 'I FAMILIA I IMA I', *' OTCHESTVO I GRUPPA I VOZRAST I'/ *1 X, 96(1 H-)) IF(L. GE. 2) FIO 2(L, J)=FIO(L-1, J) 1 CONTINUE DO 2 I=2, II-1 100 FORMAT(1 X, I 3, 2 X, 3 A 15, 2 A 10) IF(FIO 2(L, MM). GT. FIO(I, MM)) THEN 111 FORMAT(/16 X, ' PROGRAMMA FIO - LR_3. FIO - N: ', I 3/ DO 3 J=1, 5 FIO 2(L, J)=FIO(I, J) *1 X, 'SORTIPOVKA PO *******FAMILII*******'/ *1 X, 96(1 H-)/ *1 X, 'N', 'I FAMILIA I IMA I', *' OTCHESTVO I GRUPPA I VOZRAST I'/ *1 X, 96(1 H-)) 112 FORMAT(1 X, 96(1 H-)) RETURN FIO(I, J)='ZZZZZ' 3 ELSE ENDIF 2 SUBROUTINE VID 52 CHARACTER FIO(30, 5)*20, FIO 1(30, 5)*20, FIO 2(30, 5)*20, FIO 3(30, 5)* *20, FIO 4(30, 5)*20, FIO 5(30, 5)*20 CONTINUE WRITE(5, 111) II END CONTINUE DO 6 K=1, II-1 WRITE(5, 100) K, (FIO 2(K, J), J=1, 5) 6 CONTINUE 99 FORMAT(/16 X, 'PROGRAMMA FIO-LR_3. FIO-N: ', I 3/
Текст программы *1 X, 'ISXODNYI SPISOK GRUPPY '/ *1 X, 96(1 H-)/ *1 X, 'N', 'I FAMILIA I IMA I', *' OTCHESTVO I GRUPPA I VOZRAST I'/ *1 X, 96(1 H-)) IF(L. EQ. 1) FIO 3(L, J)=FIO(1, J) DO 1 J=1, 5 IF(L. GE. 2) FIO 3(L, J)=FIO(L-1, J) 1 CONTINUE DO 2 I=2, II-1 100 FORMAT(1 X, I 3, 2 X, 3 A 15, 2 A 10) IF(FIO 3(L, MM). GT. FIO(I, MM)) THEN 111 FORMAT(/16 X, ' PROGRAMMA FIO - LR_3. FIO - N: ', I 3/ DO 3 J=1, 5 FIO 3(L, J)=FIO(I, J) *1 X, 'SORTIPOVKA PO *******IMINI*******'/ *1 X, 96(1 H-)/ *1 X, 'N', 'I FAMILIA I IMA I', *' OTCHESTVO I GRUPPA I VOZRAST I'/ *1 X, 96(1 H-)) 112 FORMAT(1 X, 96(1 H-)) RETURN SUBROUTINE VID 53 CHARACTER FIO(30, 5)*20, FIO 1(30, 5)*20, FIO 2(30, 5)*20, FIO 3(30, 5)* *20, FIO 4(30, 5)*20, FIO 5(30, 5)*20 CONTINUE ELSE ENDIF 2 CONTINUE WRITE(5, 111) II END FIO(I, J)='ZZZZZ' 3 DO 6 K=1, II-1 WRITE(5, 100) K, (FIO 3(K, J), J=1, 5) 6 CONTINUE 99 FORMAT(/16 X, 'PROGRAMMA FIO-LR_3. FIO-N: ', I 3/ COMMON/IS/IO, II, I 1 *1 X, 'ISXODNYI SPISOK GRUPPY '/ COMMON/FI/FIO, FIO 1, FIO 2, FIO 3, FIO 4, FIO 5 *1 X, 96(1 H-)/ COMMON/M/ MM *1 X, 'N', 'I FAMILIA I IMA I', WRITE (5, 99) II *' OTCHESTVO I GRUPPA I VOZRAST I'/ *1 X, 96(1 H-)) DO 10 I=1, 10 READ(13, 11) (FIO(I, J), J=1, 5) 100 FORMAT(1 X, I 3, 2 X, 3 A 15, 2 A 10) WRITE (5, 100) I, (FIO(I, J), J=1, 5) 111 FORMAT(/16 X, ' PROGRAMMA FIO - LR_3. FIO - N: ', I 3/ 10 11 FORMAT (3 A 15, 2 A 10) II=11 *1 X, 'SORTIPOVKA PO *******OTCHESTVU*******'/ *1 X, 96(1 H-)/ CONTINUE *1 X, 'N', 'I FAMILIA I IMA I', DO 2 L=1, II-1 *' OTCHESTVO I GRUPPA I VOZRAST I'/ L 1=II-L *1 X, 96(1 H-))
Текст программы 112 FORMAT(1 X, 96(1 H-)) RETURN SUBROUTINE VID 54 CHARACTER FIO(30, 5)*20, FIO 1(30, 5)*20, FIO 2(30, 5)*20, FIO 3(30, 5)* *20, FIO 4(30, 5)*20, FIO 5(30, 5)*20 2 CONTINUE WRITE(5, 111) II END DO 6 K=1, II-1 WRITE(5, 100) K, (FIO 4(K, J), J=1, 5) 6 CONTINUE 99 FORMAT(/16 X, 'PROGRAMMA FIO-LR_3. FIO-N: ', I 3/ COMMON/IS/IO, II, I 1 *1 X, 'ISXODNYI SPISOK GRUPPY '/ COMMON/FI/FIO, FIO 1, FIO 2, FIO 3, FIO 4, FIO 5 *1 X, 96(1 H-)/ COMMON/M/ MM *1 X, 'N', 'I FAMILIA I IMA I', WRITE (5, 99) II *' OTCHESTVO I GRUPPA I VOZRAST I'/ *1 X, 96(1 H-)) DO 10 I=1, 10 READ(14, 11) (FIO(I, J), J=1, 5) 100 FORMAT(1 X, I 3, 2 X, 3 A 15, 2 A 10) WRITE (5, 100) I, (FIO(I, J), J=1, 5) 111 FORMAT(/16 X, ' PROGRAMMA FIO - LR_3. FIO - N: ', I 3/ 10 11 FORMAT (3 A 15, 2 A 10) II=11 *1 X, 'SORTIPOVKA PO *******GRUPPE*******'/ *1 X, 96(1 H-)/ CONTINUE *1 X, 'N', 'I FAMILIA I IMA I', *' OTCHESTVO I GRUPPA I VOZRAST I'/ DO 2 L=1, II-1 L 1=II-L DO 1 J=1, 5 IF(L. EQ. 1) FIO 4(L, J)=FIO(1, J) IF(L. GE. 2) FIO 4(L, J)=FIO(L-1, J) 1 CONTINUE DO 2 I=2, II-1 *1 X, 96(1 H-)) 112 FORMAT(1 X, 96(1 H-)) RETURN END SUBROUTINE VID 55 CHARACTER FIO(30, 5)*20, FIO 1(30, 5)*20, FIO 2(30, 5)*20, FIO 3(30, 5)* *20, FIO 4(30, 5)*20, FIO 5(30, 5)*20 IF(FIO 4(L, MM). GT. FIO(I, MM)) THEN DO 3 J=1, 5 COMMON/IS/IO, II, I 1 FIO 4(L, J)=FIO(I, J) COMMON/FI/FIO, FIO 1, FIO 2, FIO 3, FIO 4, FIO 5 FIO(I, J)='ZZZZZ' COMMON/M/ MM 3 WRITE (5, 99) II CONTINUE ELSE DO 10 I=1, 10 READ(15, 11) (FIO(I, J), J=1, 5) ENDIF
Текст программы WRITE (5, 100) I, (FIO(I, J), J=1, 5) 100 FORMAT(1 X, I 3, 2 X, 3 A 15, 2 A 10) 10 111 FORMAT(/16 X, ' PROGRAMMA FIO - LR_3. FIO - N: ', I 3/ 11 FORMAT (3 A 15, 2 A 10) CONTINUE *1 X, 'SORTIPOVKA PO *******VOZRASTU*******'/ *1 X, 96(1 H-)/ DO 2 L=1, II-1 *1 X, 'N', 'I FAMILIA I IMA I', L 1=II-L *' OTCHESTVO I GRUPPA I VOZRAST I'/ II=11 DO 1 J=1, 5 IF(L. EQ. 1) FIO 5(L, J)=FIO(1, J) IF(L. GE. 2) FIO 5(L, J)=FIO(L-1, J) 1 CONTINUE DO 2 I=2, II-1 IF(FIO 5(L, MM). GT. FIO(I, MM)) THEN DO 3 J=1, 5 FIO 5(L, J)=FIO(I, J)='ZZZZZ' 3 CONTINUE ELSE ENDIF 2 CONTINUE WRITE(5, 111) II DO 6 K=1, II-1 WRITE(5, 100) K, (FIO 5(K, J), J=1, 5) 6 99 CONTINUE FORMAT(/16 X, 'PROGRAMMA FIO-LR_3. FIO-N: ', I 3/ *1 X, 'ISXODNYI SPISOK GRUPPY '/ *1 X, 96(1 H-)/ *1 X, 'N', 'I FAMILIA I IMA I', *' OTCHESTVO I GRUPPA I VOZRAST I'/ *1 X, 96(1 H-)) 112 FORMAT(1 X, 96(1 H-)) RETURN END
Результаты: PROGRAMMA FIO-LR_3. FIO-N: 2 PROGRAMMA FIO-LR_3. FIO-N: 12 ISXODNYI SPISOK GRUPPY ------------------------------------------------------------------------------------------------ NI FAMILIA I IMA I OTCHESTVO I GRUPPA I VOZRAST I ------------------------------------------------------------------------------------------------ 1 KOZLOVA 2 POPOVA 3 DEMIDOVA NADEZHDA 4 SOLOMKO MARIA 5 GRINOVICH NADEZHDA 6 KOZLOVA VIKTORIYA 7 POPOVA 8 DEMIDOVA NADEZHDA 9 SOLOMKO MARIA 10 GRINOVICH VIKTORIYA ELENA SERGEEVNA VALEREVNA GS-21 ALEKSEEVNA VECHESLAVOVNA GS-21 SERGEEVNA VALEREVNA GS-21 ALEKSEEVNA VLADIMIROVNA GS-21 NADEZHDA 18 18 VECHESLAVOVNA GS-21 18 5 GRINOVICH NADEZHDA 6 KOZLOVA VIKTORIYA 7 POPOVA 8 DEMIDOVA NADEZHDA 9 SOLOMKO MARIA 10 GRINOVICH PROGRAMMA FIO - LR_3. FIO - N: 11 18 GS-21 MARIA 18 19 NADEZHDA 4 SOLOMKO 18 18 3 DEMIDOVA GS-21 VLADIMIROVNA GS-21 2 POPOVA 18 1 KOZLOVA 19 VIKTORIYA ELENA SERGEEVNA VALEREVNA GS-21 ALEKSEEVNA 19 18 GS-21 VLADIMIROVNA GS-21 18 18 VECHESLAVOVNA GS-21 SERGEEVNA VALEREVNA GS-21 ALEKSEEVNA 18 GS-21 VLADIMIROVNA GS-21 NADEZHDA 18 19 18 18 VECHESLAVOVNA GS-21 18 PROGRAMMA FIO - LR_3. FIO - N: 11 SORTIPOVKA PO *******FAMILII******* SORTIPOVKA PO *******IMINI******* ------------------------------------------------------------------------------------------------ NI FAMILIA I IMA I OTCHESTVO I GRUPPA I VOZRAST I ------------------------------------------------------------------------------------------------ 1 DEMIDOVA NADEZHDA ALEKSEEVNA GS-21 18 1 POPOVA ELENA VALEREVNA GS-21 18 2 DEMIDOVA NADEZHDA ALEKSEEVNA GS-21 18 2 POPOVA ELENA VALEREVNA GS-21 18 3 GRINOVICH NADEZHDA VECHESLAVOVNA GS-21 3 SOLOMKO MARIA 4 POPOVA ELENA VALEREVNA GS-21 18 4 DEMIDOVA NADEZHDA ALEKSEEVNA 5 POPOVA ELENA VALEREVNA GS-21 18 5 GRINOVICH NADEZHDA VECHESLAVOVNA GS-21 6 SOLOMKO MARIA VLADIMIROVNA GS-21 18 7 SOLOMKO MARIA VLADIMIROVNA GS-21 18 VLADIMIROVNA GS-21 18 18 18
Результаты: PROGRAMMA FIO-LR_3. FIO-N: 12 ISXODNYI SPISOK GRUPPY ------------------------------------------------------------------------------------------------ NI FAMILIA I IMA I OTCHESTVO I GRUPPA I VOZRAST I ------------------------------------------------------------------------------------------------ 1 KOZLOVA 2 POPOVA 3 DEMIDOVA NADEZHDA 4 SOLOMKO MARIA 5 GRINOVICH NADEZHDA 6 KOZLOVA VIKTORIYA 7 POPOVA 8 DEMIDOVA NADEZHDA 9 SOLOMKO MARIA 10 GRINOVICH VIKTORIYA ELENA SERGEEVNA VALEREVNA GS-21 ALEKSEEVNA VECHESLAVOVNA GS-21 SERGEEVNA VALEREVNA GS-21 ALEKSEEVNA VLADIMIROVNA GS-21 NADEZHDA 18 18 VECHESLAVOVNA GS-21 18 5 GRINOVICH NADEZHDA 6 KOZLOVA VIKTORIYA 7 POPOVA 8 DEMIDOVA NADEZHDA 9 SOLOMKO MARIA 10 GRINOVICH PROGRAMMA FIO - LR_3. FIO - N: 11 18 GS-21 MARIA 18 19 NADEZHDA 4 SOLOMKO 18 18 3 DEMIDOVA GS-21 VLADIMIROVNA GS-21 2 POPOVA 18 1 KOZLOVA 19 VIKTORIYA ELENA SERGEEVNA VALEREVNA GS-21 ALEKSEEVNA 19 18 GS-21 VLADIMIROVNA GS-21 18 18 VECHESLAVOVNA GS-21 SERGEEVNA VALEREVNA GS-21 ALEKSEEVNA 18 GS-21 VLADIMIROVNA GS-21 NADEZHDA 18 19 18 18 VECHESLAVOVNA GS-21 18 PROGRAMMA FIO - LR_3. FIO - N: 11 SORTIPOVKA PO *******OTCHESTVU******* SORTIPOVKA PO *******GRUPPE******* ------------------------------------------------------------------------------------------------ NI FAMILIA I IMA I OTCHESTVO I GRUPPA I VOZRAST I ------------------------------------------------------------------------------------------------ 1 DEMIDOVA NADEZHDA ALEKSEEVNA GS-21 18 1 KOZLOVA VIKTORIYA SERGEEVNA GS-21 19 2 DEMIDOVA NADEZHDA ALEKSEEVNA GS-21 18 2 KOZLOVA VIKTORIYA SERGEEVNA GS-21 19 3 KOZLOVA VIKTORIYA 3 POPOVA 4 POPOVA ELENA VALEREVNA GS-21 18 4 DEMIDOVA NADEZHDA 5 POPOVA ELENA VALEREVNA GS-21 18 5 SOLOMKO MARIA 6 GRINOVICH NADEZHDA 7 SOLOMKO MARIA 7 KOZLOVA VIKTORIYA 8 POPOVA 9 DEMIDOVA NADEZHDA 10 SOLOMKO MARIA SERGEEVNA GS-21 19 VECHESLAVOVNA GS-21 VLADIMIROVNA GS-21 18 18 ELENA VALEREVNA GS-21 ALEKSEEVNA 18 GS-21 VLADIMIROVNA GS-21 18 18 VECHESLAVOVNA GS-21 SERGEEVNA VALEREVNA GS-21 ALEKSEEVNA 19 18 GS-21 VLADIMIROVNA GS-21 18 18 18
Результаты: PROGRAMMA FIO - LR_3. FIO - N: 11 SORTIPOVKA PO *******VOZRASTU******* ------------------------------------------------ NI FAMILIA I IMA I OTCHESTVO I GRUPPA I VOZRAST I ------------------------------------------------ 1 POPOVA 2 DEMIDOVA NADEZHDA 3 SOLOMKO MARIA 4 GRINOVICH NADEZHDA 5 POPOVA 6 DEMIDOVA NADEZHDA 7 SOLOMKO MARIA 8 GRINOVICH NADEZHDA ELENA VALEREVNA GS-21 ALEKSEEVNA 18 GS-21 VLADIMIROVNA GS-21 18 18 VECHESLAVOVNA GS-21 VALEREVNA GS-21 ALEKSEEVNA 18 18 GS-21 VLADIMIROVNA GS-21 18 18 VECHESLAVOVNA GS-21 18 Вывод. Составлена, отлажена и просчитана для исходных данных программу на языке фортран для ввода и вывода и сравнения символьных переменных с использованием оператора READ, IF
ПРИБЛИЖЕННЫЕ МЕТОДЫ РЕШЕНИЯ НЕЛИНЕЙНЫХ УРАВНЕНИЙ Цель работы. Составить, отладить и посчитать для исходных данных программу на языке ФОРТРАН для решения нелинейного уравнения и уточнения корней при помощи метода хорд. Порядок работы: Головная программа -производится формирование файлов результатов (оператор open) - производится формирование файлов результатов (оператор DO) -производится расчет корней уравнения -производится вывод результатов расчета Подпрограмма уточнения корней уравнения (программа FMX) -задание границ интервала -нахождение корней уравнений -печать корней уравнений -создание блока операторов формата 3. подпрограмма функция
Текст программы: PROGRAM LR_5 GOTO 2 EXTERNAL U 1 1 OPEN (10, FILE='LR 5. REZ') 2 WRITE(10, 12) XN=(-1. 57) XK=1. 0 N=20 DX=(XK-XN)/N DO 1 I=1, N X 2=X 3 X=XN+(I-1)*DX N=N+1 Y=U 1(X) PRINT 13, X, Y WRITE(10, 13) X, Y 1 CONTINUE PRINT 40, N, X 1, Y 1, X 2, Y 2 WRITE(10, 40) N, X 1, Y 1, X 2, Y 2 5 GOTO 1 3 CONTINUE XK=0. 5*(X 1+X 2) PRINT 41, N-1, XK, Y 2 CALL FMX(U 1, XN, XK, EPS) X 3=X 1 -Y 1*(X 1 -X 2)/(Y 1 -Y 2) X 1=X 2 Y 1=F(X 1) Y 1=F(X 2) EPS=0. 000001 IF(ABS(X 1 -X 2). LT. EPS) GOTO 3 WRITE(10, 41) N-1, XK, Y 2 40 41 FORMAT(3 X, I 4, 4 F 10. 5) FORMAT(3 X, 'КОРЕНЬ УРАВНЕНИЯ ПРИ ШАГЕ N=', I 3, ': '/ 12 FORMAT('ПРОГРАММА РАСЧЕТА КОРНЕЙ УРАВНЕНИЯ'/ *1 X, ' ШАГ 1. ПОСТРОЕНИЕ ГРАФИКА ФУНКЦИИ'/ *1 X, ' X Y') RETURN 13 END FUNCTION U 1(X) FORMAT(3 X, F 7. 3, F 11. 5) STOP *' X=', F 11. 6/' Y=', F 11. 6) END U 1=(X**2)+4*SIN(X) SUBROUTINE FMX(F, XN, XK, EPS) RETURN X 1=XN END X 2=XK N=1 WRITE(10, 12) 12 FORMAT('ПОДПРОГРАММА МЕТОДА СЕКУЩЕЙ'/ *1 X, 'ШАГ 2. РАСЧЕТ КОРНЕЙ УРАВНЕНИЯ'/ *' N X 1 Y 1 X 2 Y 2')
Расчеты: ПРОГРАММА РАСЧЕТА КОРНЕЙ УРАВНЕНИЙ ШАГ 1. ПОСТРОЕНИЕ ГРАФИКА ФУНКЦИЙ X Y -1. 570 15. 54657 -1. 442 14. 80348 -1. 313 13. 96572 -1. 185 12. 99793 -1. 056 11. 89803 -0. 928 10. 68525 -0. 799 9. 38896 -0. 671 8. 04021 -0. 542 6. 66672 -0. 414 5. 29057 -0. 285 3. 92784 -0. 157 2. 58919 -0. 028 1. 28078 0. 100 0. 00505 0. 229 -1. 23896 0. 357 -2. 45570 0. 486 -3. 65376 0. 614 -4. 84675 0. 743 -6. 05411 0. 871 -7. 30126 ПРОГРАММА МЕТОДА СЕКУЩЕЙ ШАГ 2. РАСЧЕТ КОРНЕЙ УРАВНЕНИЙ N X 1 Y 1 X 2 Y 2 1 -1, 57 -0, 82 1, 5 0, 25251 0, 77722 -0, 17408 3 0, 77722 -0, 17408 1, 07217 -0, 05607 4 1, 07217 -0, 05607 1, 21231 0, 02588 5 1, 21231 0, 02588 1, 16805 -0, 00194 6 1, 16805 -0, 00194 1, 17113 -0, 00006 7 1, 17113 -0, 00006 1, 17123 0 КОРЕНЬ УРАВНЕНИЯ ПРИ ШАГЕ N= 4 : X= 0. 101016 Y= -0. 000007 Y 0. 2 0 -0. 2 -0. 4 -0. 6 -0. 8 -1 -1. 57 -1. 417 -1. 263 -1. 11 -0. 956 -0. 803 -0. 649 -0. 496 -0. 342 -0. 189 -0. 035 0. 119 0. 272 0. 426 0. 579 0. 733 0. 886 1. 039 1. 193 1. 347 Y
Вывод: Мы составили, отладили и просчитали для исходных данных программу на языке Фортран для решения нелинейного уравнения и уточнения корней при помощи метода хорд, построили график и оформили отчёт.
Фортран.pptx