二分法のルーツネストされた間隔の主な用途は、定理は、このアルゴリズムは簡単で、結果も良く、反復されているが、その結果の複雑な機能のために満足のいくものではありません
1.コード
%%二分法のルート %% fが初期間隔interval0、イプシロン制御精度、関数式であります 機能RD = Roots_dichotomy(F、interval0、イプシロン) x_low = interval0(1); x_up = interval0(2); x_ave =(x_low + x_up)/ 2。 %%マッピング T = x_low:(x_up-x_low)/ 1000:x_up。 T = SUBS(F、T); Y0 =ゼロ(1、MAX(サイズ(T)))。 H =図。 セット(H、 '色'、 'W')。 プロット(T、T、R ''、T、Y0、 'B')。 上のグリッド 凡例( 'T:機能画像'、 'Y0:Y = 0')。 xlabel( 'X軸'); ylabelの( 'Y軸')。 タイトル(「機能画像「); シムズは、x; %%真の溶液と区間の真の解決策は、定義されている画像に表示され X_real =二重(([F]、[0])を解きます)。 私は=のために1:最大(サイズ(X_real)) isrealを(X_real(I))== 1の場合 x_real(I)= X_real(I)。 そうしないと x_real(I)= 0。 終わり 終わり x_real(x_real == 0)= []; 最大(サイズ(x_real)):I = 1のための テキスト(x_real(I)、0、[ '('、num2strは(x_real(I))、 ''、num2strは(0) ')']、 '色'、[0.02 0.79 150])。 終わり f_low = SUBS(F、x_low); f_up = SUBS(F、x_up)。 UB = 100; E =フロア(ABS(ログ(イプシロン)))。 X_up(1)= x_up; X_low(1)= x_low; X_ave(1)= x_ave。 f_low * f_up> 0であれば DISP( 'エディット・セクション!'); interval0 =入力( 'インターバル入力:'); RD = Roots_dichotomy(F、interval0、イプシロン)。 そうしないと %%二分法アルゴリズム 私は1 =用:1:UB f_low = SUBS(F、x_low)。 f_up = SUBS(F、x_up)。 f_ave = SUBS(F、x_ave)。 f_low * f_ave <0の場合 x_up = x_ave。 x_ave =(x_low + x_up)/ 2。 elseifをf_ave * f_up <0 x_low = x_ave。 x_ave =(x_low + x_up)/ 2。 終わり デルタ= x_up -x_low。 X_up(I + 1)= x_up; X_low(I + 1)= x_low; X_ave(I + 1)= x_ave。 もし、ABS(デルタ)<イプシロン ブレーク; 終わり 終わり DISP( '反復回数'); 私 DISP(「順次出力が結合した反復、反復値、上限反復を低いです」); RD = VPA([X_low; X_ave; X_up]、E)。 終わり 終わり
2.例
すべてクリア CLC シムズは、x; F = X ^ 3 +ログ(X)。 イプシロン= 1E-6。 interval0 = [0.1,1]。 %%二分法 Y = Roots_dichotomy(F、interval0、イプシロン)
結果は以下の通りであります
反復回数は、 I = 20 出力は、順番に結合した反復、反復値、上限反復を低下さ Y = [0.1、0.55、0.55、0.6625、0.6625、0.690625、0.7046875、0.7046875、0.7046875、0.7046875、0.7046875、0.7046875、0.7046875、0.7046875、0.7046875、0.7046875、0.7047012329102、0.7047080993652、0.7047080993652、0.7047080993652、0.7047089576721] [0.55、0.775、0.6625、0.71875、0.690625、0.7046875、0.71171875、0.708203125、0.7064453125、0.70556640625、0.705126953125、0.7049072265625、0.7047973632812、0.7047424316406、0.7047149658203、0.7047012329102、0.7047080993652、0.7047115325928、0.704709815979、0.7047089576721、0.7047093868256] [1.0、1.0、0.775、0.775、0.71875、0.71875、0.71875、0.71171875、0.708203125、0.7064453125、0.70556640625、0.705126953125、0.7049072265625、0.7047973632812、0.7047424316406、0.7047149658203、0.7047149658203、0.7047149658203、0.7047115325928、0.704709815979、0.704709815979]