Hi, I am getting error on secant problem.

when I type in command window i get the following
Xs=(exp(-x)-x,0,1,.001,3)
Xs=(exp(-x)-x,0,1,.001,3)
Error: Expression or statement is incorrect--possibly unbalanced (, {, or [.
Here is my program
function Xs=secantroot (fun,Xa,Xb,tol,n)
for i=1:n
funXb=feval(fun,Xb);
Xi=Xb-funXb*(Xa-Xb)/(feval(fun,Xa)-funXb);
if abs((Xi-Xb)/Xb)<tol
Xs=Xi;
break
end
Xa=Xb;
Xb=Xi;
end
if i==n
fprintf('solution is not in intersection %g\n',n)
Xs=('sorry no answer');
end
I appreciate your help. I am beginner.

 Accepted Answer

There is no error in your function. To call it:
fun=@(x)exp(-x)-x
Xa=0
Xb=1
tol=0.001
n=3
Xs=secantroot (fun,Xa,Xb,tol,n)

More Answers (0)

Categories

Find more on Operators and Elementary Operations in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!