題目描述
這棵函式是n次函式,經過觀察發現,在閉區間[l,r]內函式存在乙個極大值點,請求出這個極大值點x。
輸入格式:
第一行,乙個正整數n和兩個實數l、r,表示閉區間範圍。
第二行,n+1個實數,從左到右依次表示函式的係數。
輸出格式:
輸出x的值,四捨五入保留5位小數。
輸入樣例#1:
3 -0.9981 0.5輸出樣例#1:1 -3 -3 1
-0.41421說明
上述樣例是n = 3,x^3 -3x^2 - 3x + 1思路:高中數學知識,題中要求求函式的極大值,所以一定存在極大值,要先對其函式求導,在給定的區間內求出使導數等於0的
近似點即可。我們用乙個陣列來儲存求導之後的係數,再用二分法來使導數的值不斷逼近0.
#include
double arr[
100]
,n;//陣列arr用來儲存函式求導之後的係數是多少
doubleff(
double x)
//ff(x)函式表示帶入乙個函式值x之後導數的值是多少
return t;
}int
main()
while
(r-l>
0.0000001
)printf
("%.5lf"
,mid)
;//%.5lf有四捨五入的功能,所以這裡不需要+0.00005
return0;
}
不斷的努力,不斷的充實自己,加油!!! MATLAB二分法求函式極值
一 演算法原理 1 計算f x 在有解區間 a,b 端點處的值,f a f b 2 計算f x 在區間中點處的值f x0 3 判斷若f x0 0,則x0即是根,否則檢驗 1 若f x1 與f a 異號,則知解位於區間 a,x0 b1 x0,a1 a 2 若f x0 與f a 同號,則知解位於區間 x...
bsearch函式二分法
在初學寫程式時,特別是剛開始接觸資料結構時,基本都是在查詢 各種排序,其實都是在為查詢做準備。今天我們來看看關於c語言中自帶的乙個二分法搜尋函式bsearch 通過這個函式可以簡單的認識到二分法搜尋的一些內在的原理,以及發散一點其他搜尋方法的東西。首先,介紹這個函式 函式原型 void bsearc...
C 二分法查詢,遞迴二分法
用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...