python 贝塞尔函数_Python:用float argumen绘制第一类Bessel函数

我用的公式是

$$

E=M嫒E+\sum嫒n=1嫒n\frac嫒2嫒n嫒M嫒n(ne)sin(nM嫒E)

美元

其中$\mathcal{J}n(x)$是第一类的第n个贝塞尔函数。

作为一个测试,我绘制了前6个贝塞尔函数,所有的结果都是正确的。当我输入$n*e$的参数时,情节并不是我预期的那样。import numpy as np

import pylab as py

import scipy.special as sp

x = np.linspace(0, 15, 500000)

for v in range(0, 6):

py.plot(x, sp.jv(v, x))

py.xlim((0, 15))

py.ylim((-0.5, 1.1))

py.legend(('$\mathcal{J}_0(x)$', '$\mathcal{J}_1(x)$', '$\mathcal{J}_2(x)$',

'$\mathcal{J}_3(x)$', '$\mathcal{J}_4(x)$', '$\mathcal{J}_5(x)$'),

loc = 0)

py.xlabel('$x$')

py.ylabel('$\mathcal{J}_n(x)$')

#py.title('Plots of the first six Bessel Functions')

py.grid(True)

#py.savefig('besseln0to6.eps', format = 'eps')

py.show()

e = 0.99

def E(M):

return (M + sum(2.0 / n * sp.jv(n * e, M) * np.sin(n * M)

for n in range(1, 3, 1)))

M = np.linspace(0, 2 * np.pi, 500000)

fig2 = py.figure()

ax2 = fig2.add_subplot(111, aspect = 'equal')

ax2.plot(E(M), M, 'b')

def E2(M):

return (M + sum(2.0 / n * sp.jv(n * e, M) * np.sin(n * M)

for n in range(1, 11, 1)))

ax2.plot(E2(M), M, 'r')

py.xlim((0, 2 * np.pi))

py.ylim((0, 2 * np.pi))

py.xlabel('Eccentric anomaly, $E$')

py.ylabel('Mean anomaly, $M_e$')

py.show()

这个情节应该是n=10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值