模糊综合评判程序代码

上传人:hs****ma 文档编号:511910438 上传时间:2023-03-05 格式:DOCX 页数:7 大小:13.14KB
返回 下载 相关 举报
模糊综合评判程序代码_第1页
第1页 / 共7页
模糊综合评判程序代码_第2页
第2页 / 共7页
模糊综合评判程序代码_第3页
第3页 / 共7页
模糊综合评判程序代码_第4页
第4页 / 共7页
模糊综合评判程序代码_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《模糊综合评判程序代码》由会员分享,可在线阅读,更多相关《模糊综合评判程序代码(7页珍藏版)》请在金锄头文库上搜索。

1、using System; using KarstIModel;namespace KarstModel/ / FuzzyJudge 模糊综合评判方法。/ public class FuzzyJudge:IModelprivate bool hasPara=false;/是否设置了所有参数private double, r;单因素评判矩阵,行数与权重分配矩阵列数相同,列数与评 判集矩阵列数相同private double, rr;/r 的原始数据private double u;权重分配向量(一维矩阵)private double v;评判集向量(一维矩阵)private double b;评

2、判结果向量(一维矩阵)private double result;/以结果向量为权表述的计算结果private System.Windows.Forms.CheckedListBox.CheckedIndexCollectionpreTreatme nt;数据预处理,多选项:标准差变换和极差变换private long methodID;private int GoeID;public FuzzyJudge()/ TODO: 在此处添加构造函数逻辑/#region IModel 成员public void run()if(!hasPara) return;/标准化rr=new doubler.

3、GetUpperBound(0)+1,r.GetUpperBound(1)+1;for(int i=0;ir.GetUpperBound(0)+1;i+)for(int j=0;j0)if(preTreatment.Contains(0) r=DataStandard.Standardization(r);if(preTreatment.Contains(1) r=DataStandard.Difference(r);switch(methodID)case 0:b=Judge1(r,u);break;case 1:b=Judge2(r,u);break;case 2:b=Judge3(r,u

4、);break;case 3:b=Judge4(r,u);break;result=0;double d1=0,d2=0;for(int i=0;ib.Length;i+)d1=d1+bi*vi;d2=d2+bi;result=d1/d2;public bool setParameters(System.Collections.Hashtable para)tryGoeID=(int )paraGoeID;r=(double ,)parar;u=(double )parau;v=(double )parav;preTreatment=(System.Windows.Forms.CheckedL

5、istBox.CheckedIndexCollection)parap reTreatment;methodID=(long)paramethodID;/单因素评判矩阵: 行数与权重分配矩阵列数相同,列数与评判集矩阵列数相同if(r.GetUpperBound(0)+1!=u.Length)|(r.GetUpperBound(1)+1!=v.Length)System.Wi ndows.Forms.MessageBox.Show(单因素评判矩阵:行数与权重分配矩阵列数应该相同,列数与评判集矩阵列数应该相同);return false;b=new doubler.GetUpperBound(1)

6、+1;hasPara=true;return true;catchreturn true;public System.Collections.Hashtable GetParameters()/ TODO: 添加 FuzzyJudge.GetParameters 实现return null;public System.Collections.Hashtable GetResult()/ TODO: 添加 FuzzyJudge.GetResult 实现return null;public System.Data.DataTable GetResultAsTable()/ TODO: 添加 Fuz

7、zyJudge.GetResultAsTable 实现return null;public string GetResultAsString()string sR=;/显示评判集各元素sR=sR+共有+(r.GetUpperBou nd(1) + 1) +个评判元素n; for(int i=0;ir.GetUpperBound(1)+1;i+)sR=sR+ +vi+ ;sR=sR+n;/显示权向量各元素sR=sR+共有+(r.GetUpperBou nd(0) + 1) +个权向量元素n”; for(int i=0;ir.GetUpperBound(0)+1;i+)sR=sR+ +ui+ ;s

8、R=sR+n;/显示评判矩阵各元素sR=sR+评判矩阵为+(r.GetUpperBou nd(0)+1)+行, +(r.GetUpperBound(1)+ 1)+列矩阵:n;for(int i=0;ir.GetUpperBound(0)+1;i+)for(int j=0;jr.GetUpperBound(1)+1;j+) sR=sR+ +rri,j+ ;sR=sR+n;/显示综合评判方法 switch(methodID)case O:sR=sR+综合评判方法:模糊变换M(AV)- +n;break;case 1:sR=sR+综合评判方法:以乘代替取小M(V)-+n;break;case 2:s

9、R=sR+综合评判方法:以加代替取大“(A+)-+n;break;case 3:sR=sR+综合评判方法:加权平均M(+)-+n;break; /显示评判结果 sR=sR+评判结果向量元素n;for(int i=0;ir.GetUpperBound(1)+1;i+) sR=sR+ +bi+ ;sR=sR+n; /以结果向量为权表述的计算结果 sR=sR+以结果向量为权表述的计算结果+result;return sR;public string GetKeywords()/ TODO: 添加 FuzzyJudge.GetKeywords 实现 return null;public string

10、GetDiscription()/ TODO: 添加 FuzzyJudge.GetDiscription 实现 return null;public string GetSubjects()/ TODO: 添加 FuzzyJudge.GetSubjects 实现 return null;public IModel GetChildren()/ TODO: 添加 FuzzyJudge.GetChildren 实现return null;public ParaData GetParaData()ParaData ans=new ParaData5;an s0 = new ParaData(-1,r

11、,单因素评判矩阵 r(两维),2,double, 单因素评判矩阵,行数与权重分配矩阵列数相同,列数与评判集矩阵列数相同,);an s1 = new ParaData(-1,preTreatme nt,评判矩阵需数据预处理(多选),4,int,数据预处理(多选项),标准差变换,极差变换);an s2 = new ParaData(-1,u,权重分配向量 u(一 维矩阵),1,double,权重分配矩阵,相加等于1,);an s3 = new ParaData(-1,v,评判集向量 v(一 维矩阵),1,double, 评判集 矩阵,);an s4 = new ParaData(-1,method

12、ID,评判方法(单选),3, in t,评判方法(单选儿模糊变换M(AV),以乘代替取小M(V),以加代替取大M( A+),加权平均M( + );return ans;public ModelData GetModelData()ModelData ans=new ModelData();ans.name=FuzzyJudge;an s.realName=模糊综合评判(常规);an s.useMethod = 按向导输入参数后运行即可;an s.uses=模糊综合评判(常规);ans.filename=karstModel.dll;an s.descriptio n =模糊综合评判(常规);a

13、n s.keyWords=模糊综合评判(常规);ans.classes=4;return ans;#endregion/ /评判方法:模糊变换M(AV)/ r:评判矩阵,u:权重矩阵,/返回结果为证券结果矩阵b/ private double Judge1(double, r,double u) int M,N,i,j;N=r.GetUpperBound(0)+1;M=r.GetUpperBound(1)+1; double b=new doubleM;for(j=0;jM;j+) for(i=0;iN;i+)if(uivri,j) ri,j = ui;/取小for(j=0;j/评判方法:以乘代替取小M(V)/ r:评判矩阵,u:权重矩阵/返回结果为证券结果矩阵b/ v/summaryprivate double Judge2(double, r,double u) int M,N,i,j;N=r.GetUpperBound(0)+1;M=r.Get

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

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