MATLAB二分法求函式極值

2021-10-23 05:35:05 字數 944 閱讀 9841

一、演算法原理

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)同號,則知解位於區間[x0, b],

a1=x0, b1=b。

4.當|bn-an|clear

f=@(x) x.^2-5*x+9;% func2str sym

fplot(f)

;[x,fx]

=ef(f,[0 6],100) % a 函式值 b橫座標

function

[x,result]

=ef(f,x0,n)

x1=x0(1)

;x3=x0(2)

;tol=1e-5;

df=matlabfunction(diff(sym(f))

); %sym(f)匿名函式變為符號範數 只有符號函式才可以求導

x2=(x1+x3)/2;

df2=df(x2)

;i=1;

while abs(df2)

> tol && i < n

if df2 < 0

x1=x2;

else

x3=x2;

endx2=

(x1+x3)/2;

df2=df(x2)

; i=i+1;

endx=

(x1+x3)/2;

result=f(x)

;end

二分法 MATLAB實現

matlab中eps是乙個函式,可以返回某乙個數n的最小浮點數精度,形式例如eps n 一般直接用eps即可。eps eps 1 2.2204e 16 1 1 eps false 1 1 eps 0.51 false 1 1 eps 0.5 true 0.5 時為true 自定義函式的途徑 m檔案函...

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...