基于VB的 灰色模型预测 和 线性回归预测

上传人:油条 文档编号:10267114 上传时间:2017-10-06 格式:DOC 页数:11 大小:84.50KB
返回 下载 相关 举报
基于VB的 灰色模型预测 和 线性回归预测_第1页
第1页 / 共11页
基于VB的 灰色模型预测 和 线性回归预测_第2页
第2页 / 共11页
基于VB的 灰色模型预测 和 线性回归预测_第3页
第3页 / 共11页
基于VB的 灰色模型预测 和 线性回归预测_第4页
第4页 / 共11页
基于VB的 灰色模型预测 和 线性回归预测_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《基于VB的 灰色模型预测 和 线性回归预测》由会员分享,可在线阅读,更多相关《基于VB的 灰色模型预测 和 线性回归预测(11页珍藏版)》请在金锄头文库上搜索。

1、 灰色模型预测 GM(1,1)与线性回归预测(一元、多元)新建一个工程,添加一个模块(.bas) ,两个命令按钮:窗体代码:Option ExplicitPrivate Sub Command1_Click() 灰色模型预测Dim Data As StringData = 2.67,3.13,3.25,3.36,3.56,3.72GM1_1_Predict DataEnd SubPrivate Sub Command2_Click() 线性回归预测Dim X1 As String, X2 As String, X3 As String, X4 As String, Y As StringX1

2、= 100.38,99.7,92.3,87.6,87.17,88.3,92.75,100.6,90.05; 最后要加上分号;X2 = 53.24,51.5,50.5,52.4,59.6,59.7,65.2,62.4,53.68; 最后要加上分号;X3 = 226,250,281,272,194,180,105,115,250; 最后要加上分号;Y = 644,640,517,425,385,401,448,599,462 最后 不要 加上分号; 请注意!Linear_Regression_Predict X1 & X2 & X3 & YEnd Sub模块代码:Option ExplicitPr

3、ivate Sub Calculate_1_AGO(X_0() As Double, X_1() As Double) 做一次累加生成 1-AGODim i As Long, TempX As Double, K As LongK = UBound(X_0)ReDim X_1(K)For i = 0 To KTempX = TempX + X_0(i)X_1(i) = TempXNext iEnd SubPrivate Sub Calculate_Matrix_B(X_1() As Double, B() As Double) 计算数据矩阵 BDim i As Long, K As LongK

4、 = UBound(X_1) - 1ReDim B(K, 1) For i = 0 To KB(i, 0) = -0.5 * (X_1(i) + X_1(i + 1)B(i, 1) = 1Next iEnd SubPrivate Sub Calculate_Matrix_YN(X_0() As Double, YN() As Double) 计算数据矩阵 YNDim i As Long, K As LongK = UBound(X_0) - 1ReDim YN(K, 0)For i = 0 To KYN(i, 0) = X_0(i + 1)Next iEnd Sub 函数名:Matrix_Tr

5、anspotation 功能: 计算矩阵的转置 transpotation 参数: m - Integer 型变量,矩阵的行数 n - Integer 型变量,矩阵的列数 mtxA - Double 型 m x n 二维数组,存放原矩阵 mtxAT - Double 型 n x m 二维数组,返回转置矩阵Private Sub Matrix_Transpotation(mtxA() As Double, mtxAT() As Double)Dim i As Integer, j As IntegerDim M As Integer, N As IntegerM = UBound(mtxA, 2

6、)N = UBound(mtxA, 1)ReDim mtxAT(M, N)For i = 0 To MFor j = 0 To NmtxAT(i, j) = mtxA(j, i)Next jNext iEnd Sub 函数名:Matrix_Multiplication 功能: 计算矩阵的乘法 multiplication 参数: m - Integer 型变量,相乘的左边矩阵的行数 n - Integer 型变量,相乘的左边矩阵的列数和右边矩阵的行数 l - Integer 型变量,相乘的右边矩阵的列数 mtxA - Double 型 m x n 二维数组,存放相乘的左边矩阵 mtxB - D

7、ouble 型 n x l 二维数组,存放相乘的右边矩阵 mtxC - Double 型 m x l 二维数组,返回矩阵乘积矩阵Private Sub Matrix_Multiplication(mtxA() As Double, mtxB() As Double, mtxC() As Double)Dim i As Integer, j As Integer, K As IntegerDim M As Integer, N As Integer, L As IntegerM = UBound(mtxA, 1): N = UBound(mtxB, 1): L = UBound(mtxB, 2)

8、ReDim mtxC(M, L)For i = 0 To MFor j = 0 To LmtxC(i, j) = 0#For K = 0 To NmtxC(i, j) = mtxC(i, j) + mtxA(i, K) * mtxB(K, j)Next KNext jNext iEnd Sub 函数名:Matrix_Inversion 功能: 矩阵求逆 参数: n - Integer 型变量,矩阵的阶数 mtxA - Double 型二维数组,体积为 n x n。存放原矩阵 A;返回时存放其逆矩阵 A-1。 返回值:Boolean 型,失败为 False,成功为 TruePrivate Fun

9、ction Matrix_Inversion(mtxA() As Double) As Boolean 局部变量Dim N As IntegerN = UBound(mtxA)ReDim nIs(N) As Integer, nJs(N) As IntegerDim i As Integer, j As Integer, K As IntegerDim d As Double, P As Double 全选主元,消元For K = 0 To Nd = 0# For i = K To NFor j = K To NP = Abs(mtxA(i, j)If (P d) Thend = PnIs(K

10、) = inJs(K) = jEnd IfNext jNext i 求解失败If (d + 1# = 1#) ThenMatrix_Inversion = FalseExit FunctionEnd IfIf (nIs(K) K) ThenFor i = 0 To NP = mtxA(i, K)mtxA(i, K) = mtxA(i, nJs(K)mtxA(i, nJs(K) = PNext iEnd IfmtxA(K, K) = 1# / mtxA(K, K)For j = 0 To NIf (j K) ThenFor j = 0 To NIf (j K) Then mtxA(i, K) = -mtxA(i, K) * mtxA(K, K)Next iNext K 调整恢复行列次序For K = N To 0 Step -1If (nJs(K) K) ThenFor i = 0 To NP = mtxA(i, K)mtxA(i, K) = mtxA(i, nIs(K)mtxA(i, nIs(K) = PNext iEnd IfNext K 求解成功Matrix_Inversion = TrueEnd FunctionPrivate Sub Pred

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号