function [xList, errorList] = NewNewton (f, startingValue, errorAllowed) % %NewNewton (f, startingValue, errorAllowed) %This function computes the root of a function using the modified Newton's method % pkg load symbolic; warning('off','OctSymPy:sym:rationalapprox'); oldAnswer = startingValue; newAnswer = 0; currentError = errorAllowed + 1; cnt = 1; maxIt = 50; fp = diff(f); fpp = diff(fp); while((currentError >= errorAllowed) && (cnt < maxIt)) newAnswer = oldAnswer - ((double(subs(f,oldAnswer)) * double(subs(fp,oldAnswer)))/(double(subs(fp,oldAnswer))^2 - (double(subs(f,oldAnswer)) * double(subs(fpp,oldAnswer))))); currentError = abs(newAnswer - oldAnswer); xList(end+1) = newAnswer; errorList(end+1) = currentError; oldAnswer = newAnswer; end end