美文网首页每天学一点新知识
向量的基本运算_线性代数_day2

向量的基本运算_线性代数_day2

作者: FANDX | 来源:发表于2020-01-16 06:41 被阅读0次

向量的加法

  • 向量加法:(5,2)^T+(2,5)T
image-20200114221500594.png image-20200114221520369.png image-20200114221546643.png

向量加法就是通过平移向量,原点到最终终点的距离。结果是(7,7)^T,下面是结果步骤

  • 先向X移动5个单位
  • 再向y移动2个单位
  • 再向y移动5个单位
  • 总共向x移动了7个单位
  • 总共向y移动了7个单位

三维向量同理到N维向量是同理的

\begin{pmatrix}a\\b\\c\end{pmatrix}+\begin{pmatrix}d\\e\\f\end{pmatrix}=\begin{pmatrix}a+d\\b+e\\c+f\end{pmatrix}

向量的乘法

​ 向量的乘法:2*(5,2)^T

image-20200114223058848.png image-20200114223128302.png
  • 其实就是2次(5,2)的向量进行相加

  • n维向量同理

    K*\begin{pmatrix}V1\\V2\\V3\\\cdots\\Vn\end{pmatrix}=\begin{pmatrix}K*V1\\K*V2\\K*V3\\\cdots\\K*Vn\end{pmatrix}

用Python代码实现向量的运算操作

class Vector:
    def __init__(self, my_list):
        self._values = my_list

    def __add__(self, other):
        """向量的加法,返回结果向量"""
        assert len(self) == len(other), \
            "向量的长度错误,向量之间长度必须是相等的"
        return Vector([a + b for a, b in zip(self, other)])

    def __sub__(self, other):
        """向量的减法, 返回结果向量"""
        assert len(self) == len(other), \
            "向量的长度错误,向量之间长度必须是相等的"
        return Vector([a - b for a, b in zip(self, other)])

    def __mul__(self, other):
        """返回数量乘法的结果向量, 只定义了self * other"""
        return Vector([other * e for e in self])

    def __rmul__(self, other):
        """返回向量的右乘方法, 只定义了 other * self"""
        return Vector([other * e for e in self])

    def __pos__(self):
        """返回向量取正的结果向量"""
        return 1 * self

    def __neg__(self):
        """返回向量取负的向量结果"""
        return -1 * self

    def __iter__(self):
        """返回向量的迭代器"""
        return self._values.__iter__()

    def __getitem__(self, item):
        """取向量的第index元素"""
        return self._values[item]

    def __len__(self):
        """返回向量的长度"""
        return len(self._values)

    def __repr__(self):
        return "Vector ({})".format(self._values)

    def __str__(self):
        return "({})".format(", ".join(str(e) for e in self._values))


if __name__ == '__main__':
    vec = Vector([5, 2])
    print(vec)   # 1
    print(len(vec))  # 2

    vec2 = Vector([3, 1])
    print("{} + {} = {}".format(vec, vec2, vec + vec2)) # 3 
    print("{} - {} = {}".format(vec, vec2, vec - vec2)) # 4

    print("{} * {} = {}".format(vec, 3, vec * 3))  # 5
    print("{} * {} = {}".format(3, vec, 3 * vec)) # 6

    print("+{} = {}".format(vec, +vec))  # 7
    print("-{} = {}".format(vec, -vec)) # 8

返回结果

(5, 2)  # 1
2               # 2
(5, 2) + (3, 1) = (8, 3)    # 3 
(5, 2) - (3, 1) = (2, 1)    # 4
(5, 2) * 3 = (15, 6)            # 5
3 * (5, 2) = (15, 6)            # 6
+(5, 2) = (5, 2)                    # 7
-(5, 2) = (-5, -2)              # 8

相关文章

  • 向量的基本运算_线性代数_day2

    向量的加法 向量加法: 向量加法就是通过平移向量,原点到最终终点的距离。结果是,下面是结果步骤 先向X移动5个单位...

  • 视觉SLAM常用的第三方库

    eigen eigen是一个线性代数运算库文件,用于矩阵和向量运算 sophus sophus是基于eigen写的...

  • 基础知识 -- 数学方面

    线性代数高等数学 一、向量的四则运算: 求模运算image.png 数乘运算image.png 单位化image....

  • 线性代数的本质与几何意义 01. 向量是什么?(3blue1br

    向量是线性代数最基础、最基本的概念之一,要深入理解线性代数的本质,首先就要搞清楚向量到底是什么? 向量之所以让人迷...

  • 2018-05-06-CS224补充知识-矩阵求导

    1.Introduction  线性代数在机器学习以及深度学习中扮演着重要的角色,涉及到向量的运算,矩阵的运算,特...

  • 线性代数--向量

    向量是线性代数研究的基本元素。 线性代数的重点在于其推广一个数的研究到一组数的研究。使用向量(Vector)能用来...

  • Octave基础教程

    一、基本操作 数学运算与逻辑运算 数学运算 逻辑运算 向量与矩阵 矩阵 向量 注:构造过程中用“;”分隔,不要用成...

  • R语言初级教程(10): 向量(中篇)

    这篇博客接着讲有关向量的操作,将主要讲: c()函数的参数 向量的基本运算 另外三种创建向量的方式:冒号:运算符、...

  • 向量的基本几何意义

    向量简介 线性代数最基本最根源的部分就是向量。 从物理学的角度出发向量是空间中的箭头,决定一个向量的是长度和方向。...

  • 线性代数基础

    线性代数 一、基本知识 本书中所有的向量都是列向量的形式: 本书中所有的矩阵 都表示为: ...

网友评论

    本文标题:向量的基本运算_线性代数_day2

    本文链接:https://www.haomeiwen.com/subject/lkoxzctx.html