python - 如何根据此处所示的两个变量绘制诱导速度函数的二维图?
问题描述
我正在阅读一篇技术论文并尝试重现与以下函数相对应的图表:
K(x) 和 E(x) 分别是第一类和第二类勒让德椭圆积分。的情节V_r
如下所示:
我试图在 Python 中绘制这个函数,这是我的代码:
import numpy as np
import scipy
import matplotlib.pyplot as plt
from scipy import special
def x(r,z,R):
return np.sqrt((-4*r*R)/((R-r)**2+z**2))
def V_z(Gamma,R,r,z):
return (-Gamma/4*np.pi)*((2/np.sqrt((R-r)**2+z**2))*(special.ellipk(x(r,z,R))+\
(R**2-r**2-z**2)/((R+r)**2+z**2) * special.ellipe(x(r,z,R))))
def V_r(Gamma,R,r,z):
return (-Gamma/4*np.pi)*((4*R*z*np.sqrt((R+r)**2+z**2)/((R+r)**4+z**2*(2*(R+r)**2+z**2)) \
* np.sqrt((R+r)**2+z**2)/((R-r)**2+z**2)))*special.ellipe(x(r,z,R))
r = np.linspace(-5,5,100);
z = np.linspace(-5,5,100);
V_z_list = []
for i in V_z(0.1,1,r,z):
if np.isnan(i).any() == False:
print(i)
V_z_list.append(i)
V_r_list = []
for i in V_r(0.1,1,r,z):
if np.isnan(i).any() == False:
print(i)
V_r_list.append(i)
plt.plot(V_z_list)
但是,我得到了这张图:
有人可以帮我修复我的代码吗?
解决方案
推荐阅读
- python - 启动具有 azure 持久功能的并行活动时的问题
- python - Pandas Series - 在 Series 构造函数中强制 dtype
- c# - C# Roslyn 编译 - 在动态编译的代码中使用 Nuget 包 - 编译但在运行时抛出异常(无法加载文件或程序集)
- java - 更改 xml 模板时 Android Studio 崩溃
- ios - 上一个动画完成后如何开始动画
- python - 合并两个数据框后如何处理重复行?
- powershell - Powershell 将 NetTCPConnection 或 netstat 转换为字符串
- excel - 尝试创建 VBA 以将 Excel 表格粘贴到 Word 中
- excel - 用于搜索某些文本和输入消息的数据验证
- postgresql - 本地网络外的 PostgreSQL 远程连接