假设我想生成一个函数,稍后将其合并到一组方程中,用 scipy nsolve 函数求解。我想创建一个这样的函数:
xi + xi+1 + xi+3 = 1
其中变量的数量将取决于组件的数量。例如,如果我有 2 个组件:
f = lambda x: x[0] + x[1] - 1
3:
f = lambda x: x[0] + x[1] + x[2] - 1
我将组件指定为要调用的函数的参数中的数组:
def my_func(components):
for component in components:
.....
.....
return f
我不能只是找到这样做的方法。我必须能够做到这一点,因为这个函数和其他函数需要与 nsolve 一起解决:
x0 = scipy.optimize.fsolve(f, [0, 0, 0, 0 ....])
任何帮助,将不胜感激
谢谢!
由于我不确定哪种方法是最好的方法,我将充分解释我正在尝试做的事情:
-我正在尝试生成这两个函数以供稍后解决:
所以我想创建一个函数 teste([list of components]),它可以返回这两个方程(Psat(T) 是一个我可以根据组件调用的函数,P 是一个常数(值 = 760))。
例子:
teste(['Benzene','Toluene'])
会返回:
x苯 + x甲苯 = 1
xBenzene Psat ('苯') + xToluene Psat ('甲苯') = 760
在调用的情况下:
teste(['Benzene','Toluene','Cumene'])
它会返回:
x苯 + x甲苯 + x异丙苯 = 1
xBenzene Psat ('苯') + xToluene Psat ('甲苯') + xCumene*Psat('Cumene') = 760
所有这些 x 值都不是我可以计算并变成我可以求和的列表的东西。它们是根据我在系统中拥有的组件数量创建的变量...
希望这有助于找到最好的方法