向量除法——标量乘法的逆运算
一、问题提出
已知一个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是零向量)。
在很多时候,这个特性很有用。比如在写图形编辑系统时,需要计算点击位置是线段的哪一部分。因为鼠标点击坐标是有理数(比例尺),而线段的斜率有可能是无理数,这会造成两个向量不是共线的。而本文的除法算法,可以稳健的处理这一情况。而且投影向量更符合一般的操作习惯。
向量除法——标量乘法的逆运算相关推荐
- matlab中的向量除法
向量之间进行除法运算,使用不加点的矩阵除法"A/B"时,问题可以描述为:给定两个向量A.B,求一个常量x,使得A=x * B. 举个例子: [2 4]/[1 2]=2.很显 ...
- 向量除法能用计算机吗,为什么向量没有除法
满意答案 (1)点乘是求向量数量积的运算,也叫内积,结果为实数, 进了大学会学到外积,结果仍为向量 (2)向量之间进行除法运算,使用不加点的矩阵除法"A/B"时,问题可以描述为:给 ...
- 线性代数向量乘法_向量的标量乘法| 使用Python的线性代数
线性代数向量乘法 Prerequisite: Linear Algebra | Defining a Vector 先决条件: 线性代数| 定义向量 Linear algebra is the bra ...
- python二维向量运算模拟_python二维向量运算_[VB.NET][C#]二维向量的基本运算
前言 在数学中,几何向量是指具有大小和方向的几何对象. 在编程中,向量有着广泛的应用,其作用在图形编程和游戏物理引擎方面尤为突出. 第一节 构造函数 通过创建一个二维向量的类(或结构体),实现向量的表 ...
- MATLAB学习第六天(向量)
目录 MATLAB向量 MATLAB 行向量: MATLAB 列向量: 引用向量元素 MATLAB向量的加法和减法 详细例子 MATLAB标量向量乘法 详细例子 MATLAB转置向量 详细例子 MAT ...
- RDD、矩阵基础——3. 矩阵、向量(Breeze、BLAS)
MLlib库底层的Vector(向量).Matrix(矩阵)运算使用了 Breeze库和BLAS库. Breeze库提供了相应计算的接口(Linalg). 但是在MLlib里面同时也提供了Vector ...
- DirectX 12 3D游戏开发实战(第一章向量)
目录 第1章 向量代数 1.1 向量 1.2 长度和单位向量 1.3 点积 1.4 叉积 1.5 点 1.6 利用DirectXMath库进行向量运算 1.7 小结 1.8 练习 第1章 向量代数 向 ...
- Deep learning with JavaScript:
PART2:A gentle introduction to TensorFlow.js 在本章中,以一个简单的下载时间预测问题为动力示例,我们将介绍完整的机器学习模型的主要组成部分. 我们将从实用的 ...
- 魔性“合成大西瓜”背后,我用 350 行代码解开了碰撞之谜!
[CSDN 编者按]高中物理最烦的几个题:碰撞.守恒.弹性.摩擦--今天全赶一块了.以合成大西瓜为代表的小球碰撞类游戏好玩是好玩,就是有点费程序员.本文,我们将利用简单的 JavaScript 物理引 ...
最新文章
- 将类别加入到别人的名称空间内
- 单片机值得学吗?会单片机能找什么工作?
- 查看cananl是否启动_振动筛无法启动的3大原因及8大注意事项
- UA OPTI544 量子光学7 补充:Density Operator
- angular4更改表单中显示的值_Angular 4 动态表单教程 Reactive Forms教程
- BGP——同步功能【Synchronization】【路由黑洞】
- Mac使用sdkmanager从官网下载新版android SDK
- 听说3月15日深圳有场存储盛宴,约吗?
- python闹钟界面程序_利用QT写一个极简单的图形化Python闹钟程序
- NYOJ 972 核桃的数量(蓝桥杯)
- kindle安装插件和koreader
- 如何将ipad大文件传输到window PC
- 通俗解释什么是NFT,NFT到底是什么
- python 正则表达式的应用
- 教师招聘面试视频 计算机,怎么准备教师招聘面试试讲?(附视频)
- Easy Iot实现MQTT实验
- Excel也能制作电子印章,你见过吗?学会了职场不求人
- tomcat日志格式转化为json
- 前端三件套之JS速成
- 【西欧经济史第二版】【4】第一章 导言