层次分析法C#代码_第1页
层次分析法C#代码_第2页
层次分析法C#代码_第3页
层次分析法C#代码_第4页
层次分析法C#代码_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

层次分析法AnaliticHierachyProcess(AHP)一、需求分析问题举例在海尔、新飞、容声和雪花四个牌号的电冰箱中选购一种。要考虑品牌的信誉、冰箱的功能、价格和耗电量。在泰山、杭州和承德三处选择一个旅游点。要考虑景点的景色、居住的环境、饮食的特色、交通便利和旅游的费用。在基础研究、应用研究和数学教育中选择一个领域申报科研课题。要考虑成果的贡献(实用价值、科学意义),可行性(难度、周期和经费)和人才培养。模型和方法层次结构模型的构造步骤一:确定层次结构,将决策的目标、考虑的因素(决策准则)和决策对象按它们之间的相互关系分为最高层、中间层和最低层,绘出层次结构图。最高层:决策的目的、要解决的问题。最低层:决策时的备选方案。中间层:考虑的因素、决策的准则。对于相邻的两层,称高层为目标层,低层为因素层。步骤二:通过相互比较,确定下一层各因素对上一层目标的影响的权重,将定性的判断定量化,即构造因素判断矩阵。步骤三:由矩阵的特征值确定判别的一致性;由相应的特征向量表示各因素的影响权重,计算权向量。步骤四:通过综合计算给出最底层(各方案)对最高层(总目标)影响的权重,权重最大的方案即为实现目标的最由选择。因素判断矩阵比较n个因素y=(y1,y2,…,yn)对目标z的影响.采用两两成对比较,用aij表示因素yi与因素yj对目标2的影响程度之比。通常用数字1~9及其倒数作为程度比较的标度,即九级标度法xi/xj相当较重要重要很重要绝对重要aij 1 3 57 92,4,6,8 居于上述两个相邻判断之间。当aij>1时,对目标Z来说xi比xj重要,其数值大小表示重要的程度。同时必有aji=1/aij1,对目标Z来说xj比xi不重要,其数值大小表示不重要的程度。称矩阵A=(aij)为因素判断矩阵。因为aij>0且aji=1/aij故称A=(aij)为正互反矩阵。例.选择旅游景点 2:目标,选择景点y:因素,决策准则y1费用,y2景色,y3居住,y4饮食,y5交通一致性与权向量如果aijajk=aiki,j,k=1,2,…,n,则称正互反矩阵A具有一致

性. 这表明对各个因素所作的两两比较是可传递的。一致性互正反矩阵A=(aij)具有性质:A的每一行(列)均为任意指定行(列)的正数倍数,因此rank(A)=1.A有特征值=n, 其余特征值均为零.则aij记A的对应特征值=n的特征向量为w=(w1w2,…,则aij=wiwj-1如果在目标2中n个因素y=(y1,y2,…,yn)所占比重分别为w=(w1w2,…,wn),则iwi=1,且因素判断矩阵为A=(wiwj-1)。因此,称一致性正互反矩阵A相应于特征值n的归一化特征向量为因素y=(y1,y2,…,yn)对目标z的权向量一致性检验与因素排序定理1:n阶正互反矩阵A是一致性的当且仅当其最大特征值为n.定理2:正互反矩阵具有模最大的正实数特征值1,其重数为1,且相应特征向量为正向量.定义一致性指标为刻画n阶正互反矩阵A=(aij)与一致性接近的程度,定义一致性指标(Consensusindex):CI=(1-n)/(n-1)有满意的一致性。CI=0,A有完全的一致性。CI接近于0,A有满意的一致性。n 12 34 567n 12 34 56789RI 00 0.580.90 1.121.2411.411.45当CR=CI/RI<0.1时,认为A有满意的一致性。wn)为因素.32此时取A的相应于1的归一化特征向量w=(w1w2,…,y=(y1,y2,…,yn)对目标z的权向量。由w=(w2,…,wn)分量wi的大小可以对因素的重要性排序。择校排名二、 使用的知识要点1.动态生成控件三、 主程序界面四、主要程序段动态生本控件,并加上相应所需要的方法:/初始化文本框

privatevoidInitextbox(intlen,string[]str)(thisgroupBox1.Controls.Clear();//清空不用的控件TextBoxmytextbox;//定义文本框intx=this.groupBox1.Location.X+10;inty=this.groupBox1.Location.Y+40;for(inti=0;i<len;i++)/生成标签(Labelmylabel=newLabel();mylabel.Text=str[i].ToString();mylabel.Location=newPoint(x+i*60,y-40);mylabel.AutoSize=true;this.groupBox1.Controls.Add(mylabel);}for(inti=0;i<len;i++)/生成文本框(for(intj=0;j<len;j++)(mytextbox=newTextBox();mytextbox.Size=newSystem.Drawing.Size(60,20);mytextbox.BackColor=Color.LightGoldenrodYellow;mytextbox.Name="mytextbox"+i+j;mytextbox.Leave+=newSystem.EventHandler(this.textBox_mouseover);mytextbox.Location=newPoint(x,y);if(i==j)(mytextbox.BackColor=Color.Wheat;mytextbox.Text="1";mytextbox.Enabled=false;}if(i<j)(mytextbox.BackColor=SystemColors.ActiveBorder;mytextbox.Enabled=false;}this.groupBox1.Controls.Add(mytextbox);x+=60;x=this.groupBox1.Location.X+10;y+=20;}

相应的方法:/控制文本框privatevoidtextBox_mouseover(objectsender,System.EventArgse)(TextBoxtemptextbox=(TextBox)sender;stringtempstr=temptextbox.Name.ToString();if(temptextbox.Text.Trim()=="")(// MessageBox.Show(:没有输入数字");// temptextbox.Focus();}else(stringi=tempstr.Substring(tempstr.Length-2,1);stringj=tempstr.Substring(tempstr.Length-1,1);foreach(ControltempCinthis.groupBox1.Controls)(if(tempCisTextBox)(if(tempC.Name.ToString()=="mytextbox"+j+i)(if(temptextbox.Text.ToString().Trim().IndexOf("/")>0)tempC.Text=temptextbox.Text.ToString().Substring(temptextbox.Text.ToString().Trim().Length-1,1);elseif(temptextbox.Text.ToString().Trim()=="1")tempC.Text="1";else}}}}"…"e'e"x}//textBox_mouseover获取第个文本框的值:privatevoidgetdata(double[,]matrix)(foreach(ControltempCinthis.groupBox1.Controls)

(try(if(tempCisTextBox)(stringtempstr=tempC.Text.ToString().Trim();if(tempstr=="")(MessageBox.Show有文本框没有填数据!");return;}inti=Convert.ToInt32(tempC.Name.ToString().Substring(tempC.Name.ToString().Length-2,1));intj=Convert.ToInt32(tempC.Name.ToString().Substring(tempC.Name.ToString().Length-1,1));if(tempstr.IndexOf("/")>0)(matrix[i,j]=Convert.ToDouble(tempstr.Substring(0,1))/Convert.ToDouble(tempstr.Substring(tempstr.Length-1,1));else} EW'I—catch(Exceptionerr)(MessageBox.Show(err.ToString());}}}五、所有程序代码usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Windows.Forms;namespace经济管理模型

///<summary>///ccfx2的摘要说明。///</summary>publicclassccfx2:System.Windows.Forms.Form(privatestaticdouble[]RI={0,0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45};privateInt32LenA;/准则数privateSystem.Int32LenB;//方案数privatedouble[,]zhuzematrix;//准则数方阵privatedouble[][,]fanganmatrix;/方案阵privatestring[]zhuze;//准则字符串privatestring[]fangan;//方案字符串privateintStepcount=0;//录入矩阵的步骤privatedouble[]研;//单序wprivatedouble[,]1研;//总序wprivatedouble[]Torder;//总的方案排名privatedoublelamda;//单序最大lamdaprivatedouble[]Tlamda;//总序lamdaprivateSystem.Windows.Forms.GroupBoxgroupBox1;privateSystem.Windows.Forms.Labellabel5;privateSystem.Windows.Forms.Buttonbutton1;privateSystem.Windows.Forms.Labellabel1;privateSystem.Windows.Forms.Labellabel2;privateSystem.Windows.Forms.TextBoxtextBox1;privateSystem.Windows.Forms.TextBoxtextBox2;privateSystem.Windows.Forms.Buttonbutton2;///<summary>///必需的设计器变量。///</summary>privateSystem.ComponentModel.Containercomponents=null;publicccfx2(){ /,//Windows窗体设计器支持所必需的//InitializeComponent();////TODO:在InitializeComponent调用后添加任何构造函数代码//

///<summary>///清理所有正在使用的资源。///</summary>protectedoverridevoidDispose(booldisposing)(if(disposing)(if(components!=null)(components.Dispose();}}base.Dispose(disposing);}#regionWindows窗体设计器生成的代码///<summary>///设计器支持所需的方法-不要使用代码编辑器修改///此方法的内容。///</summary>privatevoidInitializeComponent()(this.groupBox1=newSystem.Windows.Forms.GroupBox();this.textBox2=newSystem.Windows.Forms.TextBox();this.textBox1=newSystem.Windows.Forms.TextBox();this.label2=newSystem.Windows.Forms.Label();this.label1=newSystem.Windows.Forms.Label();this.label5=newSystem.Windows.Forms.Label();this.button1=newSystem.Windows.Forms.Button();this.button2=newSystem.Windows.Forms.Button();this.groupBox1.SuspendLayout();this.SuspendLayout();////groupBox1//this.groupBox1.Anchor=((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top|System,Windows,Forms,AnchorStyles,Bottom)|System,Windows,Forms,AnchorStyles,Left)|System,Windows,Forms,AnchorStyles,Right)));this.groupBox1.Controls.Add(this.textBox2);this.groupBox1.Controls.Add(this.textBox1);this.groupBox1.Controls.Add(this.label2);

this.groupBoxl.Controls.Add(this.labell);this.groupBoxl.Location=newSystem.Drawing.Point(0,8);this.groupBoxl.Name="groupBox1";this.groupBox1.Size=newSystem.Drawing.Size(616,360);this.groupBox1.TabIndex=15;this.groupBox1.TabStop=false;////textBox2//this.textBox2.Anchor=((System,Windows,Forms,AnchorStyles)(((System,Windows,Forms,AnchorStyles・Top|System.Windows.Forms.AnchorStyles.Left)|System.Windows.Forms.AnchorStyles.Right)));this.textBox2.BackColor=System.Drawing.Color.Ivory;this.textBox2.Location=newSystem.Drawing.Point(128,80);this.textBox2.Name="textBox2";this.textBox2.Size=newSystem.Drawing.Size(472,20);this.textBox2.TabIndex=3;this.textBox2.Text="";//textBox1this.textBox1.Anchor=((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top|System,Windows,Forms,AnchorStyles,Left)|System,Windows,Forms,AnchorStyles,Right)));this.textBox1.BackColor=System.Drawing.Color.Ivory;this.textBox1.Location=newSystem.Drawing.Point(128,48);this.textBox1.Name="textBox1";this.textBox1.Size=newSystem.Drawing.Size(472,20);this.textBox1.TabIndex=2;this.textBox1.Text="";this.textBox1.TextChanged+=newSystem.EventHandler(this.textBox1_TextChanged);////label2//this.label2.Location=newSystem.Drawing.Point(24,80);this.label2.Name="label2";this.label2.TabIndex=1;this.label2.Text=方案:";////label1

this.labell.Location=newSystem.Drawing.Point(24,48);this.labell.Name="label1";this.label1.TabIndex=0;this.label1.Text=准则:";////label5//this.label5.Anchor=((System,Windows,Forms,AnchorStyles)(((System,Windows,Forms,AnchorStyles・Bottom|System.Windows.Forms.AnchorStyles.Left)|System.Windows.Forms.AnchorStyles.Right)));this.label5.AutoSize=true;this.label5.ForeColor=System.Drawing.Color.Red;this.label5.Location=newSystem.Drawing.Point(16,384);this.label5.Name="label5";this.label5.Size=newSystem.Drawing.Size(0,16);this.label5.TabIndex=16;////button1//this.button1.Anchor=((System,Windows,Forms,AnchorStyles)((System,Windows,Forms,AnchorStyles・Bottom|System.Windows.Forms.AnchorStyles.Right)));this.button1.Location=newSystem.Drawing.Point(456,384);this.button1.Name="button1";this.button1.TabIndex=17;this.button1.Text=下一步";this.button1.Click+=newSystem.EventHandler(this.button1_Click);////button2//this.button2.Anchor=((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom|System.Windows.Forms.AnchorStyles.Right)));this.button2.Location=newSystem.Drawing.Point(536,384);this.button2.Name="button2";this.button2.TabIndex=21;this.button2.Text=从例子获取";this.button2.Click+=newSystem.EventHandler(this.button2_Click);////ccfx2//this.AutoScaleBaseSize=newSystem.Drawing.Size(5,13);this.ClientSize=newSystem.Drawing.Size(616,421);

this.Controls.Add(this.button2);this.Controls.Add(this.buttonl);this.Controls.Add(this.label5);this.Controls.Add(this.groupBoxl);this.Name="ccfx2";this.Text=层次分析法";this.Load+=newSystem.EventHandler(this.ccfx2_Load);this.groupBox1.ResumeLayout(false);this.ResumeLayout(false);}#endregionprivatevoidccfx2_Load(objectsender,System.EventArgse)(}//初始化变量privatevoidInitValue()//(/录入准则字符串this.zhuze=this.textBox1.Text.ToString().Trim().Split(',');this.fangan=this.textBox2.Text.ToString().Trim().Split(',');this.LenA=zhuze.Length;this.LenB=fangan.Length;if(this.LenA!=5||this.LenB!=3)this.button2.Visible=false;//=实例化各变量this.zhuzematrix=newdouble[this.LenA,this.LenA];this.fanganmatrix=newdouble[this.LenA][,];for(inti=0;i<LenA;i++)this.fanganmatrix[i]=newdouble[LenB,LenB];this.W=newdouble[LenA];this.TW=newdouble[LenA,LenB];this.Torder=newdouble[LenB];this.Tlamda=newdouble[LenA];//==this.groupBox1.Controls.Clear();this.label5.Text=情输入准则层相对目标白勺判别矩阵";}/初始化文本框privatevoidInitextbox(intlen,string[]str)

(this.groupBox1.Controls.Clear();/清空不用的控件TextBoxmytextbox;/定义文本框intx=this.groupBox1.Location.X+10;inty=this.groupBox1.Location.Y+40;for(inti=0;i<len;i++)/生成标签(Labelmylabel=newLabel();mylabel.Text=str[i].ToString();mylabel.Location=newPoint(x+i*60,y-40);mylabel.AutoSize=true;this.groupBox1.Controls.Add(mylabel);}for(inti=0;i<len;i++)/生成文本框(for(intj=0;j<len;j++)(mytextbox=newTextBox();mytextbox.Size=newSystem.Drawing.Size(60,20);mytextbox.BackColor=Color.LightGoldenrodYellow;mytextbox.Name="mytextbox"+i+j;mytextbox.Leave+=newSystem.EventHandler(this.textBox_mouseover);mytextbox.Location=newPoint(x,y);if(i==j)(mytextbox.BackColor=Color.Wheat;mytextbox.Text="1";mytextbox.Enabled=false;if(i<j)mytextbox.BackColor=SystemColors.ActiveBorder;mytextbox.Enabled=false;}this.groupBox1.Controls.Add(mytextbox);x+=60;}x=this.groupBox1.Location.X+10;y+=20;}}/控制文本框privatevoidtextBox_mouseover(objectsender,System.EventArgse)

(TextBoxtemptextbox=(TextBox)sender;stringtempstr=temptextbox.Name.ToString();if(temptextbox.Text.Trim()=="")(// MessageBox.Show(没有输入数字");// temptextbox.Focus();}else(stringi=tempstr.Substring(tempstr.Length-2,1);stringj=tempstr.Substring(tempstr.Length-1,1);foreach(ControltempCinthis.groupBox1.Controls)(if(tempCisTextBox)(if(tempC.Name.ToString()=="mytextbox"+j+i)(if(temptextbox.Text.ToString().Trim().IndexOf("/")>0)tempC.Text=temptextbox.Text.ToString().Substring(temptextbox.Text.ToString().Trim().Length-1,1);elseif(temptextbox.Text.ToString().Trim()=="1")tempC.Text="1";elsetempC.Text="1/"+temptextbox.Text;—//privatevoidmytextboxclear()(foreach(ControltempCinthis.groupBox1.Controls)(if(tempCisTextBox)(stringtempstr=tempC.Text.ToString().Trim();inti=Convert.ToInt32(tempC.Name.ToString().Substring(tempC.Name.ToString().Length-2,1));

intj=Convert.ToInt32(tempC.Name.ToString().Substring(tempC.Name.ToString().Length-1,1));if(i==j)tempC.Text="1";elsetempC.Text="";}}}privatevoidvieworder()(inti,j;int[]temp=newint[this.LenA];for(i=0;i<this.LenA;i++)temp[i]=i;for(i=0;i<this.LenA;i++)for(j=i+1;j<this.LenA;j++)if(this.W[temp[i]]<this.W[temp[j]]){intt=temp[i];temp[i]=temp[j];temp[j]=t;}stringstr="";for(i=0;i<this.LenA;i++)//str+=this.zhuze[temp[i]].ToString()+:""+this.W[temp[i]].ToString();{Labeltemplabel=newLabel();templabel.Text=this.zhuze[temp[i]].ToString()+:""+this.W[temp[i]].ToString();templabel.Location=newPoint(this.groupBox1.Location.X+10,this.groupBox1.Location.Y+i*20+40);templabel.AutoSize=true;this.groupBox1.Controls.Add(templabel);//ENI处理单序排序}//Labeltemplabel=newLabel();//templabel.Text=str;//templabel.Location=newPoint(this.groupBox1.Location.X+10,this.groupBox1.Location.Y+40);//templabel.AutoSize=true;//templabel.Width=20*LenA;//this.groupBox1.Controls.Add(templabel);//END处理单序排序for(j=0;j<LenB;j++)for(i=0;i<LenA;i++)Torder[j]+=W[i]*TW[i,j];

int[]Ttemp=newint[this.LenB];for(i=0;i<this.LenB;i++)Ttemp[i]=i;for(i=0;i<this.LenB;i++)for(j=i+1;j<this.LenB;j++)if(this.Torder[Ttemp[i]]<this.Torder[Ttemp[j]]){intt=Ttemp[i];Ttemp[i]=Ttemp[j];Ttemp[j]=t;}str=TTTTstr=TTTTfor(i=0;i<this.LenB;i++)str+=this.fangan[Ttemp[i]].ToString()+:""+this.Torder[Ttemp[i]].ToString()+"\t";Labeltemplabel2=newLabel();templabel2.Text=str;templabel2.Location=newPoint(this.groupBox1.Location.X+10,this.groupBox1.Location.Y+20*LenA+80);templabel2.AutoSize=true;this.groupBox1.Controls.Add(templabel2);//END处理总序排序}privatevoidgetdata(double[,]matrix){foreach(ControltempCinthis.groupBox1.Controls){try{if(tempCisTextBox){stringtempstr=tempC.Text.ToString().Trim();if(tempstr==""){MessageBox.Show有文本框没有填数据!");return;}inti=Convert.ToInt32(tempC.Name.ToString().Substring(tempC.Name.ToString().Length-2,1));intj=Convert.ToInt32(tempC.Name.ToString().Substring(tempC.Name.ToString().Length-1,1));if(tempstr.IndexOf("/")>0){matrix[i,j]=Convert.ToDouble(tempstr.Substring(0,1))/Convert.ToDouble(tempstr.Substring(tempstr.Length-1,1));}

elsematrix[i,j]=Convert.ToDouble(tempstr);}}catch(Exceptionerr)(MessageBox.Show(err.ToString());}}}/例子数据privatevoidbutton2_Click(objectsender,System.EventArgse)(switch(this.Stepcount)(case0:this.textBox1.Text=费用,名气,导师,课题,个人兴趣";this.textBox2.Text=清华,北大,北航";break;case1:string[,]temparr={{"1”,”2”,”7”,”5”,”5”},{"1/2”,"1”,”4”,”3”,”3”},{"1/7”,”1/4”,"1”,”1/2”,"1/3”}{"1/5”,”1/3”,"2”,”1”,”1”},{"1/5”,”1/3”,"3”,”1”,”1”}}{"1/5”,”1/3”,"2”,”1”,”1”},{"1/5”,”1/3”,"3”,”1”,”1”}}foreach(ControltempCinthis.groupBox1.Controls){try{if(tempCisTextBox){stringtempstr=tempC.Text.ToString().Trim();inti=Convert.ToInt32(tempC.Name.ToString().Substring(tempC.Name.ToString().Length-2,1));intj=Convert.ToInt32(tempC.Name.ToString().Substring(tempC.Name.ToString().Length-1,1));tempC.Text=temparr[i,j];}}catch(Exceptionerr){MessageBox.Show(err.ToString());}

break;case2:string[,]temparrl={{"1”,”1/5”,"1/8”},{"5”,”1”,”1/3”},{"8”,”3”,”1”}}foreach(ControltempCinthis.groupBox1.Controls)tryif(tempCisTextBox)stringtempstr=tempC.Text.ToString().Trim();intiConvert.ToInt32(tempC.Name.ToString().Substring(tempC.Name.ToString().Length-2,1));intjConvert.ToInt32(tempC.Name.ToString().Substring(tempC.Name.ToString().Length-1,1));tempC.Text=temparr1[i,j];catch(Exceptionerr)MessageBox.Show(err.ToString());break;case3:string[,]temparr2={{"1”,”2”,”5”},{"1/2”,"1”,”2”},{"1/5”,”1/2”,”1”}}foreach(ControltempCinthis.groupBox1.Controls)tryif(tempCisTextBox)stringtempstr=tempC.Text.ToString().Trim();intiConvert.ToInt32(tempC.Name.ToString().Substring(tempC.Name.ToString().Length-2,1));intjConvert.ToInt32(tempC.Name.ToString().Substring(tempC.Name.ToString().Length-1,1));tempC.Text=temparr2[i,j];

catch(Exceptionerr)MessageBox.Show(err.ToString());break;case4:string[,]temparr3={{"1”,”1”,”3”},{"1”,”1”,”3”},{"1/3”,”1/3”,”1”}}foreach(ControltempCinthis.groupBox1.Controls)tryif(tempCisTextBox)stringtempstr=tempC.Text.ToString().Trim();intiConvert.ToInt32(tempC.Name.ToString().Substring(tempC.Name.ToString().Length-2,1));intjConvert.ToInt32(tempC.Name.ToString().Substring(tempC.Name.ToString().Length-1,1));tempC.Text=temparr3[i,j];catch(Exceptionerr)MessageBox.Show(err.ToString());break;case5:string[,]temparr4{{"1”,”3”,”4”},{"1/3”,"1”,”1”},{"1/4”,"1”,”1”}}foreach(ControltempCinthis.groupBox1.Controls)tryif(tempCisTextBox)stringtempstr=tempC.Text.ToString().Trim();intiConvert.ToInt32(tempC.Name.ToString().Substring(tempC.Name.ToString().Length

-2,1));intj=Convert.ToInt32(tempC.Name.ToString().Substring(tempC.Name.ToString().Length-1,1));tempC.Text=temparr4[i,j];}}catch(Exceptionerr)(MessageBox.Show(err.ToString());}}break;case6:string[,]temparr5={{"1”,”1”,”1/4”},{"1”,”1”,”1/4”},{"4”,”4”,”1"}};foreach(ControltempCinthis.groupBox1.Controls)tryB°x)stringtempstr=tempC.Text.ToString().Trim();inti=Convert.ToInt32(tempC.Name.ToString().Substring(tempC.Name.ToString().Length-2,1));intj=Convert.ToInt32(tempC.Name.ToString().Substring(tempC.Name.ToString().Length-1,1));tempC.Text=temparr5[i,j];}}catch(Exceptionerr){MessageBox.Show(err.ToString());}}break;default:} break;privatevoidbutton1_Click(objectsender,System.EventArgse){

if(this.button1.Text==^算结果")(this.vieworder();return;}if(this.Stepcount==0)(this.InitValue();this.Initextbox(this.LenA,this.zhuze);this.Stepcount++;return;}if(this.Stepcount==1)(foreach(ControltempCinthis.groupBox1.Controls)/录入数据(try(if(tempCisTextBox)(stringtempstr=tempC.Text.ToString().Trim();if(tempstr=="")MessageBox.ShoW有文本框没有填数据!");return;inti=Convert.ToInt32(tempC.Name.ToString().Substring(tempC.Name.ToString().Length-2,1));intj=Convert.ToInt32(tempC.Name.ToString().Substring(tempC.Name.ToString().Length-1,1));if(tempstr.IndexOf("/")>0)(this.zhuzematrix[i,j]=Convert.ToDouble(tempstr.Substring(0,1))/Convert.ToDouble(tempstr.Substring(tempstr.Length-1,1));else} this.zhuzematrlx[i,j]=Convert'ToDouble,tempstr);catch(Exceptlonerr)

MessageBox.Show(err.ToString());}}//foreach/计算wfor(inti=0;i<LenA;i++)this.W[i]=1;for(intj=0;j<LenA;j++)(for(inti=0;i<LenA;i++)this.W[j]*=this.zhuzematrix[j,i];////W[j]=Math・Pow(W[j],1/LenA);W[j]=Math.Exp(Math.Log(W[j])/LenA);}doubleTt=0;for(inti=0;i<LenA;i++)Tt+=W[i];for(inti=0;i<LenA;i++)W[i]=W[i]/Tt;this.lamda=0;for(intj=0;j<LenA;j++)(for(inti=0;i<LenA;i++)this.lamda+=this.zh

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论