dot

Скалярный продукт

Описание

пример

C = dot(A,B) возвращает скалярный продукт A и B.

  • Если A и B являются векторами, тогда они должны иметь ту же длину.

  • Если A и B являются матрицами или многомерными массивами, тогда они должны иметь тот же размер. В этом случае dot функция обрабатывает A и B как наборы векторов. Функция вычисляет точечный продукт соответствующих векторов вдоль первого измерения массива, размер которого не равен 1.

пример

C = dot(A,B,dim) оценивает точечный продукт A и B вдоль размерности, dim. The dim вход является положительным целочисленным скаляром.

Примеры

свернуть все

Создайте два простых трехэлементных векторов.

A = [4 -1 2];
B = [2 -2 -1];

Вычислим точечный продукт A и B.

C = dot(A,B)
C = 8

Результатом является 8 с тех пор

C = A(1)*B(1) + A(2)*B(2) + A(3)*B(3)

Создайте два комплексных вектора.

A = [1+i 1-i -1+i -1-i];
B = [3-4i 6-2i 1+2i 4+3i];

Вычислим точечный продукт A и B.

C = dot(A,B)
C = 1.0000 - 5.0000i

Результатом является комплексный скаляр с A и B являются комплексными. В целом скалярный продукт двух комплексных векторов также комплексно. Исключение - когда вы берете скалярный продукт комплексного вектора с собой.

Найдите скалярное произведение A с самим собой.

D = dot(A,A)
D = 8

Результатом является настоящий скаляр. Скалярное произведение вектора с самим собой связано с евклидовой длиной вектора, norm(A).

Создайте две матрицы.

A = [1 2 3;4 5 6;7 8 9];
B = [9 8 7;6 5 4;3 2 1];

Найдите точечный продукт A и B.

C = dot(A,B)
C = 1×3

    54    57    54

Результат, C, содержит три отдельных точечных продуктов. dot обрабатывает столбцы A и B как векторы и вычисляет скалярный продукт соответствующих столбцов. Так, например, C(1) = 54 является точечным продуктом A(:,1) с B(:,1).

Найдите точечный продукт A и B, обрабатывая строки как векторы.

D = dot(A,B,2)
D = 3×1

    46
    73
    46

В этом случае D(1) = 46 является точечным продуктом A(1,:) с B(1,:).

Создайте два многомерных массивов.

A = cat(3,[1 1;1 1],[2 3;4 5],[6 7;8 9])
A = 
A(:,:,1) =

     1     1
     1     1


A(:,:,2) =

     2     3
     4     5


A(:,:,3) =

     6     7
     8     9

B = cat(3,[2 2;2 2],[10 11;12 13],[14 15; 16 17])
B = 
B(:,:,1) =

     2     2
     2     2


B(:,:,2) =

    10    11
    12    13


B(:,:,3) =

    14    15
    16    17

Вычислим точечный продукт A и B по третьей размерности (dim = 3).

C = dot(A,B,3)
C = 2×2

   106   140
   178   220

Результат, C, содержит четыре отдельных точечных продуктов. Первый точечный продукт, C(1,1) = 106, равно скалярному продукту A(1,1,:) с B(1,1,:).

Входные параметры

свернуть все

Входные массивы, заданные как числовые массивы.

Типы данных: single | double
Поддержка комплексного числа: Да

Размерность для работы, заданная как положительный целочисленный скаляр Если значение не задано, по умолчанию это первое измерение массива, не равный 1.

Рассмотрим два 2-D входных массива, A и B:

  • dot(A,B,1) обрабатывает столбцы A и B как векторы и возвращает скалярные продукты соответствующих столбцов.

  • dot(A,B,2) обрабатывает строки A и B как векторы и возвращает скалярные продукты соответствующих строк.

dot возвращает conj(A).*B если dim больше ndims(A).

Подробнее о

свернуть все

Скалярный точечный продукт

Скалярный продукт двух векторов действительных чисел n длины равен

u·v=i=1nuivi=u1v1+u2v2+...+unvn.

Это отношение коммутативно для векторов действительных чисел, таких что dot(u,v) равен dot(v,u). Если скалярный продукт равен нулю, то u и v перпендикулярны.

Для сложных векторов скалярный продукт включает комплексный сопряженный. Это гарантирует, что скалярное произведение любого вектора с самим собой реально и положительно определено.

u·v=i=1nu¯ivi.

В отличие от отношения для векторов действительных чисел, комплексное соотношение не коммутативно, так что dot(u,v) равен conj(dot(v,u)).

Алгоритмы

  • Когда вводит A и B являются действительными или комплексными векторами, dot функция обрабатывает их как векторы-столбцы и dot(A,B) то же, что и sum(conj(A).*B).

  • Когда входами являются матрицы или многомерные массивы, dim аргумент определяет, в каком измерении sum функция работает. В этом случае dot(A,B) то же, что и sum(conj(A).*B,dim).

Расширенные возможности

.

См. также

| | |

Представлено до R2006a