如何在python中手工计算偏导数

如何在python中手工计算偏导数,python,derivative,Python,Derivative,几天来,我一直在用python计算偏导数,包括这里的其他几篇文章 我想我离弄清楚我需要做什么更近了一步,但我不确定如何在python中实现以下公式的手动部分微分 aj(x) = cj * product (xi, si) 它计算了一个生化反应在多个反应系统中发生的概率。部分分化需要与xi有关,xi是称为popul_num的模型中每个分子物种的离散分子数数组 其中,乘积(xi,si)是二项式系数的乘积,对于包含离散分子数的数组和包含每个反应中分子比率的第二个数组LHS(si) 所以我的推导公式应

几天来,我一直在用python计算偏导数,包括这里的其他几篇文章

我想我离弄清楚我需要做什么更近了一步,但我不确定如何在python中实现以下公式的手动部分微分

aj(x) = cj * product (xi, si)
它计算了一个生化反应在多个反应系统中发生的概率。部分分化需要与
xi
有关,xi是称为
popul_num
的模型中每个分子物种的离散分子数数组

其中,
乘积(xi,si)
是二项式系数的乘积,对于包含离散分子数的数组和包含每个反应中分子比率的第二个数组
LHS
si

所以我的推导公式应该是:
bj(x)=daj(x)/d(xi)
。 我编写了以下函数,用于计算每个反应的aj(x)并返回一个数组:

import numpy
import scipy

def propensity_calc(LHS, popul_num, stoch_rate):
    propensity = np.zeros(len(LHS))
    for row in range(len(LHS)):
            a = stoch_rate[row]     
            for i in range(len(popul_num)):
                if (popul_num[i] >= LHS[row, i]):       
                    binom_rxn = binom(popul_num[i], LHS[row, i])
                    aj = a*binom_rxn
                else:
                    aj = 0
                    break
            propensity[row] = aj    
return propensity
其中,
stoch_rate
是一个包含每个反应速率的数组

我试着使用scipys
misc.derivation
方法,但我的主管后来告诉我手工操作,我不知道如何在python中实现它。 这可能更像是一个数学问题,如果有人知道一个更适合我提问的地方,或者有任何好的在线资源链接供我阅读,请给我指一下


干杯

也许是您需要的。如果您正在使用Python,如何手动完成?似乎你的主管希望你自己解决计算问题。看起来像是基本的Calc III。