指数平滑法预测一次指数平滑 C++代码
时间: 2023-09-20 13:13:34 浏览: 109
以下是使用指数平滑法预测一次指数平滑的C++代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
double ExponentialSmoothing(vector<double> &data, double alpha) {
double forecast = data[0]; // 初始化预测值为第一个数据点
for (int i = 1; i < data.size(); i++) {
forecast = alpha * data[i] + (1 - alpha) * forecast; // 计算预测值
}
return forecast;
}
int main() {
vector<double> data = {10, 15, 13, 17, 20}; // 数据点
double alpha = 0.5; // 平滑系数
double forecast = ExponentialSmoothing(data, alpha); // 预测值
cout << "预测值为:" << forecast << endl;
return 0;
}
```
其中,`ExponentialSmoothing`函数接受一个`vector<double>`类型的数据点序列和一个平滑系数`alpha`,返回预测值。在函数内部,我们使用一个循环来计算预测值,初始值为第一个数据点,后面每个数据点的预测值都是前一个预测值和当前数据点的线性组合,其中权重为平滑系数和(1-平滑系数)。最后,我们在主函数中调用`ExponentialSmoothing`函数来计算预测值,并输出结果。
阅读全文