C#交通数据采集及整理方法的设计与实现(23)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

C#交通数据采集及整理方法的设计与实现(23)


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)