1
我想用scipy.optimize.broyden2功能使用scipy.optimize.broyden2,问题是,我的功能不只是把数组作为参数,但多了很多参数。与接收几个参数
我该怎么办?定义全局变量?
这些都是我的功能:
def F(S, I, R, alpha, beta):
return [- beta * S * I, beta * S * I - alpha * R, alpha * R]
def euler(xi, xf, m, F, initial_values, alpha, beta):
h = (xf - xi)/m
t = np.linspace(xi, xf, m + 1)
t = np.delete(t, 0)
vect_y = [initial_values[0], initial_values[1], initial_values[2]]
for i in range(len(t)):
y_actual = [sum(x) for x in zip(vect_y, [element * h for element in F(vect_y[0], vect_y[1], vect_y[2], alpha, beta)])]
vect_y = y_actual
return vect_y
我想用broyden2
与euler
,其中x0
会initial_values
。
定义全局变量一般不Python化的解决方案。不知道更多关于你的问题,Python化的解决方案可能是定义一个函数,它接受您的参数,创建一个数组,使用'scipy.optimize.broyden2',然后返回scipy.optimize.broyden2'的'结果。但如果不了解您的参数或问题,很难多说。 –
你可以重构使用*参数或类似的东西。你能告诉我们你现在的代码吗?很难理论上的工艺,更好地看到实际问题。 – mwm314
@ mwm314我加了我的功能。 – OiciTrap