exponenta event banner

точка

Скалярное произведение

Описание

пример

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

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

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

пример

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

Примеры

свернуть все

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

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