學習筆記 牛頓迭代法

2021-08-25 22:26:01 字數 1428 閱讀 1754

牛頓迭代法(ne

wton

′sme

thod

n ew

ton′

smet

ho

d)一般用於求函式的乙個零點。

牛頓迭代法三個步驟:

隨機 / 猜乙個

p p

值求x=

p' role="presentation">x=p

x=p時的切線,即求導數令p

= p

=切線零點,返回步驟

2 2

,重複若干次.即:x

n+1=

xn−f

(xn)

f′(x

n)' role="presentation">xn+

1=xn

−f(x

n)f′

(xn)

xn+1

=xn−

f(xn

)f′(

xn)重複得越多得到的根越精確,一般達到精度要求就可以停止.

例:求f(x

)=x3

−2x2

+x−1f(

x)=x

3−2x

2+x−

1的乙個零點

首先求出導數f′

(x)=

3x2−

4x+1f′

(x)=

3x2−

4x+1

.然後就開始牛頓迭代.

#include 

#include

#define f(x) (x*x*x-2*x*x+x-1)

#define f1(x) (3*x*x-4*x+1)

int main()

printf("%f\n", x);

return

0;}

應用:只能求函式零點

應用除了求函式零點外,還可以求解:

a−−√

m a

m方法:設b=

a−−√

m b=a

m,則a

=bm a=b

m,轉換成求f(

b)=b

m−a f(b

)=bm

−a

的零點首先求導。f′

(b)=

mbm−

1 f′(

b)=m

bm−1

下面是求平方根的程式:

#include 

#include

#define f(b) (b*b-a)

#define f1(b) (2*b)

double sqrt(double a)

return x;

}int main()

學習筆記 牛頓迭代法

假設我們有函式 f x x 在 x 0 處有 infty 階導數。我們知道 f x 0 的值 我們希望構造乙個多項式 g 使它盡可能逼近函式 f beging x xi 0 f x 0 frac x 0 x x 0 1 frac x 0 x x 0 2 frac x 0 x x 0 n xi 0 f...

牛頓迭代法

創新工廠的筆試題 不用庫函式sqrt 求乙個整型數n的開方,要求精度達到0.001即可。在這裡首先介紹一下牛頓迭代法 假設乙個方程為 f x 0 那麼假設其解為x0,則用泰勒級數展開之後可得 f x f x0 f x0 x x0 0 其中x為其近似解。根據上式推導出 x x0 f x0 f x0 這...

牛頓迭代法

目前接觸到的牛頓迭代法主要應用於兩個方面 1 方程求根問題 2 最優化問題。1 求解方程。並不是所有的方程都有求根公式,或者求根公式很複雜,導致求解困難。利用牛頓法,可以迭代求解。原理是利用泰勒公式,在x0處展開,且展開到一階,即f x f x0 x x0 f x0 求解方程f x 0,即f x0 ...