linalg::scalarProductСкалярное произведение векторов
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
linalg::scalarProduct(u, v, <Real>)
linalg::scalarProduct(u, v) вычисляет скалярное произведение векторов
и
относительно стандартного основания, т.е. суммы
.
Скалярное произведение также называется “скалярным произведением” или “скалярным произведением”.
Если звонок компонента векторов u и v не задает запись "conjugate" или если опция Real задан, затем linalg::scalarProduct использует определение u 1 v1 + … + u n vn скалярного произведения.
Векторы u и v должен быть задан по тому же звонку компонента.
linalg::scalarProduct может быть переопределен к различному скалярному произведению. Это также влияет на поведение функций, таких как linalg::angle, linalg::factorQR, linalg::isUnitaryнорма (для векторов и матриц), linalg::orthog и linalg::pseudoInverse зависьте от определения linalg::scalarProduct. Смотрите пример 3.
Свойства идентификаторов учтены.
Мы вычисляем скалярное произведение векторов (i, 1) и (1, - i):
MatC := Dom::Matrix(Dom::Complex): u := MatC([I, 1]): v := MatC([1, -I]): linalg::scalarProduct(u, v)
![]()
Мы вычисляем скалярное произведение векторов
и
с символьными записями u 1, u 2, v 1, v 2 по стандартному звонку компонента для матриц:
delete u1, u2, v1, v2: u := matrix([u1, u2]): v := matrix([v1, v2]): linalg::scalarProduct(u, v)
![]()
Можно использовать assume чтобы сказать систему, что символьные компоненты должны представлять вещественные числа:
assume([u1, u2, v1, v2], Type::Real):
Затем скалярное произведение
и
упрощает до:
linalg::scalarProduct(u, v)
![]()
В качестве альтернативы опция Real может быть задан:
unassume(u1, u2, v1, v2): linalg::scalarProduct(u, v, Real)
![]()
Одно конкретное скалярное произведение в вещественном векторном пространстве непрерывных функций на интервале [0, 1] задано
.
Чтобы вычислить ортогональное основание, соответствующее полиномиальному основанию 1, t, t 2, t 3, … относительно этого скалярного произведения, мы заменяем стандартное скалярное произведение следующей процедурой:
standardScalarProduct := linalg::scalarProduct:
unprotect(linalg):
linalg::scalarProduct := proc(u, v)
local F, f, t;
begin
// (0)
f := expr(u[1] * v[1]);
// (1)
t := indets(f);
if t = {} then t := genident("t") else t := op(t, 1) end_if;
// (2)
F := int(f, t = 0..1);
// (3)
u::dom::coeffRing::coerce(F)
end:Мы запускаем с шага (0) преобразовывать f (t) g (t) к выражению основного доменного типа, такого что системная функция int на шаге (2) может обработать его вход (это не необходимо, если элементы звонка компонента векторов уже представлены элементами основных областей).
Шаг 1 извлекает неопределенные из полиномов, шаг (2) вычисляет скалярное произведение, как задано выше и шаг (3) преобразует результат назад в элемент звонка компонента векторов u и v.
Обратите внимание на то, что мы должны оставить идентификатор, защищенный от записи без защиты, linalg, в противном случае присвоение привело бы к сообщению об ошибке.
Мы затем создаем матрицу, которая состоит из первых пяти из вышеупомянутых полиномов:
P := matrix([[1, t, t^2, t^3, t^4]])
![]()
Если мы теперь выполняем процедуру Ортогонализации Грама-Шмидта на столбцах P с функциональным linalg::orthog, мы добираемся:
S := linalg::orthog(linalg::col(P, 1..4))
![]()
Каждый вектор в S является ортогональным к другим векторам в S относительно модифицированного скалярного произведения. Мы проверяем это на первый вектор:
linalg::scalarProduct(S[1], S[j]) $ j = 2..nops(S)
![]()
Наконец, мы отменяем переопределение скалярного произведения, чтобы не столкнуться с проблемой с последующими расчетами:
linalg::scalarProduct := standardScalarProduct: protect(linalg, Error):
|
Векторы той же размерности (вектором является n ×1 или 1 ×n матрица области категории |
|
Используйте u 1 v1 + … + u n vn как определение скалярного произведения, т.е. подавите использование |
Элемент звонка компонента u и v.