也许这个问题更适合放在网站的数学板块,但我猜stackoverflow也适合。在数学中,一个向量有位置和方向,但在编程中,一个向量通常被定义为:
Vector v (3, 1, 5);
方向和大小在哪里?对我来说,这只是一个点,而不是一个向量...所以怎么回事呢?可能是我理解有误,如果有人能解释一下,那就非常感激。
(0,0,0)
为原点,则点p=(3,1,5)
可写成:
i
、j
和k
是x
、y
和z
方向上的单位向量。为方便起见,在编程构造中省略了单位向量。("Hello", "little", "world")
也是编程中的向量,尽管(显然)它在数学意义上没有向量解释。最严谨的说法是,数学向量是一个一阶张量,根据张量变换规则从一个坐标系转换到另一个坐标系。需要记住的物理概念是,向量具有大小和方向。
编程向量是数据结构,不需要按照任何规则进行转换,可能有或没有参考坐标系的概念。如果您使用向量数据结构来保存数字,则它们可能符合数学定义。但是,如果您有一个对象向量,则它们与坐标变换无关。
实际上:
在数学中,向量只是一个没有位置的方向(实际上更通用,但为了保持您的术语)。在编程中,您经常使用向量来表示点。您可以将向量视为从原点(0,0,0)
指向点(3,1,5)
的向量,称为该点的位置向量。请参阅有关解析和仿射几何的文本以获得更多见解。
在数学中,向量是某个域(例如实数/复数、函数、字符串)上的n维空间中的一个元素。它可能具有无限维度,例如函数空间L^2
。我不记得在编程中使用过无限维向量(无限向量不是非有限长度的向量,而是具有无限数量元素的向量)。
向量也意味着一组坐标。这是在编程中使用的方式。就像一组数字一样。您可能希望使用vector
对象表示位置向量、速度向量、动量向量、力向量,或者您可以以任何适合您的方式表示它。
许多时候,向量量可以用4个坐标代替3个坐标来表示(请参见计算机图形学中的齐次坐标),因此物理向量由具有4个元素的计算机vector
表示。或者,您可以分别存储方向和大小,或者使用3、4或更多坐标进行编码。
我想我要说的是,计算机语言旨在表示物理模型,但是抽象的数据容器是程序员用作建模工具的。