Lösen einer Gleichung mit scipy ist fsolve
Ich versuche, lösen Sie die Gleichung f(x) = x-sin(x) -n*t -m0
In dieser Gleichung n
und m0
sind Attribute, die definiert werden in meiner Klasse. Weiter t
ist eine Konstante ganze Zahl in der Gleichung, aber es hat jedes mal ändert.
Hab ich gelöst, die Gleichung so bekomme ich eine "neue Gleichung". Ich habe importiert scipy.optimieren
def f(x, self):
return (x - math.sin(x) -self.M0 - self.n*t)
def test(self,t):
return fsolve(self.f, 1, args=(t))
Korrekturen und Vorschläge zu machen, damit es funktioniert?
- Können Sie uns ein vollständiges Beispiel, auch das, was über dieses "funktioniert nicht"?
- Ich glaube nicht, dass ich je gesehen habe
f(x, self)
vor.. das erste argument erhalten die Instanz, unabhängig davon, was Sie es nennen. - es ist mit fsolve aus scipy.optimieren
- das Hauptproblem ist, dass es al ist, getan zu werden, in eine Klasse. das ist, warum ich brauchen, um zu definieren die Gleichung in f(x, self)
- Der erste Fehler, die ich brauche, um loszuwerden, ist TypeError: func() takes exactly 2 arguments (3) also hat es wahrscheinlich etwas damit zu tun, args=(t), weil vor dem habe ich Hinzugefügt, dass es gar nicht geben, dass Fehler
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können, sehe ich mindestens zwei Probleme: das haben Sie verwechselt die Reihenfolge der Argumente zu
f
, und du bist nicht zu gebenf
Zugang zut
. So etwas wie dies funktionieren sollte:[Hinweis: ich war faul und machte
M0
undn
Klasse Mitglieder]gibt:
Müssen Sie definieren
f()
etwa so:In anderen Worten:
self
kommt zuerst (immer);x
;fsolve()
.Bist du mit einem root-finding-Algorithmus in irgendeiner Form. Es gibt mehrere, die die gemeinsame Nutzung, so wäre es hilfreich zu wissen, was man.
Müssen Sie wissen, drei Dinge:
Müssen Sie wissen, dass einige Kombinationen können keine Wurzeln.
Visualisierung der Funktionen, die von Interesse sein können, hilfreich. Sie haben zwei: eine lineare Funktion und eine sinusiod. Wenn Sie waren, um eine Darstellung der beiden, die Sätze von Konstanten geben würde, Sie Schnittmengen? Der Schnittpunkt ist die Wurzel, die Sie suchen.