鄭海燕 ,肖 羽 ,曾德熹
1.長江水利委員會(huì)水文局上游局,四川宜賓 644007
2.深圳富晉天維信息通訊技術(shù)有限公司,廣東深圳 518010
地下水系統(tǒng)作為自然環(huán)境的組成部分,其水質(zhì)特征是系統(tǒng)本體與系統(tǒng)環(huán)境綜合作用的結(jié)果。在水質(zhì)預(yù)測過程中,往往只掌握地下水的水質(zhì)特征值,卻很難搞清系統(tǒng)內(nèi)部的發(fā)展演化過程以及外部諸因素對系統(tǒng)的作用。即系統(tǒng)的輸出信息明確,而結(jié)構(gòu)信息和關(guān)系信息不明確。所以,地下水系統(tǒng)屬于灰色系統(tǒng)把灰色模型用于地下水水質(zhì)預(yù)測,無疑能夠體現(xiàn)地下水系統(tǒng)的灰色特征。
灰色系統(tǒng)按照預(yù)測問題的特征,可分為5種基本類型,即數(shù)列預(yù)測、災(zāi)變預(yù)測、季節(jié)災(zāi)變預(yù)測、拓?fù)漕A(yù)測和系統(tǒng)綜合預(yù)測。這5種類型的預(yù)測方法,都是地理學(xué)中重要而且常用的預(yù)測方法。GM(1,1)模型是常用的一種灰色模型,用于單個(gè)時(shí)間序列的動(dòng)態(tài)預(yù)測。就是對某一指標(biāo)的發(fā)展變化情況所作的預(yù)測,其預(yù)測的結(jié)果是該指標(biāo)在未來各個(gè)時(shí)刻的具體數(shù)值。
灰色模型以微分方程為描述形式,它所揭示的是事物發(fā)展的連續(xù)過程,它符合地下水質(zhì)量的漸變規(guī)律。模型的建立過程即是對地下水系統(tǒng)的辨識(shí)過程,運(yùn)用確知的水質(zhì)數(shù)據(jù)去揭示系統(tǒng)的動(dòng)態(tài)特征,但由于其它信息的不明確,因而這個(gè)過程是灰色的逆運(yùn)算過程。地下水水質(zhì)預(yù)測模型就是基于最基本的灰色GM(n,h)模型[3]建立起來的。其中h表示變量的個(gè)數(shù),n表示微分方程的階次,n越大則模型所描述的內(nèi)涵可能越豐富,但階次過高的系統(tǒng)其特征方程的求解困難,而且精度不一定高,其結(jié)果也不是解析的,所以我們通常建立n=1的GM模型。
由于地下水系統(tǒng)的結(jié)構(gòu)信息和關(guān)系信息不明確,因此建模時(shí)只需要考證水質(zhì)特征值的動(dòng)態(tài)變化規(guī)律,即變量唯一,h=1,那么所需建立的模型就是GM(1,1)模型,其一般表示形式如下所示:

式中:a為模型系數(shù);u為待辨識(shí)參數(shù)。
GM(1,1)模型的建模和預(yù)測:
1)數(shù)據(jù)處理。將原始數(shù)據(jù)列X(0)(i)作一次累加,得到生成數(shù)據(jù)列X(1)(k),

2)構(gòu)成數(shù)據(jù)矩陣B與數(shù)據(jù)列Yn:

式中:n為監(jiān)測數(shù)據(jù)個(gè)數(shù)。
3)計(jì)算模型系數(shù)a和待辨識(shí)參數(shù)u,
[a,u]T=(BTB)-1BTYn
4)建立時(shí)間響應(yīng)模型:

5)將時(shí)間響應(yīng)離散化:

6)將K值代入離散化模型公式,計(jì)算出X(1)(k)
7)將預(yù)測累加值 X(1)(k) k∈{n+1,n+2,…}還原為預(yù)測值X(0)(k) k∈{n+1,n+2,…}。

1)平均精度檢驗(yàn)
將計(jì)算出的與實(shí)測值X(0)(k)對照,算出逐對殘差:


然后計(jì)算出平均相對誤差如果平均精度符合實(shí)際要求,即可進(jìn)行預(yù)測。2)后驗(yàn)差檢驗(yàn)
為了判斷預(yù)測值的可靠性,采用后驗(yàn)差進(jìn)行檢驗(yàn),計(jì)算出實(shí)測標(biāo)準(zhǔn)差(S1)和殘參標(biāo)準(zhǔn)差(S2)。

計(jì)算后驗(yàn)差比值C,及小誤差概率P。

然后就可以根據(jù)數(shù)據(jù)表進(jìn)行預(yù)測精度檢驗(yàn)了,本系統(tǒng)因?yàn)檫\(yùn)用于實(shí)際,
所以就只用了前一種檢測方法,根據(jù)所給數(shù)據(jù),結(jié)果完全符合要求。
本研究是實(shí)現(xiàn)“地下水污染預(yù)警系統(tǒng)”之預(yù)測模塊,擬采用與整個(gè)系統(tǒng)其他開發(fā)人員分工合作,相互配合的軟件開發(fā)方式。以Visual C++ 6.0 Windows應(yīng)用程序開發(fā)工具作為開發(fā)平臺(tái),利用動(dòng)態(tài)鏈接庫技術(shù),實(shí)現(xiàn)GM(1,1)預(yù)測模型編程,在深入研究ArcView二次開發(fā)語言Avenue調(diào)用外部動(dòng)態(tài)鏈接庫的方法的基礎(chǔ)上,開發(fā)出能提供給系統(tǒng)方便調(diào)用接口的動(dòng)態(tài)鏈接庫。在Windows中,應(yīng)用程序通過一種稱為“動(dòng)態(tài)鏈接庫”(Dynamic-Link Library,簡稱DLL)的特殊函數(shù)集來實(shí)現(xiàn)代碼和資源的共享,以最大限度地節(jié)約空間。在Windows下使用動(dòng)態(tài)鏈接庫可以使多個(gè)應(yīng)用程序之間共享代碼和資源,從而提高運(yùn)行效率。
Avenue能夠直接地調(diào)用DLL中的函數(shù),并且可以相互的傳遞數(shù)據(jù)。在Avenue中的DLL和DLLProc類提供了支持DLL載入和調(diào)用的函數(shù)。
在調(diào)用DLL中的對象之前需要先創(chuàng)建一個(gè)DLL類的實(shí)例,當(dāng)你想調(diào)用時(shí)再為每個(gè)函數(shù)、進(jìn)程創(chuàng)建一個(gè)DLLProc 實(shí)例。當(dāng)一個(gè)DLL對象被創(chuàng)建,這個(gè)DLL就被載入內(nèi)存然后被使用。當(dāng)這個(gè)對象被撤銷時(shí),它將自動(dòng)地釋放內(nèi)存。
調(diào)用DLL中的函數(shù)可能需要傳遞一些參數(shù),可能還會(huì)返回值。輸入、輸出變量在你創(chuàng)建DLLProc實(shí)例時(shí)創(chuàng)建。ArcView支持多種類型的參數(shù),更多了解請閱讀DLLProc類的詳解。創(chuàng)建和執(zhí)行一個(gè)DLL函數(shù)需要4步:
1)首先必須有一個(gè)系統(tǒng)所需要的DLL;
2)裝載DLL并且構(gòu)造它;
3)用DLLProc 類分別為每一個(gè)函數(shù)在你向調(diào)用的DLL中,但是你必須要注意輸入輸出變量的類型;
4)用DLLProc 調(diào)用你需要的DLL函數(shù),傳入相關(guān)的參數(shù),是否任何函數(shù)返回的參數(shù)都能夠存儲(chǔ)在Avenue變量中。
整個(gè)模塊設(shè)計(jì)流程圖(見圖1):

圖1 程序設(shè)計(jì)流程圖
以焦作市地下水污染預(yù)警系統(tǒng)中的地下水質(zhì)的各方面預(yù)測例說明灰色系統(tǒng)的應(yīng)用。

從上表可以看出決定地下水水質(zhì)的因子很多,我們可以對每個(gè)因子分別進(jìn)行預(yù)測其未來變化情況;也可以綜合打分之后,直接對整體水質(zhì)進(jìn)行預(yù)測,二者均可。
地下水水質(zhì)變化正好吻合GM(1,1)模型,符合地下水系統(tǒng)的灰色特征,模型適用性好,預(yù)測結(jié)果與環(huán)境狀況吻合。

圖2 預(yù)測模型在ArcView下的應(yīng)用實(shí)現(xiàn)
在詳細(xì)地知道了地下水的水質(zhì)變化規(guī)律和GM(1,1)的預(yù)測機(jī)理,并對焦作市地下水污染預(yù)警系統(tǒng)采用本系統(tǒng)對地下水水質(zhì)進(jìn)行預(yù)測,符合地下水系統(tǒng)的灰色特征,模型適用性好,預(yù)測結(jié)果與環(huán)境狀況吻合。

圖3 對金箭公司井中PH值的預(yù)測結(jié)果
[1]楊位欽,顧嵐.時(shí)間序列分析與動(dòng)態(tài)數(shù)據(jù)建模[M].北京:北京理工大學(xué)出版社,1988.
[2]朱東海,任愛珠,江見鯨.ArcView應(yīng)用開發(fā)中動(dòng)態(tài)鏈接庫方法研究[J].計(jì)算機(jī)工程,2000,26(9).
[3]張興和,等.灰色系統(tǒng)理論在地下水水質(zhì)預(yù)報(bào)中的應(yīng)用[J].長春地質(zhì)學(xué)院學(xué)報(bào),1988(2).