| 9 | 1/1 | 返回列表 |
| 查看: 3895 | 回復(fù): 8 | |||
liming9398金蟲 (正式寫手)
|
[求助]
fortran中到底該如何比較兩個(gè)實(shí)數(shù)是否相等
|
| 如果都是real(4)該如何比較,都是real(8) 又該如何比較?是比較絕對誤差還是相對誤差,哪個(gè)誤差都說要小于一個(gè)比較小的數(shù),到底應(yīng)該選多小呢,不同的書說法不一樣,又說-4次方的,又說-8次方的,還有的用機(jī)器精度(-8次方和-16次方,雙精度表示0.24時(shí),實(shí)際存儲的是0.239999994635582,這個(gè)絕對誤差本身就是-9次方量級啊,顯然不是-16方的量級。?)到底哪個(gè)誤差該選多大,有沒有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)或者最好的選擇? |
Ouwen's Greenhouse |
至尊木蟲 (職業(yè)作家)
至尊木蟲 (職業(yè)作家)
木蟲 (正式寫手)
|
我來吐槽一下對于“精度”的理解應(yīng)該怎樣吧 首先,我們應(yīng)該了解IEEE754標(biāo)準(zhǔn)規(guī)定的單精度和雙精度是怎樣的 關(guān)于IEEE754標(biāo)準(zhǔn):http://en.wikipedia.org/wiki/IEEE754 關(guān)于單精度:http://en.wikipedia.org/wiki/Sin ... oating-point_format 關(guān)于雙精度:http://en.wikipedia.org/wiki/Dou ... oating-point_format 注意:尾數(shù)部分(fraction)是二進(jìn)制表示的! 單精度的尾數(shù)有23位,所以它的最小單位是2的-24次方,約等于5.96E-8;雙精度的尾數(shù)有52位,所以它的最小單位是2的-53次方,約1.11E-16,常說的“機(jī)器精度”是這個(gè)意思 領(lǐng)悟十進(jìn)制轉(zhuǎn)二進(jìn)制的局限性的話,你就知道為啥就連quadruple precision四精度都不可能精確表達(dá)0.1這么簡單一個(gè)十進(jìn)制小數(shù)了【同時(shí),就算是單精度,也能夠精確表達(dá)2^-149這個(gè)如此微小的十進(jìn)制小數(shù)(約1.4E-45)】,樓主最初問題的答案也呼之欲出了:這個(gè)要根據(jù)實(shí)際的需求來定,因?yàn)橐话愕挠?jì)算里面,大部分小數(shù)都不是被精確表示的,不能教條主義地選擇閾值的大小 |
木蟲 (正式寫手)
木蟲 (正式寫手)

木蟲 (正式寫手)
|
【答樓主問】 取一個(gè)你能接受的精度 這是個(gè)好問題。這并不是“沒有充分利用數(shù)據(jù)類型”的精度,拿單精度為例吧,它有8位二進(jìn)制指數(shù)位,和23位二進(jìn)制小數(shù)位,加上隱含的前置1的尾數(shù)開頭,相當(dāng)于一共24位二進(jìn)制有效數(shù)字?紤]一下很類似的科學(xué)計(jì)數(shù)法吧,假如我有一個(gè)十進(jìn)制小數(shù),但是它的整數(shù)部分不是零,比如: 12345.1 里面的12345的部分,勢必要占去有效數(shù)字的一些位,這樣剩下的供給0.1的有效二進(jìn)制數(shù)字就沒有24位那么多了,也就是我們不能使用2^-24約等于5.96E-8作為單精度小數(shù)的閾值了 還是以12345.1為例吧,轉(zhuǎn)成二進(jìn)制小數(shù)的話,等于 11000000111001.00011 0011 0011 0011 ...... 后面是無限循環(huán)二進(jìn)制小數(shù),去掉默認(rèn)的最高位1,剩下的尾數(shù)都會放到23位的fraction里面(嗯,exponent部分是在范圍內(nèi)的,這里就不作討論了),于是這個(gè)小數(shù)實(shí)際上會被截?cái)喑桑?br /> 11000000111001.00011 0011 0 所以等于精確的十進(jìn)制為:12345.099609375,絕對誤差為0.000390625,這個(gè)絕對誤差就要遠(yuǎn)遠(yuǎn)大于10^-8的量級了 嗯,樓主可以閱讀下我上面提到的鏈接,理解之后就好辦了 |
木蟲 (正式寫手)
| 9 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 材料科學(xué)與工程求調(diào)劑 +3 | 深V宿舍吧 2026-03-29 | 3/150 |
|
|---|---|---|---|---|
|
[考研] 329求調(diào)劑,一志愿西北工業(yè)大學(xué),材料工程(085601) +3 | 小小機(jī)靈蟲 2026-03-29 | 6/300 |
|
|
[考研] 總分293求調(diào)劑 +7 | 加一一九 2026-03-25 | 10/500 |
|
|
[考研] 085600 材料與化工 329分求調(diào)劑 +13 | Mr. Z 2026-03-25 | 13/650 |
|
|
[考研] 求調(diào)劑 +4 | 青春裁為三截 2026-03-29 | 4/200 |
|
|
[考研] 2026年華南師范大學(xué)歡迎化學(xué),化工,生物,生醫(yī)工等專業(yè)優(yōu)秀學(xué)子加入! +3 | llss0711 2026-03-28 | 6/300 |
|
|
[考研] 一志愿哈爾濱工業(yè)大學(xué)材料與化工方向336分 +9 | 辰沐5211314 2026-03-26 | 9/450 |
|
|
[考研] 356求調(diào)劑 +3 | gysy?s?a 2026-03-28 | 3/150 |
|
|
[考研] 316求調(diào)劑 +7 | 江辭666 2026-03-26 | 7/350 |
|
|
[考研] 一志愿中南大學(xué)化學(xué)0703總分337求調(diào)劑 +5 | niko- 2026-03-27 | 5/250 |
|
|
[考研] 304求調(diào)劑 +6 | 曼殊2266 2026-03-27 | 6/300 |
|
|
[考研] 317求調(diào)劑 +6 | 十閑wx 2026-03-24 | 6/300 |
|
|
[考研] 070300求調(diào)劑306分 +4 | 26要上岸 2026-03-27 | 4/200 |
|
|
[考研] 291求調(diào)劑 +6 | HanBeiNingZC 2026-03-24 | 6/300 |
|
|
[考研] 265求調(diào)劑 +8 | 小木蟲085600 2026-03-27 | 8/400 |
|
|
[考研] 070300化學(xué)求調(diào)劑 +4 | 起個(gè)名咋這么難 2026-03-27 | 4/200 |
|
|
[考研] 266求調(diào)劑 +11 | 陽陽哇塞 2026-03-27 | 12/600 |
|
|
[考研] 一志愿南師大0703化學(xué) 275求調(diào)劑 +4 | Ripcord上岸 2026-03-27 | 4/200 |
|
|
[考研] 271求調(diào)劑 +6 | 生如夏花… 2026-03-22 | 6/300 |
|
|
[考研] 309求調(diào)劑 +4 | gajsj 2026-03-25 | 5/250 |
|