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

  • Context: MATLAB 
  • Thread starter Thread starter Faux Carnival
  • Start date Start date
  • Tags Tags
    Function Matlab
Click For Summary
SUMMARY

The discussion focuses on using the Newton-Raphson method for root approximation in MATLAB. The provided MATLAB code, named Newton.m, outlines the function structure, including inputs such as the object function f, its derivative df, and parameters for tolerance and iteration limits. Users are advised to define f and df using function handles with the '@' notation for proper execution. A practical example is suggested, using simple functions to test the implementation.

PREREQUISITES
  • Understanding of the Newton-Raphson method for root finding
  • Familiarity with MATLAB programming and syntax
  • Knowledge of function handles in MATLAB
  • Basic concepts of numerical methods
NEXT STEPS
  • Learn how to define and use function handles in MATLAB
  • Explore MATLAB's built-in functions for numerical methods
  • Study error analysis in iterative methods
  • Investigate advanced root-finding algorithms available in MATLAB
USEFUL FOR

Students, researchers, and engineers who are new to MATLAB and need assistance with implementing numerical methods for root approximation.

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
3K
  • · Replies 3 ·
Replies
3
Views
19K