Python中数组上2个未知数的数值积分

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

我是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 * * 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
。您可以生成范围内的大量值集合,或者使用一些迭代或优化解算器。