2016-08-16 5 views
1

Je prends donc le déterminant d'une matrice, puis j'essaie d'utiliser le solveur dans Sympy pour résoudre l'expression d'une variable particulière.Sympy Solver reture et expression

Le déterminant que j'essaie de résoudre tout en étant assez compliqué ne contient qu'une seule variable. Étant une longue expression je ne veux pas tout coller mais je l'ai raccourcie à un mot qui donne le même résultat;

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) 

Le problème est que lorsque je Solutions d'impression, je reçois une expression en termes de retour sur Nperp au lieu d'une solution numérique qui est ce que je veux.

Je ne suis pas sûr que le problème est que sympy ne peut pas gérer les puissances élevées dans le polynôme, ou s'il n'y a peut-être pas de solution numérique possible, mais j'apprécierait des pensées des gens plus compétents que moi

Merci!

Edit: Code non échancrée

+0

L'extrait de code contient des quantités telles que 'Nperp7' et' Nperp6'. Est-ce correct? – Stelios

+0

Ils devraient être 'Au pouvoir de' Je ne suis pas sûr pourquoi le ** a été supprimé depuis que je l'ai copié directement à partir de mon script, mais je vais le modifier, merci de le signaler! – Lowenbrau

+0

Il était dû à moi ne pas indenter le code :) – Lowenbrau

Répondre

1

Vous résolvez pour Nperp**2. Les réponses qu'il vous donne sont correctes: elles sont égales à Nperp**2 selon votre équation de déterminant, mais ce n'est probablement pas ce que vous voulez. Si vous donnez solve une expression plutôt qu'un seul symbole, cela isolera simplement cette expression.

Vous cherchez probablement

Solutions = solve(Determinant, Nperp) 

Pour moi, cela donne deux solutions, [-549.228571428573, 0.0].