【发布时间】:2014-03-23 17:29:24
【问题描述】:
我需要在win7中通过python 3.2求解嵌入另一个积分方程的积分方程。
有 2 个积分方程。
代码在这里:
import numpy as np
from scipy.optimize.minpack import fsolve
from numpy import exp
from scipy.integrate.quadpack import quad
import matplotlib.pyplot as plt
import sympy as syp
lb = 0
def integrand2(x, a):
print("integrand2 called")
return x**(a-1) * exp(-x)
def integrand1(x, b, c):
print("integrand1 called")
integral , err = quad(integrand2, lb/b, syp.oo , args=(1+c))
return c/(b*integral)
def intergralFunc1(b,c):
integral,err = quad(integrand1, 0, 10, args=(b,c))
print("integral is ", integral, " and err is ", err)
print("b is ", b, " and c is ", c)
return 10 - integral
def findGuess():
vfunc = np.vectorize(intergralFunc1)
f1 = np.linspace(0.01, 10,10)
f2 = np.linspace(0.01, 10,10)
result = vfunc(f1, f2)
plt.plot(f1, result)
plt.xlabel('f1')
plt.subplot(211)
plt.plot(f2, result)
plt.xlabel('f2')
plt.subplot(212)
plt.show()
def solveFunction():
sol= fsolve(intergralFunc1, 5, 5, full_output=True)
return sol
if __name__ == '__main__':
findGuess()
sol = solveFunction()
print("sol is ", sol)
print("verification: \n")
print("f(b,c) is ", intergralFunc1(sol[0],5))
我得到了毫无意义的结果。
integral is nan and err is nan
b is [ 5.] and c is 5
f(b,c) is nan
任何帮助将不胜感激!!!
【问题讨论】:
-
术语:积分方程包含您要求解的未知函数。您在这里所拥有的不是数学中通常使用的积分方程,而是包含积分的常方程。
-
@pv,求解包含积分的常方程需要什么算法/方法?谢谢!
-
我认为您现在正在做的是一种明智的方法,模数错误(请参阅下面的答案)。
标签: python python-3.x numpy continuous-integration scipy