首頁>Club>
8
回覆列表
  • 1 # 太陽還暖c丶

    二分法基本思路

    一般地,對於函式f(x),如果存在實數c,當x=c時,若f(c)=0,那麼把x=c叫做函式f(x)的零點。 解方程即要求f(x)的所有零點。

    假定f(x)在區間(x,y)上連續

    先找到a、b屬於區間(x,y),使f(a),f(b)異號,說明在區間(a,b)內一定有零點,然後求f[(a+b)/2],

    現在假設f(a)<0,f(b)>0,a<b

    1 如果f[(a+b)/2]=0,該點就是零點,

    如果f[(a+b)/2]<0,則在區間((a+b)/2,b)內有零點,(a+b)/2>=a,從①開始繼續使用

    2 中點函式值判斷。

    如果f[(a+b)/2]>0,則在區間(a,(a+b)/2)內有零點,(a+b)/2<=b,從①開始繼續使用 中點函式值判斷。

    這樣就可以不斷接近零點。

    透過每次把f(x)的零點所在小區間收縮一半的方法,使區間的兩個端點逐步迫近函式的零點,以求得零點的近似值,這種方法叫做二分法。

    從以上可以看出,每次運算後,區間長度減少一半,是線形收斂。另外,二分法不能計算復根和重根。

    二分法步驟

    用二分法求方程的根的近似值的步驟

    1 若對於有,則在內至少有一個根。

    2 取的中點計算

    3 若則是的根,停止計算,

    執行後輸出結果

    若則在內至少有一個根。取;

    若,則取;

    ④ 若(為預先給定的要求精度)退出計算,執行後輸出結果,反之,返回步驟1,重複步驟1,2,3

    二分法Mtalab程式

    syms x;

    fun=input("(輸入函式形式)fx=");

    a=input("(輸入二分法下限)a=");

    b=input("(輸入二分法上限)b=");

    d=input("輸入誤差限 d=")%二分法求根

    %f=inline(x^2-4*x+4);

    %修改需要求解的inline函式的函式體

    f=inline(fun);%修改需要求解的inline函式的函式體

    e=b-a; k=0 ;

    while e>d

    c=(a+b)/2;

    if f(a)*f(c)<0

    b=c;

    elseif f(a)*f(c)>0

    a=c;

    else

    a=c;b=c

    end

    e=e/2; k=k+1;

    end

    x=(a+b)/2;

    x%x為答案

    k%k為次數

  • 中秋節和大豐收的關聯?
  • 女性高血壓能生小孩嗎?