Ich versuche, ein Gleichungssystem gleichzeitig zu lösen. Die Gleichungen selbst werden gefunden, indem der Gradient einer Funktion mit einigen Variablen berechnet wird. Ich verwende sympy und hier ist der Code:Setze Ableitungen einer Funktion auf 0 in Python
from sympy import *
m = Matrix(symbols('a b c', positive = True))
y = 4*log(m[0]) + 4*log(m[1]) + 4*log(m[2]) - 2*log(m[1] + m[2]) \
- 2*log(m[0] + m[2]) - 2*log(m[0] + m[1]) - 6*log(m[0] + m[1] + m[2])
s = [diff(y, i) for i in m]
solve(s,m)
Jedoch habe ich die folgende Störung erhalte: "NotImplementedError erhöhen (% EQ2 '% s konnte nicht lösen')"
Kann jemand Bitte hilf mir, das zu lösen. Oder gibt es einen anderen Weg, auf dem ich ein paar Gradienten berechnen und dann das erhaltene Gleichungssystem lösen kann? Mir geht es gut mit einer numerischen Approximation und wenn mehrere Lösungen vorhanden sind, wird sogar eine Lösung ausreichen.
EDIT Ich verstehe, dass er Ziel, das ich in dem Code habe über symmetrische Gradienten gezeigt hat. Hier suche ich nach einer Lösung wie (1,1,1) oder (2,2,2). Aber in der tatsächlichen Implementierung wird meine Zielfunktion Gradienten haben, die nicht symmetrisch sind. In gewisser Weise muss ich das Verhältnis zwischen ihnen kennen.
Das Ziel, das ich in dem Code gezeigt habe, wird symmetrische Gradienten haben. Hier suche ich nach einer Lösung wie (1,1,1) oder (2,2,2).Aber in der tatsächlichen Implementierung wird meine Zielfunktion Gradienten haben, die nicht symmetrisch sind. In gewisser Weise muss ich das Verhältnis zwischen ihnen kennen. – user1434997
Ich bin nicht so gut in Mathematik (wie Sie sehen können), also kann ich Ihnen mit der letzten Gleichung sowieso nicht helfen. Es tut uns leid! – CodenameLambda