function [xList, errorList] = FalsePosition(f, p0, p1, errorAllowed) % %FalsePosition(f, p0, p1, errorAllowed) %This function finds the root of a function using the method of False Position % %Make sure the number of arguments is correct if(nargin ~= 4) error('That is an incorrect number of arguments') end %A few necesary before we begin pkg load symbolic; warning('off','OctSymPy:sym:rationalapprox'); %Constant variables maxIt = 50; %Variables cnt = 2; q0 = double(subs(f,p0)); q1 = double(subs(f,p1)); p = 0; q = 0; currentError = errorAllowed + 1; %Loop until you find a value within the error or you reach the maximum number of itterations while((cnt <= maxIt) && (currentError >= errorAllowed)) p = p1 - (q1 * (p1 - p0))/(q1 - q0); currentError = abs(p - p1); %Add Values to lists xList(end+1) = p; errorList(end+1) = currentError; ++cnt; q = double(subs(f,p)); if((q * q1) < 0) p0 = p1; q0 = q1; end p1 = p; q1 = q; end end