3.进入线性代数的奇妙世界:用图形来表示向量

         怎么在空间中用图形来表示向量呢?既然说向量是有方向的量,那就要想办法表达出向量的方向和长度。来看一个例子:向量[1,2]。它的图形如图3-1所示,从原点出发的那条箭线就是它了。

图3-1 向量[1,2]的图形表示

       从图来看,实际上用坐标表达了一个二维的空间。那图中的另一条箭线表示的是什么?这里涉及到数学中的另一个概念:两个向量相等。数学中认为两个向量相等的条件是:1.方向相同;2.长度相同。

     从图中来看,两者方向相同、长度相同。因此,两个向量是相等的。怎么就相等了呢?事实上,通过平移向量就可以得到向量。相等的向量性质是一样的,用原点出发的向量无论是计算还是讨论起来都要简单一些。人何苦自己为难自己,一定要用向量来把简单的问题来复杂化呢?我就特别喜欢把复杂的问题简单化。本来几行代码、较小的复杂度可以完成的算法,何必写一大堆代码?

     这里还要讲解一个向量的重要概念:向量的模。模就是指的向量的长度。那模怎么计算得到呢?从原点出发的向量是相对比较容易计算的:

         不是从原点出发的向量的模计算起来会稍显麻烦一点。n维空间里,两点P和Q之间距离的计算公式是:

    所以有:

    通过计算也可知,两者的模是相等的。接下来,讲讲用Python程序怎么画向量。这部分如果没有学习过Python程序的童鞋,不看也没事,不影响阅读我的连载。先来看完整的源代码(如果有部分没看懂没事,后续我会讲解):

#==============代码段3-1==============
import matplotlib.pyplot as plt
import numpy as np
import mpl_toolkits.axisartist as axisartist
#=====第一部分代码=====
#创建画布
fig = plt.figure(figsize=(8, 8))
#使用axisartist.Subplot方法创建一个绘图区对象ax
ax = axisartist.Subplot(fig, 111)  
#将绘图区对象添加到画布中
fig.add_axes(ax)
#通过set_visible方法设置绘图区所有坐标轴隐藏
ax.axis[:].set_visible(False)
#ax.new_floating_axis代表添加新的坐标轴
ax.axis["x"] = ax.new_floating_axis(0,0)
#给x坐标轴加上箭头
ax.axis["x"].set_axisline_style("-|>", size = 1.0)
#添加y坐标轴,且加上箭头
ax.axis["y"] = ax.new_floating_axis(1,0)
ax.axis["y"].set_axisline_style("-|>", size = 1.0)
#设置x、y轴上刻度显示方向
ax.axis["x"].set_axis_direction("top")
ax.axis["y"].set_axis_direction("right")
#解决中文显示的问题,如果不显示中文,此两句可以不要
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
#=====第二部分代码=====
x=[0,1]
y=[0,2]
plt.plot(x,y)
plt.plot([1,1],[0,2],linestyle='-.',color='green')
plt.plot([0,1],[2,2],linestyle='-.',color='green')
plt.arrow(0.96,1.92,0.025,0.05,head_width=0.05,\
    head_length=0.025, shape="full",fc='blue',ec='blue',alpha=0.9, overhang=0.5)
plt.text(1.05,2.0,'[1,2]',size = 15)
#=====第三部分代码=====
plt.plot([1,2],[1,3],color='red')
plt.arrow(1.97,2.94,0.025,0.05,head_width=0.05,\
    head_length=0.025, shape="full",fc='red',ec='red',alpha=0.9, overhang=0.5)
plt.text(1.05,1.05,'P[1,1]',size = 15)
plt.text(2.05,3.05,'Q[2,3]',size = 15)
#=====第四部分代码=====
plt.xlim(0,4)
plt.ylim(-0.1,4)
plt.text(4,-0.1,"x",size = 15)
plt.text(0.1,3.8,"y",size = 15)
#保存图片,可根据第1个参数修改为您想要保存的路径
plt.savefig('D:/2-1.png',dpi = 500,bbox_inches = 'tight')
plt.show()

    程序的第一部分代码用于创建绘图区并画出坐标轴,这样就有了二维空间的感觉。第二部分用于画出向量的线和箭头,包括虚线。需要特别注意的是,plot()方法的参数中第1个参数表示的是线的两点之间x值的变化,第2个参数表示的线的两点之间y值的变化,linestyle表示的是线的风格。第三部分用于画出向量。第四部分用于设置坐标值的区间,写出坐标轴名称,保存和显示图片。

      那么,费那么多周章,向量能具体表示什么现实世界,特别是我们IT人能理解、经常接触的内容呢?这样可以更好的掌握。且听下回讲解向量表示的数据。以上内容或Python程序如果没看明白,欢迎给我留言讨论。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

computersciencer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值