MATLAB之牛頓迭代法

2021-10-23 05:41:15 字數 1314 閱讀 5550

1、迭代公式

將 f (x)在點xk做taylor展開f(x)=f(xk)+f』(xk)(x-xk)+…,則有

x(k+1)=x(k)- f (x(k))/f』(x(k))

2、牛頓法的幾何意義

由上式可知,如果如果我們選擇x0作為初始點,點(x0,f(x0))的切線方程為y-f(x0)=f』(x0)(x-x0),該切線方程與x軸交點的橫座標為

x(1)=x(0)- f (x(0))/f』(x(0)),然後以x1為初始點,繼續迴圈上述過程。在該過程中,不斷的對f(x)做切線,因此牛頓迭代法也叫且憲法。

3、牛頓法的收斂性

設f (x)在[a, b]上存在二階連續導數且滿足下列條件:

(1)f (a)*f (b) < 0;

(2)f』(x) ≠0;

(3)f』』(x) 在區間[a,b]上不變號;

(4)取x0∈ [a, b],使得f』』(x)f (x0) >0

則牛頓迭代序列二階收斂於f (x)在[a, b]上的唯一單根x。

需要注意的是,牛頓迭代法的收斂性取決於x0的選擇。

二、matlab程式

```bash

clcclear

syms x

h=x.^3+x.^2-1;

fplot(h)

;x0=nw(h,1,100)

;function result=nw(h,x,n)

f=matlabfunction(h)

; %將符號函式變為匿名函式h=@(x) x.^3+x.^2-1

f1=matlabfunction(diff(h))

;x(1)

=x;i=2;

while 1

x(i)

=x(i-1)-f(x(i-1))/f1(x(i-1))

;if abs(f(x(i))

)<1e-6

result=x(i)

;return

; end

if i>n

result=x(i)

;return

; end

i=i+1;

endend

MATLAB牛頓迭代法

這裡是乙個一元函式的簡單 牛頓迭代法 function x,n,xn,yn newiteration fun,dfun,x0,eps fun為目標函式,dfun為目標函式的一階導數,x0為起始點,eps為精度 a feval fun,x0 b a 1 n 0 建立畫圖的點 xn zeros 5,1 ...

牛頓迭代法 matlab實現

牛頓迭代法又稱為切線法,簡單來說就是不斷求切線與x軸的交點,來逐漸接近解的迭代過程。方法使用函式f x 的泰勒級數的前面幾項來尋找方程f x 0的根。具體迭代的方法可以看度娘的解釋,或者相關的教材。今天來介紹下簡單的matlab的實現。使用了三個.m檔案來實現,分別是原函式 需要迭代的函式 檔案 牛...

牛頓迭代法

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