Determine the root of the given equation (3*x*e^x)-1=0 for x ∈ [0,1] using Newton-Raphson and Secant methods. Stop calculation after seven iterations. I've coded a code but I'm not sure it is right or not…
%f is non-linear function.
%fder is derivation of f.
%x0 is initial value of iteration.
%e is tolerance of f function.
%d is first condition tolerance value.
%y is error amount.
%max is maximum iteration number.
syms xx0 = 0;x1 = 1;d = 0.000001;e = 0.00001;max = 7;f = @(x) 3*x*exp(x)-1;fder = @(x) 3*(exp(x)+exp(x))*x; for iteration = 0:max t = fder(x0); %to check the derivation is zero or not.
if abs(t)<e disp('Derivation value is very close to zero, algorithm stops') break end x1 = x0-(f(x0)/fder(x0)); error = abs(x1-x0); odderror = 2*error/(abs(x1)+d); x0 = x1; y = f(x0); if(error<d)||(odderror<d)||(abs(y)<e) break end end disp('Wanted root value') x1 disp('Error amount') y disp('Iteration number') iteration
Best Answer