1
scipy.optimize.broyden2을 사용하고 싶습니다. 문제는 내 함수가 배열을 인수로 사용하지 않고 더 많은 매개 변수를 사용한다는 것입니다.몇 가지 매개 변수를받는 함수로 scipy.optimize.broyden2를 사용합니다
어떻게해야합니까? 전역 변수를 정의 하시겠습니까?
이들은
내 기능은 다음과 같습니다 나는x0
이
initial_values
것
euler
와
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
.
일반적 파이썬 용액 아니다. 문제에 대해 더 많이 알지 못하면 Pythonic 솔루션은 매개 변수를 취하는 함수를 정의하고,'scipy.optimize.broyden2'를 사용하도록 배열을 생성 한 다음'scipy.optimize.broyden2'의 결과를 반환합니다. 그러나 매개 변수 나 문제에 대해 알지 못해도 더 많은 것을 말하기는 어렵습니다. –
당신은 * args 같은 것을 사용하도록 리팩터링 할 수 있습니다. 현재 코드를 보여줄 수 있습니까? 이론 공예에 열심히, 실제 문제를 더 잘 보게. – mwm314
@ mwm314 제 기능을 추가했습니다. – OiciTrap