public void Simple1() { var complexNumber1 = new ComplexNumber(4, 3); var complexNumber2 = new ComplexNumber(6, 2); var complexNumber3 = new ComplexNumber(-2, -4); var complexNumber4 = new ComplexNumber(3, -8); var complexNumber5 = new ComplexNumber(8, 3); var resultComplexNumber = complexNumber1.Subtract(complexNumber2); Assert.AreEqual(1, resultComplexNumber.Imaginary); Assert.AreEqual(-2, resultComplexNumber.Real); resultComplexNumber = complexNumber1.Subtract(complexNumber3); Assert.AreEqual(7, resultComplexNumber.Imaginary); Assert.AreEqual(6, resultComplexNumber.Real); resultComplexNumber = complexNumber1.Subtract(complexNumber4); Assert.AreEqual(11, resultComplexNumber.Imaginary); Assert.AreEqual(1, resultComplexNumber.Real); resultComplexNumber = complexNumber1.Subtract(complexNumber5); Assert.AreEqual(0, resultComplexNumber.Imaginary); Assert.AreEqual(-4, resultComplexNumber.Real); }
public void EvaluatePolynomial(Polynomial polynomial, Polynomial derivationPolynomial) { int rootIdentifier; for (int i = 0; i < imageWidth; i++) { for (int j = 0; j < imageHeight; j++) { double xCoordinate = xMin + i * xStep; double yCoordinate = yMin + j * yStep; ComplexNumber currentPoint = new ComplexNumber() { Re = xCoordinate, Im = yCoordinate }; for (int k = 0; k < ITERATIONS_COUNT; k++) { var diff = polynomial.SolvePolynomial(currentPoint) .Divide(derivationPolynomial.SolvePolynomial(currentPoint)); currentPoint = currentPoint.Subtract(diff); if (IsAchievedAccuracy(diff)) { k--; } } rootIdentifier = FindRoots(roots, currentPoint); outputImage.SetPixelsColors(j, i, rootIdentifier); } } outputImage.SaveImage(outputPath); }
public void SubtractExample() { var complexNumber1 = new ComplexNumber(4, 3); var complexNumber2 = new ComplexNumber(6, 2); var result = complexNumber1.Subtract(complexNumber2); Assert.AreEqual(result.Imaginary, 1); Assert.AreEqual(result.Real, -2); }
static void Main(string[] args) { Console.WriteLine("=== Complex Numbers ==="); Console.Write("Primo Numero - Parte Reale: "); var realOneString = Console.ReadLine(); double.TryParse(realOneString, out double realOne); Console.Write("Primo Numero - Parte Immaginaria: "); var immagOneString = Console.ReadLine(); double.TryParse(immagOneString, out double immagOne); Console.Write("Secondo Numero - Parte Reale: "); var realTwoString = Console.ReadLine(); double.TryParse(realTwoString, out double realTwo); Console.Write("Secondo Numero - Parte Immaginaria: "); var immagTwoString = Console.ReadLine(); double.TryParse(immagTwoString, out double immagTwo); Console.Write("Operazione (+, -, *, /): "); var op = Console.ReadLine(); var cnOne = new ComplexNumber(realOne, immagOne); var cnTwo = new ComplexNumber(realTwo, immagTwo); ComplexNumber result; switch (op) { case "+": result = cnOne.Add(cnTwo); Console.WriteLine($"ADD: ({result.Real}, {result.Immag})"); break; case "-": result = cnOne.Subtract(cnTwo); Console.WriteLine($"SUBTRACT: ({result.Real}, {result.Immag})"); break; case "*": result = cnOne.Multiply(cnTwo); Console.WriteLine($"MULTIPLY: ({result.Real}, {result.Immag})"); break; case "/": result = cnOne.Divide(cnTwo); Console.WriteLine($"DIVIDE: ({result.Real}, {result.Immag})"); break; default: Console.WriteLine("Operazione invalida"); break; } Console.WriteLine($"Modulo di ({cnOne.Real}, {cnOne.Immag}): {cnOne.Modulo}"); Console.WriteLine($"Coniugato di ({cnTwo.Real}, {cnTwo.Immag}): ({cnTwo.Coniugato.Real}, {cnTwo.Coniugato.Immag})"); }