20201003008陸啟康演算法第一次上機實驗報告
阿新 • • 發佈:2021-10-07
實驗報告題目
7-2 二分法求函式的零點
題目概述
- 有函式:f(x)=x5−15x4+85x3−225x2+274x−121 已知f(1.5)>0,f(2.4)<0 且方程f(x)=0 在區間[1.5,2.4] 有且只有一個根,請用二分法求出該根。 提示:判斷函式是否為0,使用表示式 fabs(f(x)) < 1e-7
題目分析:
在函式f(x)中的一個範圍中求解,要求用二分法逼近零點,誤差控制在1e-7之內。
演算法描述:
已知該函式在該區間上單調遞減,我們可以以浮點二分法無限逼近零點:
(1)當f(mid)> 0時,證明此時mid在零點的左側,此時若未達到誤差標準,繼續二分——即:
(2)當f(mid)> 0時,證明此時mid在零點的右側,此時若未達到誤差標準,繼續二分——即:right=mid,繼續遞迴;當達到誤差標準——即(right-left)<1e-7,可以輸出結果mid;
演算法時間即空間複雜度分析
時間複雜度:
題目中直接給出具體的x的取值範圍,所以時間複雜度是O(1);
但如果給出了陣列長度n,則為O(logn):
空間複雜度:O(1);
心得體會:
無論做什麼事情,與他人合作永遠比自己單打獨鬥效率要高得多,在這個時代,團隊協作的能力非常重要。
分治法個人體會:
做了這道題加深了我對二分法的印象,意識到解決很多問題,二分法都是一個很好的,低耗時,低空間的演算法。