Метады рашэння сістэм лінейных алгебраічных раўнанняў (Лабараторная работа № 2), страница 5

C I ЯНО ПАВIННА БЫЦЬ УВЕДЗЕНА КАРЫСТАЛЬНIКАМ З ЭКРАНА.

C ПАСЛЯ ЗАКАНЧЭННЯ РАЗЛIКУ ПРАГР. ЗАПIСВАЕ РЭЗУЛЬТАТЫ РАЗЛIКУ НА ДЫСК

C У ФАЙЛ З IМЕМ 'AAAA.REZ'.

C Z1,Z2 - СIМВАЛЬНЫЯ ПЕРАМЕННЫЯ (АДПАВЕДНА IМЕНЫ ФАЙЛАУ УВАХОДНЫХ

C I ВЫХОДНЫХ ДАДЗЕНЫХ)

C ДЛЯ РАШЭННЯ КОМПЛЕКСНАЙ СIСТЭМЫ ПАТРЭБНА ЗАПIСАЦЬ ПРАБЕЛ ЗАМЕСТ

C СIМВАЛА 'C' У ПЕРШАЙ ПАЗIЦЫI РАДКА 21 ГЭТАЙ ПРАГРАМЫ ПЕРАД АПЕРАТАРАМ

C 'COMPLEX A,B,B1' I НАНОВА ВЫКАНАЦЬ ТРАНСЛЯЦЫЮ ПРАГРАМЫ

CHARACTER Z1*8,Z2*8

C     COMPLEX A,B,B1,W

DIMENSION A(20,40),B(20),B1(20)

C ЧЫТАННЕ IМЯ ФАЙЛА УВАХОДНЫХ ДАДЗЕНЫХ З ЭКРАНА ДЫСПЛЕЯ

WRITE(5,350)

350 FORMAT(1X,'УВЯДЗIЦЕ IМЯ I ПАШЫР. ВАШАГА ФАЙЛА УВАХОДНЫХ ДАДЗЕН

*ЫХ У ВЫГЛЯДЗЕ:'/1X,'"AAAA.DAT"( ДЛЯ ГЭТАГА ЗАМЯНIЦЕ СIМВАЛЫ "AAAA"

* НА IМЯ)')

READ(5,351)Z1

351 FORMAT(A8)

C АДКРЫЦЦЕ ФАЙЛА УВАХОДНЫХ ДАДЗЕН., ЧЫТАННЕ УВАХОДН. ДАДЗЕН. З ДЫСКА

C У АПЕРАТЫУНАЕ ЗАПАМIНАЛЬНАЕ УСТРОЙСТВА I ЗАКРЫЦЦЕ ФАЙЛА

OPEN(UNIT=1,FILE=Z1,STATUS='OLD')

READ(1,*)M,((A(I,J),J=1,M),I=1,M),(B(I),I=1,M)

CLOSE(UNIT=1)

C АДКРЫЦЦЕ ФАЙЛА ДЛЯ ВЫХОДНЫХ ДАДЗЕНЫХ, ЗАПIС УВАХОДНЫХ ДАДЗЕНЫХ

C НА ДЫСК У ВЫХАДНЫ ФАЙЛ

Z2(1:4)=Z1(1:4)

Z2(5:8)='.REZ'

OPEN(UNIT=3,FILE=Z2,STATUS='NEW')

WRITE(3,360)M,((A(I,J),J=1,M),I=1,M)

360 FORMAT(10X,'В Ы Х А Д Н Ы   Ф А Й Л   П Р А Г Р А М Ы   ABAS'//

*10X,'УВАХОДНЫЯ ДАДЗЕНЫЯ:'/'Парадак сiстэмы: M=',I2/

*'Матрыца каэфiцыентау:'/(10F8.4))

WRITE(3,370)(B(I),I=1,M)

370 FORMAT('Матрыца правых частак:'/(10F8.4))

C ПАЧАТАК СХЕМЫ ЖАРДАНА

M1=M+1

M2=M+M

C УТВАРЭННЕ АДЗIНК. МАТРЫЦЫ У ПРАВЫМ КВАДР. БЛОКУ РАБОЧАГА МАСIВА A

DO 20 I=1,M

N=I+M

DO 20 J=M1,M2

A(I,J)=0.

IF(N.EQ.J) A(I,J)=1

20 CONTINUE

C РАЗЛIК ЭЛЕМЕНТАУ АДВАРОТН. МАТР. У ПРАВЫМ КВАДРАТНЫМ БЛОКУ РАБОЧАГА

C МАСIВА A(М,М2) ПА СХЕМЕ ЖАРДАНА

DO 60 I=1,M

N=I+1

DO 40 J=N,M2

40 A(I,J)=A(I,J)/A(I,I)

DO 30 K=1,M

IF(K.EQ.I) GO TO 30

DO 50 L=N,M2

50 A(K,L)=A(K,L)-A(I,L)*A(K,I)

30 CONTINUE

60 CONTINUE

C ПЕРАМНАЖ. АДВАРОТН. МАТР. НА МАТРЫЦУ ПРАВЫХ ЧАСТАК I ЗАПIС РАШЭННЯУ

C У МАСIУ B1(M)

DO 80 I=1,M

W=0.

DO 70 J=1,M

70 W=W+A(I,J+M)*B(J)

B1(I)=W

80 CONTINUE

C ЗАПIС РЭЗУЛЬТАТАУ РАЗЛIКУ У ВЫХАДНЫ ФАЙЛ I ЗАКРЫЦЦЕ ФАЙЛА

WRITE(3,352)(B1(I),I=1,M)

352 FORMAT(/10X,'РЭЗУЛЬТАТЫ РАЗЛIКУ:'/6(G13.6))

CLOSE(UNIT=3)

C ПАВЕДАМЛЕННЕ НА ЭКРАН ДЫСПЛЕЯ АБ ЗАКАНЧЭННI РАБОТЫ

WRITE(5,353) Z2

353 FORMAT(1X,'ПРАГРАМА ''ABAS'' РАБОТУ ЗАКОНЧЫЛА. РЭЗУЛЬТАТЫ РАЗЛIКУ

*ЗАПIСАНЫ НА ДЫСК У ФАЙЛ '/1X,A8)

STOP

END

Дадатак 2

C ФАЙЛ GAUS.FOR

C ПРАГРАМА 'GAUS' РАШЭННЯ СIСТЭМЫ ЛIНЕЙНЫХ АЛГЕБРАIЧНЫХ РАУНАННЯУ

C AX=B МЕТАДАМ ГАУСА. СТВОРАНА НА КАФЕДРЫ ЭЛЕКТРЫЧНЫХ СТАНЦЫЙ БДПА

C 1.10.94 г.

C М-ПАРАДАК СIСТЭМЫ. А-КВАДРАТНАЯ МАТРЫЦА КАЭФIЦЫЕНТАУ СIСТЭМЫ.

C (ВА УВАХОДНЫМ ФАЙЛЕ ПАВIННА БЫЦЬ РАЗМЕШЧАНА ПА РАДКАХ)

C В-МАТРЫЦА ПРАВЫХ ЧАСТАК. НА ВЫХАДЗЕ МАТРЫЦА ПРАВЫХ ЧАСТАК

C ЗАМЯНЯЕЦЦА МАТРЫЦАЙ РАШЭННЯ X СIСТЭМЫ AX=B.

C ПЕРАД ВЫКАНАННЕМ РАЗЛIКАУ ПА ПРАГРАМЕ 'GAUS' КАРЫСТАЛЬНIК СТВАРАЕ НА

C ДЫСКУ ФАЙЛ УВАХОДН. ДАДЗЕН. З IМЕМ У ВЫГЛ. 'AAAA.DAT', ДЗЕ ЗАМЕСТ СIМC ВАЛАУ 'AAAA' КАРЫСТ. ЗАПIСВАЕ ЧАТЫРЫ ЛIТАРЫ IМЯ СВАЙГО ФАЙЛА УВАХОДН.

C ДАДЗЕНЫХ. ПАСЛЯ ПУСКА ПРАГРАМЫ 'GAUS' ЯНА ЗАПЫТВАЕ З ЭКРАНА

C ГЭТАЕ IМЯ, I ЯНО ПАВIННА БЫЦЬ УВЕДЗЕНА КАРЫСТЛЬНIКАМ З ЭКРАНА ДЫСПЛЕЯ.

C ПАСЛЯ ЗАКАНЧ. РАЗЛIКУ ПРАГРАМА ЗАПIСВАЕ РЭЗУЛЬТАТЫ РАЗЛIКУ НА ДЫСК

C У ФАЙЛ З IМЕМ 'AAAA.REZ'.

C Z1,Z2 - СIМВАЛЬНЫЯ ПЕРАМЕННЫЯ (АДПАВЕДНА IМЕНЫ ФАЙЛАУ УВАХОДНЫХ

C I ВЫХОДНЫХ ДАДЗЕНЫХ)

C ДЛЯ РАШЭННЯ КОМПЛЕКСНАЙ СIСТЭМЫ ПАТРЭБНА ЗАПIСАЦЬ ПРАБЕЛ ЗАМЕСТ

C СIМВАЛА 'C' У ПЕРШАЙ ПАЗIЦЫI РАДКА 22 ГЭТАЙ ПРАГРАМЫ I 58 РАДКА ПАДПР.

C ПЕРАД АПЕРАТ. 'COMPLEX A,B' I НАНОВА ВЫКАНАЦЬ ТРАНСЛЯЦЫЮ ПРАГРАМЫ

CHARACTER Z1*8,Z2*8

C     COMPLEX A,B

DIMENSION A(20,20),B(20)

C ЧЫТАННЕ IМЯ ФАЙЛА УВАХОДНЫХ ДАДЗЕНЫХ З ЭКРАНА ДЫСПЛЕЯ

WRITE(5,350)

350 FORMAT(1X,' УВЯДЗIЦЕ IМЯ I ПАШЫР. ВАШАГА ФАЙЛА УВАХОДНЫХ ДАДЗЕН

*ЫХ У ВЫГЛЯДЗЕ:'/1X,'"AAAA.DAT"( ДЛЯ ГЭТАГА ЗАМЯНIЦЕ СIМВАЛЫ "AAAA"

* НА IМЯ)')

READ(5,351)Z1

351 FORMAT(A8)

C АДКРЫЦЦЕ ФАЙЛА УВАХОДН. ДАДЗЕН., ЧЫТАННЕ УВАХОДН. ДАДЗЕНЫХ З ДЫСКА

C У АПЕРАТЫУНАЕ ЗАПАМIНАЮЧАЕ УСТРОЙСТВА I ЗАКРЫЦЦЕ ФАЙЛА

OPEN(UNIT=1,FILE=Z1,STATUS='OLD')

READ(1,*)M,((A(I,J),J=1,M),I=1,M),(B(I),I=1,M)

CLOSE(UNIT=1)

Z2(1:4)=Z1(1:4)

Z2(5:8)='.REZ'

C АДКРЫЦЦЕ ФАЙЛА ДЛЯ ВЫХАДНЫХ ДАДЗЕНЫХ, ЗАПIС УВАХОДНЫХ ДАДЗЕНЫХ

C У ВЫХАДНЫ ФАЙЛ

OPEN(UNIT=3,FILE=Z2,STATUS='NEW')