matlab在交通量代码,基于C#和MATLAB混合编程的交通量预测

1交通量在指定时间内通过道路某地点或某断面的车辆、行人数量。通常仅指机动车交通量。它是随时变化的。常以平均交通量、高峰小时交通量和设计小时交通量作为有代表性的交通量。2小波分析处理一维小波处理离散小波变换算法的处理流程,如图1所示。图1离散小波变换算法上述算法被称为快速小波变换(FastWaveletTransform),也因其形状而被称为Mal-lat的“鱼骨型算法”。其逆变换算法的处理流程类似于上图。在频域上有:所以双通道子带编码的两个滤波器必须满足条件:,。假设H(0s)是小波变换中使用的具有平滑边缘的低通滤波传递函数,则相应的H(1s)需按下式给出:H21(s)=1-H2(0s)。可见,设计一个离散小波变换的任务就是精心挑选低通滤波器。3交通量的小波处理这里使用小波的分析处理技术来对道路上获得的交通量的数据进行分析,然后建立SVR模型,最后对多个预测结果进行合成,从而得到交通量的预测结果。利用MATLAB图像处理工具把处理后的数据以波形图的形式显示出来,在C#运行环境中,编译和调用在MATLAB中生成的文件,使人们能够直观了解某条公路某段时间内交通量的信息。SVM(SupportVectorMachine)分为SVM回归原理和SVM分类原理。本文采用的是SVM回归原理即支持向量回归算法(SupportVectorRegression,SVR)模型。它的基础主要是不敏感函数和核函数算法。为适应训练样本集的非线性,传统的拟合方法通常是在线性方程后面加高阶项。此法诚然有效,但由此增加的可调参数未免增加了过拟合的风险。支持向量回归算法采用核函数解决这一矛盾。用核函数代替线性方程中的线性项可以使原来的线性算法“非线性化”,即能做非线性回归。本次交通量训练和预测用到了函数如下:function[nsv,beta,bias]=svr(X,Y,ker,C,loss,e)functiontstY=svroutput(trnX,tstX,ker,beta,bias)4C#.NET和MATLAB的连接步骤:(1)编写Traffic.m文件;(2)Matlab编译,把Traf-fic.m文件编译成Traffic.dll文件(在matlab的命令窗口输入mbuild-setup,然后按信息提示选择即可);(3)输入comtool,弹出matlabcombuilder窗口。点击file-newproject,新建一个工程,选上usehandlegraphicslibrary,点击ok就行了。然后点击projectAddfiles,将Traffic.m添加入工程,然后点击build子菜单下的Build-ComObject菜单项,就会在当前工作空间文件夹下生成一个Traffic.dl(l它就是做好的com组件),Build时matlab已经自动将此dll在注册表中注册;(4)下面即可在C#中调用dll文件:在C#的解决方案浏览器中,右击“引用”,添加编译好的Traffic.dll和MWArray.dll文件。然后在C#代码编译窗口中调用编译运行即可完成连接工作。5利用小波变换和SVR模型对交通量的预测5.1预测模型预测过程是:(1)选取合适的小波和分解层次对实测交通流量数据进行小波分解;本文选取一维小波变换和四层小波分解,代码如下:[c,l]=wavedec(s,4,'db4');(2)对每层的小波系数进行重构;代码如下:d1=wrcoe(f'd',c,l,'db4',1);(3)对重构的每层数据分别建立SVR模型,并进行预测;[nsv,beta,bias]=svr(d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值