Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.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:fsolve,积分上限内未知_Python_Scipy_Integration - Fatal编程技术网

python:fsolve,积分上限内未知

python:fsolve,积分上限内未知,python,scipy,integration,Python,Scipy,Integration,对于上限和被积函数中未知的积分,是否可以应用fsolve方法???我在python中使用quad方法进行集成 提前感谢 当然 假设要求x,使得t*(1-x*t)的t=0到t=x的t上的积分为0。可以通过定义两个函数来实现这一点被积函数(t,x)将计算t*(1-x*t),func(x)将使用quad对被积函数进行积分,其中x既是积分的上限,也是被积函数的额外参数。下面是一个演示: import numpy as np from scipy.integrate import quad from sc

对于上限和被积函数中未知的积分,是否可以应用fsolve方法???我在python中使用quad方法进行集成

提前感谢

当然

假设要求x,使得t*(1-x*t)的t=0到t=x的t上的积分为0。可以通过定义两个函数来实现这一点
被积函数(t,x)
将计算t*(1-x*t),
func(x)
将使用
quad
被积函数进行积分,其中
x
既是积分的上限,也是被积函数的额外参数。下面是一个演示:

import numpy as np
from scipy.integrate import quad
from scipy.optimize import fsolve


def integrand(t, x):
    return t*(1 - x*t)


def func(x):
    y, err = quad(integrand, 0, x, args=(x,))
    return y


# Use 1.0 as the initial guess.  Note that a bad initial guess
# might generate a warning and return the degenerate solution at x=0.
sol = fsolve(func, 1.0)

print "Solution:      ", sol[0]

# The exact solution that we want is sqrt(3/2)
print "Exact solution:", np.sqrt(1.5)
输出:

Solution:       1.22474487139
Exact solution: 1.22474487139

如果我想找到x,从0积分到一些f(x)呢?我尝试了同样的方法,将“x”替换为f(x),得到了TypeError:无法确定关系的真值