WIe "solved" man in Python? Was mache ich verkehrt?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Basilius Sapientia
User
Beiträge: 46
Registriert: Freitag 5. September 2014, 22:34

Liebe Ihr!

Ich habe diesen Code geschrieben:

Code: Alles auswählen

from sympy import solve, Eq, Symbol
import numpy as np

pa = Symbol('pa')
pb = Symbol('pb')
DHvap = Symbol('DHvap')
Ryd = Symbol('Ryd')
Ta = Symbol('Ta')
Tb = Symbol('Tb')

equ = Eq(-((DHvap) / (Ryd) )*(Ta**(-1) - Tb**(-1)))/(np.log(pa/pb))
print solve(equ)
Doch leider will er mir kein Resultat liefern :/ ... was tun? Ich würde gerne Tb in der Formel herausfinden:

Code: Alles auswählen

ln \left( \frac{p_1}{p_2} \right) = - \frac{\Delta_{vap}H}{R} (T_1^{-1}-T_2^{-1})
http://www.fotos-hochladen.net/uploads/ ... ok0ga7.gif

Was läuft dort schief? Wie kann ich das anders machen? Vielen Dank schon mal für eure Hilfe!!
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Wenn etwas nicht funktioniert, dann solltest du auch erzählen was nicht funktioniert. Dazu gehören unter anderem das erwartete Ergebnis oder, wie in diesem Fall, die Fehlermeldung, inklusive des gesamten Tracebacks. Mit "funktioniert nicht" können wir dir kaum helfen.

In diesem Fall ist mindestens der np.log-Aufruf fehlerhaft. Du kannst nicht einfach SymPy und NumPy vermischen. Wenn du eine Gleichung in SymPy aufstellen möchtest, dann musst du auch die Methoden aus dem Modul verwenden. In diesem Fall also sympy.log.
Das Leben ist wie ein Tennisball.
BlackJack

@Basilius Sapientia: Die Klammerung in der ``equ = …``-Zeile stimmt nicht. Wenn man dann noch das mit der falschen log-Funktion behebt und dann noch sagt für welches Symbol man das lösen möchte, also nicht nur im Beitrag sondern auch im Code, bekommt man auch ein Ergebnis. :-)
Basilius Sapientia
User
Beiträge: 46
Registriert: Freitag 5. September 2014, 22:34

BlackJack hat geschrieben:@Basilius Sapientia: Die Klammerung in der ``equ = …``-Zeile stimmt nicht. Wenn man dann noch das mit der falschen log-Funktion behebt und dann noch sagt für welches Symbol man das lösen möchte, also nicht nur im Beitrag sondern auch im Code, bekommt man auch ein Ergebnis. :-)
Vielen Dank :) ... allerdings weiß ich nicht WIE ich das machen soll. Könnten sie es mir bitte sagen? Was soll ich machen, damit es funktioniert?
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Basilius Sapientia hat geschrieben:Vielen Dank :) ... allerdings weiß ich nicht WIE ich das machen soll. Könnten sie es mir bitte sagen? Was soll ich machen, damit es funktioniert?
Was von den drei Punkten? Die Klammerung? Die log-Funktion? Das Symbol? Du musst deine Fragen etwas genauer Stellen.
Das Leben ist wie ein Tennisball.
BlackJack

@Basilius Sapientia: Wo liegt denn jetzt genau das Problem? `Eq()` wird benutzt um ein Gleichungsobjekt zu erzeugen. Dazu muss die gesamte linke Seite der Gleichung *in* den Klammern stehen. Und nicht teilweise drin und teilweise draussen.
Basilius Sapientia
User
Beiträge: 46
Registriert: Freitag 5. September 2014, 22:34

EyDu hat geschrieben:
Basilius Sapientia hat geschrieben:Vielen Dank :) ... allerdings weiß ich nicht WIE ich das machen soll. Könnten sie es mir bitte sagen? Was soll ich machen, damit es funktioniert?
Was von den drei Punkten? Die Klammerung? Die log-Funktion? Das Symbol? Du musst deine Fragen etwas genauer Stellen.
Ich würde gerne T_2 in dieser Formel isolieren:
[img]http://www.fotos-hochladen.net/uploads/ ... t6.gif/img]

Leider habe ich keine Ahnung wie ich das machen sollte. Also habe ich die Antwort von "PreludeAndFugue" auf dieser Seite:http://stackoverflow.com/questions/4449 ... e-variable ... versucht anzuwenden. Doch leider hat es nicht ganz so geklappt wie ich wollte. Hier die Fehlermeldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "/home/basilius/MEGAsync/Q5/Aflevering_5/Regneri_afl5.py", line 12, in <module>
    equ = ((-(DHvap/Ryd)*(Ta**(-1)-Tb**(-1)))/(np.log((pa)/(pb))))
AttributeError: log
[Finished in 2.6s]
Hier der Code [verändert]:

Code: Alles auswählen

from sympy import solve, Eq, Symbol, log
import numpy as np
import math

pa = Symbol('pa')
pb = Symbol('pb')
DHvap = Symbol('DHvap')
Ryd = Symbol('Ryd')
Ta = Symbol('Ta')
Tb = Symbol('Tb')

equ = ((-(DHvap/Ryd)*(Ta**(-1)-Tb**(-1)))/(log((pa)/(pb))))
print solve(Eq(equ, Tb))
Symbole in der Formel und Symbole in dem Script:
p1=pa
p2=pb
H_{vap}=DHvap
R=Ryd
T1=Ta
T2=Tb
T2 [also im Script Tb] ist das, was ich finden muss. Hoffentlich kann mir Jemand helfen?

Jedenfalls gibt er keine errors mehr. Doch ich kann das Resultat nicht gebrauchen. Den ersten ist es nicht richtig und zweitens wollte ich Tb finden. Was tun?
[{DHvap: Ryd*Ta*Tb**2*log(pa/pb)/(Ta - Tb)}]
[Finished in 1.0s]
BlackJack

@Basilius Sapientia: Du hast schon wieder die Klammerung falsch. Schau doch mal wie viele und welche(s) Argument Du `solve()` übergibst.
Antworten