已知x=[1,2,3,4,5,6,7,8,9,10] , y=[0.393,0.615,0.767,0.910,1.082,1.192,1.293,1.415,1.495,1.568] , y=a*(1-exp(-b*x))+0.196,通过最小二乘法,解方程,求参数a、b最优值,另当x1=30时,求y1为多少,附最小二乘法详细推导过程
时间: 2023-06-12 18:07:34 浏览: 201
计算方法之最小二乘法
最小二乘法是一种常用的参数估计方法,通过最小化误差平方和来拟合数据。
首先,我们需要将模型转化为线性模型,即:
ln(y-0.196) = ln(a) - b*x
令 ln(y-0.196) = Y,ln(a) = A,b = β,x = X,则有:
Y = A - β*X
现在,我们可以采用最小二乘法来估计参数 A 和 β。
首先,计算 X 和 Y 的均值:
X_mean = (1+2+...+10)/10 = 5.5
Y_mean = (ln(0.393-0.196)+ln(0.615-0.196)+...+ln(1.568-0.196))/10 = 0.522
然后,计算 X 和 Y 的离差积和:
SS_XY = (1-5.5)*(ln(0.393-0.196)-0.522) + (2-5.5)*(ln(0.615-0.196)-0.522) + ... + (10-5.5)*(ln(1.568-0.196)-0.522) = -6.696
SS_XX = (1-5.5)^2 + (2-5.5)^2 + ... + (10-5.5)^2 = 82.5
接下来,我们可以计算 β 的估计值:
β = SS_XY / SS_XX = -0.081
然后,我们可以计算 A 的估计值:
A = Y_mean + β*X_mean = 0.669
因此,我们得到的最终模型为:
ln(y-0.196) = 0.669 - 0.081*x
即:
y = exp(0.669)*exp(-0.081*x) + 0.196
现在,我们可以使用该模型来预测 x1=30 对应的 y1:
y1 = exp(0.669)*exp(-0.081*30) + 0.196 = 1.851
因此,当 x1=30 时,y1 的预测值为 1.851。
最小二乘法的详细推导过程如下:
我们需要最小化误差平方和:
S = Σ(yi-ai)^2
其中,ai 是模型预测的值,yi 是实际观测值。
将模型 y = a*(1-exp(-b*x))+0.196 代入,有:
S = Σ(yi-a*(1-exp(-b*xi))-0.196)^2
对 a 和 b 分别求偏导数,有:
∂S/∂a = -2Σ(yi-a*(1-exp(-b*xi))-0.196)*(1-exp(-b*xi))
∂S/∂b = -2Σ(yi-a*(1-exp(-b*xi))-0.196)*a*xi*exp(-b*xi)
令偏导数为 0,解得:
a = (Σyi*(1-exp(-b*xi))-Σ(1-exp(-b*xi))*(yi-0.196)) / (Σ(1-exp(-2*b*xi)) - Σ(1-exp(-b*xi))^2/10)
b = -ln(1-(Σxi*(yi-0.196)-Σxi*Σ(1-exp(-b*xi))/10)/Σ(1-exp(-b*xi))^2)
最后,带入计算即可得到最优的参数估计值。
阅读全文