MATLAB New to MATLAB? Get Help Approximating a Root with Newton-Raphson

  • Thread starter Thread starter Faux Carnival
  • Start date Start date
  • Tags Tags
    Function Matlab
Click For Summary
To approximate a root of a function using the Newton-Raphson method in MATLAB, the user has shared a code snippet for a function named Newton.m. This function requires inputs such as the function itself (f), its derivative (df), an initial guess (p0), tolerances (delta and epsilon), and a maximum number of iterations (max1). The code iteratively updates the approximation until it meets the specified error tolerances or reaches the maximum iterations. For successful execution, it is essential to define the function and its derivative first, which can be done using function handles with the '@' notation. A simple example provided is using the function y=x+1 with its derivative y'=1 to test the implementation. This approach ensures that the user can verify the functionality of the Newton-Raphson method in their MATLAB environment.
Faux Carnival
Messages
12
Reaction score
0
Hello everyone, I am fairly new to MATLAB. I have to approximate a root of a given function with Newton-Raphson method.

I have a code that looks like this: (Newton.m)

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

%Input     - f is the object function 
%            - df is the derivative of f 
%            - 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)

%If f and df are defined as M-file functions use the @ notation
% call [p0,err,k,y]=Newton(@f,@df,p0,delta,epsilon,max1).
%If f and df are defined as anonymous functions use the
% call  [p0,err,k,y]=Newton(f,df,p0,delta,epsilon,max1).



%  NUMERICAL METHODS: Matlab Programs
% (c) 2004 by John H. Mathews and Kurtis D. Fink
%  Complementary Software to accompany the textbook:
%  NUMERICAL METHODS: Using Matlab, Fourth Edition
%  ISBN: 0-13-065248-2
%  Prentice-Hall Pub. Inc.
%  One Lake Street
%  Upper Saddle River, NJ 07458

for k=1:max1	
	p1=p0-f(p0)/df(p0);	
	err=abs(p1-p0);
	relerr=2*err/(abs(p1)+delta);
	p0=p1;
	y=f(p0);
	if (err<delta)|(relerr<delta)|(abs(y)<epsilon),break,end
end

What do I do now? I really need some help here. Do I need to define f and df first? And how?

Thanks.
 
Physics news on Phys.org

Similar threads

  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
4K
  • · Replies 1 ·
Replies
1
Views
9K
Replies
7
Views
9K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 4 ·
Replies
4
Views
24K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 3 ·
Replies
3
Views
19K