2016-08-07 3 views
1

Я пытаюсь рисовать графики в Python с помощью Scipy модуля. Согласно http://docs.scipy.org/doc/scipy/reference/special.html я написал код с scipy.special.spherical_jn(n,x,0):Scipy - ошибка при использовании сферических функций Бесселя

import matplotlib.pyplot as plt 
import numpy as np 
import scipy.special as sp 

from matplotlib import rcParams 
rcParams.update({'figure.autolayout': True}) 

def odrazTE(a,o,d): 
    temp1 = sp.spherical_jn[1,a,0] 
    temp2 = 1 
    return abs(temp1/temp2)**2 

t = np.arange(0.001, 2, 0.001) 
plt.plot(t,odrazTE(t,t,1),label='TE1') 
plt.show() 

В то время как я компиляции программы, все, что я получаю эту ошибку:

Traceback (most recent call last): 
    File "standing-sphere.py", line 33, in <module> 
    plt.plot(t,odrazTE(t,t,1),label='TE1') 
    File "standing-sphere.py", line 15, in odrazTE 
    temp1 = sp.spherical_jn[1,a,0] 
AttributeError: 'module' object has no attribute 'spherical_jn' 

Существует способ, как сделать это с регулярной функции Бесселя и связь между Бесселем и сферической функцией Бесселя, но мне не нравится это решение из-за производной от sph.bess. функцию, которая мне тоже нужна.

Есть ли шанс, что я что-то неправильно установил, и его можно зафиксировать на scipy.special.spherical_jn?

+2

Что представляют собой квадратные скобки после 'сферическая_jn'? – Carsten

+0

Моя вина, но ничего не меняется в скобках. –

ответ

3

scipy.special.spherical_jn был добавлен в scipy версию 0.18.0, которая была выпущена 25 июля 2016 года. Я предполагаю, что вы используете более старую версию scipy. Чтобы проверить, запустите

import scipy 
print(scipy.__version__) 
+0

Спасибо, у меня 0.13.3, обновление scipy решает мою проблему. :) –

Смежные вопросы