《物元可拓源碼》由會員分享,可在線閱讀,更多相關(guān)《物元可拓源碼(4頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、精選優(yōu)質(zhì)文檔-傾情為你奉上物元可拓法于80年代由我國蔡文教授創(chuàng)立,目前已廣泛應(yīng)用于新產(chǎn)品構(gòu)思與設(shè)計、優(yōu)化決策、控制、識別與評價等各個領(lǐng)域,無論在理論還是在實(shí)踐上都發(fā)揮了越來越重要的作用。物元是描述事物的名稱、特征及量值3個基本元素的簡稱,在形式上可記為M=(N,c,v)=(N,c,c(N)。其中M、N、c、v分別是Matter、Name,Character,Value的縮寫。可拓集合是用關(guān)聯(lián)度將模糊集合的0,1閉合區(qū)間連續(xù)取值拓廣到(-,+)實(shí)數(shù)軸,以表達(dá)物元的量值為實(shí)軸上的一點(diǎn)時符合要求的程度。物元分析是研究物元及其變化并用以解決矛盾問題的規(guī)律和方法,可拓學(xué)是用形式化的工具,從定性和定量兩個
2、角度去研究解決矛盾問題的規(guī)律和方法。物元可拓法結(jié)合二者,是將辨證邏輯和形式邏輯相結(jié)合的可拓邏輯,豐富了事物的內(nèi)涵,客觀地反映了物質(zhì)世界的真實(shí)狀態(tài)。本次選用評價因子污染貢獻(xiàn)率方法來確定權(quán)系數(shù)。主要計算程序:DimsRowAsInteger,sColAsInteger起始的行與列DimiAsInteger,jAsInteger循環(huán)變量DimXjAsDouble定義實(shí)測值DimAijAsDouble,BijAsDouble定義標(biāo)準(zhǔn)域區(qū)間DimApjAsDouble,BpjAsDouble定義節(jié)域變量DimYZSAsInteger定義評價因子個數(shù)DimDJSAsInteger定義評價等級數(shù)得到起始行列
3、值sRow=InputBox(請輸入監(jiān)測數(shù)據(jù)第一個數(shù)的行號!,輸入行號,0)sCol=InputBox(請輸入監(jiān)測數(shù)據(jù)第一個數(shù)的列號!,輸入列號,0)YZS=InputBox(請輸入評價因子個數(shù)!,輸入因子個數(shù),0)DJS=InputBox(請輸入評價等級個數(shù)!,輸入評價等級數(shù),0)插入標(biāo)記列文字WithSheets(sheet1)Fori=1ToDJSCells(sRow+DJS+2+i,sCol-1).Value=關(guān)聯(lián)函數(shù)k_等級&iNextiCells(sRow+2*DJS+3,sCol-1).Value=X/SCells(sRow+2*DJS+4,sCol-1).Value=歸一化權(quán)重
4、Fori=1ToDJSCells(sRow+2*DJS+4+i,sCol-1).Value=關(guān)聯(lián)度K_等級&iNextiCells(sRow+3*DJS+5,sCol-1).Value=可拓指數(shù)按列循環(huán)計算Forj=sColTosCol+YZS-1賦初值Xj=Cells(sRow,j).Value實(shí)測值A(chǔ)pj=Cells(sRow+1,j).Value可拓域最小值Bpj=Cells(sRow+DJS+2,j).Value可拓域最大值Fori=1ToDJS對aij,bij賦值A(chǔ)ij=Cells(sRow+i,j).ValueBij=Cells(sRow+i+1,j).Value按條件選擇公式計算
5、關(guān)聯(lián)度IfXjAijAndXjBijThenxjXij點(diǎn)x位于本標(biāo)準(zhǔn)之內(nèi)IfXj=(Aij+Bij)/2)ThenCells(sRow+i+DJS+2,j).Value=-(Aij-Xj)/(Bij-Aij)ElseCells(sRow+i+DJS+2,j).Value=-(Xj-Bij)/(Bij-Aij)EndIfElsexjXij點(diǎn)x位于本標(biāo)準(zhǔn)之外IfXjAijThenx位于標(biāo)準(zhǔn)的左邊,此時有x(ai+bi)/2IfXjBijThenx位于標(biāo)準(zhǔn)的右邊,此時有x(ai+bi)/2IfXj=(Apj+Bpj)/2ThenCells(sRow+i+DJS+2,j).Value=(Xj-Bij)
6、/(Apj+Bij-2*Xj)ElseCells(sRow+i+DJS+2,j).Value=(Xj-Bij)/(Bij-Bpj)EndIfEndIfEndIfNextiNextj計算X/SForj=sColTosCol+YZS-1DimaAsDoublea=0Fori=1ToDJS+2a=a+Cells(sRow+i,j)NextiCells(sRow+2*DJS+3,j).Value=Cells(sRow,j).Value*(DJS+2)/aNextj計算權(quán)重計算x/s的總和a=0Fori=sColTosCol+YZS-1a=a+Cells(sRow+2*DJS+3,i)NextiForj
7、=sColTosCol+YZS-1Cells(sRow+2*DJS+4,j).Value=Cells(sRow+2*DJS+3,j).Value/aNextj計算關(guān)聯(lián)度Cells(sRow+2*DJS+4,sCol+YZS)=綜合關(guān)聯(lián)度Fori=1ToDJSForj=sColTosCol+YZS-1Cells(sRow+2*DJS+4+i,j).Value=Cells(sRow+DJS+2+i,j).Value*Cells(sRow+2*DJS+4,j).ValueNextjDimkAsIntegera=0Fork=sColTosCol+YZS-1a=a+Cells(sRow+2*DJS+4+
8、i,k)綜合關(guān)聯(lián)度累加NextkCells(sRow+2*DJS+4+i,sCol+YZS).Value=aNexti計算可拓指數(shù)找最小與最大關(guān)聯(lián)度DimKmax,KminAsDoubleKmax=Cells(sRow+2*DJS+4+1,sCol+YZS).ValueKmin=KmaxFori=2ToDJSIfKmaxCells(sRow+2*DJS+4+i,sCol+YZS).ValueThenKmin=Cells(sRow+2*DJS+4+i,sCol+YZS).ValueEndIfNextiDimKXP()AsDoubleReDimKXP(DJS)AsDoubleFori=1ToDJS
9、KXP(i)=(Cells(sRow+2*DJS+4+i,sCol+YZS).Value-Kmin)/(Kmax-Kmin)NextiDimFZ,FMAsDoubleFori=1ToDJSFZ=FZ+i*KXP(i)FM=FM+KXP(i)NextiCells(sRow+3*DJS+5,sCol).Value=FZ/FMEndWith我做地下水水質(zhì)評價時用到的公式是這樣的:矩跟關(guān)聯(lián)度的公式是通常用到的那個,即:p(xj,xij)=|xj-0.5(aij+bij)|-0.5(bij-aij)關(guān)聯(lián)函數(shù)計算公式:當(dāng)xj屬于xij時,ki(xj)=-p(xj,xij)/|xij|當(dāng)xj不屬于xij時,
10、ki(xj)=p(xj,xij)/p(xj,xrj)-p(xj,xij)綜合關(guān)聯(lián)度計算公式:Kj(p)=a1*kj(x1)+a2*kj(x2)+.+an*kj(xn)權(quán)重用的污染因子貢獻(xiàn)率法:ai=(xi/Si)/(x1/S1+x2/S2+.xn/Sn)可拓指數(shù)用公式:KXP=(Kj(X)-Min(Kj(X)/(Max(Kj(X)-Min(Kj(X)由于涉及的內(nèi)容或者思路一同,可能選用的關(guān)聯(lián)度計算公式,權(quán)重計算公式不同,酌情參考。參考源程序里最初的部分,后面的變量說明有詳細(xì)解釋,定義要評價的參數(shù)個數(shù),評價的等級等,相應(yīng)的在excel表格里的參數(shù)個數(shù)與評價等級的行數(shù)要與之對應(yīng)。PS:上面的代碼里因子個數(shù)是通過跳出的對話框手動輸入進(jìn)去的。專心-專注-專業(yè)