解く方程式 - 二分

二分法のルーツネストされた間隔の主な用途は、定理は、このアルゴリズムは簡単で、結果も良く、反復されているが、その結果の複雑な機能のために満足のいくものではありません

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]

  

おすすめ

転載: www.cnblogs.com/guliangt/p/12119198.html