Question

I'm working on the newton's method on matlab, could someone help me and show what two...

I'm working on the newton's method on matlab, could someone help me and show what two lines are needed to be added in the codes in order to make this function work?

function sample_newton(f, xc, tol, max_iter)

% sample_newton(f, xc, tol, max_iter)

% finds a root of the given function f over the interval [a, b] using Newton-Raphson method

% IN:

% f - the target function to find a root of

% function handle with two outputs, f(x), f'(x)

% e.g., f=@(x) [sin(x);cos(x)];

% xc - the initial guess to start the Newton method

% tol - the tolerance to stop the iterative method

% max_iter - the maximum iterations allowed

% OUT:

% none

% if there is no user given tolerance, the code will pick one

if nargin < 2

xc = 0;

tol = 1.0e-5;

max_iter = 1000;

elseif nargin < 3

tol = 1.0e-5;

max_iter = 1000;

elseif nargin < 4

max_iter = 1000;

end

% check to see if we can start the code

fc = f(xc);

if length(fc)~=2

error('sample_newton:exception','Incorrect function handle type');

end

if abs(fc(1)) < tol

fprintf('We have found an (approximated) root: x_c = % 10.4e and f(x_c) = % 10.4e.\n', xc, fc);

else if abs(fc(2)) < 1e-8

fprintf('derivative of f at x_c is very close to zero, the code will now abort.\n');

error('sample_newton:exception', 'Bad initial guess!');

   end

end

% start the bisection method

ind = 1; % iteration counter

while abs(fc(1))>tol && ind < max_iter

% complete the code to evalute the function and derivative at xk

% complete the code to update xc

if abs(fc(2))<1e-8 % check derivative isn't nearly zero

fprintf('Derivative of f at x_c is very close to zero, the code will now abort.\n');

error('sample_newton:exception', 'Bad initial guess!');

end

if abs(xc)>1e8 % check x_c isn't heading out to infinity

fprintf('x_c appears to be diverging, the code will now abort.\n');

error('sample_newton:exception', 'Bad initial guess!');

end

fprintf('At Iter. # = %4d, x_c = %10.4e and f(x_c) = % 10.4e.\n', ind, xc, fc(1));

ind = ind + 1; % increase the iteration counter

end

end

0 0
Add a comment Improve this question Transcribed image text
Answer #1

function sample_newton(f, xc, tol, max_iter)

% sample_newton(f, xc, tol, max_iter)

% finds a root of the given function f over the interval [a, b] using Newton-Raphson method

% IN:

% f - the target function to find a root of

% function handle with two outputs, f(x), f'(x)

% e.g., f=@(x) [sin(x);cos(x)];

% xc - the initial guess to start the Newton method

% tol - the tolerance to stop the iterative method

% max_iter - the maximum iterations allowed

% OUT:

% none

% if there is no user given tolerance, the code will pick one

if nargin < 2
  
xc = 0;
  
tol = 1.0e-5;
  
max_iter = 1000;
  
elseif nargin < 3
  
tol = 1.0e-5;
  
max_iter = 1000;
  
elseif nargin < 4
  
max_iter = 1000;
  
end

% check to see if we can start the code

fc = f(xc);

if length(fc)~=2
  
error('sample_newton:exception','Incorrect function handle type');
  
end

if abs(fc(1)) < tol
  
fprintf('We have found an (approximated) root: x_c = % 10.4e and f(x_c) = % 10.4e.\n', xc, fc);
  
else
if abs(fc(2)) < 1e-8
  
fprintf('derivative of f at x_c is very close to zero, the code will now abort.\n');
  
error('sample_newton:exception', 'Bad initial guess!');
  
end
  
end

% start the bisection method

ind = 1; % iteration counter

while abs(fc(1))>tol && ind < max_iter
  
% complete the code to evalute the function and derivative at xk
fc = f(xc);
% complete the code to update xc
xc = xc - fc(1)/fc(2);
if abs(fc(2))<1e-8 % check derivative isn't nearly zero
  
fprintf('Derivative of f at x_c is very close to zero, the code will now abort.\n');
  
error('sample_newton:exception', 'Bad initial guess!');
  
end
  
if abs(xc)>1e8 % check x_c isn't heading out to infinity
  
fprintf('x_c appears to be diverging, the code will now abort.\n');
  
error('sample_newton:exception', 'Bad initial guess!');
  
end
  
fprintf('At Iter. # = %4d, x_c = %10.4e and f(x_c) = % 10.4e.\n', ind, xc, fc(1));
  
ind = ind + 1; % increase the iteration counter
  
end

end

Add a comment
Know the answer?
Add Answer to:
I'm working on the newton's method on matlab, could someone help me and show what two...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • 5.1.2 Open Methods - Newton-Raphson Method Xi+1= xi – FOTO Matlab Code Example:4 function mynewtraph (f,...

    5.1.2 Open Methods - Newton-Raphson Method Xi+1= xi – FOTO Matlab Code Example:4 function mynewtraph (f, f1,x0,n) Xx0; for ilin x = x - f(x)/f1(x); disp (li if f(x) <0.01 f(x))) break end end end Matlab Code from Chapra function [root, ea, iter)=newtraph (func,dfunc, xr, es,maxit,varargin) newtraph: Newton-Raphson root location zeroes 8 [root, ea, iter)-newtraph (func, dfunc, xr, es,maxit,pl,p2, ...): $uses Newton-Raphson method to find the root of fune input: func- name of function 8dfunc = name of derivative of...

  • Newton's Method in MATLAB During this module, we are going to use Newton's method to compute...

    Newton's Method in MATLAB During this module, we are going to use Newton's method to compute the root(s) of the function f(x) = x° + 3x² – 2x – 4 Since we need an initial approximation ('guess') of each root to use in Newton's method, let's plot the function f(x) to see many roots there are, and approximately where they lie. Exercise 1 Use MATLAB to create a plot of the function f(x) that clearly shows the locations of its...

  • This is Matlab Problem and I'll attach problem1 and its answer for reference. We were unable...

    This is Matlab Problem and I'll attach problem1 and its answer for reference. We were unable to transcribe this imageNewton's Method We have already seen the bisection method, which is an iterative root-finding method. The Newton Rhapson method (Newton's method) is another iterative root-finding method. The method is geometrically motivated and uses the derivative to find roots. It has the advantage that it is very fast (generally faster than bisection) and works on problems with double (repeated) roots, where the...

  • Please help me fix this halleyroot funtion , in matlab function [x, er, n] = Halleyroot(fun,x1,maxtol,maxitr)...

    Please help me fix this halleyroot funtion , in matlab function [x, er, n] = Halleyroot(fun,x1,maxtol,maxitr) if (nargin < 5), maxitr = 25; end if (nargin < 4), maxtol = 1e-4; end k = 0; er = 1; x = x1; funder= derivative(fun); while er >= maxtol && k < maxitr k = k+1; % increment the iteration number xold = x; x = xold-fun(xold)/funder(xold); er = abs((x-xold)/x); fprintf('iter = %i\t x = %f\t f(x) = %f\t er = %f...

  • Page 73, as mentioned in the stated question, is provided below 1. Consider a new root-finding...

    Page 73, as mentioned in the stated question, is provided below 1. Consider a new root-finding method for solving f(x) = 0. Successive guesses for the root are generated from the following recurrence formula: Xn+1 = In f(xn) fhen + f(xn)] – F(Xn) (1) Write a user-defined function with the function call: [r, n] = Root fun (f, xl, tol, N) The inputs and outputs are the same as for the user-defined function Newton described on page 73 of Methods....

  • % Bisection.m Lines of code 17-26 and 43-47 are bold % This code finds the root...

    % Bisection.m Lines of code 17-26 and 43-47 are bold % This code finds the root of a function f(x) in the interval [a, b] using the Bisection method % % It uses f.m to define f(x), and assumes f(x) is continuous % It requires specification of a, b and the maximum error % It defines error using |f(xnew)| % Define inputs for problem a=0; %Defines lower limit of initial bracketing interval b=1; %Defines upper limit of initial bracketing interval...

  • Programming Language: MATLAB Problem 3: (5 Points) Write a function with the header: function [R] -myNewtonRaphson...

    Programming Language: MATLAB Problem 3: (5 Points) Write a function with the header: function [R] -myNewtonRaphson (f, fp, x0, tol) which takes as input f: a function handle fp: a function handle to the derivative of f (note how I do it in the test case). x0: the initial guess of the root tol: a tolerance above which the algorithm will keep iterating. Tips: . Be sure to include an iteration counter which will stop the while-loop if the number...

  • 45-3. Modify the code used in Example 4 to find the root only at f(x)<0.01 using...

    45-3. Modify the code used in Example 4 to find the root only at f(x)<0.01 using Newton-Rephson Method without showing any iteration. Also find the root of equation, f(x) = x 9-3x -10, take initial guess, Xo=2 العقدة College of 9:05 mybb.qu.edu.ca Numerical Methods (Lab.) GENG 300 Summer 2020 5.1.2 Open Methods - Newton-Raphson Method f(x) *1+1 = x; - Matlab Code Example:4 function mynewtraph.t1.x0,-) XXO for ilin x - x - x)/1 x) disp 1 x) <0.01 break end...

  • Please do this in Matlab. Not sure if you need this code: e cofunction [x, er,...

    Please do this in Matlab. Not sure if you need this code: e cofunction [x, er, n] = FixedPoint(g, x1, maxtol, maxitr) if nargin < 4, maxitr = 25; end if nargin < 3, maxtol = 1e-3; end k = 0 ;    er = 1; x = x1;    while er >= maxtol && k < maxitr k=k+1; xold = x; x=g(x); er=abs((x-xold)/x); fprintf('iter = %i, x = %e, er = %e ', k,x,er); end n=k; if n ==...

  • clearvars close all clc tol = 0.0001; % this is the tolerance for root identification xold...

    clearvars close all clc tol = 0.0001; % this is the tolerance for root identification xold = 0.5; % this is the initial guess test = 1; % this simply ensures we have a test value to enter the loop below. %If we don't preallocate this, MATLAB will error when it trys to start the %while loop below k = 1; %this is the iteration counter. Similar to "test" we need to preallocate it %to allow the while loop to...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT