牛頓迭代法又稱為切線法,簡單來說就是不斷求切線與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 這...