2025年11月16日 星期日

FORTH 系統的今昔

FORTH 系統的今昔


曾慶潭 Ching-Tang Tseng
ilikeforth@gmail.com
Hamilton, New Zealand
16 November 2025


從 1960 年開始,我已經接觸電腦相關技術 60 年以上。
從 1980 年接觸單板電腦 AIM-65 ,開始正式進入 Forth 的領域,已經 45 年了。從那時起,我只專心於使用 Forth,不再分心搞其他東西。

一直到 32 位元的 Win32Forth 系統被廣泛使用後,我才再把注意力集中於發展出完整的 ABCForth 數學計算系統上。此前,在 16 位元的時代,我所設計的 ABCForth 系統因缺乏好用的浮點算術功能,有效位數不足,不適合用來執行數學計算程式。出現適合使用的浮點運算,已是 2000 年以後的事情。我在使用十幾年 Win32Forth 系統後,在 2010 年的筆記本上記錄過一個 Forth 系統中現行功能的分類,如下列所示:

1. 核心基本程式(kernel)
2. 組合語言程式(Assembler)
3. 蛻變編譯程式(Meta compiler)
4. 編輯程式(Editor)
5. 除錯程式(Debugger)
6. 多工程式(Multitasker)
7. 檔案操作程式(File operation)
8. 浮點運算程式(Floating point operation)
9. 繪圖程式(Graphic display tools)
10. 語音輸出程式(Sound output tools)
11. 音樂輸出程式(Music output tools)
12. 物件導向驅動程式(Object oriented driver)
13. 動態連結界面程式(Dynamic linker library tools)
14. 作業系統界面程式(Operating system calling)
15. 系統內多人共用程式(Multi-user program)
16. 標的系統產製程式(Target generator)
17. 資料處理程式(Data base program)
18. 平行處理程式(Parallel processor)
19. 網路自動傳輸程式(Internet Autotransfer)
20. 科學程式庫界面程式(Scintific library interface tools)
21. 外殼語言控制程式(Shell language controller)

其他出現過的零碎功能程式則不在此列。這樣的表列不同於標準指令的分類,上述各類程式也全是網上古聖先賢捐獻出來過的開放式公益程式,我都享受過、使用過、從中體會過它們的用途與性能。很多程式都不僅是只有一套,可能有很多套,全都來自名家的設計,使用者只能感謝他們的貢獻。

大約是十五年前,我開始改用 Linux 作業系統,主用之 Forth 系統從 Win32Forth 系統換成了 ciForth 系統。發展軟體技術更換跑道是一件痛苦的事情,但是隨著時代的演變,這卻是不得不為之的工作。這十多年來,我繼續開發我有興趣的 ABC Forth 數學計算系統,許多成果已經發佈在這個個人網頁上。

長期的發展經驗告訴我,上述曾經有過的這許多功能程式,有些必須更迭了,有些則是不太需要發展,而是必須設法去適應新環境的新用法。我們就按照編號秩序逐個檢討,沒變化的序號就略過不談。

1.從略。

2.組合語言程式,在我使用 ciForth 後,不再在書寫 Forth 程式時需要使用。由於 ciForth 系統本身的組合語言源程式完全公開,需要動用到組合語言功能時,可以在長成系統前,直接使用組合語言自己設計,這樣的用法與習慣與過去不同。系統的作者曾經打算提供在 Forth 系統內的組合語言功能,後來放棄了。

3.蛻變編譯程式,在 ciForth 系統中已不需要,新採用的方法則是單憑一個 save-system 指令完成將發展成果固定下來的操作。這樣的理念非常好,只可惜作者的努力畢竟還是有限的,某些作業系統下的 ciForth 不能完成 save-system 的工作。在我使用之 Ubuntu Linux式作業系統中均無問題。

4.編輯程式在 64 位元的環境中已經不再設計,所有的編輯工作都配合作業系統提供的純文字編輯器(text editor)來寫出檔案程式,然後交給 Forth 系統編譯後執行出結果,這已是流行用法,至於編寫出來的檔案可能在經由網路遙控操作時無法工作之問題,不在 Forth 系統需求討論之列,此處不討論。 ciForth 系統另有個特色,作者將一些可以選擇性載入的功能程式放在一個叫作 forth.lab 的檔案內,使用者有需要時可以自行使用一個名為 wanted 的指令取得功能程式。 forth.lab 程式的內容是採用傳統之幕區塊(Block)方式設計出來的配屬資源,增改其內容必須使用傳統的幕式編輯器(Block screen editor)才能操作,系統不提供,使用者只能操作幕式顯示指令(n list)來看內容。

5.不討論,因為 Forth 本身就具有多種天生的除錯工具。

6.多工問題已不再在 Forth 系統中被重視,因為作業統大部份都已具備先佔式(Temptative)多工的性能。若 Forth 系統還要設計傳統上的知更鳥式輪唱型多工(Round robin multitask)實無必要。我在使用 ciForth 需要多工時,就透過 ciForth 能操控作業系統的功能直接完成,本網頁貼出過這樣應用的展示範例。

7.從略。

8.本該從略,但因我在使用 ciForth 系統時碰到困難,原始系統沒有提供恰當全套的浮點算術功能,我又有個人需求,只好自己全用軟體設計,已經完成很久而且一直在用了。

9.繪圖程式一直都是所有 Forth 系統發展中的最大障礙,我有種感覺,Forth 系統一旦具有了完整的繪圖功能,系統的發展也就接近尾聲了。 ciForth 系統沒能提供,也許以後會有,但目前沒有。我的變通使用方法,仍然是透過系統具有第 21. 項能操控他種程式語言的方式達到目的。只要該種語言屬於像最流行的 Python 照本宣科式語言(Scripting language), ciForth 都很容易達到目的。

10.語音輸出程式。這方面的功能取決於作業系統可以自由下載的資源而定,套套不同,但也套套都很容易實現,討論從略。

11.音樂輸出程式。與10.的條件相同,討論從略。

12.物件導向驅動程式,這本在 Win32Forth 系統中非常強調的功能,已經被棄用, ciForth 系統中沒有,討論從略。

13.動態連結界面程式,實現它的方式,首先需要取得可動態連結由 C 式語言設計出來的程式。在 Forth 這邊則需要動用到能放置動態程式於記憶體的指令,然後根據動態程式中提供之可通用指令名稱在 Forth 系統中叫用。本網業已貼出過好幾個示範程式,請自行查找。

14.作業系統界面程式。這在 Linux 作業系統中具有完全公開可用的資源,使用時要傳遞幾個參數的叫用方式 ciForth 已設計得非常完善,資源參考資料只能自己在網上查找。

15.多人共用程式,這方面恆是商業販售的軟體,已不在開放式 Forth 系統中被公開討論。

16.標的系統產製程式,狀況與 15. 同,討論從略。

17.資料處理程式。這方面的應用,由於新型的照本宣科式程式語言已有一大堆,包括 Python 也具有這類資源, Forth 已不需要自己設計,運用第 21. 條的外殼語言控制程式就能辦到,討論從略。

18.平行處理程式。以前在 Win32Forth 系統上有過同時使用幾個 CPU 平行跑程式的範例程式。後來在 Linux 中沒有見過,但搞 AI 者常用 Cuda 跑平行處理問題了,它好像已不是 Forth 愛用者有興趣的主題,此處討論從略。

19.網路自動傳輸程式。我在 Win32Forth v.4.2.671版中用過,後來沒再使用,但網上見過許多範例,有興趣者請自行查找。

20.科學程式庫界面程式。這項功能是固定的設計,該界面程式不能通過編譯的 Forth 系統,那就表示此系統的設計很有問題了。 Win32Forth 系統與 ciForth 系統都沒有問題。

21.請參考本網頁曾經刊出過的網文,學會設計方法來使用,它是 Forth 的吸功大法,像 BASH 程式語言一樣,專吸別人的長處來實現夢想,非學會不可。

所有軟體的性能,其實不只是只有這些,將來必定會有新的應用出現。Forth 程式語言功能的可延伸性,都能解決所有的問題。只是作者在下功夫設計出公認需求時,需要很先進、很深厚的軟體設計素養,我們在享受他們的貢獻時,勿忘感謝他們。


附貼兩張網上擷取之 round robin multitask 示意圖,與知更鳥的寫真照片。

2025年11月2日 星期日

­誤差函數的應用

­誤差函數的應用


曾慶潭 Ching-Tang Tseng
ilikeforth@gmail.com
Hamilton, New Zealand
2 November 2025


我們觀察實驗以求取數據,再將數據輸入電腦,以數值分析技術處理數據,整個過程中可能會出現多種誤差,實驗觀察時可能出現誤差,以電腦處理數據時也可能出現誤差。在深入討論誤差函數的應用前,先行對相關於誤差的術語,進行基本說明。

1 電腦處理數據時可能出現的誤差

數值分析技術以電腦來處理數據,在計算過程中,可能產生兩種誤差。

1.1 捨位誤差(Round-off error)

是由於受到電腦內部記憶體位元量的使用限制所產生的。一個包含小數位數的十進制數目,將其轉換成等效的二進制數目時,由於電腦內部可用位元數的限制,必然產生一種轉換誤差,尤其是沒有恰恰相等的二進制表示值時,更加顯著。如果執行計算時,所需的位數比電腦或編譯器能貢獻的位數為多時,亦有另一類捨位誤差產生。

1.2 截項誤差(Truncation error)

它是由於電腦只能處理有限項數學表示式的限制所產生的誤差。以數值分析法解數學問題時,若需將數學問題作一合乎工程要求的近似程序後,才能求得其解,所得的結果,並非絕對性的純數學解,近似式的誤差項,電腦程式主動捨去,因此,應用電腦來解數學問題時,常有截項的要求,也因此產生了誤差。另外,在電腦上以數值分析方法算出超越函數的函數值時,因為電腦不能處理超越函數所展開的無窮多個項式,而僅能處理帶有加、減、乘、除有限項組成的近似於超越函數的式子,截項誤差因而產生。

本文不對上述兩種誤差進行更深入的討論。

2 實驗觀察數據可能出現的誤差

這一部份的敘述內容,摘要自中國科學出版社出版的『誤差理論與實驗數據處理』一書,作者為馮師顏先生,取其說明詳盡、恰當而刻意採用,且因一般讀者難於自行查找此書,故不惜篇幅轉錄於此。本章程式中使用的數據,亦源自該書,特此聲明。
誤差是指觀測值與真值之差,偏差則指觀測值與平均值之差。根據誤差的性質及其產生的原因,可將實驗觀測數據時,可能出現的誤差分為四類:

2.1 系統誤差

是指因為
(1)儀器不良:如刻度不準,砝碼未校正。
(2)周圍環境的改變:如外界溫度、壓力、濕度的變化。
(3)個人的習慣與偏向:如讀數常偏高或偏低…等,所引起的誤差。。
此種誤差在同一物理量的測量中為一定,根據儀器的缺點、外界環境條件變化影響的大小、個人的偏向,分別加以校正後,可以去除得掉。

2.2 恆定誤差

是指在測量中未發覺或未確認的因子所引起的誤差,這些因子影響結果,永遠朝向一個方向偏差,其大小及符號在同一實驗中完全相同,檢查或改正的方法是擴大實驗範圍,如採取不同方法選取樣品,使用不同方法提存分離樣品…等。

2.3 偶然誤差

在測量中,如果已經消除引起系統誤差的一切因素,而所測量的數字,仍在末一位或末二位數字上有所差別時,我們就稱這種誤差為偶然誤差。偶然誤差有時大、有時小、有時正、有時負,方向不一定。偶然誤差產生的原因,屬於大自然的統計現象,因而也就無法控制,但用同一精密儀器,在同樣條件下,對同一物理量作多次測量,若測量次數足夠多,則可發現偶然誤差完全服從統計上的定律,誤差的大小、以及正負誤差的出現,完全由機率決定,我們沒有理由認為誤差偏向一方比偏向另一方更為可能。因此,誤差與測量的次數有關,隨著測量次數的增加,偶然誤差的算術平均值將更接近於真值。偶然誤差的發生,完全出於偶然,受或然率所支配,因此,偶然誤差可以用或然率理論來處理。

2.4 過失誤差

是一種顯然與事實不符的誤差,它主要是由於粗心大意、過度疲勞、或操作不正確所引起,例如:讀錯刻度值、反讀游標尺、記錄錯誤、計算錯誤…等,此類誤差無規則可循,只要多方警惕,細心操作,過失誤差就可避免。

本文內容針對最後兩項:偶然誤差與過失誤差進行討論,作為應用誤差函數來分析數據的實例,亦即利用統計學理論來分析數據,找出數據中的過失誤差值。而這樣的應用,卻是廣泛存在於工程、研究、實驗、生產…等方面,最為需要的基本分析技術。

範例程式可以直接、實際應用於各種場合,並突破傳統的分析方法,不靠查表,直接算出實際數據,獲得明確的數字解答。因此,可以不必採用傳統上模糊的敘述當作結論。傳統分析方法,通常都僅稱『遠大於或遠小於某值』來代表分析結果。

3 誤差分佈函數

高斯(Gauss)於 1795 年找出了誤差分佈函數,以其繪出的曲線稱為高斯正態誤差分佈曲線,並建立了所謂的高斯誤差定律,其特點如下:
(1) 小誤差比大誤差出現的機會多,故誤差的機率與誤差的大小有關。
(2) 大小相等,符號相反之正負誤差的數目近於相等,故機率曲線對稱於y軸。
(3) 極大的正誤差與負誤差出現的機率非常小,換句話說,就是大誤差一般不會出現。

函數圖形繪如 Fig. 1 所示:

高斯誤差函數表示如下:


(3.1)
Fig. 1 高斯正態誤差分佈函數曲線圖

圖中 y 方向的最高點與標準誤差 𝝈 成反比,標準誤差愈小時,曲線中部升得愈高,兩旁下降愈快,因此,標準誤差可以用來決定誤差分佈曲線幅度的大小。另外,標準誤差還能定出誤差分佈曲線的轉折點,上圖中,曲線中部曲率向下,曲線兩端曲率向上,因此,曲線上必有轉折點,根據微積分原理,在轉折點上曲線斜率的變率為 0 ,而曲線上的轉折點就在 x = ∓ 𝝈 處。
針對同一事件的測量,如果各組數據計算出來的標準誤差明顯不同時,那麼,誤差分佈曲線相互比較的結果,就會如 Fig. 2 所示:
Fig. 2 三種不同大小標準誤差的誤差分佈函數曲線關係

由 Fig. 2 圖中可以看出,一組測量數據的標準誤差愈小,表示這一組測量數據的品質愈好,因為數據都分佈在中央平均值附近。反之,如果一組測量數據的標準誤差愈大,表示這一組測量結果品質欠佳,因為有較多的數據,離中央均值較遠。

4 誤差函數(Error function)

誤差函數指的是在誤差分佈函數中,小於某一誤差值的或然率,通常以 erf(t) 表之,其中的 t 即該指定誤差值。因此,誤差函數必須由前一節所敘述的誤差分佈函數曲線下方的積分面積來獲得,不幸,這是一個無法經由手算獲得其值的積分式子,通常以下式表示(積分範圍從-t積分到+t):


(4.1)



但上式中的 t 值為直接計算出來的數值,若以 X 表測量值, AVG 表平均值,而標準誤差為 𝝈 時,這幾個數值間的關係式為:



(4.2)





我們可以從所有的測量數據 X 直接計算出平均值 AVG 及標準誤差 𝝈 ,然後根據 (4.2) 式算出 t 值。現在先行假設,我們能夠經由 (4.1) 式獲得 erf(t) 之值,然後探討此值代表的實際意義。
erf(t) 值代表一個或然率,它的意義是小於 t 值以下的或然率,若以 1 - erf(t) 表示,則代表 t 範圍以外的或然率,因此,前人就利用這樣的規則來重新表達測量數據之誤差,落於指定範圍以外的或然率為多少?
如果我們再以標準誤差為基準,說明某一測量值之誤差,相當於多少個標準誤差之值時,落於範圍以外的或然率為多少?可以讓觀念簡化。因此,產生了一些分析術語,而術語中所敘述的數字,全都是經由計算 1 - erf(t) 函數後所得的數值,我們先將與這些術語相關的數值列成下表。

表中第一行,表 K 個標準誤差量,而 K = | X - AVG | / 𝝈 。
表中第二行,表對應的或然率 P(K𝝈),其值由 1 - erf(t) 函數計算而得。

表1. K 個標準誤差及其或然率值


K𝝈		P(K𝝈)
0		1.0	
0.6745		0.5
1		0.3173	
1.6449		0.1000
1.9600		0.0500


誤差量為 0 個標準誤差時,落於此誤差量以外的或然率是 1.0 ,也就是 100%。
誤差量為 0.6745個 標準誤差時,落於此誤差量以外的或然率是 0.5 ,也就是 50% ,它有一個特別的名稱,叫作或然誤差(Propable error)。
誤差量為 1 個標準誤差時,落於標準誤差範圍以外的或然率是 0.3173,也就是 31.73%。
誤差量為 1.6449 個標準誤差時,落於此誤差量以外的或然率是 0.100 ,也就是 10% ,它也有一個特別的名稱,叫作 9/10 誤差(Nine-tenths error),有 1/10 在範圍外。
誤差量在 1.96 個標準誤差時,落於此誤差量以外的或然率是 0.0500 ,也就是只有 5% ,特別名稱則為 95% 誤差(Ninety-five-hundredths error),只有 5% 在範圍外。

這些術語在電腦應用不太發達的時代,可以強化觀念,以便認識數據的分析結論。今天,幾乎人人都可以非常方便的使用電腦了,我們能夠進一步直接計算出上述所有術語中使用的精確數字。敘述方式便可以更直接了當的改述如下:

每個測量數據都可以落於0個標準誤差範圍以外。
誤差落於或然誤差以外的可能性,兩次就可能出現一次,因為或然率為 50%,100/50=2。
誤差落於標準誤差以外的可能性,三次左右可能出現一次,因為或然率為 31.73%,100/31.73=3.1516。
誤差落於 9/10 誤差以外的可能性,十次才可能出現一次,因為或然率為 10%,100/10=10。
誤差落於 95% 誤差以外的可能行,二十次才有可能出現一次,因為或然率為 5 %,100/5=20。

如此的敘述,將被用來設計我們的數據分析程式,至於幾次才可能出現一次的觀念,則完全可以由電腦直接計算後,合理的印出於輸出報告中,程式就會顯得更為友善與清楚了。

5 erf(t) 函數近似計算程式

我於 2010 年,曾經參與 Fig 總會科學程式庫 #62 Error functions 公益程式公佈前的審核工作,因此收集過不少誤差函數的相關資料,也仔細執行過該程式,知道程式的性能,主要在強調計算所得具有小數點後面將近12位數以上的精確度,程式中也有一個只有大約四位數精確度的附帶程式,以便使用者可以快速取得誤差函數的約略值。
本章由作者自己設計的程式,放棄上述 #62 中的兩個程式,因為第一個太精確了卻計算冗長、程式量龐大,第二個又太精簡了,不如一般書籍中所建之誤差函數表。我在審核程式的過程中,必須花不少錢,才能獲得審核所需的原始論文,因此,耗費不少時間尋求不用花錢的可用資源,後來收集到一個能有 1.5E-5 精確度的有理近似式,現在就列示於此,然後使用於本文的範例程式中。
近似計算的數學式子如下:

其中 t = 1 / ( 1 + pz ) ,而 epsilon 表截項誤差量,所用到的係數如下:
資料出處,為 J. M. Smith 所著之 Scientific analysis on the pocket calculator, Chapter.4 。


 
erf(z) = 1 - [ t ( a1 + t ( a2 + t ( a3 + t ( a4 + a5 t ) ) ) ) exp ( -x ^ 2 ) ] + epsilon(z)

p   =   0.3275911
a1  =   0.254829592
a2  =  -0.284496736
a3  =   1.421413741
a4  =  -1.453152027
a5  =   1.061405429


6 數據分析程式

\ 數據分析程式 \ 分光儀測量鋁錠中鐵含量(%)十次,分析這十個測試數據是否合理的程式。 \ 作者:曾慶潭 2011/4/21 保有一切版權,知會作者,附加本宣告則允許引用。 \ Copyright 2011/4/21 Ching-Tang Tseng \ Permission is granted by the author to use this software \ for any application provided this copyright notice is preserved. 20 VALUE SIZE SIZE ARRAY DATA REAL AVG REAL SIGMA INTEGER TOTAL INTEGER I : INPUT-DATA {{ DATA ( 1 ) = 1.52 }} \ (1)輸入待分析數據。 {{ DATA ( 2 ) = 1.46 }} {{ DATA ( 3 ) = 1.61 }} {{ DATA ( 4 ) = 1.54 }} {{ DATA ( 5 ) = 1.55 }} {{ DATA ( 6 ) = 1.49 }} {{ DATA ( 7 ) = 1.68 }} {{ DATA ( 8 ) = 1.46 }} {{ DATA ( 9 ) = 1.83 }} {{ DATA ( 10 ) = 1.50 }} [[ TOTAL = 10 ]] \ (2)數據的總量為10。 ; : RESET-DATA BASIC 10 FOR I = 1 TO SIZE 20 LET { DATA ( I ) = 0 } 30 NEXT I 40 LET TOTAL = 0 50 END ; : AVERAGE BASIC 10 LET { AVG = 0 } 20 FOR I = 1 TO TOTAL 30 LET { AVG = AVG + DATA ( I ) } 40 NEXT I 50 LET { AVG = AVG / I>R ( TOTAL ) } 60 END ; : DEVIATION BASIC 10 LET { SIGMA = 0 } 20 FOR I = 1 TO TOTAL 30 LET { SIGMA = SIGMA + ( DATA ( I ) - AVG ) * ( DATA ( I ) - AVG ) } 40 NEXT I 50 LET { SIGMA = SQRT ( SIGMA / ( I>R ( TOTAL ) - 1 ) ) } 60 END ; : REPORT BASIC 10 RUN CR 20 RUN RESET-DATA 30 RUN INPUT-DATA 40 RUN AVERAGE 50 RUN DEVIATION 60 RUN CR 70 PRINT { " 平均值(Average value) = " ; AVG } 80 RUN CR 90 PRINT { " 標準誤差(Standard deviation) = " ; SIGMA } 100 RUN CR 110 END ; REAL erfx REAL erfy REAL T REAL D REAL AUX : ERROR-FUNCTION BASIC 10 LET { AUX = ABS ( erfx ) } 20 LET { T = 1 / ( 1 + 0.3275911 * AUX ) } 30 LET { D = EXP ( NEGATE ( erfx * erfx ) ) } 40 LET { erfy = 1 - D * T * ( 0.254829592 + T * ( -0.284496736 + T * ( 1.421413741 + T * ( -1.453152027 + 1.061405429 * T ) ) ) ) } 50 IF { erfx >= 0 } THEN 70 60 LET { erfy = NEGATE erfy } 70 END ; REAL TIMES INTEGER DISC INTEGER FLAG : MAIN BASIC 10 REM 20 REM 數據分析程式 30 REM 40 LET FLAG = 0 40 RUN REPORT 50 FOR I = 1 TO TOTAL 60 LET { erfx = ABS ( DATA ( I ) - AVG ) / ( SQRT ( 2 ) * SIGMA ) } 70 RUN ERROR-FUNCTION 80 LET { TIMES = 1 / ( 1 - erfy ) } 90 LET DISC = INT ( TIMES ) 100 IF DISC > TOTAL THEN 120 110 GOTO 160 120 LET FLAG = FLAG + 1 130 PRINT " 統計分析顯示,數據DATA( " ; I ; " ) = " ; { DATA ( I ) ; " 有問題。 " } 140 PRINT " 此值之誤差量,應該是 " ; DISC ; " 次才有可能出現一次。 " 142 print " 1-erfy = " ; { 1 - erfy } 144 print " (data(I)-avg)/sigma = " ; { ( DATA ( I ) - AVG ) / SIGMA } 150 PRINT " 但是這次測量, " ; TOTAL ; " 次就出現一次了,故有問題。" 160 NEXT I 170 IF FLAG <> 0 THEN 190 180 PRINT " 根據誤差函數核算結果顯示,所有數據的誤差量均在合理範圍之內。 " 190 END ;


載入程式後,執行 MAIN 指令,得到下列結果:

MAIN

平均值(Average value) = 1.564000000

標準誤差(Standard deviation) = .1155854662

統計分析顯示,數據 DATA( 9 ) = 1.830000000 有問題。
此值之誤差量,應該是 46 次才有可能出現一次。
1-erfy = 0.0213730758
(data(I)-avg)/sigma = 2.301327396
但是這次測量, 10 次就出現一次了,故有問題。

印出的結果中, 1/0.0213730758 = 46.79291207,這就是報告中 46 次的計算來源。幾十年前,大學生學習統計學,將習得的誤差理論知識,應用於實驗數據分析時,可以經由冗長的手算獲得標準誤差,再算出各個數據與平均值的誤差量,然後計算各個誤差量相當於多少個標準誤差,最後才根據第 4 節中的幾個術語,判斷實驗數據是否合理?所得到的結論是敘述式的:『遠大於某一誤差量』。現今的電腦,可以快速完成冗長的計算,並得到明確的數據,直接說明結果。
根據上列程式印出的報告,我們還能再度利用電腦快速繪圖的功能,以同樣的正態誤差分佈函數曲線圖下方的積分面積,說明分析的結論。Fig. 3 圖中右邊曲線下方的陰影區,即代表 2.3 個標準誤差以外,單邊表示的或然率量,雙邊的積分所得就是 0.0213730758 ,意即發生的可能性只有 2.13730758% ,或明確的說成要測量 46 次以上,才有可能出現一次。

Fig. 3 單邊 2.3 倍標準誤差以外的或然率示意圖