Я пытаюсь найти массив встроенных функций, но у меня есть некоторые проблемы с формами и размерами.Я нашел коэффициент k, а затем я нашел энергию для интервала x = (0, a), где a = 1 и n = (-Nmax, Nmax).Я также пытался их векторизовать.Но каждый раз это дает мне новые ошибки.Я не уверен, как это исправить, потому что мне нужна эта функция интегрирования для вызова другой функции для построения графика.
def k_n(n):
k = fsolve(lambda n : np.tan(n*a/2.) - np.tanh(n*a/2.),n)
return(k)
def E(n):
return(np.piecewise(n,[n<0.,n>=0.],
[lambda n: -k_n(n)**2 ,
lambda n: k_n(n)**2 ]))
def integrand1(x,n):
return(np.sin(k_n(n)*x)**2)
def integrand2(x,n):
return((np.sin(k_n(n)*a/2.))**2*(np.sinh(k_n(n)*(a-x)))**2/2*
np.exp(-a*k_n(n))*(np.sinh(k_n(n)*a/2.))**2)
def integrate(n):
integrand = spi.integrate.quad(integrand1,0,a/2,args=(n))+spi.integrate.quad(integrand2,a/2,a,args=(n))
one = np.true_divide(1, integrand )
return(one)
возможно проблема в n_r
и x_r
n_r = np.arange(-Nmax, Nmax,1)
x_r = np.arange(0,a,.1)
print(k_n(n_r))
print(E(n_r))
print(integrate(n_r))`
TypeError: только Python-массивы размера 1 могут быть преобразованы в Python scalars.in _quad return _quadpack._qagse (func, a, b, args, full_output, epsabs, epsrel, limit