Not really for homework, but it is a script I am working on. It involves utilizing the Bisection Method for solving equations in one variable. However, I cannot seem to get it to work properly. It seems to enter the while loop and become stuck their. When I execute it by hand, it appears to work, but obviously there is some sort of code fallacy that I am not seeing.
The Attempt at a Solution
function bisection(F, a1, b1, e) %F represents the function we are analyzing %F must be passed into the function as a string %i.e., F='x^2+3*x'; %[a1,b1] represents the interval in which the zero exists %e represents the desired tolerance p1=(a1+b1)/2; p2=0; x=p1; f=eval(F); if f == 0 p1 else while abs(p1-p2)-e >= 0 p1=(a1+b1)/2; x=a1; F1=eval(F); x=p1; F2=eval(F); if F1*F2 < 0 b1=p1; else a1=p1; end p2=a1+b1/2; end p2 end end