首页 理论教育 现代水文预报方法及应用:程序设计需注意定义动态数组及变量

现代水文预报方法及应用:程序设计需注意定义动态数组及变量

时间:2023-10-04 理论教育 版权反馈
【摘要】:在执行主程序之前需要在BAS文件中定义以下动态数组及变量:图9.2模糊聚类分析程序流程图标准化子程序。采用最大最小法即式计算形似矩阵。

现代水文预报方法及应用:程序设计需注意定义动态数组及变量

9.4.3.1 程序流程框图

最佳阈值的计算是模糊聚类分析关键,因此程序设计时包含了该内容。根据模糊聚类分析步骤,设计程序流程框图如图9.2所示。

9.4.3.2 程序代码

模糊聚类分析包括聚类分析主程序、最佳阈值计算程序、F 统计量子程序、数据标准化子程序、模糊相似矩阵形成子程序、截矩阵形成子程序、分类子程序等,采用VisualBasic6.0 实现,其程序代码如下:

(1)主程序。程序输入为原始资料数组B(M,N),及系列组数(序列长度)M、每组数据个数(因子数)N、最佳阈值λ;输出分类数CN、每类对应的元素个数NI(CN)、每类对应的序号Numb[CN,NI(CN)]。在执行主程序之前需要在BAS文件中定义以下动态数组及变量

图9.2 模糊聚类分析程序流程图

(2)标准化子程序。采用式(9.18)进行标准化。输入原始数据数组X(M,N)及系列组数(序列长度)M、每组数据个数(因子数)N;输出标准化数据数组Y(M,N)及每个因子系列的最大值MaxData(M)。

(3)模糊相似矩阵形成子程序。采用最大最小法即式(9.22)计算形似矩阵。程序输入标准化序列B(M,N),输出模糊矩阵R(M,M)。

(4)截矩阵形成子程序。采用相似矩阵直接聚类法形成λ截矩阵。程序输入相似矩阵R(M,M),输出截矩阵RL(M,M)。

(5)分类子程序。程序输入截矩阵RL(M,M),输出分类数CN、每类对应的元素个数NI(CN)及对应的序号Numb[CN,NI(CN)]。程序代码如下:

(6)最佳阈值计算子程序。该子程序需要调用F 统计量计算子程序F_Compute。子程序输入原始资料数组B(M,N)、模糊矩阵R(M,N)、最大阈值LaMax、最小阈值LaMin、阈值计算步长DL,输出F 最大统计量MaxF 及其对应的阈值MaxFLMD。使用时需要先形成模糊矩阵,在进行聚类分析前可以用该程序计算理论最佳阈值。其程序代码如下:

(7)F 统计量计算子程序。程序输入每个元素的样本个数mc,元素个数(组数)nc,样本资料X(n,m)、分类数c、每类对应的元素个数NI(c)及每类对应的元素序号Numb[c,NI(c)];输出统计量F 值。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈