首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图上马蒂厄特征交叉

图上马蒂厄特征交叉
EN

Stack Overflow用户
提问于 2015-01-29 00:38:31
回答 1查看 592关注 0票数 0

我需要绘制各种q的mathieu特征参数。这个图应该显示“长笛”形状,从左边的宽到右边的很窄。下面的代码可以做到这一点,但是它也引入了一些带间跳变(从图中可以明显看出)。我怎么才能解决这个问题?

谢谢!

上午

代码语言:javascript
复制
import numpy as np
import scipy as sp
import scipy.special as spfun
from matplotlib import pyplot as plt

uplim =120#E_rec
Npts =1000 
Nstates =8 
q = np.linspace(0, uplim/4.0, Npts)
EA = np.zeros([Npts,Nstates])
EB = np.zeros([Npts,Nstates])
U = 4*q 

print np.shape(EA)    #plt.fill_between(U, EA[:,i], EB[:,i]) #plt.plot(U,Ea,U,Eb) 
for i in range(Nstates):
    a = spfun.mathieu_a(i,q)
    b = spfun.mathieu_b(i+1,q)
    EA[:,i] = a + 2*q
    EB[:,i] = b + 2*q 
    plt.fill_between(U, EA[:,i], EB[:,i]) #plt.plot(U,Ea,U,Eb) 

print np.shape(EA)    #plt.fill_between(U, EA[:,i], EB[:,i]) #plt.plot(U,Ea,U,Eb) 
plt.show()

正如DSM和pv所指出的那样,这是一个令人垂涎的错误。你走得越远,故障就越严重。最后我做的是导出我想从Mathematica导出的值表,并将它们导入python并进行内插。不太好,但很管用。

EN

回答 1

Stack Overflow用户

发布于 2019-10-05 10:22:18

我尝试用用于Python的NAG库的最新版本计算这个值,其中包括一个新的Mathieu函数例程。我更加努力--更多的州和更高的提升价值。

代码语言:javascript
复制
%matplotlib inline
import numpy as np
import scipy as sp
import scipy.special as spfun
from naginterfaces.library import specfun
from matplotlib import pyplot as plt

uplim =150#E_rec
Npts = 4000 
Nstates = 10
q = np.linspace(0, uplim/4.0, Npts)
EA = np.zeros([Npts,Nstates])
EB = np.zeros([Npts,Nstates])
U = 4*q 

plt.figure(figsize=(15,8))
plt.subplot(1,2,1)
plt.title('Using SciPy')

for i in range(Nstates):
    a = spfun.mathieu_a(i,q)
    b = spfun.mathieu_b(i+1,q)
    EA[:,i] = a + 2*q
    EB[:,i] = b + 2*q 
    plt.fill_between(U, EA[:,i], EB[:,i]) #plt.plot(U,Ea,U,Eb) 


plt.subplot(1,2,2)
plt.title('Using NAG')

for i in range(Nstates):
    a = [specfun.mathieu_ang_periodic_real(ordval=i, q=qi, parity=0, mode=3)[2] for qi in q]
    b = [specfun.mathieu_ang_periodic_real(ordval=i+1, q=qi, parity=1, mode=3)[2] for qi in q]
    EA[:,i] = a + 2*q
    EB[:,i] = b + 2*q 
    plt.fill_between(U, EA[:,i], EB[:,i]) 

plt.show()

这使用的Mark27和ScipPy的1.2.1版本

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28205127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档