Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用python求解积分方程_Python_Python 3.x_Numpy_Scipy - Fatal编程技术网

用python求解积分方程

用python求解积分方程,python,python-3.x,numpy,scipy,Python,Python 3.x,Numpy,Scipy,我需要用python 3.2在win7中解一个积分方程 我想先找到一个初始猜测解决方案,然后使用“fsolve()”在python中解决它 代码如下: import numpy as np from scipy.optimize.minpack import fsolve from cmath import cos, exp from scipy.integrate.quadpack import quad def integrand2(x, b): return exp(-x)/b

我需要用python 3.2在win7中解一个积分方程

我想先找到一个初始猜测解决方案,然后使用“fsolve()”在python中解决它

代码如下:

import numpy as np
from scipy.optimize.minpack import fsolve
from cmath import cos, exp
from scipy.integrate.quadpack import quad

def integrand2(x, b):
    return exp(-x)/b 

def intergralFunc2(b):
    integral,err = quad(integrand2, 0, 10, args=(b))  // **error here** 
    return 0.01 - integral

import matplotlib.pyplot as plt

def findGuess():
    vfunc = np.vectorize(intergralFunc2)
    f = np.linspace(-20, 20,10)
    plt.plot(f, vfunc(f))
    plt.xlabel('guess value')
    plt.show()

def solveFunction():
    y= fsolve(intergralFunc2, 10)
    return y


if __name__ == '__main__':
    findGuess()
    solution = solveFunction()
    print("solution is ", solution)
我得到一个错误:

 quadpack.error: Supplied function does not return a valid float.

任何帮助都将不胜感激

刚刚做了以下更改,它应该会起作用(它对我起作用)

删除:

from cmath import exp, cos
包括:

from numpy import exp, cos

如注释中所述,
cmath
函数只接受
float
输入,不接受数组。

不能将
cmath
函数与NumPy/SciPy混合使用,因为它们不适用于NumPy数组。(这不是问题的唯一原因。)您应该只使用来自。。。import从包中导入模块,然后使用限定名称访问函数——否则,NumPy函数和标准库函数之间会出现相当多的名称冲突。请尝试从NumPy import cos、exp执行
,而不是使用
cmath
,谢谢!但是,当我对integrand2做了一个改变,这样我可以解一个嵌入了另一个积分方程的积分方程时,我得到了同样的错误。我将发表一篇新的文章。