1. Engineering
2. Computer Science
3. write a function mfile that implements the secant method your...

# Question: write a function mfile that implements the secant method your...

###### Question details

Write a function m-file that implements the secant method. Your function should accept the following inputs (in order):

1. A function defining the roots problem
2. A vector of two initial guesses (first element is the first guess, second element is second guess)
3. A stopping criterion ( es ) for the numerical solution with a default value of 1e-5
4. A maximum iteration count for the numerical solution with a default value of 30
5. An arbitrary number of parameter values associated with the roots problem

Your function should output the following four scalar outputs (in order):

1. The root estimate
2. The residual in the numerical solution
3. The approximate relative error in the numerical solution
4. The number of iterations required for convergence

I recommend you use the examples newtonraphson.m and/or bisect_param.m as starting points from which you develop your own function mfile for the secant method.

Note: Test cases 3, 4, and 5 test the functionality of the default values for unspecified inputs and the parameter passing through varargin.

function [xroot,residual,ea,iter_count] = student_solution(fun,xi,es,max_it,varargin)

if nargin<3||isempty(es), es=1e-5;end

if nargin<4||isempty(max_it), max_it=30;end

xroot = xi; %initial guesses

for iter = 1:max_it

xr_old = xroot;

xr_older = xr_old;

xroot = xr_old - (fun(xr_old,varargin{:}).*(xr_older-xr_old))./(fun(xr_older,varargin{:}-fun(xr_old,varargin{:})));

if xroot ~= 0, ea = (xroot-xr_old)./xroot; end

if abs(ea) <= es, break, end

iter_count= max_it;

end