2016-08-16 7 views
1

Also nehme ich die Determinante einer Matrix und versuche dann, den Solver in Sympy zu verwenden, um den Ausdruck für eine bestimmte Variable zu lösen.Sympy Solver returing und Ausdruck

Die Determinante, die ich zu lösen versuche, obwohl sie ziemlich kompliziert ist, hat nur diese eine Variable. Da ich ein langer Ausdruck bin, möchte ich nicht alles einfügen, aber ich habe es zu einem Snippit gekürzt, der das gleiche Ergebnis liefert;

Determinant = -0.0134365566406344*Nperp**7*sqrt(Nperp**2 + 0.3249)/(3.07787011388119*Nperp**2*sqrt(3.07787011388119*Nperp**2 + 1) + sqrt(3.07787011388119*Nperp**2 + 1)) - 4.2064522609332*Nperp**6/(3.07787011388119*Nperp**2 + 1) 

Solutions = solve(Determinant, Nperp**2) 

Das Problem ist, dass, wenn ich Lösungen zu drucken, ich einen Ausdruck zurück in Bezug auf Nperp anstelle einer numerischen Lösung erhalten, die ist, was ich will.

Ich bin nicht sicher, ob das Problem ist, dass Sympy nicht die hohen Kräfte im Polynom behandeln, oder wenn vielleicht gibt keine numerische Lösung möglich ist, aber ich würde ein paar Gedanken von Menschen mehr Wissen als ich

schätzen Vielen Dank!

bearbeiten: Code nicht

eingerückt
+0

Das Code-Snippet enthält Größen wie 'Nperp7' und' Nperp6'. Ist das richtig? – Stelios

+0

Sie sollten "zur Macht von" Ich bin nicht sicher, warum die ** entfernt wurde, da ich es direkt aus meinem Skript kopiert habe, aber ich werde es bearbeiten, danke für das Zeigen! – Lowenbrau

+0

Es war wegen mir nicht den Code einrücken :) – Lowenbrau

Antwort

1

Sie sind für Nperp**2 zu lösen. Die Antworten, die es Ihnen gibt, sind richtig: Sie entsprechen Nperp**2 gemäß Ihrer Determinante-Gleichung, aber es ist wahrscheinlich nicht, was Sie wollen. Wenn Sie solve einen Ausdruck anstelle eines einzelnen Symbols angeben, wird nur dieser Ausdruck isoliert.

Sie suchen wahrscheinlich für

Solutions = solve(Determinant, Nperp) 

Für mich gibt diese zwei Lösungen, [-549.228571428573, 0.0].

Verwandte Themen