线性代数Python计算:向量的模及向量间的夹角
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计算:向量的模及向量间的夹角相关推荐
- 线性代数Python计算导引
线性代数是深度学习的数学基础之一,理论完备,方法经典.Python是当下AI系统首选开发工具,易学好用.教学中攒下两者结合的多个课题,覆盖大学理工科<线性代数>课程内容,写成博文以飨读者. ...
- 线性代数Python计算:向量组的最大无关组计算
对给定的mmm-维向量组 α1=(a11a21⋮am1),α2=(a12a22⋮am2),⋯,αn=(a1na2n⋮amn)\boldsymbol{\alpha}_1=\begin{pmatrix}a ...
- 线性代数Python计算:向量空间坐标变换
向量空间中两组基AAA和BBB之间相互线性表示构成的矩阵为过渡阵.若两组基中之一为自然基,譬如AAA为自然基,则基BBB的各向量在自然基下的坐标即构成基AAA到基BBB的过渡阵P\boldsymbol ...
- 线性代数Python计算:线性变换的值域与核
设数域PPP上的向量空间PnP^nPn的线性变换TTT,在某个基下其变换矩阵A=(α1,α2,⋯,αn)\boldsymbol{A}=(\boldsymbol{\alpha}_1,\boldsymbo ...
- 线性代数Python计算:Python的布尔代数
设B={0,1}B=\{0,1\}B={0,1},定义BBB上的或.与.非运算如下 构成布尔代数(B,∨,∧,¬)(B,\vee,\wedge,\neg)(B,∨,∧,¬). Python中所有的关系 ...
- 线性代数Python计算:消元法与矩阵初等变换
对线性方程组 {a11x1+a12x2+⋯+a1nxn=b1a21x1+a22x2+⋯+a2nxn=b2⋯⋯⋯am1x1+am2x2+⋯+amnxn=bn\begin{cases}a_{11}x_1+ ...
- 线性代数Python计算:Python数系
Python作为计算机程序设计语言,受计算机物理结构的限制,无法表示出完整的整数集合ℤ.有理数集合ℚ.实数集合ℝ及复数集合ℂ.然而,Python所模拟的ℤ.ℚ.ℝ和ℂ在大多数实际应用中可以满足需求. ...
- 线性代数Python计算:线性方程组的通解
对齐次线性方程组 {a11x1+a12x2+⋯+a1nxn=0a21x1+a22x2+⋯+a2nxn=0⋯⋯⋯am1x1+am2x2+⋯+amnxn=0(1)\begin{cases}a_{11}x_ ...
- 线性代数Python计算:解可逆系数矩阵线性方程组
numpy的linalg模块中solve函数解可逆系数矩阵的线性方程组.该函数的调用接口为 solve(A, b) \text{solve(A, b)} solve(A, b) 参数A表示系数矩阵 A ...
最新文章
- tomcat1.8,tomcat-users.xml文件中如下修改才可以使用app manager登录,其中的roles有哪些枚举需要确认
- DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC宏
- python服务器搭建ftp_Python搭建HTTP服务器和FTP服务器
- wait(),notify(),notifyAll()进行了详细的分析介绍
- 万年历升级版 Calendar
- 【数据库系统】SQL基本固有类型
- 工厂方法与抽象工厂模式的区别
- 线程导入大数据入库_大数据处理及分析该怎么做?用这款数据分析软件轻松搞定...
- Windows打印服务器上无法删除打印机
- 蓝湖 for Mac(自动切图sketch插件)中文版
- php 获取小数精度,php小数精度问题
- 08.第三章 数字特征与特征函数(1)
- windows 上面如何解压rar 文件
- 二进制数相减计算机如何计算,二进制减法怎么算
- ESP32使用AT MQTT 固件发布主题信息返回ERROR解决
- 【未】Dynamic incentive schemes for managing dockless bike-sharing systems
- SEO优化转战移动手机站
- Could not find a getter for name in class org.tarena.entity1.City
- Hangfire项目
- Java8——Stream流