最终更新
我通过电子邮件发送了论文的作者,结果发现sigma的等式中有一个错误.我给了pv最好的答案,因为他们确实帮助回答了所说的问题.
第一次尝试 我试图编写下面函数的数值表示:
,
并且'+'/' - '上标表示当z接近分支切割时的限制,其沿着负假想的半轴.H和J是Hankel和Bessel函数.其余变量(n_r,m,R)取决于问题的几何形状.我希望沿着相对于k的负假想半轴绘制该函数.我当前的代码(增加了pv)如下)
import scipy as sp
import numpy as np
import matplotlib.pyplot as plt
from numpy import pi
from scipy.special import jv, iv, kv, jvp, ivp, kvp
m = 11 # Mode number
nr = 2 # Index of refraction
R = 1 # Radius of cylinder
eps = 10e-8
def yv_imcut(n, z):
return -2/(pi*(1j)**n)*kv(n, -1j*z) + 2*(1j)**n/pi * (0.5j*pi) * iv(n,-1j*z)
def yvp_imcut(n, z):
return (n/z)*yv_imcut(n,z) - yv_imcut(n+1,z)
def hankel1_imcut(n, z): …Run Code Online (Sandbox Code Playgroud) 有人告诉我,只要提供一阶导数,方法 scipy.optimize.newton() 就可以解决复杂的函数。我无法让它发挥作用。newton() 的文档没有提到任何复杂的函数。有人可以告诉我如何在 SciPy 中找到像 f(z) = 1 + z^2 这样的函数的根吗?我需要解决一些更复杂的问题,但一个简单的例子会对我有很大帮助。