2017-05-11 4 views
0

Ich versuche, die Werte der Temperaturen zwischen 2250 K bis 2300 K zu finden und habe eine grundlegende Gleichung geschrieben, die lineare Interpolation verwendet, um die Enthalpien zwischen diesen Temperaturen zu definieren. Ich weiß nicht genau, wie ich das machen soll.Thermodynamische Analyse mit linearer Interpolation

Dies ist die Gleichung:

T1_e = 868739/(0.9*h1_co2 + 0.1*h1_co + 2*h1_h2o + 0.05*h1_o2 + 7.52*h1_n2) 

T2_e = 868739/(0.9*h2_co2 + 0.1*h2_co + 2*h2_h2o + 0.05*h2_o2 + 7.52*h2_n2) 

Die Werte von h1_co2, h1_co, h2_co2, h2_co usw. sind Konstanten für die jeweiligen Temperaturen von K.

T1_e stellt die Temperatur bei 2250 K.

T2_e repräsentiert die Temperatur bei 2300 K.

+2

meine Vermutung ist, dass Sie numpy die polyfit verwenden möchten. Die Dokumentation ist hervorragend. (https://docs.scipy.org/doc/numpy/reference/generated/numpy.polyfit.html) –

Antwort

0

Ich stelle mir deine Antwort wäre so etwas wie dieses

import numpy as np 
import matplotlib.pyplot as plt 

# define your constants 
h1_co2 = 7 
h1_co = 12 
h2_co2 = 6 
h2_co = .5 
# etc... 

def T1_e(h1_co2, h1_co, h1_h2o, h1_o2, h1_n2): 
    t1_e = 868739/(0.9*h1_co2 + 0.1*h1_co + 2*h1_h2o + 0.05*h1_o2 + 7.52*h1_n2) 
    return t1_e 

def T2_e(h2_co2, h2_co, h2_h2o, h2_o2, h2_n2): 
    t2_e = 868739/(0.9*h2_co2 + 0.1*h2_co + 2*h2_h2o + 0.05*h2_o2 + 7.52*h2_n2) 
    return t2_e 

temp = [2250, 2300] 
e1 = T1_e(h1_co2, h1_co, h1_h2o, h1_o2, h1_n2) 
e2 = T2_e(h2_co2, h2_co, h2_h2o, h2_o2, h2_n2) 
e = [e1, e2] 

p = np.polyfit(temp, e, 1) 

x = np.linspace(2250, 2300, 100) 
plt.plot(x, np.poly1d(x)) 
plt.show() 
+0

das hilft ziemlich viel .... danke! aber eine andere Sache .... gibt es eine Möglichkeit, einen einfachen Assertion-Fehler für Werte außerhalb des 2250-2300-Bereichs zu tun? Ich bin nicht sehr gut bei Assertionsfehler –

+0

gibt es 2 Möglichkeiten, um Fehler zu behandeln. Sie können 'if' Anweisungen oder' try, except' Blöcke verwenden. Bei Verwendung von "try" wird im Allgemeinen "except" verwendet, um bekannte Fehler zu behandeln. Versuchen Sie, den Bereich der linearen Anpassung zu begrenzen? –