在scipy中迭代积分和绘图结果

时间:2016-03-08 14:47:54

标签: python scipy

我正在尝试在scipy中迭代数值积分并绘制结果。但是它返回'float'对象不可迭代的错误。对此有什么正确的方法?

import numpy as np
from scipy import integrate
import matplotlib.pyplot as plt


def g(x):
    if (np.abs(x)<1e-10):
        res = x
    else:
        res = x*np.sin(1.0/x)
    return res

X = np.arange(-0.5,0.5,0.001)

#plot(X,f(X))

def f(x):
    res = np.zeros_like(x)
    for i,val in enumerate(x):
        y,err = integrate.quad(g,0,val)
        res[i]=y
    return res


def F(x):
    res = np.zeros_like(x)
    for i,val in enumerate(x):
        y,err = integrate.quad(f,0,val)
        res[i]=y
    return res

plt.plot(X,F(X))

(代码基于这个答案:https://scicomp.stackexchange.com/a/21871/11911

0 个答案:

没有答案