C#交通数据采集及整理方法的设计与实现(23)
时间:2016-11-24 21:22 来源:毕业论文 作者:毕业论文 点击:次
Multiregression(String forecastname, String forecastid, int frequency, int lastingtime,int datanum,int refCycle) { Multiregression m = new Multiregression(); for (int t = 0; t < N; t++) { (1) 以当前时间点为基点,往前以“周”(这里设为默认值)为单位进行数据选取,直到选取的数据数为datanum strdate[i]=time; (2) 从数据库中获取预测对象的历史数据 (3) 算法计算: 首先是参数估算, 接着获取当前时间点 数据库中T、P、H的值 (4) 根据公式进行预测 (5) 将预测结果保存到数据库 (6) 最小二乘法参数估计 根据多元回归法的理论计算与分析,系统利用最小二乘法进行参数估计,最后可以总结为求解方程组,其具体的实现代码如下: class Multiregression { A 定义四个矩阵matrix1,matrix2,matrix3,matrix4用于存储方程组中未知项系数。 B 定义四个矩阵newmatrix1,newmatrix2,newmatrix3,newmatrix4用于存储变换(除以首项)后的未知项系数 C 最小二乘法参数估计,定义一个一文矩阵存储最后估计的参数结果 paramEvaluate(double T[],double H[],double P[],double c[],int datanum,boolean mark){ D 矩阵matrix1赋值: matrix1[0][0] = datanum*1.0;//将datanum转为double for(int i=0;i<datanum;i++){...} E 矩阵变换,newmatrix1矩阵赋值: newmatrix1[i][j] = matrix1[i][j]/matrix1[i][0]; F 矩阵matrix2赋值: matrix2[i][j] = newmatrix1[0][j+1]-newmatrix1[i+1][j+1]; G 同(5),(6),分别对newmatrix2、matrix3、newmatrix3、matrix4赋值 H 解出方程组,求得参数 5.4 查询界面的实现 5.4.1 生成及查询阈值表功能的实现 阈值表是在中间数据库(即断面每五分钟的流量和速度数据)的基础上进一步生成15分钟,30分钟和一个小时的各路段及断面的数据信息。同时生成的阈值表可以供用户查询,查询的数据在初始阈值表的基础上进行了细微的变动,所有的查询数据都是路段的数据而非断面数据。其中每个路段的速度或流量的最大值,最小值和平均值都是根据该路段包含的所有断面的数据产生的,这是查询时的阈值表和初始生成的阈值表的一个小小不同。查询出的结果直接显示在datagrid中,限于篇幅,这里仅列出查询时间间隔为一小时的流量数据的方法,其核心代码如下所示。 此外,在阈值查询的过程中为方便数据的可用性,系统特意增加了导出excel报表的功能。在datagrid中显示的数据可以完全导出到excel表格中用作其它用途。导出excel的代码实现如下(仅以流量数据为例): Excel.Application xlApp = new Excel.Application();//调用导出excel的类 xlApp.Application.Workbooks.Add(true); DataTable table = db.getTable(sql); for (int i = 0; i < table.Columns.Count; i++) (责任编辑:qin) |