用Python画出极坐标的基向量

news2024/9/28 1:25:59

文章目录

    • 极坐标基向量的推导
    • 可视化

极坐标基向量的推导

极坐标其实很神奇,一方面,它描述的是平直时空,另一方面,任意两点间的坐标差为 d r , d θ \text dr, \text d\theta dr,dθ时,两点间的距离却是不固定的。极坐标到直角坐标的转换函数为

x = f x ( r , θ ) = r cos ⁡ θ y = f y ( r , θ ) = r sin ⁡ θ x=f_x(r,\theta)=r\cos\theta\quad y=f_y(r,\theta)=r\sin\theta x=fx(r,θ)=rcosθy=fy(r,θ)=rsinθ

考虑到行文简洁,在不引起歧义的情况下,用 x , y x,y x,y来表示 f x , f y f_x, f_y fx,fy

r , θ r,\theta r,θ求偏导数,就可以得到二者在转换为直角坐标是时的变化情况,则

d s = d x 2 + d y 2 \text ds=\sqrt{\text dx^2+\text dy^2}\\ ds=dx2+dy2

其中

d x = ∂ x ∂ r d r + ∂ x ∂ θ d θ d y = ∂ y ∂ r d r + ∂ y ∂ θ d θ → [ d x d y ] = [ ∂ x ∂ r ∂ x ∂ θ ∂ y ∂ r ∂ y ∂ θ ] [ d r d θ ] \begin{aligned} \text dx=\frac{\partial x}{\partial r}\text dr+\frac{\partial x}{\partial\theta}\text d\theta\\ \text dy=\frac{\partial y}{\partial r}\text dr+\frac{\partial y}{\partial\theta}\text d\theta \end{aligned}\to \begin{bmatrix} \text dx\\ \text dy \end{bmatrix}=\begin{bmatrix} \frac{\partial x}{\partial r}&\frac{\partial x}{\partial \theta}\\ \frac{\partial y}{\partial r}&\frac{\partial y}{\partial \theta} \end{bmatrix}\begin{bmatrix} \text dr\\\text d\theta \end{bmatrix} dx=rxdr+θxdθdy=rydr+θydθ[dxdy]=[rxryθxθy][drdθ]

e r = [ ∂ x ∂ r , ∂ y ∂ r ] e_r=[\frac{\partial x}{\partial r}, \frac{\partial y}{\partial r}] er=[rx,ry] e θ = [ ∂ x ∂ θ , ∂ y ∂ θ ] e_\theta=[\frac{\partial x}{\partial\theta}, \frac{\partial y}{\partial\theta}] eθ=[θx,θy],称作极坐标系的基向量。

可以看到,这个基向量在不同的位置 ( x , y ) (x,y) (x,y)处的值显然是不同的,将其带入极坐标和直角坐标的换算关系,就可以得到基向量的具体表达式,

e r = [ cos ⁡ θ , − r sin ⁡ θ ] e θ = [ sin ⁡ θ , r cos ⁡ θ ] e_r=[\cos\theta, -r\sin\theta]\\ e_\theta=[\sin\theta, r\cos\theta] 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()

效果如下

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/934274.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

wxpython + cef 是优秀的 WebView 组件

CEF 即 (Chromium Embedded Framework);cef 是优秀的 WebView 组件。 pip install wxpython4.2 wxPython-4.2.0-cp37-cp37m-win_amd64.whl (18.0 MB) Successfully installed wxpython-4.2.0 pip install cefpython3 cefpython3-66.1-py2.py3-none-win_amd64.whl …

springboot+vue基于 JAVA 的医院门诊信息管理系统的设计与实现 f1ls0

系统根据现有的管理模块进行开发和扩展,采用面向对象的开发的思想和结构化的开发方法对医院门诊信息的现状进行系统调查。采用结构化的分析设计,该方法要求结合一定的图表,在模块化的基础上进行系统的开发工作。在设计中采用“自下而上”的思…

多线程和并发(1)—等待/通知模型

一、进程通信和进程同步 1.进程通信的方法 同一台计算机的进程通信称为IPC(Inter-process communication),不同计 算机之间的进程通信被称为 RPC(Romote process communication),需要通过网络,并遵守共同的协议。**进…

每日三题 1448统计二叉树中好节点的个数 100相同的树 101对称二叉树

1448 题目 给你一棵根为 root 的二叉树,请你返回二叉树中好节点的数目。 「好节点」X 定义为:从根到该节点 X 所经过的节点中,没有任何节点的值大于 X 的值。 示例 1: 输入:root [3,1,4,3,null,1,5] 输出&#xff…

2021-05-25 rs485保护电路

今天给大家分享485接口的EMC设计,希望对电路设计,及相关软件开发的人员有帮助。 一、原理图 1. RS485接口6KV防雷电路设计方案 (RS485接口防雷电路) 接口电路设计概述: RS485用于设备与计算机或其它设备之间通讯&…

攻防世界-Web_php_unserialize

原题 解题思路 注释说了flag存在f14g.php中,但是在wakeup函数中,会把传入的文件名变成index.php。看wp知道,如果被反序列话的字符串其中对应的对象的属性个数发生变化时,会导致反序列化失败而同时使得__wakeup 失效(CV…

Qt/C++编写视频监控系统80-远程回放视频流

一、前言 远程回放NVR或者服务器上的视频文件,一般有三种方式,第一种是调用厂家的SDK,这个功能最全,但是缺点明显就是每个厂家的设备都有自己的SDK,只兼容自家的设备,如果你的软件需要接入多个厂家的&…

STM32新手入门-什么是寄存器

✅作者简介:嵌入式入坑者,与大家一起加油,希望文章能够帮助各位!!!! 📃个人主页:rivencode的个人主页 🔥系列专栏:玩转STM32 💬保持学…

小程序外包开发上线的问题解决

在小程序上线过程中,可能会遇到各种问题。解决问题的关键是保持沟通、持续改进和测试。小程序的上线后维护同样重要,要不断关注用户反馈和市场变化,及时做出调整和优化。以下是一些常见问题及其可能的解决方案,希望对大家有所帮助…

FL水果21.1全新版本下载FL Studio新增功能讲解

FL Studio就是国人众所熟知的水果编曲软件,圈内用户习惯叫它“水果”。它是一个全能音乐制作环境和数字音频工作站(DAW)。FL Studio可以进行编曲、剪辑、录音、混音,让你的电脑变成全功能录音室,帮助你制作出属于自己的…

各地区结婚、离婚、再婚等数据(1990-2021年)

涵盖了1990年至2021年各地区的结婚、离婚以及再婚情况。通过对此数据进行分析,我们可以了解婚姻趋势的演变和地区之间的差异。数据反映了人们的婚姻决策、家庭变化以及社会动态,为研究家庭结构和社会变迁提供了有价值的信息。 一、数据介绍 数据名称&a…

基于树莓派的智能小车 python

摘要 playWithRaspberryPi 实战笔记 raspberrypi_cookbook 树莓派python代码本 树莓派(Raspberry Pi)是一种小型的单片机计算机; 它可以通过其引脚和接口与外部硬件通信。 Pi(树莓派的简称)展示了我们可以如何分解大型的Realbox机器, 使Dynamicland成…

如何在windows下使用masm和link对汇编文件进行编译

前言 32位系统带有debug程序,可以进行汇编语言和exe的调试。但真正的汇编编程是“编辑汇编程序文件(.asm)->编译生成obj文件->链接生成exe文件”。下面,我就来说一下如何在windows下使用masm调试,使用link链接。 1、下载相应软件 下载…

Linux系统编程系列之进程间通信(IPC)-管道

一、什么是管道 在Linux系统下,一切皆文件,所以管道就是一个文件,用来实现进程间通信的一种方式。分析小技巧:对于一些陌生的概念,都把它当成是文件,然后操作的时候,就是三部曲。文件打开&#…

香港服务器是什么?

香港服务器是指位于香港地区的云服务器或物理服务器。香港作为一个重要的国际金融和商业中心,具有良好的地理位置和先进的网络基础设施。香港服务器提供稳定的网络连接和高性能,可用于托管网站、应用程序和数据存储等各种互联网服务。 香港服务器具有以…

精准测试——持续测试

前面已经介绍了黑盒测试和白盒测试。从前面的介绍中可以知道,黑盒测试是一种面向业务流程的测试,针对需求设计测试用例,在运行的系统上执行测试用例,完成测试。 整个测试过程中测试工程师对于测试代码是如何运行的一无所知&#…

深度学习算法模型转成算能科技平台xx.bmodel模型的方法步骤

目录 1 docker镜像下载 2 SDK下载 3 下载sophon-demo 4 修改docker镜像的脚本 5 创建个文件夹 6.source 7.转模型 1 docker镜像下载 可以在dockerhub看到镜像的相关信息 https://hub.docker.com/r/sophgo/tpuc_dev/tags 用下面的命令下载 docker pull sophgo/tpuc_d…

vim练习题

在普通模式 / 可以用来寻找 . 是重复上次的动作,$ 是移动到末尾 直接查找 .vimrc 保存后重启 安装curl 出现问题 宏 通过记录在寄存器中,让寄存器知道怎么操作 宏只能在1 2 4 寄存器上面使用 替代命令,将匹配到的,包括这些内容…

【力扣每日一题】2023.8.27 合并区间

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 那么合并区间是在什么情况下才能合并呢? 我总结为两种情况 第一种情况就是这样,第二个区间的左区间大于第一个区…

算法通关村第十四关——堆

堆是将一组数据按照完全二叉树的存储顺序,将数据存储在一个一维数组中的结构。堆有两种结构,一种称为大顶堆,一种称为小顶堆,如下图。 小顶堆:任意节点的值均小于等于它的左右孩子,并且最小的值位于堆顶&am…