Устройство для решения систем линейных алгебраических уравнений
Реферат
Изобретение относится к вычислительной технике и может быть использовано в высокопроизводительных машинах и устройствах обработки сигналов. Цель изобретения - повышение точности вычисления за счет выбора ведущего элемента. Цель достигается тем, что устройство содержит вычислительный модуль первого типа, реализующий основную операцию сравнения по модулю двух чисел, и n вычислительных модулей второго типа, реализующих основные арифметические операции - деление, умножение и вычитание чисел, где n - порядок системы линейных алгебраических уравнений. В основу работы устройства положен метод Гаусса-Жордана с частичным выбором ведущего элемента по столбцам матрицы. 1 з. п. ф-лы, 4 табл. , 5 ил.
Изобретение относится к вычислительной технике и может быть использовано в высокопроизводительных специализированных вычислительных машинах и устройствах обработки сигналов для решения систем линейных алгебраических уравнений.
Целью изобретения является повышение точности вычисления за счет выбора ведущего элемента по столбцам матрицы. На фиг. 1 представлена структурная схема устройства; на фиг. 2 - структурная схема устройства для случая n= 3 и m= 1; на фиг. 3 - схема вычислительного модуля второго типа; на фиг. 4 - схема вычислительного модуля первого типа; на фиг 5 - схема коммутатора. Устройство для решения систем линейных алгебраических уравнений (фиг. 1) содержит информационный вход 1, настроеные входы 2-8, синхровход 9, вычислительный модуль 10 второго типа, вычислительные модули 11i (i= ) первого типа и выход 12. Вычислительный модуль 10 второго типа (фиг. 3) содержит информационный вход 13, первый 14 и второй 15 настроечные входы, синхровход 16, первый узел 17 задержки, регистр 18, узел 19 сравнения, второй узел 20 задержки, триггеры 21-24, группы 25-30 элементов И, элементы И 31-39, группы 40 и 41 элементов ИЛИ, элементы ИЛИ 42-45, элементы НЕ 46, 47, 481 и 482 и выход 49. Вычислительный модуль 11 первого типа (фиг. 4) содержит информационный вход 50, первый 51, второй 52, третий 53, четвертый 54 и пятый 55 настроечные входы, синхровход 56, четвертый 57 и первый 58 узлы задержки, регистр 59, второй узел 60 задержки, регистр 61, третий узел 62 задержки, делитель 63, умножитель 64, вычитатель 65, коммутатор 66, триггеры 67-73, пятый 74, шестой 75, седьмой 76 узел задержки, группы 77-88 элементов И, элементы И 89-101, группы 102-106 элементов ИЛИ, элементы ИЛИ 107 и 108, элементы НЕ 109-113, элемент 114, информационный выход 115, первый 116, второй 117, третий 118 и четвертый 119 настроечные выходы. Коммутатор 66 (фиг. 5) содержит первый 120 и второй 121 входы, узел 122 сравнения, группы элементов И 123-126, группы элементов ИЛИ 127 и 128, элемент НЕ 129, первый 130, второй 131 и третий 132 выходы. Вычислительный модуль 10 второго типа обладает возможностью реализации следующих функций: Aj+1= , где bj= aj-1, если ( j-1, j-1 )= (1, 1)V ( j-1, j-1, j-1 )= (1, 0, 1)V ( j-1, j-1, j-n-2 )= (0, 0, 1), j= , где aj - значение на информационном входе на j-м такте вычислительного модуля; jиj - значения соответственно на первом и втором настроечных входах на j-м такте вычислительного модуля; Aj+1 - значение на выходе на (j+1)-м такте вычислительного модуля. Вычислительный модуль первого типа обладаети возможностью реализации функций Uj+2n+2= Uj ; Vj+2n+2= Vj; Wj+2n+2= j; ( где Uj, Vj, j и j - значение соответственно на первом, втором, третьем и четвертом настроечных входах на j-м такте вычислительного модуля, Uj, Vj, Wj и Ej - значения соответственно на первом, втором, третьем и четвертом настроечных выходах на j-м такте вычислительного модуля, где fj= dj-1-bj-1 cj-1, если 5j-1= (0, 1, 0, 0)V 6j-1 = (0, 0, 1, 0) V 7j-1 = (0, 0, 0, 0, 1), bj-1= dj-2/dj-n-4, если 2j-2= (1, 1, 0), , и 0 , Pj = , где j1= j1+1= (uj, vj, j)= (1,1,1), , j2= j2+1= (uj, vj, j)= (1,1,0), , j3= j3+1= (uj, vj, j)= (1,0,0), , j4= j4+1= (uj, j)= (0,1), , j5= j5+1= (uj, vj, j,j)= (0,1,0,0), , j6= j6+1= (uj, vj, j,j)= (0,0,1,0), , j7= j7+1= (uj, vj, j,j,j-n-1)= (0,0,0,0,1), , где aj - значение на информационном входе на j-м такте вычислительного модуля; Aj+1 - значение на информационном выходе на (j+1)-м такте вычислительного модуля. Рассмотрим работу вычислительных модулей второго и первого типа. Вычислительный модуль 10 второго типа работает в четырех режимах, которые задаются комбинацией управляющих сигналов и , подаваемых соответственно на входы 14 и1 5. В первом режиме ( , )= (1, 1), на выходе элемента И 35 формируется единичный сигнал, который открывает элемент И 32. При этом через элементы И 32 и ИЛИ 42 тактовый импульс подается на синхровод регистра 18, что обеспечивает запись в регистр 18 элемента а, подаваемого на вход 13. Узел 17 задержки содержит n+1 последовательно соединенных регистров. Информация из регистров 17i(i= ) записывается в регистры 17i+1. Триггер 21 устанавливается в единичное состояние, единичный сигнал с выхода которого через элемент ИЛИ 45 открывает элементы И группы 29. Содержимое регистра 17n через элементы И группы 29 и ИЛИ группы 40 выдается на выход 49 вычислительного модуля 10. В триггерах 20j (j= ) происходит циклическая перезапись информации (элемент И 39 открыт). Во втором режиме ( , )= (1, 0), на выходе элемента И 36 формируетя единичный сигнал, который открывает элементы И 31, 34 и подается на входы элементов И группы 26. Входной элемент а, подаваемый на вход 13, сравнивается по модулю с содержимым регистра 18 в узле 19 сравнения. Если < Рег. 18 > a, то на выходе узла 19 сравнения формируется нулевой сигнал, который открывает элементы И группы 25. Входной элемент а через элементы И группы 25 и или группы 41 записывается в регистр 171. Содержимое регистров 17i (i= ) записывается в регистры 17i+1. Кроме того, нулевой сигнал с выхода узла 19 сравнения через элементы И 34 и ИЛИ 43 записывается в триггер 201. Содержимое триггеров 20i (i= ) записывается в триггеры 20i+1. Если < Рег. 18 > < a, то на выходе узла 19 сравнения формируется единичный сигнал, который подается на входы элементов И 31 и 34 и элементов И группы 26. Содержимое регистра 18 через элементы И группы 26 и ИЛИ группы 41 записывается в регистр 171. Входное данное а записывается в регистр 18 (тактовый импульс через элементы И 31 и ИЛИ 42 подается на синхровход регистра 18). Единичный сигнал с выхода узла 19 сравнения через элементы И 34 и ИЛИ 43 записывается в триггер 201. Триггер 22 устанавливается в единичное состояние, что обеспечивает выдачу содержимого регистра 17n+1 на выход 49. В третьем режиме ( , )= (0, 0). На выходе элемента И 38 формируется единичный сигнал, который подается на вход элемента И 33 и на входы элементов И групп 27 и 30. Если триггер 20n+1 находится в единичном состоянии, то элемент И 33 открывается и разрешается запись входного данного а в регистр 18. Кроме того, открываются элементы И группы 27 и через элементы И группы 27 и ИЛИ группы 41 содержимое регистра 18 записывается в регистр 171. Информация из регистров 17i(i= ) записывается в регистры 17i+1. Если триггер 20n+1 находится в нулевом состоянии, то на выходе элемента НЕ 482 формируется единичный сигнал, который открывает элементы И группы 30. Входное данное записывается в регистр 171 через элементы И групп 30 и ИЛИ группы 41. На выход 49 вычислительного модуля 10 выдается содержимое регистра 17n+1. В четвертом режиме ( , )= (0, 1). При этом на выходе элемента И 37 формируется единичный сигнал, который через элемент ИЛИ 44 открывает элемент И 39, что обеспечивает циклическую запись информации в триггерах 20i (i= ). Информация из регистров 17i (i= ) записывается в регистры 17i+1. Триггер 23 устанавливается в единичное состояние и открываются элементы И группы 28. Содержимое регистра 18 выдается через элементы И группы 28 и ИЛИ группы 40 на выход 49 вычислительного модуля. Вычислительный модуль 11 первого типа работает в семи режимах, которые задаются комбинацией внешних управляющих сигналов u, v, , и внутреннего управляющего сигнала , который формируется только в седьмом режиме работы в результате сравнения чисел по модулю на выходе 132 узла сравнения в коммутаторе 66 (фиг. 5). Соответствующие значения управляющих сигналов uj, vj, j, j и j на j-м такте определяют управляющие сигналы ij+1= ij= (uj, vj, j, j, j), (i= 1,7), где i - номер режима работы, которые подаются на соответствующие логические элементы вычислительного модуля 11. Причем управляющий сигнал ij обеспечивает запись данных в регистр или триггер на j-м такте, а управляющий сигнал ij+1 - на (j+1)-м такте. На вход 55 постоянно подается единичный сигнал. Управляющие сигналы u, v, и подаются соответственно на входы 51, 52, 53 и 54 и выдаются соответственно на выходы 116, 117, 118 и 119. Причем сигналы u, v и задерживаются на 2n+2 тактов соответственно триггерами 74i, 75i, 76i (i= ) соответствующих узлов 74, 75 и 76 задержки, а сигнл задерживается на n тактов триггерами 57i (i= ) узла 57 задержки. Первый режим работы вычислительного модуля 11 задается управляющими сигналами 1j= (uj, vj, j)= (1, 1, 1) (значение управляющего сигнала на режим работы не влияет). На выходе элемента И 95 формируется единичный сигнал 1, на выходе элемента НЕ 111 - нулевой сигнал , которые подаются соответственно на входы элементов И групп 87, 88 и элемента И 94. При этом входной элемент aj, подаваемый на вход 50, записывается в регистр 601 узла 60 задержки на n+1 тактов через элементы И группы 87 и ИЛИ группы 106. Информация из регистров 60i (i= ) записывается в регистры 60i+1. Аналогисчно информация записывается и в триггеры 57i (i= ) и 61i (i= ). Второй режим работы задается управляющими сигналами j2+1= j2= (1,1,0) . Управляющие сигналы 2j и 2j+1 формируются соответственно на выходах элемента И 96 и триггера 67. Управляющий сигнал 2j подается на входы элементов И групп 77 и 79. Управляющий сигнал 2j+1 подается на вход элемента И 89, обеспечивая прохождение тактового импульса для записи информации в регистр 61 на (j+1)-м такт. Входной элемент aj через элементы И группы 77 и ИЛИ группы 102 записывается в регистр 581 узла 58 задержки на n тактов. Содержимое регистров 58i (i= ) записывается в регистры 58i+1. На выходе делителя 63 формируется значение aj/aj-1, которое на (j+1)-м такте записывается в регистр 61. Управляющий сигнал j записывается в триггер 571. Информация в регистрах 60i (i= ) циклически переписывается. Аналогично записывается информация и в триггерах 57i (i= ) и 62i (i= ). Третий режим работы определяется управляющими сигналами 3j= 3j+1= (uj, vj, j)= (1,0,0). Уп-равляющие сигналы 3jи 3j+1 формируются соответственно на выходах элемента И 97 и триггера 68. Сигнал 3jподается на входы элементов И групп 78, 79 и на вход элемента И 91. Сигнал 3j+1 подается на вход элементов И группы 86, а сигнал 3j+1 - на вход элементов И группы 80. При этом в регистр 581 записывается содержимое регистра 61 через элементы И 78 и ИЛИ группы 102. Содержимое регистра 59 через элементы И группы 86 и ИЛИ группы 104 выдается на (j+1)-м такте на выход 115. Единичный сигнал, подаваемый на вход 55, через элементы И 91 и ИЛИ 107 устанавливает триггер 571 в единичное состояние. Информация из триггера 57i (i= ) записывается в триггер 57i+1. Аналогично информация циклически переписывается в регистрах 60i(i= ) и триггерах 62i (i= ). В четвертом режиме работы подаются управляющие сигналы 4j= 4j+1= (uj, j)= (0,1) (сигналы ujиjна режим работы не влияют). На выходах элемента И 98 и триггера 69 формируются соответственно управляющие сигналы 4jи4j+1. Управляющий сигнал 4j подается на входы элементов И группы 77, управляющий сигнал 4j+1 - на входы элементов И группы 81. При этом входной элемент aj записывается в регистр 581. На выходе умножителя 64 формируется произведение <Рег. 601><Рег. 61>, которое подается на вход вычитателя 65. На второй вход последнего подается содержимое регистра 581 и на его выходе формируется значение <Рег. 581>-<Рег. 601><<Рег. 61>, которое на (j+1)-м такте через элементы И группы 81 и ИЛИ группы 103 записывается в регистр 582. Информация из регистров 58i (i= ) записывается в регистры 58i+1. Содержимое регистра 58n через элементы И группы 80 и ИЛИ группы 104 ( 3= 1) выдается на выход 115. Аналогично информация записывается в регистры 60i (i= ) и триггеры 57i (i= ) и 62i (i= ). Пятый режим работы задается управляющими сигналами 5j= 5j+!= (uj, vj, j, j)= (0,1,0,0, ). На выходах элемента И 99 и триггера 70 формируется соответственно сигналы 5j и 5j+1. Управляющий сигнал 5j подается на входы элементов И группы 77 При этом в регистр 581записывается входной элемент aj, на выходе вычитателя 65 формируется значение <Рег. 581>-<Рег. 601><Рег. 61>, которое на (j+1)-м такте по управляющему сигналу 5j+1 через элементы И группы 83 и ИЛИ группы 106 записывается в регистр 59 (элемент И 90 открыт и тактовый импульс подается на синхровход регистра 59). На выход 115 выдается содержимое регистра 58n ( = 1). Аналогично осуществляется запись информации в регистры 58i (i= ), 60i (i= ) и триггеры 57i (i= ) и 62i(i= ). В шестом режиме работы подаются управляющие сигналы 6j= 6j+1= (uj, vj, j, j)= (0, 0, 1, 0). На выходе элемента И 100 формируется сигнал 6j, на выходе триггера 71 - сигнал 6j+1. Управляющий сигнал 5j+1 подается на входы элементов И группы 84 и на вход элемента И 90. Сигнал подается на входы элементов И группы 77. Сигнал 6j подается на входы элементов И групп 82, 85 и на входы элементов И 90 и 93. При этом в регистр 581 записывается входной элемент aj, на выходе вычитателя 65 формируется значение A= <Рег. 581>-<Рег. 601><Рег. 61> которое подается на первый вход коммутатора 66, на второй вход которого подается содержимое B регистра 59. Если B A , то на первом выходе коммутатора 66 выдается значение A, на втором выходе - значение B и на третьем выходе - сигнал j= 0. На (j+1)-м такте по сигналу 6j+1 значение A записывается через элементы И группы 82 и ИЛИ группы 103 в регистр 582, значение B записывается через элементы И группы 85 и группы ИЛИ 105 в регистр 59 и сигнал j = 0 - через элементы И 93 и ИЛИ 108 в триггер 621. Если B < A , то на первом выходе коммутатора 66 выдается значение B, на втором выходе - значение A и на третьем выходе - сигнал j= 1. На (j+1)-м такте по сигналу 6j+1значение B записывается в регистр 582, значение A - в регистр 59 и сигнал = 1 - в триггер 621. Содержимое 58n выдается на выход 115 ( = 1). Аналогично информация записывается в регистры 58i (i= ), 60i(i= ) и триггеры 57i (i= ), 62i (i= ). Седьмой режим работы определяется управляющими сигналами 7j= 7j+1= (uj, vj, j, j, j)= = (0,0,0,0,1). Сигнал 7j формируется на выходе элемента И 101, сигнал 7j+1 - на выходе триггера 72, сигнал 7j+1- на выходе триггера 73. Сигнал 7j подается на входы элементов И группы 77, сигнал 7j+1 - на входы элементов И групп 83 и 84 и на вход элемента И 90, сигнал 7j+1- на входы элементов И группы 81. При этом в регистр 581 записывается элемент ai, на выходе вычитателя 65 формируется значение A= <Рег. 581>-<Рег. 601><Рег. 61> содержимое регистров 58i (i= ) записывается в регистры 58i+1, содержимое регистра 58n выдается на выход 115 ( = 1). Если триггер 61n+1 в нулевом состоянии ( 0), то = 1 и значение A записывается в регистр 582 на (j+1)-м такте через элементы И группы 81 и ИЛИ группы 103. Если триггер 61n+1 в единичном состоянии, то 7j+1= 1, значение A записывается в регистры 59 на (j+1)-м такте через элементы И группы 84 и ИЛИ группы 105, содержимое B регистра 59 через элементы И группы 83 и ИЛИ группы 103 записывается в регистр 582. Коммутатор 66 (фиг. 5) работает следующим образом. На входы 119 и 120 подаются соответственно значения A и B. Если B A , то на выходе узла 122 сравнения формируется единичный сигнал, на выходе элемента НЕ 129 - нулевой сигнал ( = 0), элементы И групп 125 и 126 закрыты, а групп 123 и 124 открыты, значение A через элементы И группы 123 и ИЛИ группы 127 подается на выход 130, а значение B через элементы И группы 124 и ИЛИ группы 128 - на выход 131. Если B < A , то на выходе узла 122 сравнения формируется нулевой сигнал, элементы И групп 123 и 124 закрыты, а элементы И групп 126 и ИЛИ группы 128 подается на выход 131, а значение B через элементы И группы 125 и ИЛИ группы 127 на выход 130 и = 1. В основу работы устройства для решения систем линейных алгебраических уравнений вида A1 X= A2, где A1= (aij), i, j= , A2= (aij), i= , j= , X= (xij), i= , j= , положен метод Гаусса-Жордана с частичным выбором ведущего элемента по столбцам матрицы в виде следующих рекуррентных соотношений: b1j= a1j, j= , , i= : если b a , то a(o)ij= aij, j= , иначе a(o)ij= b1j,b1j= aij, j= ; a(o)1j= b1j, j= k = : a(kik)= a(kik-1), i= ; a(kkj)= a(kkj-1)/a(kkk), j= ; b(k)k+1,j= a(k-1)K+1,j-a(k)k+1,ka(kkj), j= ; i = c(kij)= a(kij+1)-a(kik)a(kkj), если b то a(kij) = C(kij), j = иначе a(kij)= b(k)k+1,j, b(k)k+1,j= Cij, j= ; a(k)k+1,j= b(k)k+1,j, j= ; a(kij)= a(kij-1)-a(kik)a(kkj),i= , j= (эта операция при k= 1 не выполняется), a(k)n+k,j= a(kkj), j= ; a(k)n+1,j= b(k)k+1j, j= ; k = : a(kkk)= a(kkk-1); a(kkj)= a(kkj-1)/a(kkk), j= ; a(kik)= a(kik-1), i= ; a(kij)= a(kji-1)-a(kik)a(kkj), i= , j= ; a(k)n+k,j= a(kkj), j= ; xij= a(n)n+i,n+j, i= , j= Рассмотрим работу устройства. На вход 1 устройства подаются элементы aij в моменты времени taij= i+(n+1)j-n-1, i= , j= . На входы 5 и 6 подаются соответственно управляющие сигналы и , принимающие значение 0 или 1. Первый режим работы вычислительного модуля 10 задается комбинацией сигналов 1= (, )= (1,1), второй режим - 2(1, 0), третий режим - 3= (0, 0) и четвертый режим - 4= (0, 1). Организация ввода управляющих сигналов it (i= ), где t - номер такта, следующая: (вторая группа повторяется n+m-2 раз, т. е. всего подается одна первая группа и n+m-1 вторых групп). На входы 2, 3 и 4 подаются соответственно управляющие сигналы u, v и , принимающие значение 0 или 1. На входы 2, 3 и 4 подаются следующие комбинации сигналов u, v и : 1= (u, v, )= (1, 1, 1), 2= (1, 1, 0), 3= (0, 1, 0), 4= (0, 0, 1), 5 = (1, 0, 0) и 6 = (0, 0, 0). Организация ввода управляющих сигналов i (i= ) следующая: . . . (третья группа повторяется n+m-3 раз, т. е. всего подается одна первая группа, одна вторая группа и n+m-2 третьих групп). На вход 7 постоянно подается нулевой сигнал, на вход 8 - единичный сигнал. Элементы xij формируются на выходе 12 устройства в моменты времени txij= 2n(n+1)+i+j(n+1)-1. Последний элемент xnm формируется на (2n2+m(n+1)+3n-1)-м такте. Период ввода элементов aij очередной задачи решения систем линейных алгебраических уравнений равен (n+1)(n+m) тактом. Рассмотрим работу устройства для случая n= 3 и m= 1 (фиг. 2). Пусть требуется решисть систему линейных алгебраических уравнений вида Входные и выходные данные, состояния регистров и триггеров вычислительных модулей 10, 111, 112 и 113 приведены в табл. 1-4. Вчислительный модуль 10 обеспечивает выбор ведущего элемента по столбцам матрицы, т. е. перемещает строки так, чтобы строка, содержащая максимальный элемент первого столбца, была первой. С первого по третий такты выбирается ведущий элемент (амакс= а31= 2), который записывается в регистр 18, и на третьем такте в триггер 201 записывается значение = 1. На последующих тактах в соответствии с приведенным алгоритмом работы вычислительного модуля 10 происходит перемещение местами элементов первой и третьей строк исходной матрицы. На выходе 49 формируются элементы исходной матрицы в моменты времени (i= , j= ). В вычислительном модуле 111 с пятого по седьмой такты в регистры 60i (i= 1, n+1) записываются элементы a(o)i1 (i= ), которые на последующих тактах циклически переписываются. На девятом такте формируется элемент a(1)42= a(1)12= a(o)12/a(o)11= 3/2, который записывается на девятом такте в регистр 61. На десятом такте формируется элемент a(1)22= a(o)22-a(o)21 a(1)12= 2-0 3/2= 2, который записывается на одиннадцатом такте в регистр 59. На одиннадцатом такте формируется элемент a(1)32= a(o)32-a(o)31 a(1)12= 2-1 3/2= 1/2, который записывается в регистр 582 на двенадцатом такте, и в триггер записывается сигнал = 0, так как a<a. На тринадцатом такте в регистр 582 записывается элемент а(1)42= 3/2. Элементы а(1)22, а(1)32 и а(1)42 выдаются на выход 115 соответственно на двенадцатом, тринадцатом и четырнадцатом тактах. На тринадцатом такте формируется элемент а(1)43= а(1)13= а(о)13/a(o)11= 0/2= 0, который на четырнадцатом такте записывается в регистр 61. На четырнадцатом такте формируется элемент a(1)23= а(о)23-а(о)21 а(1)13= 1-0 0= 1, который на пятнадцатом такте записывается в регистр 59. На пятнадцатом такте формируется элемент а(1)33= а(о)33-а(о)31 а(о)13= 0-1 0= 0, который на шестнадцатом такте записывается в регистр 582, так как триггер 624 находится в нулевом состоянии ( = 0). На семнадцатом такте элемент а(1)43= 0 записывается в регистр 581. Элементы а(1)23, а(1)33 и а(1)43выдаются на выход 115 соответственно на шестнадцатом, семнадцатом и восемнадцатом тактах. Аналогично формируются элемет a(1)44= a(1)14= a(o)14/a(o)11= 4/2= 2 (записывается в регистр 61 на восемнадцатом такте), элемент a(1)24= a(o)24-a(o)21 a(1)14= 5-0