2015-11-08 41 views
0

所以我有代碼需要sqrt並採取arctans並從弧度轉換爲度,這使我不是很精確的值。在沒有使用CAS的情況下,是否有任何事情可以做,以檢查事物是否平等,而不是四捨五入?不確定度的問題

+1

如果兩個'double'的差值小於0.0001那麼它們是相等的。 – Sweeper

+0

發佈你的代碼可能是有用的......但是對於雙打,你永遠不能確定它們是平等的,所以你必須爲abs(a-b)<0.00001'做些什麼。 –

+0

@Davidvanrijn理想情況下,我不想輪到,也可能要看幾萬億次迭代,所以四捨五入會嚴重影響最終結果。 – Sam

回答

1

我假定CAS意味着計算機代數系統 ...

實際的方法來測試,如果兩個數相等時,有在計算(測量精度或)錯誤的可能性被檢查,如果該差值小於由所計算的數字中的估計誤差確定的「增量」。

問題是找到一個很好(足夠)的錯誤估計。從空中拉出一個數字(如0.0001)可能會導致誤報或漏報。要做到這一點,你實際上需要做一個數值分析你的計算得到一個可靠的估計。


很明顯......你在這個問題上花費的時間應該取決於你得到「正確」答案的重要性,即對計劃以及使用計劃的人而言,誤報或否定的後果是什麼。


1 - 爲了記錄,CAS可能不會幫你在這裏。涉及這種類型的計算的問題通常沒有代數解決方案。

+0

計算必須與橢圓反彈並檢查它何時返回到原始點,所以如果它曾經做過,CAS(不是,我的意思是計算機代數系統)最終描述了簡化的值,所以那麼一樣? – Sam

+0

它可能工作,但有兩個問題。 1)是否有解析解決方案? 2)一個(愚蠢的)CAS可以找到解決方案嗎? –

+0

我很肯定CAS不需要甚至能夠進行微積分,但萬一,你告訴我: 編輯:代碼就像500個字符太長,lemme screencap。 http://prntscr.com/91ezde – Sam