Умножение матриц на вектор – примеры, алгоритм умножения на вектор, число, свойства произведения

умножение матрицы на вектор | C++ для приматов

Даны квадратная матрица [latex]A[/latex] порядка [latex]n[/latex], векторы [latex]x[/latex] и [latex]y[/latex] с [latex]n[/latex] элементами. Получить вектор [latex]A(x+y)[/latex].

Примеры:

Размерность матрицы Матрица Вектор x Вектор y Результирующий вектор A(x+y)
2 2 3

3 2

3 4 5 6 46 44
 3  2 1 4

5 2 6

3 4 8

 2 2 2  4 4 4  42 78 90
 4  1 2 3 4

3 4 1 6

2 3 8 1

4 5 0 8

 1 2 3 4  5 4 3 2  60 84 84 102
 5

 0 0 0 0 0

0 0 0 0 0

0 0 1 0 0

0 0 0 0 0

0 0 0 0 0

 4 6 7 8 0  2 8 9 3 1  0 0 16 0 0

Алгоритм решения: Вводим матрицу [latex]A[/latex] порядка [latex]n[/latex]. Вводим векторы [latex]x[/latex] и [latex]y[/latex], прибавляем векторы [latex]x[/latex] и [latex]y[/latex]. После умножаем матрицу [latex]A[/latex] на вектор [latex]x + y[/latex] и получаем вектор [latex]A(x + y)[/latex]. С помощью цикла выводим результирующий вектор.

Код программы :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

#include <iostream>

using namespace std;

int main() {

int n;

cin >> n;

int x[n];

int y[n];

int z[n];

int A[n][n];

int result_vector[n];

for (int i = 0; i < n; i++){

for (int j = 0; j < n; j++)

cin >> A[i][j];

}

for (int i = 0; i < n; i++){

cin>>x[i];

}

for (int i = 0; i < n; i++){

cin>>y[i];

}

for (int i = 0; i < n; i++){

z[i]=x[i]+y[i];            

}

for(int i=0; i<n; i++)

{

result_vector[i]=0;

for(int j=0; j<n; j++)

{

result_vector[i]+=A[i][j]*z[j];  

}

}

for(int i=0; i<n; i++)

{

cout << result_vector[i] << endl;

}

return 0;

}

Оригинал кода можно увидеть перейдя по ссылке

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

import java.util.*;

import java.lang.*

cpp.mazurok.com

Умножение комплексного вектора на матрицу


Результат умножения вектора-строки на матрицу с*A
Результат умножения
Результат умножения матрицы на вектор-столбец A*b
Результат умножения

Каждый вектор можно рассматривать как одностолбцовую или однострочную матрицу. Одностолбцовую матрицу будем называть вектор-столбцом, а однострочную матрицу - вектор-строкой.

Если A-матрица размера m*n, то вектор столбец b имеет размер n, а вектор строка b имеет размер m.

Таким образом, что бы умножить матрицу на вектор, надо рассматривать вектор как вектор-столбец. При умножении вектора на матрицу, его нужно рассматривать как вектор -строку.

Пример.

Умножить матрицу

 

на комплексный вектор

 

Получаем результат

Результат умножения матрицы на вектор A*b
Результат умножения вектора на матрицу b*A

 

Как видите при неизменной размерности вектора, у нас могут существовать два решения.

Хотелось бы обратить Ваше внимание на то что матрица в первом и втором варианте, несмотря на одинаковые значения, совершенно разные (имеют различную размерность)

 

В первом случае вектор считается как столбец и тогда необходимо  умножать матрицу на вектор, а во втором случае у нас вектор-строка и тогда у нас произведение вектора на матрицу.

 

 

Свойства умножения матрицы на вектор

 - матрица   - вектор столбец   - вектор-строка  - произвольное число

1. Произведение матрицы на сумму векторов-столбцов равна сумме произведений матрицы на каждый из векторов

2. Произведение суммы векторов-строк на матрицу  равна сумме произведений векторов на матрицу

3. Общий множитель вектора  можно вынести за пределы произведения матрицы на вектор/вектора на матрицу

4.Произведение вектора-строки на произведение матрицы и вектора столбца, равноценно произведению произведения вектора-строки на матрицу и вектора-столбца.

 

Удачных расчетов!!

 

  • Умножение матриц с комплексными значениями онлайн >>

abakbot.ru

Умножение матрицы на вектор

| Векторизован |
в палитре на схеме

Блок реализует процедуру умножения квадратной матрицы на вектор соответствующей размерности:

где A – матрица коэффициентов; x(t) – вектор решений; u(t) – вектор правых частей, y(t) – вектор на выходе блока.

Входы

  • matrix - порт для ввода матрицы
    A
    , представляемой в виде вектора коэффициентов при распаковке матрицы по строкам. Размерность векторного сигнала на 1-ом входном порте должна быть равна n×n, где n – размерность матрицы;
  • vector - порт для ввода вектора u(t). Размерность вектора равна n.

Выходы

  • output - порт для вывода вектора y(t). Размерность вектора равна n.

Свойства:

нет

Параметры

нет

Пример

Требуется умножить матрицу A на вектор u, если:

а результат умножения очевиден: вектор-столбец, элементы которого равны 19 и 38. На рисунке ниже представлена структурная схема решения данной задачи. Типовые блоки Размножитель использованы для формирования входных векторных сигналов:

Примечание: блок выполняет процедуру умножения квадратной матрицы на вектор после каждого успешного шага интегрирования.

simintech.ru

Умножение вектора на матрицу: ilynva

module Main where

-- | Л.р. №6. Операции ввода-вывода в языке Haskell. Часть 2. Задача 20.
--   Программа считывает из одного файла матрицу, а из другого — вектор и 
--   записывает в третий файл результат умножения матрицы на вектор. 

import IO
import System.Environment
main = do
   [fileMatrix, fileVector, fileResult] <- getArgs  
   fileSource1 <- readFile fileMatrix     
   -- | Форма вектора в лабораторной не оговаривается,  будем иметь в виду вектор-столбец.
   fileSource2 <- readFile fileVector
   let fm1 = map (\x ->  map (\i -> (read i) :: Double) $ words x) $ lines fileSource1
   print fm1    
   let fm2 = (map (\x ->  (read x) :: Double) $ words fileSource2)    
   print fm2    
   if ((length fm2) == (length $ head fm1))
      then
         writeFile fileResult (mulMatVec fileSource1 fileSource2)
      else
         error "mulMatVec *** The vector x can be multiplied by matrix A of suitable dimension!!!"
   return () 

-- | Если размерность вектора J, а размерность матрицы I×J то в результате получится вектор размерности I.  
--   Умножение вектора на матрицу
mulMatVec :: String -> String -> String
mulMatVec sm sv = res where
  fm1 = map (\x ->  map (\i -> (read i) :: Double) $ words x) $ lines sm
  -- Вектор считаем как список вещественных чисел
  fm2 = (map (\x ->  (read x) :: Double) $ words sv)
  -- | Вектор x можно умножать на матрицу A подходящей размерности.  
  -- | Перемножаем.  
  mul = map (\x -> sum x) (map (\x  -> zipWith (*) x fm2) fm1)
  res = unlines (map (\x -> show x) mul)
   
{-|
Тест. Исходные файлы:

1.2	-3.5	1.8	-2.2	-5.3
10.2	-2.8	3.2	-2.8	1.5
2.3	-6.5	-9.2	6.5	-1.2

1.2
0.5
0.8
2.1
-1.4

>r6220 mf.dat vf.dat m.res

3.929999999999998
5.419999999999999
7.48

Результат совпадает 

Links:
 http://pv.bstu.ru/flp/flplabs.htm
 http://www.chemometrics.ru/materials/textbooks/matrix.htm#ch216
 http://oldunesco.kemsu.ru/mps/html/node5_33.htm
 http://vts.math.kubsu.ru/pascal/matrvect.htm
 http://u3d.agava.ru/doc/theory/matrix_ops.shtml
Tags: 
  Haskell, Roganova, Roganova6, Операции ввода-вывода, Interactive programs, Command line arguments, Input and Output, Матрицы и Векоторы, matrix haskell 
-}

ilynva.livejournal.com

Умножение матрицы на вектор - Энциклопедия по машиностроению XXL

Умножение матрицы на вектор 553 Упругость 21  [c.575]

При помощи матрицы А можно представить квадратичную форму кинетической Энергии (3) в более компактном виде. Введем обычную операцию умножения матрицы на вектор (матрицу-столбец) и скалярное произведение двух векторов х и у в п-мерном пространстве  [c.55]

Точка в условии означает операцию скалярного умножения тензора модулей упругости на вектор и справа (в компонентах — умножение матрицы на вектор — столбец справа) двойная точка в уравнении (5) означает двойное скалярное произведение (свертку) пары тензоров.  [c.479]


Еще большее число показателей требует для своего расчета применение умножения матриц на векторы. Вектор — это матрица с одной строкой или одним столбцом. Данная операция, таким образом, есть частный случай умножения матриц. Ее результатом является вектор. Примером такой операции является вычисление потребностей в материалах.  
[c.53]

Составление такой матрицы имеет регулярный характер и может рассматриваться как операция умножения матрицы на вектор. Рассмотрим подробно операцию расчета матрицы коэффициентов Ку = I I, определяющих относительное увеличение выпуска в предшествующих по маршруту цехах, необходимое для восполнения потерь в последующих цехах. Заметим, что в каждой строке матрицы х.. ненулевые элементы встречаются один раз и только там, где пересечение / -й строки с / -М столбцом определяет передачу детали из /-го цеха в / -й. Последо-  [c.59]

Операции умножения матрицы на вектор или матрицу и умножения многомерных объектов (многомерных матриц и тензоров). Анализ выполним на примере операции умножения двухмерных матриц, рассматривая общий случай, когда ни один из операндов и результат не размещаются целиком в ОЗУ. Операнды будем обозначать А л В, з результат - С. Будем исходить из того, что операнды вначале упорядочены нужным образом, а упорядоченностью результата интересоваться не будем. Представим схему умножения так, как показано на рис. 2.3. В надписях на рисунке под порцией понимается строка одной исходной матрицы и столбец другой, а для результата — либо строка, либо столбец. Будем считать, что каждая порция целиком размещается в ОЗУ. Тогда вся операция выполняется за п этапов. Каждый из этапов аналогичен поэлементной операции, выполняемой над одной порцией однократно обмениваемого файла (назовем его 4). На протяжении всего этапа порция находится в ОЗУ и поэлементная операция выполняется над ней и всеми порциями многократно обмениваемого файла (назовем его В). Файл В порциями поступает в ОЗУ. Над поступающими порциями выполняются операции АЛУ, и получается порция результирующего файла, выводимая после получения во внешний накопитель.  

[c.67]

Рассмотрим теперь частные случаи умножения двухмерных матриц, а также умножение матрицы на вектор.  [c.68]

Если операция есть умножение матрицы на вектор, то для вектора назначаем  [c.88]

Ниже представлены примеры выполнения свертки каждым из типов архитектур, рассмотренных для одной и той же задачи. Для большей убедительности взят случай умножения матрицы на вектор. Задача выглядит следующим образом.  [c.192]

В табл. 7.1 приведена скорость выполнения операции умножения матрицы на вектор. В первой колонке представлены выражения для числа тактовых циклов, необходимых для завершения одной операции умножения. Умножение матрицы тХп на вектор /гХ1 требует 2тп операций сложения и умножения. Если предположить, что биты данных проходят в системе с частотой 10 МГц (величина 0,1 мкс/бит является достаточно обоснованной для существующих электронных устройств), то можно вычислить скорость выполнения операций. Представлены два случая. Первый из них соответствует п = т = 32, при /=16 (I эквивалентно точности вычислений), а второй случай относится к п = т=128, / = 32. В табл. 7.2 представлены аналогичные данные для умножителей, выполняющих умножение матрицы на матрицу с точностью I цифр. В третьем столбце показаны результаты для /=16, п = т = к = 32, а четвертый столбец соответствует / = 32, п = т = к= 28. Во всех случаях результаты даны для операций с фиксированной запятой, выполняемых в одну секунду. Ни один цифровой процессор (оптический или элект-  [c.207]

На рис. 11.9, а изображен граф для процедуры вычисления внутреннего произведения ряда векторов с образцовым вектором Ь во временной области посредством рекурсивного удвоения. При умножении матрицы на вектор вектора могут рассматриваться как строки матрицы А. В то время как один вектор умножается в процессорах с 1 по 8, результаты предшествующего умножения суммируются в процессорах с 9 по 12. Величина выходного вектора для умножения матрицы на вектор получается в каждом тактовом цикле, или шаге выполнения расчетов.  [c.387]

Элементная база интегральной оптики достаточно просто позволяет реализовать практически все элементарные арифметические операции, однако двухмерная природа ОИС несколько ограничивает возможности проектирования по сравнению с объемными оптическими процессорами. В настоящий момент реализация таких операций, как умножения матрицы на вектор, матрицы на матрицу, активно исследуется. В схеме параллельного умножения матрицы на вектор однородная плоская волна попадает на N элементов электрооптического дифракционного модулятора. Затем световой поток проходит через ряд дифракционных решеток, разделяющих его на N пучков, каждый из которых попадает на следующий дифракционный модулятор, где пучки модулируются пропорционально соответствующим элементам матрицы М. Умножение производится по елочной схеме, а произведения, соответствующие компонентам результирующего вектора, суммируются с помощью линейки линз.  [c.155]

Для получения неизвестных [Су j требуется лишь умножение матрицы на вектор. Следовательно, явный метод значительно быстрее неявного. Однако при достаточно больших значениях временных шагов At явные методы могут быть численно неустойчивы.  [c.312]

Умножение матрицы на вектор является частным случаем перемножения прямоугольных матриц. Умножение производится в порядке, определяемом уравнением (1). В этом случае векторы записываются в виде матрицы-столбца  [c.156]

При расчете характеристик АР с различными амплитудно-фазовыми распределениями волн [Л], падающих на входы согласованных излучателей, использование модели (3.4) значительно сокращает время вычислений. Это обусловлено тем, что матрица [ >] рассчитывается только один раз и запоминается в ОП ЭВМ, а расчет вектор-столбца [/] заключается в простом умножении матрицы [/)] на вектор-столбцы [С]=[/ ] [Л], соответствующие различным амплитудно-фазовым распределениям сигналов, возбуждающих АФАР.  [c.90]

Умножение матрицы на вектор-столбец Произвольное и периодическое  [c.108]

Полагая, что читателю известен способ умножения матрицы на вектор, приведем метод получения грубой оценки согласованности.  [c.33]

При нахождении суммы тензоров одинакового ранга элементы, занимающие одно и то же место в матрице, суммируются. Для умножения диады на вектор нужно выполнять операцию умножения только тех векторов, между которыми стоит соответствующий знак умножения (скалярного или векторного).  [c.39]

При вычислении вектора Р в соответствии с (19.26) приходится вычислять а — 1 произведений матрицы на вектор, что потребует 4 (а — 1)/г операций умножения, так как матрицы могут быть вычислены при вычислении матрицы Н.  [c.140]

При умножении матриц и матриц на вектор в каждой отдельно взятой операции прямой доступ к файлам не дает преимуществ по сравнению с последовательным. Однако преимущество появляется при реализации комплекса операций, в котором данные используются в различной упорядоченности. В этом случае прямой доступ исключает операции пере-упорядочивания (транспонирования), которые пришлось бы выполнять при последовательной организации файлов.  [c.75]

Нетрудно убедиться в том, что умножение М-матрицы на вектор напряжений ребер Up= U u U 2, Ua, U i, Uni, Ur2, Ue, Ue2, Уез) b соответствии с (3.6a) приводит к получению уравнений ЗНК  [c.78]

В символьных вычислениях центральное место занимает операция вычисления внутреннего произведения, эквивалентная умножению составляющих элементов на вектор (векторное умножение), на матрицу (умножение матрицы на матрицу) или на корреляционную функцию. В предыдущих разделах была установлена общность процедур вычисления внутреннего произведения для большого числа алгоритмов из области цифровых вычислений. В одном типичном представлении символьных вычислений отношения знаний выражаются в терминах логического сопоставления с образцом, процедура которого определяется поиском соглашения по предпосылке-условию (с левой стороны) соотношения если [А], тогда [В] (см. разд. 10.3.5). Здесь [А] является подпространством Л -мерного векторного пространства  [c.354]

Эти выражения поясняют понятия матрицы и матричного умножения. Матрицы определяются как массивы чисел указанного в (А 1.2) типа. Массив в виде одного столбца чисел часто называется вектором или матрицей-столбцом. Умножение матрицы на матрицу-столбец записывается в виде (А1.1) или (А1.1а).  [c.526]

Заметим, что матрица вырождена после умножения ее на вектор (1, 1, 1) получается нуль. Вектор до = 1, дч2 = 1. горизонтальную прямую = 1, так что ее производная равна нулю. Вырождение  [c.71]

Таким образом, дополнительные затраты на вычисление отношения Релея здесь с лихвой окупаются. Отметим, что вычисление (5.23) эквивалентно умножению двух разреженных матриц на векторы.  [c.123]

Умножение матрицы на вектор. Данная операция всегда может быть выполнена при однократном обмене, даже когда ни один из операндов (или результат) не размещается в ОЗУ. Пусть вектор4 = а. упорядо-68  [c.68]

Линейно-алгебраические операции, рассмотренные в предыдущем параграфе, можно отнести к трем типам, исходя из принципов организации реализующих их вычислительных процессов. К типу коротких отнесем операции, для реализации которых принципиально достаточен однократный обмен файлов, содержащих операнды и результат сложение матриц и векторов, умножение на скаляр и т. п. К типу длинных отнесем операции, для реализации которых принципиально требуется многократный обмен одного файла, содержащего операнд или результат транспонирование, обращение матрицы, умножение двух матриц и т. п., в случае когда операнды и результат не размещаются целиком в ОЗУ. К типу условнокоротких отнесем операции, для реализации которых при некоторых дополнительных условиях достаточен однократный обмен файлов. В основном, это весьма распространенная в АСУ операция умножения матрицы на вектор, когда операнды и результат не размещаются в ОЗУ. В общем случае эта операция выполнима по алгоритму умножения двух матриц. Однако, если матрица упорядочена так, что старший индекс ее элементов является индексом, различающим элементы вектора, то эта операция реализуется однократным обменом. Таким образом, при дополнительном условии — при совпадении упорядоченностей элементов матрицы и вектора — эта операция является короткой. Без этого дополнительного условия операция является длинной, так как в этом случае она выполняется либо как умножение двух матриц, либо (что короче) в две стадии сначала выполняется транспонирование матрицы, затем собственно умножение, но при однократном обмене.  [c.77]

Рассмотрение данного примера было вызвано необходимостью обеспечить высокую скорость при выполнении операции внутреннего произведения в линейной алгебре (например, для умножения матрицы на вектор или матрицы на матрицу), в противном случае эти операции становятся бессысленными. Операции внутреннего произведения включают умножение двух чисел и сложение результата с третьим числом. Например, 2-разрядный умножитель-сумматор умножает два 2-раз-рядных числа М ц Ы, прибавляет результат к 5-разрядному входному числу X и выводит результаты в виде 5-разрядного числа У. В синхронизированном режиме работы выходной сигнал У мог бы подаваться по цепи обратной связи на вход X для того, чтобы достичь эффекта многократного накопления результата (если имеется возможность накопления до трех произведений и при этом не возникает переполнение).  [c.155]

Одна из целей цифровых оптических вычислений состоит в достижении большей гибкости системы, чем у их аналоговых предшественников. Особенность оптических компьютеров состоит в том, что они скорее выполняют не монолитные операции, а ряд простых операций, которые можно объединить для выполнения широкого круга задач. Однако в данном случае это не так плохо, поскольку при построении оптических процессоров, осуществляющих функции регистра, их возможности поднимутся на качественно новый уровень. С этой точки зрения матричное умножение (под которым подразумевают либо умножение матрицы на вектор, либо матрицы на матрицу), возможно, является наиболее полезной операцией среднего уровня из числа тех, которые только можно придумать. Многие сложные проблемы, например калмановское фильтрование,  [c.183]

Два основных блока умножителей, показанные на рис. 7.3, могз т использоваться в различных сочетаниях при формировании систолических процессоров. Процессоры данного типа ранее были описаны в [11J, и ниже зто описание просто изложено повторно. Блоки умножителей могут соединяться как последовательно, так и параллельно. В первом случае имеется один входной сигнал h и несколько входных сигналов g. Соответственно в случае умножения матрицы на вектор элементы вектора представляют собой входной сигнал h, а элементы каждой строки матрицы являются входными сигналами g. Эта схема требует сдвига только в одном измерении и будет далее именоваться одномерной архитектурой.  [c.192]

Правильный результат получают уже в смешанном формате, путем умножения исходной матрицы на дополненный вектор. Эта процедура может быть выполнена с помощью любого из обсуждавшихся выше вариантов умножения матрицы на матрицу. Ценой этого будет служить увеличение объема памяти, необходимое для записи вектора, и задача класса умножение матрицы на вектор оказывается отданной в уплату за задачу класса матрица — матрица. В целом же кажется более выгодным использовать оптические методы для выполнения суммирования вдоль противодиагоналей. В число возможных оптических способов решения такой задачи входит сегментация цилиндрических линз, сегментация голографических линз или применение матриц оптических волокон, соединяющих соответствующие элементы с детекторами, на которых происходит суммирование.  [c.203]

В работе [20] предлолсхемы построения процессоров внешнего произведения. В первом случае используется перекрестное включение одномерных входных модуляторов (рис. 7.14). Для умножения матрицы на вектор в один из модуляторов вводят целый столбец матрицы, а элементы вектора размещаются в другом модуляторе. Матричный модулятор должен обладать т1 разрядами, а модулятор для ввода вектора должен иметь I разрядов. Когда оба модулятора загружены, то от источника света подается импульс света и перекрестное произведение записывается на матрице пг1х1 интегрирующих по времени детекторов. Если суммирование осуществляется оптически, необходимо только т(21—1) детекторов. Каждое промежуточное произведение может быть накоплено на детекторе за время загрузки входного сигнала в модулятор, которое полагаем равным т1. Полное число тактовых импульсов для операции умножения матрицы на вектор составляет пт1. Для умножения матрицы на матрицу требуется кт 21—1) детекторов, при этом необходимое число тактовых циклов составляет лишь пт1 (если т>к).  [c.203]

МОЩЬЮ специальной перекрестной матрицы согласно данным, показанным на рис. 7.15. Если предположить, что возможна параллельная адресация всех перекрещивающихся электродов, тогда адресация всей матрицы может быть осуществлена за один тактовый цикл. В этом случае за время другого тактового цикла можно включить источник света и произвести запись набора величин промежуточных произведений. Для умножения матрицы на вектор необходимо т1х1 модуляторов, т(21—1) фотодетекторов, процедура занимает 2п тактовых циклов. Для умножения матрицы на матрицу требуется т1хЫ модуляторов, кп 21—1) фотодетекторов, затраты времени составляют лишь 2п тактовых циклов.  [c.204]

Согласно принятому правилу умножения матрицы на вектор уравнение (Ю.1З62) может быть записано в виде  [c.433]

Поэтому математической моделью излучающей системы может служить соотношение (2.24) или (2.27), т. е. систему излучателей можно описывать матрицей как [/)], так и [/)] . Размерности матриц [ )] и [/)] одинаковы, и для хранения их в ЭВМ требуются одинаковые объемы памяти. В модели (2.24) нахождение коэффициентов мод токов [/] связано с решением системы линейных алгебраических уравнений, а в модели (2.27) эти коэффициенты находятся путем умножения матрицы на вектор, что требует существенно меньшего числа операций. Матрицы [В] и имеют порядок MNxMN), т. е. с ростом числа излучателей и числа учитываемых мод он быстро увеличивается.  [c.62]

В АР с большим числом излучателей матрица [ )] содержит много элементов с малой абсолютной величиной, которые соответствуют излучателям, далеко отстоящим друг от друга. Поскольку в итерационных методах умножение матрицы на вектор является единственной операцией с матрицей, то это позволяет легко исключить операции с элементами матрицы [О], имеющими малое значение. Сохраняя в матрице [1>] только те элементы, которые соответствуют учету взаимодействия не более чем с Ь ближайшими излучателями, можно существенно уменьшить затраты машинного времени (8, 9 в табл. 3.1). Например, расчет токов АР из 21X21 полуволновых вибраторов над экраном ( =с у=0,6Я,) методом сопряженных градиентов с учетом взаимодействия  [c.110]

Отметим одно обстоятельство, обусловленное линейностью рассматриваемой задачи (1.63), (1.64), Поскольку компоненты матрицы А не изменяются во времени при = onst. С, = onst, целесообразно один раз перед началом цикла по времени вычислить обратную матрицу А- а затем дальнейшие расчеты в цикле свести к формированию столбца и определению температур U + путем умножения обратной матрицы на вектор-столбец U + Обратная матрица может быть найдена, например, с помощью подпрограммы MINV (см. .1.3). Таким путем можно достичь значительной экономии машинного времени по сравнению с формированием матрицы и решением системы на каждом шаге по времени.  [c.47]

Формулы (1.14) можно представить как результат умножения матрицы на столбцевой вектор  [c.41]

Двумерная архитектура. В [14] описана двумерная архитектура с пространственным интегрированием и рассмотрен случай систолического акустооптического двоичного процессора выполнения свертки (САОДПС). Как показано на рис. 7.7, для САОДПС требуется I входов для ввода вектора и т входов для ввода матрицы. Имеется т детекторов выходного сигнала. САОДПС должен иметь два набора сдвиговых регистров один набор быстро сдвигает матричные элементы относительно элементов вектора, в то время как другой набор регистров медленно передвигает вектор последовательно по всем строкам матрицы. Вектор выходного сигнала представляет собой т последовательных серий, которые требуется просуммировать и преобразовать. Процесс умножения занимает время, равное п- -т—1) (2/—1) тактовых циклов. Последний из обсуждаемых умножителей матриц на вектор, показанный на рис. 7.8, представляет двумерную архитектуру с временным интегрированием. Имеется один вход для вектора, который требуется развернуть и переместить относительно т входов матрицы. Выходной сигнал требует 21—1)т фотодетекторов, которые должны быть синхронизированы с целью параллельного вывода выходных сигналов. Затраты времени составят в этом случае п(21—1) + (т—1) тактовых циклов.  [c.195]

Разновидности основной архитектуры. Сообщалось и о других способах преобразования схем вычисления свертки в схемы умножителей матрицы на матрицу. В [16] для получения промежуточного произведения при вычислении внутреннего произведения двух векторов используется основная схема вычисления свертки с интегрированием по времени. Все промежуточные произведения вычисляются параллельно на независимых друг от друга умножителях и суммируются с помощью цилиндрической линзы. Таким образом, для перемножения двух векторов, состоящих из п элементов, с точностью в I знаков требуется п входов для каждого вектора, 21—1 фотодетекторных элементов и 21—1 тактовых циклов. При выполнении суммирования с помощью линз максимальное значение на детектирующем элементе составляет п1 Ь—1) . Матрично-векторный умножитель схематично показан на рис. 7.12. Следует заметить, что буферные нули в данном случае не требуются, поскольку элементы вводятся параллельно. Для построения матрично-векторного умножителя для перемножения матрицы тХп и вектора пХ все т умножителей векторов размещаются параллельно. Теперь каждый элемент матрицы а имеет вход (при общем числе входов тп), а элементы вектора Ь сдвигаются относительно этих входов. Умножение выполняется за интервал времени, составляющий т 21—1) циклов при этом i используется т(21—1) детекторов выходного сигнала. Возможности процессора удается расширить до операции умножения матрицы на матрицу с помощью временного разделения каналов для ввода элементов Ь при условии построчной загрузки матрицы по соответствующим буферам. В схеме имеется также тп входов для одной матрицы и п входов для другой, а также т 21—1) детекторов выходного сигнала. Затраты времени на вычисления составляют k + m—1) 21—1) тактовых циклов.  [c.200]

Все процессоры характеризуются тем, что чем больше объем задачи, тем быстрее они работают. Например, умножители матрицы на вектор (за одним исключением) работают со скоростью в десятки мегаопераций в секунду, характерной для небольших по объему задач. Процессоры умножения матрицы на матрицу работают со скоростями порядка гигаопераций в секунду, что характерно для задач большего масштаба. Очевиден выигрыш в быстродействии, получаемый для параллельной обработки. Более неопределенной характеристикой является абсолютная величина быстродействия. Представленные здесь цифры являются лишь оценками, но они действительно отражают общие свойства оптических вычислений. За небольшим числом исключений имеется очень небольшая разница (менее чем на порядок по величине) между разными видами оптических процессоров, используемых для решения заданной задачи. Возможности оптических процессоров, как представляется, достаточно жестко ограничены определенными скоростями. При сравнении с возможностями электронных процессоров скорости вряд ли произведут на читателя глубокое впечатление. На момент написания книги на промышленно освоенных электронных устройств удается достичь скоростей около 50 мегаопераций в секунду. Разрабатываемые в настоящее время умножители матрицы на вектор не позволят превзойти эту величину. Умножители матрицы на матрицу демонстрируют существенно более высокие возможности.  [c.208]

Быстродействие оптических матричных умножителей было уже описано в табл. 7.1 и 7.2. При вычислении отношения Псалтиса числа в табл. 7.1 и 7.2 имеют коэффициент запаса 2, поскольку были учтены операции умножения и сложения. Для умножителей матриц на векторы соотношение Псалтиса показано в табл. 7.3. Умножители матрицы на матрицы показаны в табл. 7.4. Вычисления проведены для тех же случаев, что и в табл. 7.1 и 7.2. Второй столбец табл. 7.3 предполагает значение / = 16, п=т = 32, в то время как для третьего столбца /=32, п = т= 28. В табл. 7.4 второй столбец соответствует значениям /=16, n = m = = 32, а третий столбец относится к / = 32, п=т = k=l28.  [c.210]


mash-xxl.info

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *