热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

向量的點積和叉積定義

轉自:http:www.cppblog.comloveddayarchive2007042622890.html向量的點積:假設向量u(ux,uy)和v

轉自:http://www.cppblog.com/lovedday/archive/2007/04/26/22890.html

 

向量的點積:

假設向量u(uxuy)和v(vxvy),uv之間的夾角為α,從三角形的邊角關系等式出發,可作出如下簡單推導:

  |u - v||u - v| = |u||u| + |v||v| - 2|u||v|cosα   

===>
  
  (ux - vx)2 + (uy - vy)2  = ux+ uy2 +vx2+vy2- 2|u||v|cosα 

===>
   
   -2uxvx - 2uyvy = -2|u||v|cosα

===>

   cosα = (uxvx + uyvy) / (|u||v|)

這樣,就可以根據向量uv的坐標值計算出它們之間的夾角。

定義uv的點積運算: u . v = (uxvx + uyvy),

上面的cosα可簡寫成: cosα = u . v / (|u||v|)

u . v &#61; 0時&#xff08;即uxvx &#43; uyvy &#61; 0&#xff09;&#xff0c;向量uv垂直&#xff1b;當u . v > 0時&#xff0c;uv之間的夾角為銳角&#xff1b;當u . v <0時&#xff0c;uv之間的夾角為鈍角。

可以將運算從2維推廣到3維。



向量的叉積&#xff1a;

假設存在向量u(uxuyuz), v(vxvyvz), 求同時垂直於向量uv的向量w(wxwywz).

因為wu垂直&#xff0c;同時wv垂直&#xff0c;所以w . u &#61; 0, w . v &#61; 0; 即

uxwx &#43; uywy &#43; uzwz &#61; 0;
vxwx &#43; vywy &#43; vzwz &#61; 0;

分別削去方程組的wywx變量的系數&#xff0c;得到如下兩個等價方程式&#xff1a;

(uxvy - uyvx)wx &#61; (uyvz - uzvy)wz
(uxvy - uyvx)wy &#61; (uzvx - uxvz)wz

於是向量w的一般解形式為&#xff1a;

w &#61; (wxwywz) &#61; ((uyvz - uzvy)wz / (uxvy - uyvx), (uzvx - uxvz)wz / (uxvy - uyvx), wz)
  &#61; (wz / (uxvy - uyvx) * (uyvz - uzvyuzvx - uxvzuxvy - uyvx))

因為&#xff1a;

   ux(uyvz - uzvy) &#43; uy(uzvx - uxvz) &#43; uz(uxvy - uyvx)
 &#61; uxuyvz - uxuzvy &#43; uyuzvx - uyuxvz &#43; uzuxvy - uzuyvx
 &#61; (uxuyvz - uyuxvz) &#43; (uyuzvx - uzuyvx) &#43; (uzuxvy - uxuzvy)   
 &#61; 0 &#43; 0 &#43; 0 &#61; 0

   vx(uyvz - uzvy) &#43; vy(uzvx - uxvz) &#43; vz(uxvy - uyvx)   
 &#61; vxuyvz - vxuzvy &#43; vyuzvx - vyuxvz &#43; vzuxvy - vzuyvx
 &#61; (vxuyvz - vzuyvx) &#43; (vyuzvx - vxuzvy) &#43; (vzuxvy - vyuxvz)
 &#61; 0 &#43; 0 &#43; 0 &#61; 0

由此可知&#xff0c;向量(uyvz - uzvyuzvx - uxvzuxvy - uyvx)是同時垂直於向量uv的。

為此&#xff0c;定義向量u &#61; (uxuyuz)和向量 v &#61; (vxvyvz)的叉積運算為&#xff1a;u x v &#61; (uyvz - uzvyuzvx - uxvzuxvy - uyvx)

上面計算的結果可簡單概括為&#xff1a;向量x v垂直於向量uv


根據叉積的定義&#xff0c;沿x坐標軸的向量i &#61; (1, 0, 0)和沿y坐標軸的向量j &#61; (0, 1, 0)的叉積為&#xff1a;

 i x j &#61; (1, 0, 0) x (0, 1, 0) &#61; (0 * 0 - 0 * 1, 0 * 0 - 1 * 0, 1 * 1 - 0 * 0) &#61; (0, 0, 1) &#61; k

同理可計算j x k:
 
 j x k &#61; (0, 1, 0) x (0, 0, 1) &#61; (1 * 1 - 0 * 0, 0 * 0 - 0 * 1, 0 * 0 - 0 * 0) &#61; (1, 0, 0) &#61; i

以及k x i:

 k x i &#61; (0, 0, 1) x (1, 0, 0) &#61; (0 * 0 - 1 * 0, 1 * 1 - 0 * 0, 0 * 0 - 0 * 0) &#61; (0, 1, 0) &#61; j

由叉積的定義&#xff0c;可知&#xff1a;

 v x u &#61; (vyuz - vzuyvzux - vxuzvxuy - vyux) &#61; - (u x v)


推荐阅读
  • 【转】强大的矩阵奇异值分解(SVD)及其应用
    在工程实践中,经常要对大矩阵进行计算,除了使用分布式处理方法以外,就是通过理论方法,对矩阵降维。一下文章,我在 ... [详细]
  • WCF类型共享的最佳实践
    在使用WCF服务时,经常会遇到同一个实体类型在不同服务中被生成为不同版本的问题。本文将介绍几种有效的类型共享方法,以解决这一常见问题。 ... [详细]
  • 本文介绍了多种开源数据库及其核心数据结构和算法,包括MySQL的B+树、MVCC和WAL,MongoDB的tokuDB和cola,boltDB的追加仅树和mmap,levelDB的LSM树,以及内存缓存中的一致性哈希。 ... [详细]
  • 短暂的人生中,IT和技术只是其中的一部分。无论换工作还是换行业,最终的目标是成功、荣誉和收获。本文探讨了技术人员如何跳出纯技术的局限,实现更大的职业发展。 ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 使用ArcGIS for Java和Flex浏览自定义ArcGIS Server 9.3地图
    本文介绍了如何在Flex应用程序中实现浏览自定义ArcGIS Server 9.3发布的地图。这是一个基本的入门示例,适用于初学者。 ... [详细]
  • 开发笔记:前端之前端初识
    开发笔记:前端之前端初识 ... [详细]
  • 从零开始编译Linux系统:第16章 全新起点
    本章将详细介绍如何从零开始编译一套完整的Linux系统,涵盖关键组件如glibc库的介绍及其重要性。通过本文,读者将了解从源代码构建Linux系统的全过程。 ... [详细]
  • 经过三轮严格的面试,终于顺利加入沪江网。虽然在团队开发方面还有待提升,但充满信心和期待,希望能在这里不断学习和成长。 ... [详细]
  • 本文介绍 DB2 中的基本概念,重点解释事务单元(UOW)和事务的概念。事务单元是指作为单个原子操作执行的一个或多个 SQL 查询。 ... [详细]
  • 优化虎牙直播体验的插件
    近期在观看虎牙直播时,发现广告和一些低质量直播间频繁出现,严重影响了观看体验。为此,我开发了一款插件,帮助用户屏蔽这些不想要的内容。以下是插件的介绍和使用方法。 ... [详细]
  • 一个初秋的雨夜,我独自漫步在校园的小道上,心中突然涌起对理想爱情的憧憬。这篇文章将分享我对理想伴侣的期望,以及与他共度美好时光的愿景。 ... [详细]
  • Spring 切面配置中的切点表达式详解
    本文介绍了如何在Spring框架中使用AspectJ风格的切面配置,详细解释了切点表达式的语法和常见示例,帮助开发者更好地理解和应用Spring AOP。 ... [详细]
  • 本文介绍了一种使用 JavaScript 计算两个日期之间时间差的方法。该方法支持多种时间格式,并能返回秒、分钟、小时和天数等不同精度的时间差。 ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
author-avatar
热情风吟_181
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有