В настоящее время я пытаюсь найти значения RH и TMP в функции для дефицита давления пара (VPD), которые приводят к идеальному VPD. Поэтому я определил свои функции для VPD и попытался выполнить нелинейную регрессию, но не получаю кривую, которую я ищу.Адаптация кривой к экспоненциальному
import numpy as np
from scipy.optimize import curve_fit
def ES(C):
es = 0.6108*np.exp((17.27*C)/(C+273.3))
return es
def EA(RH,es):
ea = (float(RH)/100)*es
return ea
def VPD(C,RH):
es = ES(C)
ea = EA(RH,es)
vpd = ea
return vpd
C = np.linspace(0,50,100)
vpd = [0.5]*len(C)
popt, pcov = curve_fit(VPD, C, vpd)
Который дает мне значения для popt и pcov 10.09132776 и 0.51489686. Однако то, что я действительно хотел бы сделать здесь, это определить значения RH при этих значениях температуры в C, которые дают мне значения VPD 0,5. Возможно, я ошибаюсь, но я действительно долгое время боролся с этим и мог реально использовать некоторые внешние перспективы относительно того, как это сделать.
Я не думаю, что вам нужно сделать это сложным, и я не думаю, что вы на самом деле делаете то, что хотите. Я думаю, вы должны объединить уравнения. Поскольку вы уже знаете VPD и некоторые значения C, у вас есть только 1 неизвестный, а затем можете использовать решатель. У Python действительно нет лучшего набора решателей для этого, я предпочитаю Wolfram, но вы можете использовать SymPy – klib