Плотность участка интеграла. TypeError: только массивы длины 1 могут быть преобразованы в скаляры Python - PullRequest
0 голосов
/ 05 мая 2018

Итак, я пытаюсь заставить этот график плотности работать для данного интеграла. Не уверен, что мне не хватает, но я получаю эту ошибку.

Traceback:

runfile ('F: / PHY 281 / Домашняя работа / Набор 4 / tyest3.py', wdir = 'F: / PHY 281 / Домашняя работа / Set 4 ') Traceback (последний вызов был последним):

Файл "", строка 1, в runfile ('F: / PHY 281 / Домашняя работа / Набор 4 / tyest3.py', wdir = 'F: / PHY 281 / Домашняя работа / Набор 4')

Файл "E: \ Programs \ Anaconda \ Lib \ сайт-пакеты \ Spyder \ Utils \ сайт \ sitecustomize.py", строка 710, в runfile execfile (имя файла, пространство имен)

Файл "E: \ Programs \ Anaconda \ Lib \ сайт-пакеты \ Spyder \ Utils \ сайт \ sitecustomize.py", строка 101, в execfile exec (compile (f.read (), filename, 'exec'), пространство имен)

Файл "F: / PHY 281 / Домашняя работа / Набор 4 / tyest3.py", строка 27, в gb = quad (Jm, 0,1e-6) [0]

Файл "E: \ Programs \ Anaconda \ Lib \ сайт-пакеты \ SciPy \ интегрировать \ quadpack.py", строка 323, в квадрате точек)

Файл "E: \ Programs \ Anaconda \ Lib \ сайт-пакеты \ SciPy \ интегрировать \ quadpack.py", строка 388, в _quad return _quadpack._qagse (func, a, b, args, full_output, epsabs, epsrel, limit)

TypeError: в скаляры Python могут быть преобразованы только массивы длины-1

from scipy.integrate import quad
import numpy as np
import matplotlib.pyplot as plt
from numpy import cos,sin,pi




lmda = 5e-7
m = 1
def Jm(thta):
    return (1/pi)*cos(m*thta-x*sin(thta))



xvals = np.linspace(-10*lmda,10*lmda,200)
zvals = np.linspace(-20*lmda,20*lmda,200)
x,z = np.meshgrid(xvals,zvals)

gb = quad(Jm,0,1e-6) [0]



plt.figure(figsize=(12,8))
plt.imshow(gb,origin='lower',extent=[-10*lmda,10*lmda,-20*lmda,20*lmda])
cbar = plt.colorbar()
cbar.ax.set_ylabel('V/m')
cbar.ax.set_xlabel('E')
plt.xlabel('x nm')
plt.ylabel('y nm')


plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...