import numpy as np from scipy.optimize import curve_fit # NXFT18XH103F05RL data = np.array([ [-40,195652], [-35,148171], [-30,113347], [-25,87559], [-20,68237], [-15,53650], [-10,42506], [-5,33892], [0,27219], [5,22021], [10,17926], [15,14674], [20,12081], [25,10000], [30,8315], [35,6948], [40,5834], [45,4917], [50,4161], [55,3535], [60,3014], [65,2586], [70,2228], [75,1925], [80,1669], [85,1452], [90,1268], [95,1110], [100,974], [105,858], [110,758], [115,672], [120,596], [125,531], ]) T_K = data[:, 0] + 273.15 R = data[:, 1] def steinhart_hart(R, A, B, C): return 1 / (A + B * np.log(R) + C * (np.log(R))*(np.log(R))*(np.log(R))) params, _ = curve_fit(steinhart_hart, R, 1/T_K) A, B, C = params print(f"A: {A}, B: {B}, C: {C}")