[討論] 標準差問題 平方破表

作者: verylovemary (烤地瓜)   2014-05-30 17:11:05
我想請問大大們 我做一個實驗 之後求標準差
用標準差的公式
標準差={[(各數-平均數)^2的總和] 除以 樣本數}開根號
我遇到 我個數 2.27976e-178 平均數 2.75109e-177
問題在於 (各數-平均數)後平方 我是用double 但還是破表....
變成0..
後面都不用算了
想請問大大們 有遇到破表情況要怎麼辦?
作者: littleshan (我要加入劍道社!)   2014-05-30 17:18:00
所有樣本乘上一個常數去算標準差,算完再除回去
作者: verylovemary (烤地瓜)   2014-05-30 17:30:00
感恩!!!
作者: johnpage (johnpage)   2014-05-30 21:26:00
如果會破表,那市售軟體怎麼可以用。
作者: damody (天亮damody)   2014-05-31 00:16:00
mpfr 或用別的程式語言或工具
作者: blackwindy (黑色的風)   2014-05-31 04:23:00
大數運算的library
作者: williams7442 (我只剩下嘴砲了)   2014-05-31 14:58:00
我最近也在寫這個程式 我一直在研究裡面的程式碼輸入位數到越高或越低 會出.#J
作者: LPH66 (-6.2598534e+18f)   2014-05-31 15:21:00
樓上那是因為出現無限大, 輸出 1.#INF 再"四捨五入"成 1.#J另外原 PO 的問題是另一個方向的破表, 它 underflow 了
作者: williams7442 (我只剩下嘴砲了)   2014-05-31 15:28:00
有方法可以改善嗎? 如果輸入兩個極端數字就會變成這或兩個極高數字
作者: LPH66 (-6.2598534e+18f)   2014-05-31 15:32:00
調整公式使得計算的數字的次方數不要那麼接近邊界例如原 PO 的數字太小所以一樓建議乘上常數變大算完再除回去
作者: williams7442 (我只剩下嘴砲了)   2014-05-31 15:39:00
試設輸入字串的範圍?
作者: LPH66 (-6.2598534e+18f)   2014-05-31 17:13:00
如果是使用者輸入值的話限制輸入範圍也是一個方法

Links booklink

Contact Us: admin [ a t ] ucptt.com