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

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

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

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

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

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

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

CALL GAUSS(M,A,B)

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

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

CLOSE(UNIT=3)

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

WRITE(5,353) Z2

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

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

STOP

END

C ПАДПРАГРАМА РАШЭННЯ СIСТЭМЫ ЛIНЕЙНЫХ АЛГЕБРАIЧНЫХ РАУНАННЯУ AX=B

C МЕТАДАМ ГАУСА

SUBROUTINE GAUSS(M,A,B)

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

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

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

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

C     COMPLEX A,B,W

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

C ПАЧАТАК МЕТАДА ГАУСА

M1=M-1

C   ПАЧАТАК ПРАМОГА ХОДУ

C       ВЫБАР i-ТАГА РАУНАННЯ СIСТЭМЫ, УТРЫМЛIВАЮЧАГА ВЯДУЧЫ ЭЛЕМЕНТ

DO 4 I=1,M1

W=A(I,I)

C       ДЗЯЛЕННЕ i-ТАГА РАУНАННЯ НА ВЯДУЧЫ ЭЛЕМЕНТ

DO 1 J=I,M

1 A(I,J)=A(I,J)/W

B(I)=B(I)/W

M2=I+1

C       ВЫБАР k-АГА РАУНАННЯ, З ЯКОГА ВЫКЛЮЧАЕЦЦА НЕВЯД. ПЕРАМЕННАЯ Х(i)

DO 3 K=M2,M

C       ВЫБАР l-АГА СЛУПКА У k-ТЫМ РАУНАННI ДЛЯ АДЫМАННЯ i-АГА РАУН. АД k-АГА

DO 2 L=M2,M

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

3 B(K)=B(K)-B(I)*A(K,I)

4 CONTINUE

B(M)=B(M)/A(M,M)

C   КАНЕЦ ПРАМОГА ХОДУ. ПАЧАТАК ЗВАРОТНАГА ХОДУ

DO 5 I=1,M1

K=M-I

DO 5 J=K,M1

5 B(K)=B(K)-A(K,J+1)*B(J+1)

C КАНЕЦ ЗВАРОТНАГА ХОДУ I МЕТАДА ГАУСА

RETURN

END

Дадатак 3

C ФАЙЛ JORD.FOR

C ПРАГРАМА 'JORD' ПРЫЗН. ДЛЯ РАШЭННЯ СIСТ. ЛIН. АЛГЕБРАIЧНЫХ РАУНАННЯУ

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

C 1.10.94 г.

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

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

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

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

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

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

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

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 ГЭТАЙ ПРАГРАМЫ ПЕРАД АПЕРАТАРАМ

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

CHARACTER Z1*8,Z2*8

C     COMPLEX A,B,AA

DIMENSION A(9,9),B(9)

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')

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

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

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

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

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

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

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

C ВЫБАР i-ТАГА РАУНАННЯ СIСТЭМЫ, ЯКОЕ УТРЫМЛIВАЕ ВЯДУЧЫ ЭЛЕМЕНТ

DO 6 I=1,M

IA=I+1

AA=A(I,I)

C ДЗЯЛЕННЕ i-ТАГА РАУНАННЯ НА ВЯДУЧЫ ЭЛЕМЕНТ A(i,i)

IF(I.EQ.M)GO TO 2

DO 1 L=IA,M

1 A(I,L)=A(I,L)/AA

2 B(I)=B(I)/AA

C ВЫБАР k-ТАГА РАУНАННЯ СIСТЭМЫ ДЛЯ ВЫКЛ. З ЯГО НЕВЯДОМАЙ ПЕРАМ. X(i)

DO 5 K=1,M

IF(I.EQ.K)GO TO 5

IF(I.EQ.M)GO TO 4

C ВЫБАР l-АГА СЛУПКА У k-ТЫМ РАУН. ДЛЯ АДЫМАННЯ i-АГА РАУНАННЯ АД k-ТАГА

DO 3 L=IA,M

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

4 B(K)=B(K)-A(K,I)*B(I)

5 CONTINUE