private static void FindSolutionByNewton() { iteration = 0; for (int q = 0; q < 25; q++) { var diff = poly.Evaluate(chosenComplex).Divide(derivationPoly.Evaluate(chosenComplex)); chosenComplex = chosenComplex.Subtract(diff); if (Math.Pow(diff.RealPart, 2) + Math.Pow(diff.ImaginaryPart, 2) >= 0.5) { q--; } iteration++; } }
private static float FindSolution(Polynome polynome, Polynome polynomeDerivated, ref ComplexNumber complexNumber) { // find solution of equation using newton's iteration float it = 0; for (int q = 0; q < 30; q++) { ComplexNumber diff = polynome.Evaluate(complexNumber).Divide(polynomeDerivated.Evaluate(complexNumber)); complexNumber = complexNumber.Subtract(diff); if (Math.Pow(diff.RealPart, 2) + Math.Pow(diff.ImaginaryPart, 2) >= 0.5) { q--; } it++; } return(it); }