我需要一些关于scipy的curve_fit函数的帮助。
origin_y = array([ 6.366, 6.548, 6.734, 6.924, 7.118, 7.315, 7.517, 7.723,
7.932, 8.146, 8.365, 8.587, 8.814, 9.045, 9.281, 9.521,
9.765, 10.01 , 10.27 , 10.53 , 10.79 , 11.06 , 11.33 , 11.61 ,
11.89 , 12.18 , 12.47 , 12.77 , 13.07 , 13.38 , 13.69 , 14.01 ,
14.34 , 14.67 , 15. , 15.34 , 15.69 , 16.04 , 16.4 , 16.76 ,
17.13 , 17.51 , 17.89 , 18.28 , 18.67 , 19.07 , 19.48 , 19.89 ,
20.31 , 20.74 , 21.17 , 21.61 , 22.05 , 22.5 , 22.96 , 23.43 ,
23.9 , 24.38 , 24.87 , 25.37 , 25.87 , 26.38 , 26.9 , 27.42 ,
27.95 , 28.49 , 29.04 , 29.6 , 30.16 , 30.74 , 31.32 , 31.91 ,
32.51 , 33.12 , 33.73 , 34.36 , 35. , 35.64 , 36.3 , 36.97 ,
37.64 , 38.33 , 39.03 , 39.74 , 40.46 , 41.2 , 41.95 ])
origin_x = ([10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96])
简单多边形拟合
log_x_data = np.log(origin_x)
log_y_data = np.log(origin_y)
curve_fit = np.polyfit(origin_x, log_y_data, 1)
print(curve_fit)
我的结果#[0.02170385,1.71716332]
y = np.exp(0.02170385) * np.exp(1.71716332*origin_x)
拟合曲线正好是一条平行于x轴的曲线。
有人有主意吗?
1条答案
按热度按时间myss37ts1#
你的演算是正确的,但系数在
y =非点经验值(0.02170385)* 非点经验值(1.71716332* 原点_x)
其应当
y =非点经验值(1.71716332)* 非点经验值(0.02170385 * 原点_x)
注意事项:
使用以下形式的方程可以获得更好的拟合:
y = a + B * exp(c * x)
“数据曲线”和“计算曲线”彼此很难区分。