我有三个指数衰减曲线a,b,c:
a = array([650.2120319, 609.6619535, 571.9492203, 536.4599426, 503.3212726,
472.1334361, 443.0139852, 415.7232848, 390.1294684, 365.9167447,
343.433587 , 322.1317239, 302.2658523, 283.7633129, 266.2925989,
249.8895476, 234.6623398, 220.3889574, 206.8540781, 194.1904344,
182.4447336, 171.3749864, 161.6639733])
b = array([386.859093 , 363.1057122 , 341.013751 , 320.2696555 ,
300.8559479 , 282.658347 , 265.3412211 , 249.3604781 ,
234.3815941 , 220.3387028 , 207.1730477 , 194.8310656 ,
183.2602698 , 172.4127113 , 162.2431877 , 152.7092593 ,
143.6598195 , 135.2843516 , 127.4347254 , 120.0760134 ,
113.1775334 , 106.7099584 , 100.6459124 , 94.92368177,
89.5520211 , 84.51545728, 79.79443565, 75.36835286,
71.21896275, 67.32890953, 63.68192213, 60.26274644,
56.72601923, 53.73452497, 50.91843661, 48.29522182,
45.8021524 , 43.44271232, 41.28436224])
c = array([253.1438049 , 237.5842962 , 223.4726388 , 210.0449322 ,
197.6531031 , 185.8601106 , 174.9801453 , 165.3012821 ,
155.7069311 , 146.000609 , 136.8991751 , 128.5749559 ,
120.6183545 , 113.2631309 , 106.3131019 , 100.3375539 ,
94.13977619, 88.77665824, 83.61974904, 79.05989667,
74.63870868, 70.23554633, 66.36631774, 62.99036733,
59.57308743, 56.37170002, 53.37033682, 50.79469772,
47.70728605, 44.92402512, 42.6168291 , 40.18378423,
38.19254077, 36.03269447, 33.96603301, 32.36296151,
30.53097086, 28.76291712, 27.14086675, 25.89788202,
25.21670884, 24.16956037, 23.18960868, 21.91448036,
20.6066795 , 19.84840787])
这些曲线我重叠在图中的x轴上
我的目标是使三者适合一行以获取封闭式解决方案
首先通过线性拟合(通过自然对数)变换三个曲线的矩阵:
Y = np.concatenate((a,b[:23],c[:23]), axis=1)
Y_log = np.log(Y)
X = np.arange(1, len(Y)+1)
n = len(X)
x_bias = np.ones((n,1))
X = np.reshape(X,(n,1))
x_new = np.append(x_bias,X,axis=1)
x_new_transpose = np.transpose(x_new)
x_new_transpose_dot_x_new = x_new_transpose.dot(x_new)
temp_1 = np.linalg.inv(x_new_transpose_dot_x_new)
temp_2 = x_new_transpose.dot(Y_log)
theta = temp_1.dot(temp_2)
我遇到的问题是,我没有获得三个曲线的单个“最佳”拟合,而是分别获得了每个曲线的拟合,如以下系数所示:
Coefficients : [[ 6.53802336 6.01193513 5.59246895]
[-0.06344226 -0.06127685 -0.06119578]]
我希望实现图中的蓝色实线所示的线:
我在哪里弄错了?