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)

「指定された関数は有効な浮動小数点数を返しません」というエラー メッセージが表示され続けます。、問題は、クワッド関数に配列を渡そうとしていることだと思います。そのようなもので配列のすべてのエントリの積分を評価することを考えました:

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]

うまくいきませんが、正しい方法ですか?他の/より良い提案はありますか?

4

3 に答える 3

0

scipy.integral 自体ではなく、配列を渡したときに有効な float を提供しない f() の場合。

なぜ f() に配列を渡すのですか?

于 2017-01-02T17:04:06.957 に答える