Python中数组上2个未知数的数值积分
我是Python新手,刚刚完成Python数值方法的第一门课程,虽然它向我展示了许多有用的函数,但我仍然有点迷茫,无法解决以下等式[1]: 通过实验,我获得了‘Iobs/Imax’和变量‘z’的数据;但我想解变量‘a’和‘p’ 到目前为止,我已经为'Iobs/Imax'和'z'放入了数据数组;并将整数定义为以下值-在*之间添加间隔,以防止文本中的样式更改:Python中数组上2个未知数的数值积分,python,numpy,integration,numeric,Python,Numpy,Integration,Numeric,我是Python新手,刚刚完成Python数值方法的第一门课程,虽然它向我展示了许多有用的函数,但我仍然有点迷茫,无法解决以下等式[1]: 通过实验,我获得了‘Iobs/Imax’和变量‘z’的数据;但我想解变量‘a’和‘p’ 到目前为止,我已经为'Iobs/Imax'和'z'放入了数据数组;并将整数定义为以下值-在*之间添加间隔,以防止文本中的样式更改: def integrand1(z, a, p): return (np.exp(-2 * a * z) * (p * * 2)/(p
def integrand1(z, a, p):
return (np.exp(-2 * a * z) * (p * * 2)/(p * * 2 + (z - z0) * * 2))
I1 = quad(integrand1, 0, np.inf, args=(a,p))
def integrand2(z, a, p):
return np.array(np.exp(-2 * a * z) * (p * * 2)/(p * * 2 + z * * 2))
I2 = quad(integrand2, 0, np.inf, args=(a,p))
然而,这就是我迷路的地方,我不知道如何解决'Iobs/Imax==I1/I2'以获得'a'和'p'
任何帮助和建议都会很有帮助,请提前感谢。
quad
是一种数值积分,因此仅适用于a
和p
的特定数值。因此,“求解a和p”需要对a
和p
的不同值使用I1
和I2
。您可以生成范围内的大量值集合,或者使用一些迭代或优化解算器。