numpy的dot函数计算两个向量α\boldsymbol{\alpha}α和β\boldsymbol{\beta}β的内积:
dot(a,b)\text{dot(a,b)}dot(a,b)
两个参数a和b表示参与计算的两个表示为数组的向量α\boldsymbol{\alpha}α和β\boldsymbol{\beta}β,函数返回值α∘β\boldsymbol{\alpha}\circ\boldsymbol{\beta}α∘β。numpy.linalg的函数
norm(a)\text{norm(a)}norm(a)
计算表示成数组参数a的向量α\boldsymbol{\alpha}α的模∣α∣|\boldsymbol{\alpha}|∣α∣。利用dot和norm函数,可以计算两个同维向量的夹角θ=arccos⁡αβ∣α∣∣β∣\theta=\arccos{\frac{\boldsymbol{\alpha}\boldsymbol{\beta}}{|\boldsymbol{\alpha}||\boldsymbol{\beta}|}}θ=arccos∣α∣∣β∣αβ​。
例1 用Python计算ℝ4^44中向量α=(2132),β=(12−21)\boldsymbol{\alpha}=\begin{pmatrix}2\\1\\3\\2\end{pmatrix},\boldsymbol{\beta}=\begin{pmatrix}1\\2\\-2\\1\end{pmatrix}α=⎝⎜⎜⎛​2132​⎠⎟⎟⎞​,β=⎝⎜⎜⎛​12−21​⎠⎟⎟⎞​之间的夹角θ\thetaθ。

import numpy as np                                      #导入numpy
a=np.array([2,1,3,2])                                   #向量a
b=np.array([1,2,-2,1])                                  #向量b
cost=np.dot(a,b)/(np.linalg.norm(a)*np.linalg.norm(b))  #cos(t)
print('%.4f'%np.arccos(cost))

程序的第2、3行设置向量数据a和b。第4行计算cos⁡θ=αβ∣α∣∣β∣\cos{\theta}=\frac{\boldsymbol{\alpha}\boldsymbol{\beta}}{|\boldsymbol{\alpha}||\boldsymbol{\beta}|}cosθ=∣α∣∣β∣αβ​。第5行调用numpy的arccos函数计算θ=arccos⁡αβ∣α∣∣β∣\theta=\arccos{\frac{\boldsymbol{\alpha}\boldsymbol{\beta}}{|\boldsymbol{\alpha}||\boldsymbol{\beta}|}}θ=arccos∣α∣∣β∣αβ​。运行程序,输出

1.5708

为π2\frac{\pi}{2}2π​的精确到万分位的近似值。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

线性代数Python计算:向量的模及向量间的夹角相关推荐

  1. 线性代数Python计算导引

    线性代数是深度学习的数学基础之一,理论完备,方法经典.Python是当下AI系统首选开发工具,易学好用.教学中攒下两者结合的多个课题,覆盖大学理工科<线性代数>课程内容,写成博文以飨读者. ...

  2. 线性代数Python计算:向量组的最大无关组计算

    对给定的mmm-维向量组 α1=(a11a21⋮am1),α2=(a12a22⋮am2),⋯,αn=(a1na2n⋮amn)\boldsymbol{\alpha}_1=\begin{pmatrix}a ...

  3. 线性代数Python计算:向量空间坐标变换

    向量空间中两组基AAA和BBB之间相互线性表示构成的矩阵为过渡阵.若两组基中之一为自然基,譬如AAA为自然基,则基BBB的各向量在自然基下的坐标即构成基AAA到基BBB的过渡阵P\boldsymbol ...

  4. 线性代数Python计算:线性变换的值域与核

    设数域PPP上的向量空间PnP^nPn的线性变换TTT,在某个基下其变换矩阵A=(α1,α2,⋯,αn)\boldsymbol{A}=(\boldsymbol{\alpha}_1,\boldsymbo ...

  5. 线性代数Python计算:Python的布尔代数

    设B={0,1}B=\{0,1\}B={0,1},定义BBB上的或.与.非运算如下 构成布尔代数(B,∨,∧,¬)(B,\vee,\wedge,\neg)(B,∨,∧,¬). Python中所有的关系 ...

  6. 线性代数Python计算:消元法与矩阵初等变换

    对线性方程组 {a11x1+a12x2+⋯+a1nxn=b1a21x1+a22x2+⋯+a2nxn=b2⋯⋯⋯am1x1+am2x2+⋯+amnxn=bn\begin{cases}a_{11}x_1+ ...

  7. 线性代数Python计算:Python数系

    Python作为计算机程序设计语言,受计算机物理结构的限制,无法表示出完整的整数集合ℤ.有理数集合ℚ.实数集合ℝ及复数集合ℂ.然而,Python所模拟的ℤ.ℚ.ℝ和ℂ在大多数实际应用中可以满足需求. ...

  8. 线性代数Python计算:线性方程组的通解

    对齐次线性方程组 {a11x1+a12x2+⋯+a1nxn=0a21x1+a22x2+⋯+a2nxn=0⋯⋯⋯am1x1+am2x2+⋯+amnxn=0(1)\begin{cases}a_{11}x_ ...

  9. 线性代数Python计算:解可逆系数矩阵线性方程组

    numpy的linalg模块中solve函数解可逆系数矩阵的线性方程组.该函数的调用接口为 solve(A, b) \text{solve(A, b)} solve(A, b) 参数A表示系数矩阵 A ...

最新文章

  1. tomcat1.8,tomcat-users.xml文件中如下修改才可以使用app manager登录,其中的roles有哪些枚举需要确认
  2. DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC宏
  3. python服务器搭建ftp_Python搭建HTTP服务器和FTP服务器
  4. wait(),notify(),notifyAll()进行了详细的分析介绍
  5. 万年历升级版 Calendar
  6. 【数据库系统】SQL基本固有类型
  7. 工厂方法与抽象工厂模式的区别
  8. 线程导入大数据入库_大数据处理及分析该怎么做?用这款数据分析软件轻松搞定...
  9. Windows打印服务器上无法删除打印机
  10. 蓝湖 for Mac(自动切图sketch插件)中文版
  11. php 获取小数精度,php小数精度问题
  12. 08.第三章 数字特征与特征函数(1)
  13. windows 上面如何解压rar 文件
  14. 二进制数相减计算机如何计算,二进制减法怎么算
  15. ESP32使用AT MQTT 固件发布主题信息返回ERROR解决
  16. 【未】Dynamic incentive schemes for managing dockless bike-sharing systems
  17. SEO优化转战移动手机站
  18. Could not find a getter for name in class org.tarena.entity1.City
  19. Hangfire项目
  20. Java8——Stream流

热门文章

  1. verilog对信号二分频 时钟分频信号作为时钟使能信号
  2. c++ getline()详解
  3. 百宝箱-Rime配置
  4. 【Java】虚拟机JVM
  5. Palm phone PVG-100/E 手机TWRP recovery 教程
  6. 华为机考108题(c++)(101-108)
  7. 个人博客制作——其他页面
  8. HTTP GET请求方式传递数组参数
  9. Apollo使用方法
  10. 忘记Win7登录密码的解决办法