牛頓迭代法 matlab實現

2021-10-05 11:23:06 字數 1257 閱讀 3560

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

使用了三個.m檔案來實現,分別是原函式(需要迭代的函式)檔案、牛頓迭代函式檔案、和實現的主檔案。

function y =

newton

(x)y =

exp(

-x/4)*

(2-x)-1;

%任意函式

end%function的自定義函式用來儲存咱們要進行牛頓迭代的函式

把你要進行牛頓迭代的函式進行變化,變成牛頓迭代函式。先要了解牛頓迭代函式的基本格式,
牛頓迭代公式:

**? (?) = ? − ? ? ?′**
**:`

function y =

newton1

(x)syms a;

f = a -

(newton

(a).

/diff

(newton

(a)));

y =subs

(f,x)

;%牛頓迭代公式

end%如果直接用y和x來實現的話,在掉用原函式的時候就算出了具體數值,公式中的求導就會變為0,

無法求解,所以先用f,a來代替y和x,最後再進行替換,實現牛頓迭代公式。

**:

x =

input

('x=');

%開始迭代最初的x

eps =

input

('eps=');

%定義所要求解的精度

syms x1;

%定義兩xk+

1和xk的差,一次來限制精度的要求

x1=100

;syms xa;

xa=x;

syms xb;

while x1>eps

xb = xa;

xa =

newton1

(xb)

; x1 =

abs(xa-xb)

;%得到▲x

enddisp

('該函式符合規定精度的解是:');

double

(xa)

xa即為所求的值

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之牛頓迭代法

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軸交點的橫座標...

牛頓迭代法

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