一个拟合曲线趋势的算法
2017-04-25 19:15
369 查看
笔者有一个这样的需求
首先,有一套模板数据,横坐标是时间,做坐标是温度,用图形来看,大概是这个意思:
然后,有两个入参,分别为最高温度和最低温度。
要求就是,根据这两个入参和模板数据,拟合出一条和模板数据曲线趋势相同的数据,且最大值就是最高温度,最小值就是最低温度。
好吧,不知道笔者有没有表达清楚,先展示结果图:
图中的蓝色为模板曲线,然后给出两个值,最小值18,最大值24
笔者在同事的帮助下,用matlab来实现了一下这个算法
[num,txt,raw] = xlsread('C:\Users\robin\Desktop\tes.xls')
inputMax=24;
inputMin=18;
temp1=max(num);
temp2=min(num);
a1=(m1+m2)/2;
a2=(m1-m2);
b1=(inputMax+inputMin)/2;
b2=(inputMax-inputMin);
dist=(num-a1)*(b2/a2)+b1;
ok,这是matlab的源码,第一行是读取excel文件,
将数据读入到num中,num即为模板曲线
然后inputMax和inputMin分别为模拟的两个入参
最后,dist就是得到的结果。
来解释一下思路:
1.模板归0:通过取中值,减去中值,将模板曲线移动到y=0
2.乘以缩放系数,即代码中的b2/a2
3.去inputMax和inputMin的中值,将步骤2中的到的曲线加上这个中值,将曲线y轴还原
个人觉得,这种算法挺好的,不仅仅在此案例中,很多需要等比例缩放的case中,都可以使用。
首先,有一套模板数据,横坐标是时间,做坐标是温度,用图形来看,大概是这个意思:
然后,有两个入参,分别为最高温度和最低温度。
要求就是,根据这两个入参和模板数据,拟合出一条和模板数据曲线趋势相同的数据,且最大值就是最高温度,最小值就是最低温度。
好吧,不知道笔者有没有表达清楚,先展示结果图:
图中的蓝色为模板曲线,然后给出两个值,最小值18,最大值24
笔者在同事的帮助下,用matlab来实现了一下这个算法
[num,txt,raw] = xlsread('C:\Users\robin\Desktop\tes.xls')
inputMax=24;
inputMin=18;
temp1=max(num);
temp2=min(num);
a1=(m1+m2)/2;
a2=(m1-m2);
b1=(inputMax+inputMin)/2;
b2=(inputMax-inputMin);
dist=(num-a1)*(b2/a2)+b1;
ok,这是matlab的源码,第一行是读取excel文件,
将数据读入到num中,num即为模板曲线
然后inputMax和inputMin分别为模拟的两个入参
最后,dist就是得到的结果。
来解释一下思路:
1.模板归0:通过取中值,减去中值,将模板曲线移动到y=0
2.乘以缩放系数,即代码中的b2/a2
3.去inputMax和inputMin的中值,将步骤2中的到的曲线加上这个中值,将曲线y轴还原
个人觉得,这种算法挺好的,不仅仅在此案例中,很多需要等比例缩放的case中,都可以使用。
相关文章推荐
- 优化了的过关键点的光滑曲线拟合算法的修正(一个链表的定义)
- 优化了的过关键点的光滑曲线拟合算法
- 优化了的过关键点的光滑曲线拟合算法
- 光滑曲线拟合算法
- Machine Learning 之Logistic回归算法中最小二乘法的Matlab曲线拟合
- Machine Learning 之Logistic回归算法中最小二乘法的Matlab曲线拟合
- 算法系列之二十一:实验数据与曲线拟合
- Silverlight学习-创建一个信息系统中趋势曲线图库(三)
- 基于三次Bezier原理的曲线拟合算法C++与OpenCV实现
- Linear regression with one variable算法实例讲解(绘制图像,cost_Function ,Gradient Desent, 拟合曲线, 轮廓图绘制)_矩阵操作
- 取一些点,通过相应算法形成拟合曲线,求出拟合曲线长度
- Silverlight学习-创建一个信息系统中趋势曲线图库(二)
- 曲线拟合 公式已与excel2007直线趋势图对比过。
- 【算法+OpenCV】基于opencv的直线和曲线拟合与绘制(最小二乘法)
- Silverlight学习-创建一个信息系统中趋势曲线图库(一)
- 使用levmar的L-M算法拟合曲线
- 解拉格朗日曲线拟合算法
- 最小二乘曲线拟合算法的C++实现
- 【算法+OpenCV】基于三次Bezier原理的曲线拟合算法C++与OpenCV实现
- machine learning week6 诊断机器学习算法的性能 各种学习曲线 来判断学习算法是过拟合或欠拟合