第一篇:LM算法小结
Matlab代码部分:
在matlab2011等以上版本中使用LM算法,请进行修改: homography2d1.m中,修改:options = optimset('LargeScale','off','LevenbergMarquardt','on');改为:options=optimset('LargeScale','off','Algorithm','levenberg-marquardt'); zhang.m中,修改:options = optimset('Display','iter','LargeScale','off','LevenbergMarquardt','on');改为:
Options=optimset('Display','iter','LargeScale','off','Algorithm','levenberg-marquardt');
第二篇:增量式PID算法小结
增量式PID算法小结
一、PID 算法简介
顾名思义,P 指是比例(Proportion),I 指是积分(Integral),D 指微分(Differential)。比例P:比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。偏差一旦产生,控制器立即就发生作用即调节控制输出,使被控量朝着减小偏差的方向变化,偏差减小的速度取决于比例系数Kp,Kp越大偏差减小的越快,但是很容易引起振荡,尤其是在迟滞环节比较大的情况下,Kp减小,发生振荡的可能性减小但是调节速度变慢。但单纯的比例控制存在稳态误差不能消除的缺点。这里就需要积分控制。
积分 I:在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。实质就是对偏差累积进行控制,直至偏差为零。积分控制作用始终施加指向给定值的作用力,有利于消除静差,其效果不仅与偏差大小有关,而且还与偏差持续的时间有关。简单来说就是把偏差积累起来,一起算总帐。
微分 D:在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。
它能敏感出误差的变化趋势,可在误差信号出现之前就起到修正误差的作用,有利于提高输出响应的快速性,减小被控量的超调和增加系统的稳定性。但微分作用很容易放大高频噪声,降低系统的信噪比,从而使系统抑制干扰的能力下降。
增量式PID算法: Ki=Kp*Ts/Ti;Kd=Kp*Td/Ts;Kp为比例项系数 ;Ki为积分项系数 ;Kd为微分项系数;Ti为积分时间常数;Td为微分时间常数 ;Ts 为采样周期常数 上述公式进一步推倒:
Δu(k)= Ka * e(k)+ Kb * e(k-1)+ Kc * e(k-2);Ka=Kp*(1+Ts/Ti+ Td/Ts)Kb=(-1)*(Kp)*(1+2Td/TS)Kc=Kp*(Td/TS)代码如下:
float PID_Dispose(flaot D_value){ static flaot Ek = 0;static flaot Ek_1 = 0;static flaot Ek_2 = 0;Ek_2 = Ek_1;Ek_1 = Ek;Ek = D_value;return((float)(Ka*Ek + Kb*Ek_1 +Kc*Ek_2));} D_value定义为float 类型(据情况而定),此变量是设定值与系统输出量的差值。PID 调试一般原则
a.在输出不振荡时,增大比例增益 P。b.在输出不振荡时,减小积分时间常数 Ti。c.输出不振荡时,增大微分时间常数 Td。
第三篇:18大经典数据挖掘算法小结
18大经典数据挖掘算法小结
2015-03-05 CSDN大数据 CSDN大数据
csdnbigdataCSDN分享Hadoop、Spark、NoSQL/NewSQL、HBase、Impala、内存计算、流计算、机器学习和智能算法等相关大数据观点,提供云计算和大数据技术、平台、实践和产业信息等服务。本文所有涉及到的数据挖掘代码的都放在了github上了。
地址链接: https://github.com/linyiqun/DataMiningAlgorithm 大概花了将近2个月的时间,自己把18大数据挖掘的经典算法进行了学习并且进行了代码实现,涉及到了决策分类,聚类,链接挖掘,关联挖掘,模式挖掘等等方面。也算是对数据挖掘领域的小小入门了吧。下面就做个小小的总结,后面都是我自己相应算法的博文链接,希望能够帮助大家学习。
1.C4.5算法。C4.5算法与ID3算法一样,都是数学分类算法,C4.5算法是ID3算法的一个改进。ID3算法采用信息增益进行决策判断,而C4.5采用的是增益率。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/42395865 2.CART算法。CART算法的全称是分类回归树算法,他是一个二元分类,采用的是类似于熵的基尼指数作为分类决策,形成决策树后之后还要进行剪枝,我自己在实现整个算法的时候采用的是代价复杂度算法,详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/42558235 3.KNN(K最近邻)算法。给定一些已经训练好的数据,输入一个新的测试数据点,计算包含于此测试数据点的最近的点的分类情况,哪个分类的类型占多数,则此测试点的分类与此相同,所以在这里,有的时候可以复制不同的分类点不同的权重。近的点的权重大点,远的点自然就小点。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/42613011 4.Naive Bayes(朴素贝叶斯)算法。朴素贝叶斯算法是贝叶斯算法里面一种比较简单的分类算法,用到了一个比较重要的贝叶斯定理,用一句简单的话概括就是条件概率的相互转换推导。详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/42680161 5.SVM(支持向量机)算法。支持向量机算法是一种对线性和非线性数据进行分类的方法,非线性数据进行分类的时候可以通过核函数转为线性的情况再处理。其中的一个关键的步骤是搜索最大边缘超平面。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/42780439 6.EM(期望最大化)算法。期望最大化算法,可以拆分为2个算法,1个E-Step期望化步骤,和1个M-Step最大化步骤。他是一种算法框架,在每次计算结果之后,逼近统计模型参数的最大似然或最大后验估计。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/42921789 7.Apriori算法。Apriori算法是关联规则挖掘算法,通过连接和剪枝运算挖掘出频繁项集,然后根据频繁项集得到关联规则,关联规则的导出需要满足最小置信度的要求。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43059211 8.FP-Tree(频繁模式树)算法。这个算法也有被称为FP-growth算法,这个算法克服了Apriori算法的产生过多侯选集的缺点,通过递归的产生频度模式树,然后对树进行挖掘,后面的过程与Apriori算法一致。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43234309 9.PageRank(网页重要性/排名)算法。PageRank算法最早产生于Google,核心思想是通过网页的入链数作为一个网页好快的判定标准,如果1个网页内部包含了多个指向外部的链接,则PR值将会被均分,PageRank算法也会遭到Link Span攻击。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43311943 10.HITS算法。HITS算法是另外一个链接算法,部分原理与PageRank算法是比较相似的,HITS算法引入了权威值和中心值的概念,HITS算法是受用户查询条件影响的,他一般用于小规模的数据链接分析,也更容易遭受到攻击。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43311943 11.K-Means(K均值)算法。K-Means算法是聚类算法,k在在这里指的是分类的类型数,所以在开始设定的时候非常关键,算法的原理是首先假定k个分类点,然后根据欧式距离计算分类,然后去同分类的均值作为新的聚簇中心,循环操作直到收敛。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43373159 12.BIRCH算法。BIRCH算法利用构建CF聚类特征树作为算法的核心,通过树的形式,BIRCH算法扫描数据库,在内存中建立一棵初始的CF-树,可以看做数据的多层压缩。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43532111 13.AdaBoost算法。AdaBoost算法是一种提升算法,通过对数据的多次训练得到多个互补的分类器,然后组合多个分类器,构成一个更加准确的分类器。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43635115 14.GSP算法。GSP算法是序列模式挖掘算法。GSP算法也是Apriori类算法,在算法的过程中也会进行连接和剪枝操作,不过在剪枝判断的时候还加上了一些时间上的约束等条件。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43699083 15.PreFixSpan算法。PreFixSpan算法是另一个序列模式挖掘算法,在算法的过程中不会产生候选集,给定初始前缀模式,不断的通过后缀模式中的元素转到前缀模式中,而不断的递归挖掘下去。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43766253 16.CBA(基于关联规则分类)算法。CBA算法是一种集成挖掘算法,因为他是建立在关联规则挖掘算法之上的,在已有的关联规则理论前提下,做分类判断,只是在算法的开始时对数据做处理,变成类似于事务的形式。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43818787 17.RoughSets(粗糙集)算法。粗糙集理论是一个比较新颖的数据挖掘思想。这里使用的是用粗糙集进行属性约简的算法,通过上下近似集的判断删除无效的属性,进行规制的输出。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43876001 18.gSpan算法。gSpan算法属于图挖掘算法领域。,主要用于频繁子图的挖掘,相较于其他的图算法,子图挖掘算法是他们的一个前提或基础算法。gSpan算法用到了DFS编码,和Edge五元组,最右路径子图扩展等概念,算法比较的抽象和复杂。
详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43924273
第四篇:LM家具市场调研报告
自从2011年7月初被央视曝光以来,“造假门”事件使得达芬奇家具数十年来打造的进口家具高端品牌的大厦轰然倒塌。这坍塌的不仅仅是达芬奇家居这个品牌,还有进口家具在消费者心目中的诚信风向牌。这事件短时间内会让消费者持观望态度,对销售会产生一定影响,但是从长远来看,这也将对整个家具行业起到规范作用。“达芬奇家居事件”对于高端家具行业,尤其是进口家具行业来说是一个警醒,更是一种契机。进口家具品牌在中国的发展现状、诚信危机时代、面对市场的不景气、和对于高端家具市场的不信任双重压力之下,我们该采取哪些措施?
一、无论是与设计师的合作、还是与房地产商的合作,或者是对国外品牌的代理,都是商业的一种手段,最终还是为了成就自己的品牌价值。
二、在一些“伪进口”品牌诚信缺失的时候,那些真正的纯进口品牌反而在市场上容易突出自己的品牌特点。
三、在这样的特殊时期,每个公司都集中着手于革新创造从而开辟新市场以减少未知的影响和损失,流程和产品的革新也是极其重要的。
四、中国是一个拥有着全球最大消费力和消费品质的新兴市场,近年来,中国优质的消费群体正以一种创造性的消费能力改变着全球对中国市场的重新定位与认知。
五、品牌推广计划前置性,和国内的企业市场操作策略不同的是,国外品牌往往比较注重在前期的宣传和推广活动,这些都是为品牌塑造服务的,我们的市场策略是将重点放在巩固主要市场的销售,同时着
重于品牌的推广,致力于带给中国消费者意大利品质和令人难忘的服务及体验。
面对进口家具业日渐增多,我公司目前存在的问题如下:
一、家具代理品牌较少,不能满足各类家居装修的需求。
二、独立旗舰店装修风格、家具摆放、灯光设施等,能够体现高端产品的定位。
三、除了价格因素之外,还有就是销售方式的一成不变,我们现在在市场上看到更多的卖家仅仅是在卖家具,而不是传递生活方式,而后者必然是未来的趋势所在。
四、国外品牌往往比较注重在前期的宣传和推广活动,这些都是为品牌塑造服务的,我们的市场策略是将重点放在巩固主要市场的销售,同时着重于品牌的推广,致力于带给中国消费者意大利品质和令人难忘的服务及体验。
第五篇:四线电阻触摸屏校准算法小结
四线电阻触摸屏校准算法的实现
(一)四线电阻屏的触摸板坐标和屏坐标有如下关系: X0 = xfac * X + xoff;Y0 = yfac * Y + yoff;其中X0,Y0是屏的物理坐标,xfac,yfac为x,y方向的比例因子,xoff,yoff为x,y方向的偏移 量.既然说到了校准,那么这四个量肯定是不变的,所以我们可以用至少两个屏的物理坐标点就 可算出这四个量,也即是两点校准法,由于按下屏后读出的是X,Y值,而校准时用的X0,Y0 也是已知的,那么就是解四元一次方程组了,算法如下:
(X1,Y1)和(X2,Y2)是用于校准时屏上显示的两个点,这两个点的坐标必须不一样,是已知的;(x1,y1)和(x2,y2)是校准时读取的被按下的两点的触摸板坐标值;有如下方程组:
X1 = xfac * x1 + xoff;// 1 Y1 = yfac * y1 + yoff;// 2 X2 = xfac * x2 + xoff;// 3 Y2 = yfac * y2 + yoff;// 4 解得:-1 得xfac =(X2-X1)/(x2-x1);//得到x轴方向的比例因子 + 1 得xoff = [(X2 + X1)-xfac(x2 + x1)]/2;//得到x轴方向的偏移量 4-2 得yfac =(Y2-Y1)/(y2-y1);
//得到y轴方向的比例因子 4 + 2 得yoff = [(Y2 + Y1)-yfac(y2 + y1)]/2;//得到y轴方向的偏移量
OK!所谓的三点触摸校准,四点触摸校准只不过是加了可靠的滤波算法,因为触摸笔和屏 的接触不是很准确的!而像素点是很小的,所以通常都用四点校准,而且经验证这此算法是 必须加的,否则很不准,参见STM32学习笔记相关实验实验例程,已验证通过理论知识: * 触摸屏实际是在普通的lcd 上贴了一个触摸膜, 没有原生的触摸屏 校准公式
X液晶= ax + by + c
x,y是触摸屏 Y液晶= dx + ey + d 公式原理
X,Y的公司类似, 这里就已X液晶的公式为例 先说a 首先, 液晶和触摸膜的分辨率通常是不一样的, 如液晶分辨率640*480, 触摸膜分辨率 1024 * 768, 则这时就需要把 触摸膜的分辨率 乘一个系数才和液晶分辨率对应, 这里 就是ax中的a, 这里a = 640 / 1024 = 0.625 再说c 由于安装的机械问题, 可能有水平的平移, 这里就是c 最后说b 一开始还以为公式错了, 为什么x的东西还有y的事, 原理还是安装机械的问题, 若膜和lcd 安装有一定的倾斜角度y就不是0了 计算abcdef参数
对应abc和def来说是独立的, 类似的, 下面以计算abc为例
有3个未知数abc,显然需要3个方程 M[0] = A * x[0] + B * y[0] + C M[1] = A * x[1] + B * y[1] + C M[2] = A * x[2] + B * y[2] + C M[0]~M[2]代表lcd 的坐标, x[0]~x[2], y[0]~y[2]是触摸膜坐标
这3个点不能在同一条直线上, 在校准过程中, 在源代码中给M[0]~M[2]赋值, 然后x[0]等是
从驱动读数,最后解方程即可 最后abc表达式, F=(Xt[0]-Xt[2])*(Yt[1]-Yt[2])-(Xt[1]-Xt[2])*(Yt[0]-Yt[2]);//计算参数
A=(Xd0-Xd2)*(Yt[1]-Yt[2])-(Xd1-Xd2)*(Yt[0]-Yt[2]);B=(Xt[0]-Xt[2])*(Xd1-Xd2)-(Xd0-Xd2)*(Xt[1]-Xt[2]);C=Yt[0]*(Xt[2]*Xd1-Xt[1]*Xd2)+Yt[1]*(Xt[0]*Xd2-Xt[2]*Xd0)+Yt[2]*(Xt[1]*Xd0-Xt[0]*Xd1);D=(Yd0-Yd2)*(Yt[1]-Yt[2])-(Yd1-Yd2)*(Yt[0]-Yt[2]);E=(Xt[0]-Xt[2])*(Yd1-Yd2)-(Yd0-Yd2)*(Xt[1]-Xt[2]);F=Yt[0]*(Xt[2]*Yd1-Xt[1]*Yd2)+ Yt[1]*(Xt[0]*Yd2-Xt[2]*Yd0)+ Yt[2]*(Xt[1]*Yd0-Xt[0]*Yd1);
2012-8-9