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

– это способ перемножения двух векторов. векторов a = (a^, a2, a3, ^) и b = (bj, b2, b3, ^) вычисляется по формуле B.10.

Формула B.10. , выраженное через координаты

Для реализации скалярного произведения применяется следующая функция:

def dotproduct(a,b):

return sum([a[l]*b[l] for l ln range(len(a))]) Если 9 – угол между двумя векторами, то скалярное произведение можно вычислить также по формуле B.11.

Формула B.11. , выраженное через угол

Это означает, что скалярное произведение можно использовать для вычисления угла между векторами:

from math lmport acos

#   Вычисляем длину вектора def veclength(a):

return sum([a[l] for l ln range(len(a))])**.5

#   Вычисляем угол между векторами def angle(a,b):

dp=dotproduct(a,b) la=veclength(a) lb=veclength(b) costheta=dp/(la*lb) return acos(costheta)

Скалярные произведения применялись ранее для вычисления углов между векторами, соответствующими классифицируемым образцам.

 

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100