五点三次平滑的程序源代码
来源:互联网 发布:淘宝减肥药 妙瘦 编辑:程序博客网 时间:2024/06/06 20:55
问题
用五点三次平滑公式对等距点上的观测数据进行平滑。
算法分析
设已知n个等距点,上的观测(或实验)数据为x0<x1<…<xn-1,则可以在每个数据点的前后各取两个相邻的点,用三次多项式
进行逼近。
根据最小二乘原理确定出系数a0,a1,a2,a3,最后可得到五点三次平滑公式如下:
其中表示yi的平滑值。
于开始两点和两后两点分别由上述第1,2和4,5公式进行平滑。本方法要求数据点数n≥5。
三、实例
设9个等距观测点上的数据y为54.0,145.0,227.0,359.0,401.0,342.0,259.0,112.0,65.0,用五点三次平滑公式对此9个观测数据进行平滑。
四、代码
#include "stdio.h"
/*形参与函数 参数意义
int n 给定等距观测点数。要求
double y[n] 存放n个等距观测点上的观测数据
doulilc yy[n] 返回n个等距观测点上的平滑结果
void kspt() 过程
*/
void kspt
(int n, double y[], double yy[])
{
if (n<5)
{
for (int i=0; i<= n-1; i++)
yy[i]=y[i];
}
else
{
yy[0] = 69.0*y[0] + 4.0*y[1] - 6.0*y[2] + 4.0*y[3] - y[4];
yy[0]=yy[0]/70.0;
yy[1]=2.0*y[0]+27.0*y[1]+12.0*y[2]-8.0*y[3];
yy[1]=(yy[1]+2.0*y[4])/35.0;
for (int i=2; i<=n-3; i++)
{
yy[i]=-3.0*y[i-2]+12.0*y[i-1]+17.0*y[i];
yy[i]=(yy[i]+12.0*y[i+1]-3.0*y[i+2])/35.0;
}
yy[n-2]=2.0*y[n-5]-8.0*y[n-4]+12.0*y[n-3];
yy[n-2]=(yy[n-2]+27.0*y[n-2]+2.0*y[n-1])/35.0;
yy[n-1]=-y[n-5]+4.0*y[n-4]-6.0*y[n-3];
yy[n-1]=(yy[n-1]+4.0*y[n-2]+69.0*y[n-1])/70.0;
}
return;
}
0 0
- 五点三次平滑的程序源代码
- matlab 五点三次平滑算法
- 五点三次平滑法滤波 C 和 matlab代码
- 三次指数平滑法
- 创业路上的五点建议
- 撒旦教的五点告诫
- 重视HTML5的五点理由
- 2015年的五点期许
- 三次指数平滑法(Holt-Winters)
- 三次指数平滑法-Holt-Winters模型
- 【数据挖掘】三次指数平滑法
- Ping程序的源代码
- Ping程序的源代码
- 数据平滑化程序
- 曲线的平滑平滑处理
- 比尔盖茨给adobe董事长的五点意见
- 比尔盖茨给adobe的五点意见
- 常用表单格式的五点技巧
- 未来已来:国际电商发展进入云时代
- zend_parse_method_parameters 和 zend_parse_parameters 区别
- 机器学习中的相似性度量
- C语言:数字菱形图案
- Android studio中git使用及git配置路径
- 五点三次平滑的程序源代码
- div-css笔记
- 杨辉三角形
- 资料记录-开源app
- C++中sort函数和 stable_sort函数的区别
- 虚幻4 多语言支持
- 将win32程序移植到linux注意事项
- [BZOJ1178][Apio2009]CONVENTION会议中心(单调栈+dp+set)
- Android 关于WebView全方面的使用(项目应用篇)