Matlab實現——Newton-Raphson Iteration

歡迎前往個人博客 駑馬點滴 和視頻空間 嗶哩嗶哩-《挨踢日誌》

Newton.m

%Program 2.5  (Newton-Raphson Iteration) 

function [p0,err,k,y]=newton(f,df,p0,delta,epsilon,max1)

% Input  - f is the object function input as a string 'f '

%             - df is the derivative of f input as a string 'df '

%             - p0 is the initial approximation to a zero of f

%        - delta is the tolerance for p0

%        - epsilon is the tolerance for the function values y

%        - max1 is the maximum number of iterations

%Output - p0 is the Newton-Raphson approximation to the zero

%        - err is the error estimate for p0

%        - k is the number of iterations

%        - y is the function value f(p0)

for k=1:max1    

    p1=p0-feval(f,p0)/feval(df,p0); 

    err=abs(p1-p0);

    relerr=2*err/(abs(p1)+delta);

    p0=p1;

    y=feval(f,p0);

     if (err<delta)|(relerr<delta)|(abs(y)<epsilon),break,end

end


fun.m

function f=fun(x)

f=x^2-91;

derivative.m

function df=derivative(x)

df=2*x;


Untitled4.m

p0=9.5;

delta=10e-10;

epsilon=10e-10;

max1=6;

f='fun';

df='derivative';

[p0,err,k,y]=newton(f,df,p0,delta,epsilon,max1)

歡迎前往個人博客 駑馬點滴 和視頻空間 嗶哩嗶哩-《挨踢日誌》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章