一、问题提出

  已知一个n维向量A,和一个标量k,可将它们进行标量乘法运算,得到向量B——
B = kA

  那么,若只知两个共线的向量A、B,如何求k呢,既——
k = B/A = ?

二、解决办法

  我们可以将上下均乘以(点积,dot product)“A”——
k = B/A
= (B . A)/(A . A)
= (B . A)/( |A|^2 )
= (b1*a1 + b2*a2 + b3*a3 + ... + bn*an) / ( a1*a1 + a2*a2 + a3*a3 + ... + an*an )

三、几何解释、推广到非共线向量

  先回忆一下向量点积的的几何算法——
A . B = |A| * |B| * cos(th)
注:th是两个向量的夹角

  将上式除以 |A|(向量A的模长),可得出向量B在向量A上的投影的模长——
| Prj(B)A | = |A| * |B| * cos(th) / |A| = |B| * cos(th)

  将投影的模长再除以 |A|,既是 投影模长在总长度的比例——
k = | Prj(B)A | / |A| = (|B|/|A|) * cos(th)

  对于共线向量而言,很明显,就是先前欲求的标量k值。
  对于非共线向量而言,则是投影向量的相关k值。

  也就是说,不论是否共线,该除法都有值(除非A是零向量)。
  在很多时候,这个特性很有用。比如在写图形编辑系统时,需要计算点击位置是线段的哪一部分。因为鼠标点击坐标是有理数(比例尺),而线段的斜率有可能是无理数,这会造成两个向量不是共线的。而本文的除法算法,可以稳健的处理这一情况。而且投影向量更符合一般的操作习惯。

向量除法——标量乘法的逆运算相关推荐

  1. matlab中的向量除法

    向量之间进行除法运算,使用不加点的矩阵除法"A/B"时,问题可以描述为:给定两个向量A.B,求一个常量x,使得A=x * B.     举个例子: [2 4]/[1 2]=2.很显 ...

  2. 向量除法能用计算机吗,为什么向量没有除法

    满意答案 (1)点乘是求向量数量积的运算,也叫内积,结果为实数, 进了大学会学到外积,结果仍为向量 (2)向量之间进行除法运算,使用不加点的矩阵除法"A/B"时,问题可以描述为:给 ...

  3. 线性代数向量乘法_向量的标量乘法| 使用Python的线性代数

    线性代数向量乘法 Prerequisite: Linear Algebra | Defining a Vector 先决条件: 线性代数| 定义向量 Linear algebra is the bra ...

  4. python二维向量运算模拟_python二维向量运算_[VB.NET][C#]二维向量的基本运算

    前言 在数学中,几何向量是指具有大小和方向的几何对象. 在编程中,向量有着广泛的应用,其作用在图形编程和游戏物理引擎方面尤为突出. 第一节 构造函数 通过创建一个二维向量的类(或结构体),实现向量的表 ...

  5. MATLAB学习第六天(向量)

    目录 MATLAB向量 MATLAB 行向量: MATLAB 列向量: 引用向量元素 MATLAB向量的加法和减法 详细例子 MATLAB标量向量乘法 详细例子 MATLAB转置向量 详细例子 MAT ...

  6. RDD、矩阵基础——3. 矩阵、向量(Breeze、BLAS)

    MLlib库底层的Vector(向量).Matrix(矩阵)运算使用了 Breeze库和BLAS库. Breeze库提供了相应计算的接口(Linalg). 但是在MLlib里面同时也提供了Vector ...

  7. DirectX 12 3D游戏开发实战(第一章向量)

    目录 第1章 向量代数 1.1 向量 1.2 长度和单位向量 1.3 点积 1.4 叉积 1.5 点 1.6 利用DirectXMath库进行向量运算 1.7 小结 1.8 练习 第1章 向量代数 向 ...

  8. Deep learning with JavaScript:

    PART2:A gentle introduction to TensorFlow.js 在本章中,以一个简单的下载时间预测问题为动力示例,我们将介绍完整的机器学习模型的主要组成部分. 我们将从实用的 ...

  9. 魔性“合成大西瓜”背后,我用 350 行代码解开了碰撞之谜!

    [CSDN 编者按]高中物理最烦的几个题:碰撞.守恒.弹性.摩擦--今天全赶一块了.以合成大西瓜为代表的小球碰撞类游戏好玩是好玩,就是有点费程序员.本文,我们将利用简单的 JavaScript 物理引 ...

最新文章

  1. 将类别加入到别人的名称空间内
  2. 单片机值得学吗?会单片机能找什么工作?
  3. 查看cananl是否启动_振动筛无法启动的3大原因及8大注意事项
  4. UA OPTI544 量子光学7 补充:Density Operator
  5. angular4更改表单中显示的值_Angular 4 动态表单教程 Reactive Forms教程
  6. BGP——同步功能【Synchronization】【路由黑洞】
  7. Mac使用sdkmanager从官网下载新版android SDK
  8. 听说3月15日深圳有场存储盛宴,约吗?
  9. python闹钟界面程序_利用QT写一个极简单的图形化Python闹钟程序
  10. NYOJ 972 核桃的数量(蓝桥杯)
  11. kindle安装插件和koreader
  12. 如何将ipad大文件传输到window PC
  13. 通俗解释什么是NFT,NFT到底是什么
  14. python 正则表达式的应用
  15. 教师招聘面试视频 计算机,怎么准备教师招聘面试试讲?(附视频)
  16. Easy Iot实现MQTT实验
  17. Excel也能制作电子印章,你见过吗?学会了职场不求人
  18. tomcat日志格式转化为json
  19. 前端三件套之JS速成
  20. 【西欧经济史第二版】【4】第一章 导言

热门文章

  1. 牛客网 --java问答题
  2. SQL Server 2008连载之存储结构——基本系统视图
  3. Zookeeper已经设置了myid文件但是依然报错myid file is missing
  4. ubuntu下面下載imdb.npz的問題
  5. Unknown custom element: xxx
  6. torchvision中Transform的normalize
  7. 如何一次性复制带有markdown/mathjax/latex的博客内容
  8. Opengl :公转与自转
  9. OpenGL 坐标变换
  10. OpenCV3学习笔记二:图像的掩膜操作