本人新手,目前正在學二分法。有一個題目不知道前面的條件怎么寫。望各位大神幫忙看一下~
要實作的演算法為:
def igs(f, a, b, n, eps=1e-8, maxiter=100):
求函式f(x)在[a,b]區間的根,a<b, 步驟為
1- 將區間[a,b]分為n段 :{x_i = a+i(b-a)/n, i=0,1,2,...n)
2- 查找f(x_i)*f(x_i+1)<=0的子區間
3- 若f(x_i)=0 或f(x_i+1)=0, 那么直接return該值
4- 計算 c=(x_i+x_i+1)/2
5- 若c<eps, return c
6- 設a=x_i ; b=x_i+1并回傳步驟1回圈
該演算法的原理跟二分法一樣,但是二分法都是直接取中間值回圈計算,而以上步驟則需將區間分為n段在每段先回圈計算是否該子區間有根。我想了很久還是寫不出來,請各位指教一下。非常感謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/165339.html
