Your file, Secant.m, is a script: any .m file whose first non-comment is not "function" or "classdef" is considered a script. You cannot pass parameters when you call scripts. However, your very first line of code attempts to call your file Secant.m as if it is a function.
Note that if you somehow succeeded in calling Secant from Secant.m then the first thing the invoked Secant would do would be to call Secant, and the first that that would do would be to call Secant, and so on, until MATLAB eventually notices that you are calling the same routine over and over again and terminates the function. You need to be very careful when you have a file invoke itself!
In your other question, remember how I had you move some code to Newton_test.m and had you have Newton.m itself start with "function" ? You need to do the same kind of thing: you need to separate out your definition of Secant from your call to Secant.
Best Answer