[程式目的] 本程式欲處理一些水文資料的統計特性、迴歸期等參數,可供在設計、計算上參 考,後又引入波浪資料來做統計分析,並且加入貝式統計來推估參數,以符合我們需 求。 [程式發展說明] 本程式使用Quick Basic 4.5 英文版發展, 由於程式發展後程式碼過大, 將原本 SMIHydr.bas 拆成兩部分SMIHydr.bas & SMIHydr.ovl 後又由於程式發展趨進於飽和 , 故又按功能再將程式分離出Graphic.inc, MenuTool.inc, FileMan.inc, DimTool.inc & Bayesian.inc五部分, 並且將SMIHydr.ovl 更名為SMIOVL1.inc & SMIOVL2.inc, 欲查看程式內容時, 請僅使用Quick Basic 4.5 英文版,QB 會先讀入 SMIHydr.mak再載入以上八個原始程式碼, 所有相關的程式碼及資料檔均使用ASC II 碼寫成, 故以任何文書處理器均能觀看或修改程式碼, 但不保證能執行程式; 由於時 間上的限制, 本程式尚有許多部分有缺陷或未完成, 尚有許多理想未著手設計, 若有 時間希望能繼續進行。 P.S.1.由於程式原始程式碼過大, 將會造成程式無法編譯, 故須拆成多個檔案方能進 行編譯並連結﹝編譯得到之機械語言碼副檔名為OBJ 者,檔案大小不可超過 128K﹞ 2.除使用Quick Basic 4.5 英文版外,另外可使用Mircosift Basic Compiler 7.1 PDS (Program Develop System)的QBX.EXE ,用法同QB.EXE,但PDS 可以 編譯出更有效率、程式碼更小的程式,PDS 提供了更多的函式庫在硬體存取、 數學計算等函式庫;在未使用混合語言上,QBX.EXE 百分之百完全相容於 QB.EXE。 [發展環境] CPU Type : Intel 80486 DX-33 CPU Clock : 39.9970 MHz FPU Type : Built-In Video : Super VGA (S3805) Language : Basic (QuickBasic 4.5) [使用載入及參數使用說明] C:\TLCHENG\HYPROB>smihydr /? Statistical Methods in Hydrology 0.52 SMIHydr [filename.ext[ /A[UTO]]] [/H[ELP]|/?] filename.ext It is name of data file. /H[elp], /? Help you to know how using this program. /A[uto] Auto executing to compute the data. 呼叫本程式的參數使用說明及範例 執行本程式 C:\TLCHENG\HYPROB>smihydr 執行本程式並載入510p042.raf資料檔 C:\TLCHENG\HYPROB>smihydr 510p042.raf 執行本程式、載入510p042.raf資料檔並自動進行計算分析 C:\TLCHENG\HYPROB>smihydr 510p042.raf /A [檔案說明] Directory of C:\TLCHENG\HYPROB SMIHYDR BAS 54,502 09-02-94 12:17p 程式主檔 TABLE2_2 CLS 183 11-23-93 3:59p 組資料檔 (流量資料) SMIHYDR EXE 277,964 09-02-94 11:54a 程式執行檔 GRAPHIC INC 17,318 08-26-94 3:32p 程式繪圖功能檔 BAYESIAN INC 6,072 08-30-94 10:56a 貝氏統計功能檔 SMIHOVL1 INC 64,258 08-29-94 11:29a 程式第一副檔 SMIHOVL2 INC 50,803 09-02-94 12:42p 程式第二副檔 MENUTOOL INC 17,805 09-02-94 11:47a 程式選單功能檔 DIMTOOL INC 1,871 08-23-94 12:13p 陣列工具檔 FILEMAN INC 2,257 08-29-94 2:17a 檔案目錄功能檔 SMIHYDR INI 5,638 09-01-94 11:32a 程式初值設定檔 (組態檔) SMIHYDR MAK 108 09-02-94 12:17p 程式記錄檔 510P047 RAF 944 01-05-94 3:24p 連續雨資料樣本檔 510P042 RAF 1,126 12-01-93 2:41a 連續雨資料樣本檔 370P002 RAF 2,278 12-26-93 3:00p 連續雨資料樣本檔 510P048 RAF 1,274 01-05-94 3:24p 連續雨資料樣本檔 README SAM 30,160 09-03-94 10:06a 本說明檔 Ver.0.52 README TXT 6,305 05-23-94 1:32p 原說明檔(ASC II) Ver.0.48 [資料檔簡介] [組態檔] SMIHydr.ini [Menu] [選單] MainItemName=^File MainItemName= 代表主選項名 SubItemName=^Open.. SubItemName= 代表次選項名 SubItemName=^Shell to Dos ^L 表緊隨^ 後的字母為熱鍵,可省略 SubItemName=E^xit . . . . . . . . . [Color] [顏色] Menu=&HB4 Menu=&HB4 B 為前景色, 4 為背景色 HotKey=14 HotKey= 熱鍵顏色 UnSelect=7 UnSelect= 不可選項的顏色 Graphic=ABCDE5129F9 Graphic= 設定11種Graph 項的顏色 [Options] [資訊] Printer=None Printer= 暫時無作用,預定做為輸出指向 Error=1.E-5 Error= 疊代條件誤差需小於此收斂值 [Chi-Square] [奇--方] 查表值 Freedom=2,4 Freedom=2,4 自由度, 2 表起始格 Structure=6,13,15,22,24,31,33,40,42,49,51,58 4 表終止格 Structure= 查表值, 同自由度, 若有需要, 可按格式另行添加 v .995 .99 .975 .95 .90 .75 1 7.8800 6.6300 5.0200 3.8400 2.7100 1.3200 2 10.6000 9.2100 7.3800 5.9900 4.6100 2.7700 3 12.8000 11.3000 9.3500 7.8100 6.2500 4.1100 4 14.9000 13.3000 11.1000 9.4900 7.7800 5.3900 5 16.7000 15.1000 12.8000 11.1000 9.2400 6.6300 6 18.5000 16.8000 14.4000 12.6000 10.6000 7.8400 7 20.3000 18.5000 16.0000 14.1000 12.0000 9.0400 8 22.0000 20.1000 17.5000 15.5000 13.4000 10.2000 9 23.6000 21.7000 19.0000 16.9000 14.7000 11.4000 . . . . . . . . . . . . . . . . . . . . . 100 140.2000 135.8000 129.6000 124.3000 118.5000 109.1000 [組資料檔] Table2_2.cls [Config] [設定] DataConfig=Class DataConfig= 資料型態為組 DataNumber=10 DataNumber= 資料總數 [Data] [資料] 25000 2 35000 3 30000-40000 間有 3筆資料 45000 10 . . . . . . 115000 3 [連續雨資料樣本檔] 510p042.raf 510p047.raf 510p048.raf (年最大雨量) [Config] [設定] 同上 DataConfig=Sample DataConfig= 另有Population 型態 DataNumber=70 DataNumber= 需計算資料總數 DataStructure=8,13 DataStructure= 需計算資料每行起始格至終止格 [Data] [資料] 5 2445.8 年份 年最大降雨 6 2392.5 7 2062.8 8 2586.2 9 4429.3 . . . . . . 75 1906.0 [連續雨資料樣本檔] 370p002.raf 370 表流域編號, p002表站號 [Config] [設定] 同上 DataConfig=Sample DataNumber=35 DataStructure=7,12 [Data] 42 379.4 7/ 3 544.4 7/ 3 563.6 7/ 3 4832.1 43 125.0 4/17 177.6 8/24 213.0 8/23 2934.8 44 275.8 8/31 427.5 8/28 524.1 8/29 3903.6 45 572.5 9/16 748.5 9/16 781.5 9/15 3843.5 . . . . . . . . . . . . . . . . . . . . . . . . 76 273.0 7/27 487.0 7/26 553.5 7/26 3110.2 [資料] 年份 5分暴雨 月/日 10分暴雨 月/日 15分暴雨 月/日 年最大降雨 [注意事項] 1.本程式使用了Dos 插斷21第47號服務取得現行使用目錄名,並且使用插斷21第19號 服務取得現行使用磁碟機代號,但由於程式碼過大並且重新定義節區位置,在使用 記憶體上QB的Shell 會與程式內容略有節區重覆使用的情形,此種情形會造成程式 執行完畢後不能正常返回QB,或返回QB後記憶體中之程式碼遭到覆寫不能再次啟動 執行,又或QB記憶體中本身之程式碼遭到覆寫,若使用QB的Shell 上任一功能表內 之功能時,會有機器無回應的情況﹝當機﹞,請在編譯時期才將主程式中相關的三 行敘述前註解符號去除並進行編譯。 2.Graph 僅寫了支援VGA 部分, 且並未撰寫自動測定硬體部分, 請先確定顯示卡支援 VGA 模式。 3.若資料檔中未定義DataConfig= 則自動會將其內定為Sample的格式,若資料檔中未 定義DataStructure=則程式將以資料檔中自[Data]以下,DataNumber個資料取來計 算,不論是否有分行,只要能識別出是不同的資料,例如以空白或逗號分開,即可 識別。有助於對現有的日資料、時資料加上檔頭即可立時進入分析。在0.52版以前 的版本﹝含本版﹞尚未加入自動分析資料檔內容的程式碼,因此,檔頭中[Config] 、DataNumber=xxx及[Data]目前一定必須保留不可省略。另外本程式在發展之初, 是以修改現有之資料檔檔頭即可進行統計分析為考慮範圍,因此,程式本身並未撰 寫建立或修改資料檔及檔頭部分之相關程式碼,請使用任一文書編輯器輸入或修改 資料,並儲存成標準ASC II碼,則本程式即可讀出資料。若將來加入文書編輯器進 入程式選項中,考慮可能採取覆疊或外部程式呼叫,以避免使用過多的基本記憶體 使得程式執行受限或資料載入受限,亦將同時改變程式結構,將特定功能或相關功 能一併獨立出來成為覆疊或外部程式呼叫的型式。 [流程說明] [貝氏定理推估參數分佈流程說明] [程式操作說明] [選單鍵盤定義說明] Esc=跳脫 Enter=選擇反白選項 Alt+HotKey=選擇HotKey代表之選項 Right=反白移至右邊選單 Left=反白移至左邊選單 Up=反白移至上一選項 Down=反白移至下一選項 [選單及選項操作及鍵盤定義說明] [File] [Open ...] 本選項決定了其它眾選項是否可選,由於並沒有另外撰寫小型文書編輯器 的程式碼,所以在等待輸入時,小時鐘會先被中斷,直到控制權被交還給本程 式時鐘方能繼續運作。不論是否第一次開檔,大部分的選項會變更為不可選, 但可選者會以使用者自定熱鍵顏色、前景色及背景色顯現,不可選者會以使用 者自定不可選顏色及背景色顯現。開檔部分若輸入錯誤檔名則會要求重新輸入 ,若輸入空檔名時,視為取消並跳脫本選項。 [Shell to Dos] 若有須要,可暫時先返回至DOS 模式下執行DOS 指令,或資料檔儲存於不 同的目錄下,可使用DOS 指令來改變目錄區再返回程式,因此,採用DOS 所提 供的插斷21第47號服務及插斷21第19號服務,來聯合取得SMIHydr.ini 之完整 路徑,以便程式在不同的目錄下亦可順利的找到SMIHydr.ini 正確執行程式。 在DOS 模式下輸入Exit可返回程式,輸入 cd 可改變目錄區。 [Exit] 使用本選項可按標準程序來結束程式,在結束之前,會要求使用者再做一 次確認的工作,定義有意義的鍵盤操作如下: Esc=跳脫 Enter=選擇反白選項 Tab=反白移到下一選項 Alt+HotKey=選擇HotKey代表之選項 Right=反白移至右邊或上一選項 Left=反白移至左邊或下一選項 [Bayesian] [Parameter] 使用本選項目的為計算各分佈的參數可靠性及參數分佈情形,按資料分組 的情形計算資料在函數Likellhood各點之值;第一次執行時,假定在前分佈為 散佈,利用現存記憶體中的資料計算在函數Likellhood各點之值的引數,求得 在後分佈,再詢問是否要更新記憶體中參數之值。第二次及其之後執行時,以 上一次在後分佈取代本次在前分佈,並開啟載入新的資料檔中的資料計算在函 數Likellhood各點之值的引數,求得在後分佈,再詢問是否要更新記憶體中參 數之值。本選項需在某些條件下方能完全執行無誤,建議使用第七選單第一選 項或第四選單第一選項及第三選項執行完畢後,再執行本選項。另新定義有意 義的鍵盤操作如下: anykey=繼續,只在要求輸入任意鍵繼續執行程式時有效 [General] 本選項目的為計算概似函數﹝Likellhood﹞時,先將資料的分佈參數以統 計分析的方法計算出其值,再根據利用概似法可推出其參數的原理,將參數反 代入概似函數,再求得在後分佈;本選項目前僅完成常態分佈,除此之外,完 成度百分之九十。 [Estimator] 本選項目的是要計算經由貝氏定理推估期望值其值的機率及變化,完成度 百分之十。 [Statistics] [Analysis] 本選項可計算出樣本及群體的基本統計特性,如平均、變異數、標準差、 偏態、偏態係數、峰態及峰態係數,可供我們查對參考。本選項經計算完畢以 後,會多提供第三選單第二選項可供選擇,亦即是下一選項。 [Range] 本選項可為樣本及群體的資料進行分組或已分組的資料重新根據組數進行 分組,再根據組資料進行計算組資料的基本統計特性,如平均、變異數、標準 差、偏態、偏態係數、峰態及峰態係數,可供我們查對參考。本選項經計算完 畢以後,會多提供第四選單所有選項可供選擇,若為更改分組數時,則選單 [Bayesian]、[Test]、[Graph] 及選單[Optimization]的選項[Distribution] 皆會暫時變為不可選擇。另本選項的分組組數被引用到第二選單的每一選項。 [Probability] 本選項預定以定機率方式分組,但若以固定間距型式分組,每一分佈均會 有不同區間產生,雖然對奇方檢定有較佳的檢定值,但對於程式執行及記憶體 配置均有撰寫上的麻煩,在還未找到理想方法處理之前,本選項暫不開放。 [Distribution] [Normal] 本選項可計算出每一區間Normal的累積機率值,並計算該區間的上限值之 機率、及周文德公式中的K值。 [Log-Normal] 本選項可計算出每一區間Log-Normal的累積機率值,並計算該區間的上限 值之機率、及周文德公式中的K值。 [Extreme Value I] 本選項可計算出每一區間Extreme Value I 的累積機率值,並計算該區間 的上限值之機率、及周文德公式中的K值。另根據 亦計算出 及 之值。 [Pearson Type 3] 本選項可計算出每一區間Pearson Type 3的累積機率值,並計算該區間的 上限值之機率、及周文德公式中的K值。另亦計算出 、 及 之值。 [Log-Pearson 3] 本選項可計算出每一區間Log-Pearson 3 的累積機率值,並計算該區間的 上限值之機率、及周文德公式中的K值。另亦計算出 、 及 之值。 [Weibull] 本選項預定計算出每一區間Weibull 的累積機率值,並計算該區間的上限 值之機率、及周文德公式中的K值。另根據 亦計算出 及 之值。 [Test] [Chi-Square] 本選項會根據分組數及期望個數作奇方檢定,檢定所需的查表值已應大部 分需求輸入成檔,放置在檔案SMIHydr.INI 中,可按表格格式添加或修改,表 格格式的決定是按Structure=後的數字決定,第一個數字表第一個資料開始的 位置﹝或格數﹞,第二個數字表第一個資料結束的位置;餘此類推,奇數個數 字表資料開始的位置,偶數個數字表資料結束的位置,需增加或修改查表值時 亦需檢查Structure=是否需跟著變動。內定信賴度為百分之九十,可藉由修改 信賴度機率時修改,程式會自動計算並更新至其它選項中,若修改之信賴度大 於所提供之上限值,則自動以上限值替代;若修改之信賴度小於所提供之下限 值,則自動以下限值替代。另外,若不需全部分佈計算或因計算結果太多頁, 可以空白鍵及上下鍵來取消/設定,在第四選單中未選擇的分佈會以不可選擇 的顏色表示並不可取消/設定。 [K-S] 本選項會根據資料及期望資料作KS檢定,檢定所需的查表值已應大部分 需求內建於程式中。內定信賴度為百分之九十,可藉由修改信賴度機率時修改 ,程式會自動計算並更新至其它選項中,若修改之信賴度大於所提供之上限值 ,則自動以上限值替代;若修改之信賴度小於所提供之下限值,則自動以下限 值替代。另外,若不需全部分佈計算或因計算結果太多頁,可以空白鍵及上下 鍵來取消/設定,在第四選單中未選擇的分佈會以不可選擇的顏色表示並不可 取消/設定。 [Graph] [P.D.F.] 本選項可繪圖顯示資料的機率及各分佈機率曲線代入計算得到的參數,可 得到較具體的觀念,另外,若不需全部分佈顯示,可以空白鍵及上下鍵來取消 /設定,在第四選單中未選擇的分佈會以不可選擇的顏色表示並不可取消/設 定,顏色可在顏色欄內以上下鍵依序更改,線形亦同,線形另提供Page Up 及 Page Down 一鍵表增減&H100 之值,Axis選項的Type表0,1,2 三種網格型式; 顏色內定值在SMIHydr.INI 檔中[Color] 的Graphic=項,採十六進位碼依序設 定之。 [C.D.F.] 本選項可繪圖顯示資料的累積機率及各分佈累積機率曲線代入計算得到的 參數,可得到較具體的觀念,另外,若不需全部分佈顯示,可以空白鍵及上下 鍵來取消/設定,在第四選單中未選擇的分佈會以不可選擇的顏色表示並不可 取消/設定,顏色可在顏色欄內以上下鍵依序更改,線形亦同,線形另提供 Page Up 及Page Down 一鍵表增減&H100 之值,Axis選項的Type表0,1,2 三種 網格型式;顏色內定值在SMIHydr.INI 檔中[Color] 的Graphic=項,採十六進 位碼依序設定之。 [Optimization] [Auto] 本選項在開啟檔案後,任何時刻均可選擇使用,本選項內定自動計算選單 三、選單四、選單五及選單七除本選項外所有選項,組距檔會自動去除不能執 行之選項,亦可按需求取消/設定部份選項,以達到縮短執行時距;目前輸出 轉向或複製整體環境規劃不能決定,因此並未撰寫程式碼或已有程式碼部份尚 未開放給程式使用,所以僅顯示於螢幕之上。 [Analysis] 本選項目的在計算迴歸值﹝復現值﹞,未執行的分佈會以不可選項之顏色 表達可能不夠精確之意,未執行的檢定會以橫線表達可信度有疑問之意。另外 可輸入特殊之迴歸年﹝復現期距﹞,可按輸入年求得迴歸值。程式本身有提供 由迴歸值反推迴歸年之函式,但由於畫面已滿,不能決定如何提供本函式給使 用者使用。 [Distribution] 本選項目的在分析最適合描述本資料的分佈,內定以五個分佈去比較,亦 可按需求取消/設定部份分佈使其結果落在被設定的分佈之中,若有經檢定分 析處理,則最佳分佈受檢定是否通過,S.S.E.最小決定之,未執行的分佈會以 不可選項之顏色表達可能不夠精確之意,未執行的檢定會以橫線表達可信度有 疑問之意。 [作者簡介] 指導教授:游保杉、簡仲和 作 者:鄭子璉 學 歷:國立成功大學水利及海洋工程學系畢業﹝83年﹞ 發展經過:水文統計作業(82.09~83.01) 彌陀暴潮特性研究﹝二﹞(83.07~83.09) 永久地址:臺北市大安區和平東路二段十六號九樓之一 (02)3627971 [Ver. 0.53] 修正當資料中有 0時,無法進行 Log(0) 分析,因此當資料有 0時 [Log-Normal] 及 [Log-Pearson 3]將不作用。