编程学习线性代数01 - 向量及其表示

Posted by zihengCat on 2018-03-25

前言

本文讲解向量的基本概念及其表示方法,并通过编程实现向量数据结构。

向量的基本概念

向量(英语:vector,也称矢量)是数学、物理学和工程学等多个学科中的基本概念,指一个同时具有大小和方向几何对象
数学上,一般只考虑向量的大小与方向,不考虑向量起点(自由向量)。
如果两个向量大小相等,方向相同,我们就说这两个向量是相等的。

向量的表示方法

数学上,常用一条有向线段来表示向量,可以标明向量的起点与终点,有时也直接使用字母表示。
向量也可以用矩阵的方式来表示。

vector-represent

$$ \overrightarrow{AB} $$ $$ \overrightarrow{v} $$ $$ \overrightarrow{v} = \begin{bmatrix} x_{1} \\ x_{2} \\ ... \\ x_{n} \end{bmatrix} $$

向量的数据结构

在了解向量基本概念之后,我们可以考虑向量的数据结构。
向量的矩阵表示法可以帮助我们构建起简单的向量数据结构。只需使用数组存储向量各维度的数值即可。比较两个向量是否相等就转化为比较向量各个维度的数值是否相等。

class Vector(object):
    def __init__(self, coordinates):
        try:
            # 存储向量各维度数值
            self.coordinates = tuple(coordinates)
            # 存储向量维度
            self.dimension = len(coordinates)
        except:
            print("Format error");
    def __str__(self):
        # 向量字符串化
        return "Vector: {0}".format(self.coordinates)
    def __eq__(self, v):
        # 向量比较
        return self.coordinates == v.coordinates

向量数据结构(Python代码实现)

def vector_represent_test():
    v = Vector([1, 1])
    w = Vector([2, 1])
    print(v, w)
    print(v == w)
    w = Vector([1, 1])
    print(v == w)

向量数据结构测试代码

参考资料

  • 同济高等数学(第7版)下册 P2