| 5 | 1/1 | 返回列表 |
| 查看: 3896 | 回復(fù): 8 | |||
| 當(dāng)前只顯示滿足指定條件的回帖,點(diǎn)擊這里查看本話題的所有回帖 | |||
liming9398金蟲(chóng) (正式寫(xiě)手)
|
[求助]
fortran中到底該如何比較兩個(gè)實(shí)數(shù)是否相等
|
||
| 如果都是real(4)該如何比較,都是real(8) 又該如何比較?是比較絕對(duì)誤差還是相對(duì)誤差,哪個(gè)誤差都說(shuō)要小于一個(gè)比較小的數(shù),到底應(yīng)該選多小呢,不同的書(shū)說(shuō)法不一樣,又說(shuō)-4次方的,又說(shuō)-8次方的,還有的用機(jī)器精度(-8次方和-16次方,雙精度表示0.24時(shí),實(shí)際存儲(chǔ)的是0.239999994635582,這個(gè)絕對(duì)誤差本身就是-9次方量級(jí)啊,顯然不是-16方的量級(jí)??)到底哪個(gè)誤差該選多大,有沒(méi)有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)或者最好的選擇? |
Ouwen's Greenhouse |
木蟲(chóng) (正式寫(xiě)手)
|
【答樓主問(wèn)】 取一個(gè)你能接受的精度 這是個(gè)好問(wèn)題。這并不是“沒(méi)有充分利用數(shù)據(jù)類型”的精度,拿單精度為例吧,它有8位二進(jìn)制指數(shù)位,和23位二進(jìn)制小數(shù)位,加上隱含的前置1的尾數(shù)開(kāi)頭,相當(dāng)于一共24位二進(jìn)制有效數(shù)字。考慮一下很類似的科學(xué)計(jì)數(shù)法吧,假如我有一個(gè)十進(jìn)制小數(shù),但是它的整數(shù)部分不是零,比如: 12345.1 里面的12345的部分,勢(shì)必要占去有效數(shù)字的一些位,這樣剩下的供給0.1的有效二進(jìn)制數(shù)字就沒(méi)有24位那么多了,也就是我們不能使用2^-24約等于5.96E-8作為單精度小數(shù)的閾值了 還是以12345.1為例吧,轉(zhuǎn)成二進(jìn)制小數(shù)的話,等于 11000000111001.00011 0011 0011 0011 ...... 后面是無(wú)限循環(huán)二進(jìn)制小數(shù),去掉默認(rèn)的最高位1,剩下的尾數(shù)都會(huì)放到23位的fraction里面(嗯,exponent部分是在范圍內(nèi)的,這里就不作討論了),于是這個(gè)小數(shù)實(shí)際上會(huì)被截?cái)喑桑?br /> 11000000111001.00011 0011 0 所以等于精確的十進(jìn)制為:12345.099609375,絕對(duì)誤差為0.000390625,這個(gè)絕對(duì)誤差就要遠(yuǎn)遠(yuǎn)大于10^-8的量級(jí)了 嗯,樓主可以閱讀下我上面提到的鏈接,理解之后就好辦了 |
至尊木蟲(chóng) (職業(yè)作家)
至尊木蟲(chóng) (職業(yè)作家)
木蟲(chóng) (正式寫(xiě)手)
|
我來(lái)吐槽一下對(duì)于“精度”的理解應(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,常說(shuō)的“機(jī)器精度”是這個(gè)意思 領(lǐng)悟十進(jìn)制轉(zhuǎn)二進(jìn)制的局限性的話,你就知道為啥就連quadruple precision四精度都不可能精確表達(dá)0.1這么簡(jiǎn)單一個(gè)十進(jìn)制小數(shù)了【同時(shí),就算是單精度,也能夠精確表達(dá)2^-149這個(gè)如此微小的十進(jìn)制小數(shù)(約1.4E-45)】,樓主最初問(wèn)題的答案也呼之欲出了:這個(gè)要根據(jù)實(shí)際的需求來(lái)定,因?yàn)橐话愕挠?jì)算里面,大部分小數(shù)都不是被精確表示的,不能教條主義地選擇閾值的大小 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 085601材料工程找調(diào)劑 +13 | oatmealR 2026-03-29 | 14/700 |
|
|---|---|---|---|---|
|
[考研] 材料與化工272求調(diào)劑 +12 | 阿斯蒂芬2004 2026-03-28 | 12/600 |
|
|
[考研] 085600 286分 材料求調(diào)劑 +8 | 麻辣魷魚(yú) 2026-03-27 | 9/450 |
|
|
[考研] 一志愿:西北大學(xué),英一數(shù)一408-284分求調(diào)劑 +4 | 12.27 2026-03-27 | 4/200 |
|
|
[考研] 086000生物與醫(yī)藥調(diào)劑 +5 | Feisty。 2026-03-28 | 9/450 |
|
|
[考研] 315求調(diào)劑 +4 | akie... 2026-03-28 | 5/250 |
|
|
[考研] 復(fù)試調(diào)劑 +3 | raojunqi0129 2026-03-28 | 3/150 |
|
|
[考研] 求調(diào)劑 +3 | QiMing7 2026-03-25 | 4/200 |
|
|
[考研] 346求調(diào)劑 一志愿070303有機(jī)化學(xué) +3 | 蘿卜燉青菜 2026-03-28 | 3/150 |
|
|
[考研] 266分,求材料冶金能源化工等調(diào)劑 +7 | 哇呼哼呼哼 2026-03-27 | 9/450 |
|
|
[考研] 【求調(diào)劑】085601材料工程專碩 | 總分272 | +6 | 腳滑的守法公民 2026-03-27 | 6/300 |
|
|
[考研] 一志愿南昌大學(xué)324求調(diào)劑 +7 | hanamiko 2026-03-27 | 7/350 |
|
|
[考研] 265求調(diào)劑11408 +3 | 劉小鹿lu 2026-03-27 | 3/150 |
|
|
[考研] 0703化學(xué)求調(diào)劑 +3 | 丹青奶蓋 2026-03-26 | 5/250 |
|
|
[考研] 347求調(diào)劑 +4 | L when 2026-03-25 | 4/200 |
|
|
[有機(jī)交流]
20+3
|
FENGSHUJEI 2026-03-23 | 5/250 |
|
|
[考研] 材料專碩331求調(diào)劑 +4 | 鮮當(dāng)牛 2026-03-24 | 4/200 |
|
|
[考研] 一志愿河北工業(yè)大學(xué)0817化工278分求調(diào)劑 +7 | jhybd 2026-03-23 | 12/600 |
|
|
[考研] 一志愿國(guó)科過(guò)程所081700,274求調(diào)劑 +3 | 三水研0水立方 2026-03-23 | 3/150 |
|
|
[考研] 284求調(diào)劑 +3 | yanzhixue111 2026-03-23 | 6/300 |
|