Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
            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);
            }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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})");
        }