Python绘制极坐标基向量详解
极坐标基向量的推导
极坐标其实很神奇,一方面,它描述的是平直时空,另一方面,任意两点间的坐标差为d r , d θ \text dr, \text d\thetadr,dθ时,两点间的距离却是不固定的。极坐标到直角坐标的转换函数为
x=fx(r,θ)=rcosθ y=fy(r,θ)=rsinθ
考虑到行文简洁,在不引起歧义的情况下,用x,y来表示fx,fy。
对r,θ求偏导数,就可以得到二者在转换为直角坐标是时的变化情况,则
其中
记er=[∂x/∂r,∂y/∂r],eθ=[∂x/∂θ,∂y/∂θ],称作极坐标系的基向量。
可以看到,这个基向量在不同的位置(x,y)处的值显然是不同的,将其带入极坐标和直角坐标的换算关系,就可以得到基向量的具体表达式,
er=[cosθ,−rsinθ]
eθ=[sinθ,rcosθ]
可视化
下面可以绘制一下这个基向量,采用matplotlib中的quiver函数。
import numpy as np import matplotlib.pyplot as plt M, N = 10, 20 r, th = np.indices([M, N]) r = r/10 th = th/N*np.pi*2 X, Y = r*np.cos(th), r*np.sin(th) U1, V1 = np.cos(th), -r*np.sin(th) U2, V2 = np.sin(th), r*np.cos(th) style = dict(width=0.005, headwidth=8, headlength=6, headaxislength=4) fig, ax = plt.subplots(1, 2, figsize=(8,4)) ax[0].quiver(X, Y, U1, V1, np.sqrt(U1**2+V1**2), **style) ax[1].quiver(X, Y, U2, V2, np.sqrt(U2**2+V2**2), **style) plt.tight_layout() plt.show()
效果如下
到此这篇关于Python绘制极坐标基向量详解的文章就介绍到这了,更多相关Python极坐标内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
一文搞懂Python读取text,CSV,JSON文件的方法
文件处理是一种用于创建文件、写入数据和从中读取数据的过程,Python 拥有丰富的用于处理不同文件类型的包,从而使得我们可以更加轻松方便的完成文件处理的工作,本文将来为大家详细讲讲2022-06-06利用Python的tkinter模块实现界面化的批量修改文件名
这篇文章主要介绍了利用Python的tkinter模块实现界面化的批量修改文件名,用Python编写过批量修改文件名的脚本程序,代码很简单,运行也比较快,详细内容需要的小伙伴可以参考一下下面文章内容2022-08-08
最新评论