एक फंक्शन के साथ scipy.optimize.broyden2 का उपयोग करना जो कई मानकों को प्राप्त करता है - पायथन, scipy

मैं उपयोग करना चाहता हूँ 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

उत्तर:

उत्तर № 1 के लिए 1

जैसा कि टिप्पणियों में सुझाया गया था, आप एक सहायक फ़ंक्शन का उपयोग कर सकते हैं जो उपयोग करने वाले तर्कों की सूची को अनपैक करता है *list सिंटैक्स, और उस के साथ अपने मुख्य फ़ंक्शन को कॉल करता है। एक न्यूनतम उदाहरण नीचे दिखाया गया है, जहां f वह फ़ंक्शन है जिसका मूल पाया जा रहा है।

from scipy.optimize import broyden2
def f(x, y, z):
return [x-1, y-2, z-3]
broyden2(lambda X: f(*X), [0, 0, 0])

आउटपुट: array([ 1., 2., 3.])


संबंधित सवाल
सबसे लोकप्रिय