Пусть требуется найти все собственные значения произвольной матрицы размером 6Х6
½4,6 4,7 5,4 4,2 2,8 4,4½
½2,8 2,5 5,7 8,3 6,8 5,2½
½5,0 6,5 4,3 7,4 9,4 9,3½
½7,6 5,9 2,7 1,8 5,1 7,7½.
½4,8 5,6 3,7 6,3 7,8 3,6½
½3,6 2,8 3,9 4,5 9,2 5,9½
Задача решается в два приема. Сначала исходная матрица с помощью преобразования подобия приводится к верхней почти треугольной форме (форме Гессенберга), а затем с помощью разновидности QR-алгоритма находятся собственные значения. Для выполнения этих действий в приводимой ниже программе используются две подпрограммы из пакета прикладных подпрограмм. Подпрограмма HSBG преобразует исходную матрицу к форме Гессенберга, а затем с помощью подпрограммы ATEIG находятся собственные значения.
Программа решения задачи и задание на ее трансляцию, редактирование и выполнение приводятся ниже. (Написана на Фортране-77)
С * ПРОГРАММА ОПРЕДЕЛЕНИЯ ВСЕХ СОБСТВЕННЫХ ЗНАЧЕНИЙ *
С * ПРОИЗВОЛЬНОЙ МАТРИЦЫ РАЗМЕРНОСТИ 6*6 *
С * ИСПОЛЬЗУЮТСЯ ПОДПРОГРАММЫ HSBG И ATEIG ИЗ ПАКЕТА *
С * ПРИКЛАДНЫХ ПОДПРОГРАММ НА ЯЗЫКЕ ФОРТРАН ОС ЕС ЭВМ *
С * А(6,6)-МАССИВ ЭЛЕМЕНТОВ ИСХОДНОЙ МАТРИЦЫ; *
С * ПРИ ВЫХОДЕ ИЗ ПОДПРОГРАММЫ HSBG СОДЕР- *
С * ЖИТ ЭЛЕМЕНТЫ МАТРИЦЫ ГЕССЕНВЕРГА; *
С * RR(6) -МАССИВ,СОДЕРЖАЩИЙ ВЕЩЕСТВЕННЫЕ ЧАСТИ *
С * ВЫЧИСЛЕННЫХ СОБСТВЕННЫХ ЗНАЧЕНИЙ; *
С * RI(6) -МАССИВ,СОДЕРКАЩИЙ МНИМЫЕ ЧАСТИ ВЫЧИС- *
С * ЛЕННЫХ СОБСТВЕННЫХ ЗНАЧЕНИЙ. *
С *****************************************************
PROGRAM GESS
DIMENSION A(6,6),RR(6),RI(6),IA(6)
READ(5,10)((A(I,J),J=1,6)
10 FORMAT(6F6.1) WRITE(6,11)
11 FORMAT(//1X,'ИСХОДНАЯ МАТРИЦА ИМЕЕТ ВИД') WRITE(6,12)
12 FORMAT(1X,60('-'))
WRITE(6,13)((A(I,J),J=1,6),I=1,6)
13 FORMAT(6(1X,F9.5))
WRITE(6,12)
С ***ПРЕОБРАЗОВАНИЕ МАТРИЦЫ 3 ФОРМУ ГЕССЕНЕЕРГА ***
CALL HSBG(6,A,6)
WRITE(6,14)
14 FORMAT(//1X,'МАТРИЦА В ФОРМЕ ГЕССЕНВЕРГА')
WRITE(6,l2)
WRITE(6,13)((A(I,J),J=1,6),I=1,6)
WRITE(6,12)
С ***ВЫЧИСЛЕНИЕ СОБСТВЕННЫХ ЗНАЧЕНИЙ ***
CALL ATEIG(6,A,RR,RI,IA,6)
WRITE(6,15)
15 FORMAT(//1X,'СОБСТВЕННЫЕ ЗНАЧЕНИЯ')
WRITE (6,16)
16 FOHMAT(1X,25('-'))
WRITE(6,17)
17 FORMAT(4Х,'ДЕЙСТВИТ.',5Х,'МНИМ.')
WRITE(6,16)
WRITE(6,18)(RR(I),RI(I),I=1,6)
18 FORMAT(2(2X,F10.5))
WRITE(6,16)
STOP
END PROGRAM GESS
ИСХОДНЫЕ ДАННЫЕ
½4,6 4,7 5,4 4,2 2,8 4,4½
½2,8 2,5 5,7 8,3 6,8 5,2½
½5,0 6,5 4,3 7,4 9,4 9,3½
½7,6 5,9 2,7 1,8 5,1 7,7½.
½4,8 5,6 3,7 6,3 7,8 3,6½
½3,6 2,8 3,9 4,5 9,2 5,9½
РЕЗУЛЬТАТЫ РЕШЕНИЯ ПОЛУЧАЕМ НА ЛИСТИНГЕ В СЛЕДУЮЩЕМ ВИДЕ;
-----------------------------------------------------------
4.60000 4.70000 5.40000 4.20000 2.80000 4.40000
2.80000 2.50000 5.70000 8.30000 6.80000 5.20000
5.00000 6.50000 4.30000 7.40000 9.40000 9.30000
7.60000 5.90000 2.70000 1.80000 5.10000 7.70000
4.80009 5.60000 3.70000 6.30000 7.80000 3.60000
3.60000 2.80000 3.90000 4.50000 9.20000 5.90000
-----------------------------------------------------------
-1.05472 -1.63396 2.72646 3.84783 2.80000 4.40000
2.01257 -2.36670 -2.17137 2.89468 4.04257 6.03833
0.0 -1.58839 -0.80845 7.92607 13.78295 15.98241
0.0 0.0 3.49820 7.78531 16.11174 17.49956
0.0 0.0 0.0 8.53209 17.44455 14.61304
0.0 0.0 0.0 0.0 9.20000 5.90000
-----------------------------------------------------------
------------------------
ДЕЙСТВИТ. МНИМ.
31.69159 0.0
-4.96900 0.0
1.12992 3.27061
1.12992 -3.27061
-1.04125 1.68618
-1.04125 -1.68618
------------------------
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.