Files
OctaveFunctions/NewNewton.m

26 lines
781 B
Matlab

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