2017-01-02 121 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) 

我一直收到錯誤消息「提供的函數不返回有效的浮點數。」,我認爲問題是我嘗試將數組傳遞給四元函數。我想過用類似的方式評估陣列的每個條目的積分: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

如果你的f()在傳遞一個數組時不提供有效的float,而不是scipy.integral本身;

你爲什麼要傳遞數組到你的f()?