这就是我要做的事情:
在特定的积分范围内通过“quad”集成功能划分数字集成阵列(在整个数据范围内):
maxw = lambda t,en: exp(-en/(kB*t)) # where the following is inside a loop through t values, and B is a data array with the same dimension as en
aa=[]
cc=[]
A=B*maxw(t,en)
aa.append(trapz(A,en)) # integrate numerically
cc.append(quad(lambda energ: exp(-energ/kB*t),e0,inf)) # integrate fn over range e0, inf
#end of loop in t
dd=array(aa)/array(cc)
给出了错误:“操作数不能与形状(n)(n,2)一起广播”,n是t循环的长度
或者换句话说,对于循环中“t”的每个值:(1)使用trapz整合一组数值数据,并将其转换为数组; (2)在一定限度之间使用四边形集成一个函数,也变成一个数组;然后(3)将一个数组除以另一个数组以获得最终数组。
显然我缺少一些东西。我该怎么做?