Sagen wir, ich habe eine Gleichung f(x) = x**2 + 1
, ich muss den Wert f(2)
finden.Python: Wie finde ich den Wert einer Gleichung für einen gegebenen Eingang
Der einfachste Weg ist, eine Funktion zu erstellen, einen Parameter zu akzeptieren und den Wert zurückzugeben.
Aber das Problem ist, f(x)
wird dynamisch erstellt und so, eine Funktion kann nicht im Voraus geschrieben werden, um den Wert zu erhalten.
Ich verwende cvxpy
für einen Optimierungswert. Die Gleichung würde wie folgt aussehen:
x = cvx.Variable()
Si = [(cvx.square(prev[i] + cvx.sqrt(200 - cvx.square(x))) for i in range(3)]
prev
ist ein Array von Zahlen. Es wird eine Si[0] Si[1] Si[2]
sein.
Wie finde ich den Wert von Si[0] for x=20
?
Grundsätzlich gibt es eine Möglichkeit, die genannte Variable zu ersetzen und den Wert der Gleichung zu finden, wenn Sie cvxpy verwenden?
Versuchen Sie [sympy.sympify] (http://docs.sympy.org/dev/tutorial/basic_operations.html#converting-strings-to-sympy-expressions) und 'sympy.evalf'. – msw
@msw Danke für die schnelle Antwort. Ich benutze cvxpy zum Erstellen der Gleichung und sympy ist keine Option für mich. Kann sympy.sympify nicht in der mit cvxpy erstellten Gleichung verwenden. – Sanjay
Was ist das größere Problem, das Sie versuchen zu lösen? cvxpy dient zum Finden von Maxima und Minima, nicht einfach zum Auswerten eines Ausdrucks. –