- 浏览: 361455 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (55)
- java基础 (18)
- oracle (13)
- PL/SQL (8)
- Hibernate (3)
- JDBC (1)
- JVM (1)
- Dump (1)
- windows (2)
- struts2 (2)
- SQL (3)
- OGNL (1)
- Web前端 (3)
- 开发工具 (4)
- weblogic (0)
- shell (0)
- linux (1)
- windows,项目实施 (0)
- eclipse (3)
- SVN (1)
- vmware (2)
- 虚拟机 (2)
- hadoop (0)
- Android (0)
- 大数据 (2)
- Jquery (3)
- js (5)
- js,ajax (4)
- CKeditor (1)
- HTML (1)
- mysql (0)
最新评论
-
alangxi:
非常详尽,非常感谢。
BigDecimal 使用方法详解 -
nich002:
内容很详尽。
BigDecimal 使用方法详解 -
nich002:
看着真蛋疼。
BigDecimal 使用方法详解 -
zhangyinhu8680:
jz20110918 写道想问问楼主,sqlserver的 S ...
Oracle SQL中实现indexOf和lastIndexOf功能,substr和instr用法 -
zhangyinhu8680:
数据库我只用过oracle,sqlServer我我没有接触过, ...
Oracle SQL中实现indexOf和lastIndexOf功能,substr和instr用法
/**
* 灰度预测模型
*
* @author Sean Chen
* @version 1.0 2012-12-6
*/
public class GrayModel {
private double a0, a1, a2;
private int size;
private double error;
public GrayModel() {
}
public void build(double[] x0) {
size = x0.length;
double[] x1 = new double[size];
x1[0] = x0[0];
for (int i = 1; i < size; i++) {
x1[i] = x0[i] + x1[i - 1];
}
double[][] b = new double[size - 1][2];
double[][] bt = new double[2][size - 1];
double[][] y = new double[size - 1][1];
for (int i = 0; i < b.length; i++) {
b[i][0] = -(x1[i] + x1[i + 1]) / 2;
b[i][1] = 1;
bt[0][i] = b[i][0];
bt[1][i] = 1;
y[i][0] = x0[i + 1];
}
double[][] t = new double[2][2];
multiply(bt, b, t);
t = inverse(t);
double[][] t1 = new double[2][size - 1];
multiply(t, bt, t1);
double[][] t2 = new double[2][1];
multiply(t1, y, t2);
a0 = t2[0][0];
double u = t2[1][0];
a2 = u / a0;
a1 = x0[0] - a2;
a0 = -a0;
error = 0;
for (int i = 0; i < x0.length; i++) {
double d = (x0[i] - getX0(i));
error += d * d;
}
error /= x0.length;
}
/**
* 误差
*
* @return
*/
public double getError() {
return error;
}
double getX1(int k) {
return a1 * Math.exp(a0 * k) + a2;
}
double getX0(int k) {
// return a0 * a1 * Math.exp(a0 * k);
if (k == 0)
return a1 * Math.exp(a0 * k) + a2;
else
return a1 * (Math.exp(a0 * k) - Math.exp(a0 * (k - 1)));
}
/**
* 预测后续的值
*
* @param index
* @return
*/
public double nextValue(int index) {
if (index < 0)
throw new IndexOutOfBoundsException();
return getX0(size + index);
}
/**
* 预测下一个值
*
* @return
*/
public double nextValue() {
return nextValue(0);
}
static double[][] inverse(double[][] t) {
double[][] a = new double[2][2];
double det = t[0][0] * t[1][1] - t[0][1] * t[1][0];
a[0][0] = t[1][1] / det;
a[0][1] = -t[1][0] / det;
a[1][0] = -t[0][1] / det;
a[1][1] = t[0][0] / det;
return a;
}
static void multiply(double[][] left, double[][] right, double[][] dest) {
int n1 = left.length;
int m1 = left[0].length;
int m2 = right[0].length;
for (int k = 0; k < n1; k++) {
for (int s = 0; s < m2; s++) {
dest[k][s] = 0;
for (int i = 0; i < m1; i++) {
dest[k][s] += left[k][i] * right[i][s];
}
}
}
}
public static void main(String[] args) {
GrayModel gs = new GrayModel();
// 函数 sin+cos
double[] y = new double[10];
double step = 0.001;
double x = 0.001;
for (int i = 0; i < y.length; i++) {
y[i] = Math.sin(x) + Math.cos(x);
x += step;
}
gs.build(y);
for (int i = 0; i < 5; i++) {
// 真实值与预测值的差值
System.out.println(Math.sin(x) + Math.cos(x) - gs.nextValue(i));
x += step;
}
System.out.println(Math.sqrt(gs.getError()));
}
}
文章转自 http://chen-yongkai.iteye.com/blog/1742805
* 灰度预测模型
*
* @author Sean Chen
* @version 1.0 2012-12-6
*/
public class GrayModel {
private double a0, a1, a2;
private int size;
private double error;
public GrayModel() {
}
public void build(double[] x0) {
size = x0.length;
double[] x1 = new double[size];
x1[0] = x0[0];
for (int i = 1; i < size; i++) {
x1[i] = x0[i] + x1[i - 1];
}
double[][] b = new double[size - 1][2];
double[][] bt = new double[2][size - 1];
double[][] y = new double[size - 1][1];
for (int i = 0; i < b.length; i++) {
b[i][0] = -(x1[i] + x1[i + 1]) / 2;
b[i][1] = 1;
bt[0][i] = b[i][0];
bt[1][i] = 1;
y[i][0] = x0[i + 1];
}
double[][] t = new double[2][2];
multiply(bt, b, t);
t = inverse(t);
double[][] t1 = new double[2][size - 1];
multiply(t, bt, t1);
double[][] t2 = new double[2][1];
multiply(t1, y, t2);
a0 = t2[0][0];
double u = t2[1][0];
a2 = u / a0;
a1 = x0[0] - a2;
a0 = -a0;
error = 0;
for (int i = 0; i < x0.length; i++) {
double d = (x0[i] - getX0(i));
error += d * d;
}
error /= x0.length;
}
/**
* 误差
*
* @return
*/
public double getError() {
return error;
}
double getX1(int k) {
return a1 * Math.exp(a0 * k) + a2;
}
double getX0(int k) {
// return a0 * a1 * Math.exp(a0 * k);
if (k == 0)
return a1 * Math.exp(a0 * k) + a2;
else
return a1 * (Math.exp(a0 * k) - Math.exp(a0 * (k - 1)));
}
/**
* 预测后续的值
*
* @param index
* @return
*/
public double nextValue(int index) {
if (index < 0)
throw new IndexOutOfBoundsException();
return getX0(size + index);
}
/**
* 预测下一个值
*
* @return
*/
public double nextValue() {
return nextValue(0);
}
static double[][] inverse(double[][] t) {
double[][] a = new double[2][2];
double det = t[0][0] * t[1][1] - t[0][1] * t[1][0];
a[0][0] = t[1][1] / det;
a[0][1] = -t[1][0] / det;
a[1][0] = -t[0][1] / det;
a[1][1] = t[0][0] / det;
return a;
}
static void multiply(double[][] left, double[][] right, double[][] dest) {
int n1 = left.length;
int m1 = left[0].length;
int m2 = right[0].length;
for (int k = 0; k < n1; k++) {
for (int s = 0; s < m2; s++) {
dest[k][s] = 0;
for (int i = 0; i < m1; i++) {
dest[k][s] += left[k][i] * right[i][s];
}
}
}
}
public static void main(String[] args) {
GrayModel gs = new GrayModel();
// 函数 sin+cos
double[] y = new double[10];
double step = 0.001;
double x = 0.001;
for (int i = 0; i < y.length; i++) {
y[i] = Math.sin(x) + Math.cos(x);
x += step;
}
gs.build(y);
for (int i = 0; i < 5; i++) {
// 真实值与预测值的差值
System.out.println(Math.sin(x) + Math.cos(x) - gs.nextValue(i));
x += step;
}
System.out.println(Math.sqrt(gs.getError()));
}
}
文章转自 http://chen-yongkai.iteye.com/blog/1742805
发表评论
-
Spring的作用域以及RequestContextListener作用
2015-09-28 11:01 0分类: spring 2013-01-28 09:54 114 ... -
如何在spring中获取request对象
2015-08-06 19:11 0如何在spring中获取request对象 2014-04-3 ... -
Oracle的rollup、cube、grouping sets函数
2015-06-17 11:22 5152文章转自 http://blog.csdn.net/huan ... -
Java 反射之私有字段和方法详细介绍
2015-02-16 16:31 1619尽管我们通常认为通过JAVA的反射机制来访问其它类的私有字段和 ... -
deleteCharAt()方法和delete()实例
2014-11-26 09:19 4456以下例子将告诉你如何使用 java.lang.StringBu ... -
Notepad++插件使用技巧,转自各方
2014-10-20 21:16 992http://www.360doc.com/content/1 ... -
JAVA中运用数组的四种排序方法
2014-03-20 10:03 0JAVA中在运用数组进行排序功能时,一般有四种方法:快速排 ... -
Hadoop使用技巧
2013-08-18 21:51 0http://blog.sina.com.cn/s/blog_ ... -
Hadoop 中利用 mapreduce 读写 mysql 数据
2013-08-18 21:34 0Hadoop 中利用 mapreduce 读写 mysql 数 ... -
ArrayUtils使用详解
2013-06-14 16:58 3751ArrayUtils 拥有以下方法: toString 将一 ... -
hibernate通过映射文件生成表结构
2013-05-12 14:38 0文章来自 http://dianziermu. ... -
log4j详解与实战
2013-03-20 13:57 917http://www.iteye.com/topic/3780 ... -
SVN更改用户
2013-01-08 14:39 1713由于在svn的界面中并没 ... -
在eclipse 设置编辑区、控制台、xml等文本文件字体大小
2012-12-30 19:32 9050eclipse 编辑区 设置字体大小: 窗口(Window) ... -
jfreechart
2012-09-06 10:32 0jfreechart -
获取java 处理时间的实现(具体代码)
2012-10-23 11:37 4715资料整合: (一).今天的日期,两天前的日期,三天后的日期 ... -
Eclipse中载入Java(JDK) 源代码 详解(实例说明)
2012-07-11 10:46 6877在Eclipse中,很多朋友遇到过这样的问题:开发过程中会经常 ... -
java中处理时间的系列代码明细
2012-06-23 09:04 1413Java代码 /** 日期类 * @date * ... -
OGNL表达式
2012-10-23 11:25 1805OGNL表达式(2011-12-30 10:50: ... -
Java常用类型转换
2012-05-21 16:20 2112(一)Integer类型 1).定义 Inte ...
相关推荐
在Java编程环境中实现灰色关联算法,可以让我们更好地处理这些复杂问题。下面将详细介绍灰色关联算法的基本原理,以及如何使用Java来实现它。 灰色关联算法的核心思想是通过比较参考序列和待测序列之间的差异,来...
"Yuce.jar"是一个Java Archive文件,它包含了灰色预测模型的实现。用户可以直接导入这个jar包到Java项目中,通过调用相应的类和函数,就可以应用灰色预测模型进行预测分析。这样做简化了开发流程,无需理解内部实现...
而"GM11.m"是一个MATLAB脚本文件,很可能包含了灰色预测模型的实现代码,包括数据预处理、模型构建、参数估计、模型检验和预测等步骤。 灰色预测模型通常用于处理非线性、非平稳的数据序列,通过构造灰色微分方程来...
4. **PSO与灰色预测的融合**:这部分代码会展示如何将优化后的PSO用于灰色预测模型的参数估计,通过优化求得最佳参数,提高预测精度。 5. **示例应用**:可能包括一些示例数据集和对应的运行脚本,展示如何使用这些...
标题中的“MATLAB实现灰色预测程序.doc.zip”表明这是一个关于使用MATLAB进行灰色预测模型构建的文档压缩包。MATLAB是一种强大的数学计算软件,广泛应用于工程、科学和数据分析领域。灰色预测模型则是一种处理小样本...
MATLAB提供了方便的工具和函数来实现灰色预测模型,如`graymod`函数可以用来构建基本的灰色预测模型GM(1,1),其中“1,1”表示模型的阶数。 文档“MATLAB_+_灰色预测程序,数学建模.doc”可能会详细解释以下内容: 1...
### 使用MATLAB实现灰色预测GM(1,1)模型 #### 一、背景知识和模型介绍 ##### (一) 背景知识 **MATLAB**(Matrix Laboratory,矩阵实验室)是一款由MathWorks公司开发的强大数学计算软件。该软件不仅支持数值计算...
基于GM(1,1)模型的灰色算法改进,带残差修正的灰色算法java实现
在这个压缩包中,我们可以找到一个名为"灰色理论程序"的文件,这很可能是实现灰色神经网络预测的核心代码。这个程序可能是用某种编程语言(如Python、C++或Java)编写的,旨在利用灰色理论的建模方法和神经网络的...
过分析GM(l,)l模型的建模原理可以发现两个问题:()l灰色预测模型从本质上 可认为是指数预测模型,因此其预测精度与被预测对象的递变规律以及数据序列 的光滑度有关;(2)灰色微分拟合法建立的离散拟合方程是一个近似差...
在这个案例中,"Greynet.m" 是实现灰色神经网络预测算法的MATLAB代码文件。MATLAB是一款强大的数学计算软件,广泛应用于科学计算、图像处理等领域。通过阅读和运行这个代码,我们可以了解到灰色神经网络的具体构建...
针对灰色Verhulst模型预测函数中参数c的求解问题,提出了一种优化预测函数的新方法。该方法以累加生成序列的倒数与其倒数模拟值的差值平方和最小为目标函数,构建了一个非线性无约束优化模型,来求解灰色Verhulst...
在这个压缩包中,"27.MATLAB神经网络43个案例分析 基于灰色神经网络的预测算法研究-订单需求预测.zip",我们关注的是如何使用MATLAB来实现基于灰色神经网络的预测算法,特别是针对订单需求的预测。这个主题涵盖了两...
MATLAB的脚本和函数可以方便地与其它编程语言(如Python、Java)进行接口交互,从而实现预测模型在业务系统的部署。 总的来说,这个MATLAB神经网络和优化算法专题旨在通过实例教学,让初学者掌握如何利用MATLAB构建...
灰色关联度分析是一种在数据不完全、信息模糊的复杂环境中,评估不同序列之间相似性的统计方法。...通过MATLAB这样的编程平台,我们可以有效地实现这一分析过程,从而在决策支持、预测模型等领域发挥重要作用。
对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步...