鄭海燕 ,肖 羽 ,曾德熹
1.長江水利委員會水文局上游局,四川宜賓 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)模型是常用的一種灰色模型,用于單個時間序列的動態(tài)預(yù)測。就是對某一指標(biāo)的發(fā)展變化情況所作的預(yù)測,其預(yù)測的結(jié)果是該指標(biāo)在未來各個時刻的具體數(shù)值。
灰色模型以微分方程為描述形式,它所揭示的是事物發(fā)展的連續(xù)過程,它符合地下水質(zhì)量的漸變規(guī)律。模型的建立過程即是對地下水系統(tǒng)的辨識過程,運用確知的水質(zhì)數(shù)據(jù)去揭示系統(tǒng)的動態(tài)特征,但由于其它信息的不明確,因而這個過程是灰色的逆運算過程。地下水水質(zhì)預(yù)測模型就是基于最基本的灰色GM(n,h)模型[3]建立起來的。其中h表示變量的個數(shù),n表示微分方程的階次,n越大則模型所描述的內(nèi)涵可能越豐富,但階次過高的系統(tǒng)其特征方程的求解困難,而且精度不一定高,其結(jié)果也不是解析的,所以我們通常建立n=1的GM模型。
由于地下水系統(tǒng)的結(jié)構(gòu)信息和關(guān)系信息不明確,因此建模時只需要考證水質(zhì)特征值的動態(tài)變化規(guī)律,即變量唯一,h=1,那么所需建立的模型就是GM(1,1)模型,其一般表示形式如下所示:
式中:a為模型系數(shù);u為待辨識參數(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ù)個數(shù)。
3)計算模型系數(shù)a和待辨識參數(shù)u,
[a,u]T=(BTB)-1BTYn
4)建立時間響應(yīng)模型:
5)將時間響應(yīng)離散化:
6)將K值代入離散化模型公式,計算出X(1)(k)
7)將預(yù)測累加值 X(1)(k) k∈{n+1,n+2,…}還原為預(yù)測值X(0)(k) k∈{n+1,n+2,…}。
1)平均精度檢驗
將計算出的與實測值X(0)(k)對照,算出逐對殘差:
然后計算出平均相對誤差如果平均精度符合實際要求,即可進(jìn)行預(yù)測。2)后驗差檢驗
為了判斷預(yù)測值的可靠性,采用后驗差進(jìn)行檢驗,計算出實測標(biāo)準(zhǔn)差(S1)和殘參標(biāo)準(zhǔn)差(S2)。
計算后驗差比值C,及小誤差概率P。
然后就可以根據(jù)數(shù)據(jù)表進(jìn)行預(yù)測精度檢驗了,本系統(tǒng)因為運用于實際,
所以就只用了前一種檢測方法,根據(jù)所給數(shù)據(jù),結(jié)果完全符合要求。
本研究是實現(xiàn)“地下水污染預(yù)警系統(tǒng)”之預(yù)測模塊,擬采用與整個系統(tǒng)其他開發(fā)人員分工合作,相互配合的軟件開發(fā)方式。以Visual C++ 6.0 Windows應(yīng)用程序開發(fā)工具作為開發(fā)平臺,利用動態(tài)鏈接庫技術(shù),實現(xiàn)GM(1,1)預(yù)測模型編程,在深入研究ArcView二次開發(fā)語言Avenue調(diào)用外部動態(tài)鏈接庫的方法的基礎(chǔ)上,開發(fā)出能提供給系統(tǒng)方便調(diào)用接口的動態(tài)鏈接庫。在Windows中,應(yīng)用程序通過一種稱為“動態(tài)鏈接庫”(Dynamic-Link Library,簡稱DLL)的特殊函數(shù)集來實現(xiàn)代碼和資源的共享,以最大限度地節(jié)約空間。在Windows下使用動態(tài)鏈接庫可以使多個應(yīng)用程序之間共享代碼和資源,從而提高運行效率。
Avenue能夠直接地調(diào)用DLL中的函數(shù),并且可以相互的傳遞數(shù)據(jù)。在Avenue中的DLL和DLLProc類提供了支持DLL載入和調(diào)用的函數(shù)。
在調(diào)用DLL中的對象之前需要先創(chuàng)建一個DLL類的實例,當(dāng)你想調(diào)用時再為每個函數(shù)、進(jìn)程創(chuàng)建一個DLLProc 實例。當(dāng)一個DLL對象被創(chuàng)建,這個DLL就被載入內(nèi)存然后被使用。當(dāng)這個對象被撤銷時,它將自動地釋放內(nèi)存。
調(diào)用DLL中的函數(shù)可能需要傳遞一些參數(shù),可能還會返回值。輸入、輸出變量在你創(chuàng)建DLLProc實例時創(chuàng)建。ArcView支持多種類型的參數(shù),更多了解請閱讀DLLProc類的詳解。創(chuàng)建和執(zhí)行一個DLL函數(shù)需要4步:
1)首先必須有一個系統(tǒng)所需要的DLL;
2)裝載DLL并且構(gòu)造它;
3)用DLLProc 類分別為每一個函數(shù)在你向調(diào)用的DLL中,但是你必須要注意輸入輸出變量的類型;
4)用DLLProc 調(diào)用你需要的DLL函數(shù),傳入相關(guān)的參數(shù),是否任何函數(shù)返回的參數(shù)都能夠存儲在Avenue變量中。
整個模塊設(shè)計流程圖(見圖1):
圖1 程序設(shè)計流程圖
以焦作市地下水污染預(yù)警系統(tǒng)中的地下水質(zhì)的各方面預(yù)測例說明灰色系統(tǒng)的應(yīng)用。
從上表可以看出決定地下水水質(zhì)的因子很多,我們可以對每個因子分別進(jìn)行預(yù)測其未來變化情況;也可以綜合打分之后,直接對整體水質(zhì)進(jìn)行預(yù)測,二者均可。
地下水水質(zhì)變化正好吻合GM(1,1)模型,符合地下水系統(tǒng)的灰色特征,模型適用性好,預(yù)測結(jié)果與環(huán)境狀況吻合。
圖2 預(yù)測模型在ArcView下的應(yīng)用實現(xiàn)
在詳細(xì)地知道了地下水的水質(zhì)變化規(guī)律和GM(1,1)的預(yù)測機理,并對焦作市地下水污染預(yù)警系統(tǒng)采用本系統(tǒng)對地下水水質(zhì)進(jìn)行預(yù)測,符合地下水系統(tǒng)的灰色特征,模型適用性好,預(yù)測結(jié)果與環(huán)境狀況吻合。
圖3 對金箭公司井中PH值的預(yù)測結(jié)果
[1]楊位欽,顧嵐.時間序列分析與動態(tài)數(shù)據(jù)建模[M].北京:北京理工大學(xué)出版社,1988.
[2]朱東海,任愛珠,江見鯨.ArcView應(yīng)用開發(fā)中動態(tài)鏈接庫方法研究[J].計算機工程,2000,26(9).
[3]張興和,等.灰色系統(tǒng)理論在地下水水質(zhì)預(yù)報中的應(yīng)用[J].長春地質(zhì)學(xué)院學(xué)報,1988(2).