digits = 2000; |
For[i = 1, i <= NumberOfGuesses, i++, |
{k = 0; X = SetAccuracy[setInitial[[i]], digits]; |
While[Abs[f[X]] > 10∧−1000 && k <= 20, |
{k = k + 1; fX = SetAccuracy[f[X], digits]; |
f1X = SetAccuracy[f′[X], digits]; |
Y = SetAccuracy[X − fX/f1X, digits]; |
fY = SetAccuracy[f[Y], digits]; |
Z = SetAccuracy[Y − (fX/(fX − 2 fY)) (fY/f1X), digits]; |
fZ = SetAccuracy[f[Z], digits]; t = fY/fX; s = fZ/fX; u = fZ/fY; |
Weight = SetAccuracy[1 + 2 t + 4 s + 5 t∧2 + 12 t∧3 + u/(1 + u∧2), |
digits]; |
X = SetAccuracy[Z − Weight (fZ/f1X), digits];};]; |
Print[Column[{ |
“The number of full iterations is:” k, |
“The zero is:” N[X, 64], |
“The residual norm of the approximate zero is:” N[Abs[f[X]], |
5]}, Background -> LightRed, LightBrown, LightBlue, |
Frame -> All]];}]; // AbsoluteTiming |