2015-02-05 7 views
5

Czy to możliwe? Mam podstawowe równanie:Czy można przeprowadzić analizę czułości parametru za pomocą Pythona?

Q = (pi*(Ta-Ts))/(((1/ha*Do))+(1/(2*k))*math.log(Do/Di)) * L 

where; 
ha = 8.14 
k = 0.0026 
Do = 0.2 
Di = 0.003175 
L = 0.25 
F = 0.0704 
Ta = 293 
Ts = 113 
pi = 3.14159265 

Chcę zobaczyć, jak niektóre zmienne wpływają na końcowe wyniki (i zbudować tabelę wrażliwości zmiennych). Udało mi się to już w formie wykresu, ale chciałbym trochę statystyki opisowej.

Na przykład chcę mieć Do (średnica zewnętrzna) jako zakres np.arange (0.1 ,2,100) i utrzymywać pozostałe zmienne na stałym poziomie.

Mam następujący kod do tworzenia niektórych działek to:

def enthalpy_mod1(ambient_temp, LNG_temp, Flow): 

    ha = 8.14 
    k = 0.0026 
    Do = 0.2 
    Di = 0.003175 
    L = 0.25 
    F = Flow 
    Ta = ambient_temp 
    Ts = LNG_temp 
    pi = 3.14159265 
    Q = (pi*(Ta-Ts))/(((1/ha*Do))+(1/(2*k))*math.log(Do/Di)) * L 

    e = (Q*3600)/F 

    results.append(e) # append the result to the empty list 
    df['Enthalpy Result']= e 
    plt.plot(Flow, e) 
    plt.rcParams.update({'font.size': 12}) 
    plt.annotate('Flow rate effects', xy =(0.1,14000)) 
    plt.show() 
    print df 

print Flow_mod(df['Temp'], df['LNG'], df['Flow']) 

ambient_temp = [293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293] 
Flow = np.linspace(0.04, 0.2, 18) 
LNG_range = [113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113] 

results = [] 

i umieścić wyniki w dataframe .. i kreślenia w ten sposób.

InsulationThicknessEffects

Odpowiedz

8

Analiza wrażliwości jest metodologia w sobie tak powinno być niezależne od języka (oczywiście wiesz, że tylko co punkt), więc może po prostu zaimplementować algorytmy w python siebie. ALE, jak pytałeś o pythona, tak, ludzie to zrobili. Spójrz na SALib, bibliotekę Pythona do przeprowadzania globalnych analiz czułości za pomocą różnych metod.

Opisana metoda przenosi jeden parametr na raz. Jest to lokalna analiza wrażliwości i nie daje wglądu w efekty interakcji między zmiennymi, ani nie będzie w stanie zmierzyć efektów nieliniowych w kontekście. Biorąc pod uwagę, że twoje równanie jest dość proste, może to nie mieć znaczenia, ale jest to bardzo ważne w bardziej złożonych modelach.

Powiązane problemy