资源简介
实现了包括GM(1,1),线性回归预测,移动平均法等预测方法
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
namespace 铁路运量预测及改扩建辅助程序
{
class Forecast
{
//data有二列,第一列表示x值,第二列表示y值
//一元线性回归分析预测返回相关系数
public static double LinearRegression(double[] dataout double Aout double B)
{
double[] derivedData = new double[data.GetLength(0) + 1 data.GetLength(1) + 3];
for (int i = 0; i < data.GetLength(0); i++)
{
derivedData[i 0] = data[i 0]; //X
derivedData[i 1] = data[i 1]; //Y
derivedData[i 2] = data[i 0] * data[i 1]; //XY
derivedData[i 3] = data[i 0] * data[i 0]; //XX
derivedData[i 4] = data[i 1] * data[i 1]; //YY
derivedData[derivedData.GetLength(0) - 1 0] += derivedData[i 0]; //X的累加
derivedData[derivedData.GetLength(0) - 1 1] += derivedData[i 1]; //Y的累加
derivedData[derivedData.GetLength(0) - 1 2] += derivedData[i 2]; //XY的累加
derivedData[derivedData.GetLength(0) - 1 3] += derivedData[i 3]; //XX的累加
derivedData[derivedData.GetLength(0) - 1 4] += derivedData[i 4]; //YY的累加
}
double xba = derivedData[derivedData.GetLength(0) - 1 0] / data.GetLength(0);
double yba = derivedData[derivedData.GetLength(0) - 1 1] / data.GetLength(0);
double Lxx = derivedData[derivedData.GetLength(0) - 1 3] - Math.Pow(derivedData[derivedData.GetLength(0) - 1 0] 2) / data.GetLength(0);
double Lyy = derivedData[derivedData.GetLength(0) - 1 4] - Math.Pow(derivedData[derivedData.GetLength(0) - 1 1] 2) / data.GetLength(0);
double Lxy = derivedData[derivedData.GetLength(0) - 1 2] - derivedData[derivedData.GetLength(0) - 1 0] * derivedData[derivedData.GetLength(0) - 1 1] / data.GetLength(0);
double b = Lxy / Lxx;
double a = yba - b * xba;
A = a;
B = b;
return Lxy / Math.Sqrt(Lxx * Lyy);
}
public static double LinearRegression(double[] data double x out double r)
{
double a;
double b;
r = LinearRegression(data out a out b);
return a + b * x;
}
//幂回归分析预测
public static double PowerRegression(double[] data out double A out double B)
{
double[] derivedData = (double[])data.Clone();
for (int i = 0; i < derivedData.GetLength(0); i++)
{
for (int j = 0; j < derivedData.GetLength(1); j++)
{
derivedData[i j] = Math.Log(derivedData[i j]);
}
}
double a;
double b;
double r;
r = LinearRegression(derivedData out a out b);
A = Math.Exp(a);
B = b;
- 上一篇:ASP.NET设计的博客网站
- 下一篇:用asp.net做的在线考试系统
相关资源
- C# 调用win32 api函数-user32.dll详细说明
- C# 调用BarTender打印条码DEMO
- 大型比赛竞赛抽签系统 可打印 c# vs
- C#编写的Gerber查看器
- lua C# .Net4.0 vs2010 LuaInterface
- C#十六进制编辑器
- 明华URF-35H读卡器 C#读写源码 为大家
- C#文件流读取CSV文件
- c#读写PDF文件sql
- C# winform Socket大文件传输
- c#车牌识别系统附30张测试图片
- 《C#面向对象程序设计》源代码(CS)
- 金旭亮《C#面向对象程序设计》教案
- 试题库管理系统毕业论文(C#)源程序
- 学校网站原代码(C#.NET)
- C#-数据库操作技术-员工管理系统
- c#web开发入门经典
- C#与Matlab混合编程的几种方式
- c# 开发与 mysql数据库实现的增删改查
- C#异步操作 异步查询数据库 异步处理
- Basler相机通过IO触发源码
- [源代码] 《领域驱动设计 (C# 2008 实
- 松下PLC与C#通讯串口调试入门教程.z
- USB 继电器控制器 LCUS-1 保证能用 c#
- C# AES加密解密小工具
- C#圆形按钮,非常漂亮动态~~
- [精]C#仿QQ右下角弹出提示框()
- C#进程间通信-共享内存代码
- 有史以来最简单的三层(C#)
- vb调用c#编写的串口DLL文件(vb源码
评论
共有 条评论