昨天晚上帮同学完成三次指数平滑法的预测模型算法实现,这个就很简单了。
'==============================================
'作者:大漠.jxzhoumin
'创作时间:2008.6.2
'==============================================
Private Sub CommandButton1_Click()
Call main
End Sub
Sub main()
Dim s1_0, s2_0, s3_0 As Integer
Dim s1, s2, s3 As Integer
Dim n As Integer, x As Integer
Dim at, bt, ct As Integer
Dim a As Double
Dim t As Integer 't
Dim tt As Integer 'T
If Trim(TextBox1.Text) = "" Then
MsgBox "t值不能为空!,请输入该值!"
Exit Sub
End If
If Trim(TextBox2.Text) = "" Then
MsgBox "T值不能为空!,请输入该值!"
Exit Sub
End If
If Trim(TextBox4.Text) = "" Then
MsgBox "a值不能为空!,请输入该值!"
Exit Sub
End If
a = Val(Trim(TextBox4.Text))
n = tj("sheet1") - 1
With Worksheets("sheet1")
s1_0 = (Val(.Cells(2, 2).Value + .Cells(3, 2).Value + .Cells(4, 2).Value)) / 3
s2_0 = s1_0
s3_0 = s2_0
For i = 1 To n
x = .Cells(i + 1, 2).Value
If i = 1 Then
s1 = a * x + (1 - a) * s1_0
s2 = a * s1 + (1 - a) * s2_0
s3 = a * s2 + (1 - a) * s3_0
Else
s1 = a * x + (1 - a) * .Cells(i, 3).Value
s2 = a * s1 + (1 - a) * .Cells(i, 4).Value
s3 = a * s2 + (1 - a) * .Cells(i, 5).Value
End If
.Cells(i + 1, 3).Value = Int(s1 + 0.5)
.Cells(i + 1, 4).Value = Int(s2 + 0.5)
.Cells(i + 1, 5).Value = Int(s3 + 0.5)
Next i
t = Val(Trim(TextBox1.Text))
tt = Val(Trim(TextBox2.Text))
i = 0
Do
i = i + 1
If t = .Cells(i + 1, 1) Then
s1 = .Cells(i + 1, 3).Value
s2 = .Cells(i + 1, 4).Value
s3 = .Cells(i + 1, 5).Value
x = .Cells(i + 1, 2).Value
Exit Do
End If
Loop Until i > n
at = 3 * s1 - 3 * s2 + s3
bt = (a / (2 * ((1 - a) ^ 2))) * ((6 - 5 * a) * s1 - 2 * (5 - 4 * a) * s2 + (4 - 3 * a) * s3)
ct = (a ^ 2 / (2 * ((1 - a) ^ 2))) * (s1 - 2 * s2 + s3)
TextBox3.Text = Int(at + bt * tt + ct * (tt ^ 2) + 0.5)
TextBox5.Text = Int(at + 0.5)
TextBox6.Text = Int(bt + 0.5)
TextBox7.Text = Int(ct + 0.5)
End With
End Sub
Function tj(lb) As Integer
Dim k As Integer
k = 2
Do
Set myR = Sheets(lb).Cells(k, 1)
If Trim(myR.Value) = "" Then '出现空记录
Exit Do
End If
k = k + 1
Loop Until False
tj = k - 1
End Function
分享到:
相关推荐
MATLAB源码集锦-三次指数平滑及其时间序列预测
MATLAB源码集锦-三次指数平滑及其时间序列预测
以三次指数平滑法为基础,结合最小二乘法原理,建立了改进三次指数平滑法,并运用该方法对黄沙矿2上采煤工作面矿山压力进行了预测研究。研究结果表明:该工作面矿山压力显现具有明显的非线性和非规律性特点,且周期来压...
matlab中可用于预测的三次指数平滑法,针对有二次趋势的数据
然后,通过与一次指数平滑法、二次指数平滑法进行对比分析,得出了三次指数平滑法预测精度较高,预测值与实际值相符合的结论;最后,预测出2013年和2014年的道路交通事故死亡人数.研究结果表明:三次指数平滑法预测模型...
它不能单独地进行预测,必须与一次指数平滑法配合,建立预测的数学模型,然后运用数学模型确定预测值。一次移动平均法的两个限制因素在线性二次移动平均法中也才存在,线性二次指数,平滑法只利用三个数据和一个α值...
用于进行数据预测,即使数据点较少,预测的结果也比较好,适用于时间序列上的建模
Matlab实现三次指数平滑算法Matlab实现三次指数平滑算法Matlab实现三次指数平滑算法Matlab实现三次指数平滑算法Matlab实现三次指数平滑算法
随着社会不断地进步和发展,消费是关系整个社会经济协调发展的重要问题,消费的增长是产生新...本文以我国1981年至2015年我国社会消费品零售总额为研究对象,通过三次指数平滑模型进行对2016至2018年零售总额进行预测。
java代码实现指数平滑算法,其中包括一次,二次,三次
应用三次指数平滑法通过c语言编程预测未来交通量
指数平滑法(Expinential smoothing method)的思想也是对时间序列进行修匀以消除不规则和随机的扰动。该方法是建立在如下基础上的加权平均法:即认为时间序列中...根据修匀的要求,可以有一次、二次甚至三次指数平滑。
集装箱吞吐体系是一个灰色系统,因此可以通过灰色系统进行建模并预测其吞吐量,通过对宁波港历年集装箱吞吐量的观察,发现其吞吐量呈持续的曲线增长趋势,因此考虑采用三次指数平滑法进行预测,在灰色GM(1,1)和三...
把布朗单一参数二次多项式指数平滑法推广到三次多项式指数平滑法(即布朗单一参数四次指数平滑法),并利用计量经济学软件Eviews410和软件Matlab710结合实际数据进行短期预测。布朗单一参数四次指数平滑能更好地跟踪...
指数平滑法的计算中,关键是α的取值大小,但α的取值又容易受主观影响,因此合理确定α的取值方法十分重要,一般来说,如果数据波动较大,α值应取大一些,可以增加近期数据对预测结果的影响。如果数据波动平稳,α...
为了使Kubernetes集群对部署在其上的应用资源使用量能“提前”响应,并根据预测值为应用及时、准确、动态地调度和分配资源,提出了一种基于三次指数平滑法和时间卷积网络的云资源预测模型,根据历史数据预测未来的...
根据秦皇岛港口5 500 kcal动力煤2010年1月至2018年5月的月平均价格,通过二次指数平滑法建立了价格变化的预测模型,并对2018年6—8月的动力煤价格进行了预测。研究表明:利用二次指数平滑预测法对秦皇岛港口动力煤价格...
2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 3.内容:标题所示,对于介绍可点击主页搜索博客 4.适合人群:本科,硕士...