我在跑數學式子的模擬的時候
2*(1-0.66496)=0.670800001
為什麼???
我只是舉一個例子,我有很多結果都是錯誤的。
請問他是如何運算的??
因為他這樣的特性,讓我原本應該是發散的訊號,變成收斂的訊號!
有人知道原因嗎?
或者知道改進的方法!!謝謝....
--
理性平衡了感性,即是成長...
成長使人舒服,豁達..彷彿看清了一切..
但卻依然避免不了伴隨的空虛和失落...
[m [1;35m※ 來源:‧蛋捲廣場 bbs.tku.edu.tw‧[FROM: 210.66.162.135] [m
還有,單純的運算並不會出錯...
你們可不可以嘗試用下面的數學式子迭代..
if (y>=0&&y<=0.5)
y=2*y;
else if (y>0.5&&y<=1)
y=2*(1-y);
隨便給定0<=y<=1
y最好有小數點三位以上...
然後經由迭代後,理論上是發散的,就算用手算也是發散的...
可是,用Chart顯示的結果,卻是收斂的...
為壓力誕生的男人 撰寫於文章 <3Q9ccg$3...@bbs.tku.edu.tw>...
>
>
> 我在跑數學式子的模擬的時候
> 2*(1-0.66496)=0.670800001
> 為什麼???
> 我只是舉一個例子,我有很多結果都是錯誤的。
> 請問他是如何運算的??
> 因為他這樣的特性,讓我原本應該是發散的訊號,變成收斂的訊號!
> 有人知道原因嗎?
> 或者知道改進的方法!!謝謝....
嗯...我剛剛試了一下..可是還是沒有辦法...
但還是很感謝你的回應...
希望能解決這個問題,要不然我的研究就.....
: 大概是形別的關係吧.... TRY TRY SEE LA
--
理性平衡了感性,即是成長...
成長使人舒服,豁達..彷彿看清了一切..
但卻依然避免不了伴隨的空虛和失落...
[m [1;36m※ 來源:‧蛋捲廣場 bbs.tku.edu.tw‧[FROM: 210.66.162.139] [m
這種很常見,通常是由於內部是用整數模擬浮點數運算而造成的
(總不能要求所有的機器都有FPU吧,所以大部份compiler的內定
選項都是用整數模擬浮點運算),你可以試著把這個option加進
去(在那我忘了),不然還有一個辦法,就是取有效位數,把
truncation error去掉...
--
[m※ Origin: 臺大電機 Maxwell 站 ◆ From: chempro.che.ntu.edu.tw
請問要怎麼設??我到option找了一下,大概勾了幾項..
可是,結果依然不變...
我舉的例子只是我模擬的一個case..
基本上,位數不能固定,要不然將使的我的系統效能大打折扣
所以,還是希望有人可以告知!!
--
理性平衡了感性,即是成長...
成長使人舒服,豁達..彷彿看清了一切..
但卻依然避免不了伴隨的空虛和失落...
[m [1;36m※ 來源:‧蛋捲廣場 bbs.tku.edu.tw‧[FROM: 210.66.162.127] [m
>《 在 zsyian (為壓力誕生的男人) 的大作中提到: 》
>: 我在跑數學式子的模擬的時候
>: 2*(1-0.66496)=0.670800001
>: 為什麼???
>: 我只是舉一個例子,我有很多結果都是錯誤的。
>: 請問他是如何運算的??
>: 因為他這樣的特性,讓我原本應該是發散的訊號,變成收斂的訊號!
>: 有人知道原因嗎?
>: 或者知道改進的方法!!謝謝....
>
> 還有,單純的運算並不會出錯...
> 你們可不可以嘗試用下面的數學式子迭代..
> if (y>=0&&y<=0.5)
> y=2*y;
> else if (y>0.5&&y<=1)
> y=2*(1-y);
>
> 隨便給定0<=y<=1
> y最好有小數點三位以上...
> 然後經由迭代後,理論上是發散的,就算用手算也是發散的...
> 可是,用Chart顯示的結果,卻是收斂的...
這與compiler無關, 純粹是由於浮點數的宿命, 請參考數值分析方面的書