2017-01-02 12 views
0
import numpy 

import matplotlib.pyplot as plt 

from scipy import integrate 

def f(x,y): 
    return x*y + x**2 

def integral(x,y): 
    I = integrate.quad(f, 0, x, args=(y,))[0] 
    return I 

def gau(x,y): 
    return (1+x)*integral(x,y) 


xlist = numpy.linspace(-3.0, 3.0, 100) 
ylist = numpy.linspace(-3.0, 3.0, 100) 
X, Y = numpy.meshgrid(xlist, ylist) 
Z = gau(2, Y) 

print(Z) 

오류 메시지가 계속 나타납니다. "제공된 함수가 유효한 float를 반환하지 않습니다.", 문제는 배열을 쿼드 함수에 전달하려고한다는 것입니다. 배열의 모든 항목에 대한 적분을 다음과 같이 평가할 생각입니다.Python : 배열에 대한 통합 계산

yi=numpy.linspace(-3.0,3.0,100) 
for i, item in enumerate(yi): 
    return integral[i]=integrate.quad(f,0,x,args=(yi,))[0] 

작동하지 않지만 올바른 방법입니까? 다른/더 나은 제안?

답변

0

scipy.integral 자체가 아니라 배열을 전달할 때 유효한 float를 제공하지 않는 f();

왜 f()에 배열을 전달합니까?