1. 程式人生 > 其它 >20201003008陸啟康演算法第一次上機實驗報告

20201003008陸啟康演算法第一次上機實驗報告

實驗報告題目

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)fmid> 0時,證明此時mid在零點的左側,此時若未達到誤差標準,繼續二分——即:

left=mid,繼續遞迴;當達到誤差標準——即(right-left<1e-7,可以輸出結果mid

2)當fmid> 0時,證明此時mid在零點的右側,此時若未達到誤差標準,繼續二分——即:right=mid,繼續遞迴;當達到誤差標準——即(right-left<1e-7,可以輸出結果mid

演算法時間即空間複雜度分析

時間複雜度:

題目中直接給出具體的x的取值範圍,所以時間複雜度O(1);

但如果給出了陣列長度n,則為O(logn):

空間複雜度:O(1);

心得體會:

無論做什麼事情,與他人合作永遠比自己單打獨鬥效率要高得多,在這個時代,團隊協作的能力非常重要。

分治法個人體會:

做了這道題加深了我對二分法的印象,意識到解決很多問題,二分法都是一個很好的,低耗時,低空間的演算法。