Hello, I am a new user of MatLab and recently had to write up a bisection method program for the function f(x) = x + 2*cos(x).
This is what I got:
function[f] = hw3_bisection(tol,N,a,b)f = @(x) (x + 2*cos(x));for counter = 1:N x = (a+b)/2; while abs(f(x)) < tol x = (a+b)/2; if f(x) == 0 f = x; end if f(a) * f(x) > 0 a = x; else b = x; end endend
but the problem for me is that the output is always x + 2*cos(x), and even if I say disp(x) it gives me ans = x + 2*cos(x) and the (a+b)/2 without going through the rest of the loop. How do I fix this to get the real solution?
Best Answer