Esempio n. 1
0
        public void Subtract(Vector secondVector)
        {
            int maxDimension = Math.Max(GetSize(), secondVector.GetSize());

            Array.Resize(ref components, maxDimension);
            for (int i = 0; i < secondVector.GetSize(); i++)
            {
                components[i] -= secondVector.components[i];
            }
        }
Esempio n. 2
0
        public Vector Subtract(Vector vector)
        {
            Array.Resize(ref coordinates, Math.Max(GetSize(), vector.GetSize()));

            for (int i = 0; i < vector.GetSize(); i++)
            {
                coordinates[i] -= vector.coordinates[i];
            }

            return(this);
        }
Esempio n. 3
0
        public void Substract(Vector vector)
        {
            if (components.Length < vector.GetSize())
            {
                Array.Resize(ref components, vector.GetSize());
            }

            for (int i = 0; i < vector.components.Length; i++)
            {
                components[i] -= vector.components[i];
            }
        }
Esempio n. 4
0
        public void Subtraction(Vector vector)
        {
            if (GetSize() < vector.GetSize())
            {
                Array.Resize(ref coordinates, vector.GetSize());
            }

            for (int i = 0; i < vector.GetSize(); i++)
            {
                coordinates[i] -= vector.coordinates[i];
            }
        }
Esempio n. 5
0
        public override bool Equals(object obj)
        {
            if (ReferenceEquals(obj, this))
            {
                return(true);
            }

            if (ReferenceEquals(obj, null) || obj.GetType() != GetType())
            {
                return(false);
            }

            Vector p = (Vector)obj;

            if (GetSize() == p.GetSize())
            {
                for (int i = 0; i < GetSize(); i++)
                {
                    if (components[i] != p.components[i])
                    {
                        return(false);
                    }
                }
                return(true);
            }

            return(false);
        }
Esempio n. 6
0
        public override bool Equals(object o)
        {
            if (ReferenceEquals(o, this))
            {
                return(true);
            }

            if (ReferenceEquals(o, null) || o.GetType() != GetType())
            {
                return(false);
            }

            Vector vector = (Vector)o;

            if (vector.GetSize() != GetSize())
            {
                return(false);
            }

            for (int i = 0; i < GetSize(); i++)
            {
                if (components[i] != vector.components[i])
                {
                    return(false);
                }
            }

            return(true);
        }
Esempio n. 7
0
        public override bool Equals(object obj)
        {
            if (ReferenceEquals(obj, this))
            {
                return(true);
            }

            if (ReferenceEquals(obj, null) || obj.GetType() != GetType())
            {
                return(false);
            }

            Vector vector = (Vector)obj;

            if (GetSize() != vector.GetSize())
            {
                return(false);
            }

            for (int i = 0; i < GetSize(); i++)
            {
                if (coordinates[i] != vector.coordinates[i])
                {
                    return(false);
                }
            }

            return(true);
        }
Esempio n. 8
0
        private static bool EqualCoordinates(Vector vector1, Vector vector2)
        {
            if (vector1.GetSize() != vector2.GetSize())
            {
                return(false);
            }

            int n = vector1.GetSize();

            for (int i = 0; i < n; i++)
            {
                if (vector1.coordinates[i] != vector2.coordinates[i])
                {
                    return(false);
                }
            }

            return(true);
        }
Esempio n. 9
0
        public static double Multiply(Vector vector1, Vector vector2)
        {
            double vectorsMultiplication = 0;
            int    n = Math.Min(vector1.GetSize(), vector2.GetSize());

            for (int i = 0; i < n; i++)
            {
                vectorsMultiplication += vector1.coordinates[i] * vector2.coordinates[i];
            }

            return(vectorsMultiplication);
        }
Esempio n. 10
0
        public static double ScalarProduct(Vector vector1, Vector vector2)
        {
            int    min    = Math.Min(vector1.GetSize(), vector2.GetSize());
            double scalar = 0;

            for (int i = 0; i < min; i++)
            {
                scalar += vector1.coordinates[i] * vector2.coordinates[i];
            }

            return(scalar);
        }
Esempio n. 11
0
        public static double GetScalarMultiplication(Vector firstVector, Vector secondVector)
        {
            int    minDimension = Math.Min(firstVector.GetSize(), secondVector.GetSize());
            double result       = 0;

            for (int i = 0; i < minDimension; i++)
            {
                result += firstVector.components[i] * secondVector.components[i];
            }

            return(result);
        }
Esempio n. 12
0
        public static double MultiplyVectors(Vector vector1, Vector vector2)
        {
            int min = Math.Min(vector1.GetSize(), vector2.GetSize());

            double result = 0;

            for (int i = 0; i < min; i++)
            {
                result += vector1.components[i] * vector2.components[i];
            }

            return(result);
        }
Esempio n. 13
0
        public static double GetScalarMultiplication(Vector vector1, Vector vector2)
        {
            int minSize = Math.Min(vector1.GetSize(), vector2.GetSize());

            double result = 0.0;

            for (int i = 0; i < minSize; i++)
            {
                result += vector1.components[i] * vector2.components[i];
            }

            return(result);
        }
Esempio n. 14
0
        public void SubtractVector(Vector vector)
        {
            int size1 = GetSize();
            int size2 = vector.GetSize();

            if (size1 < size2)
            {
                Array.Resize(ref components, size2);
            }

            for (int i = 0; i < size2; i++)
            {
                components[i] -= vector.components[i];
            }
        }
Esempio n. 15
0
        public void AddVector(Vector vector)
        {
            var size1 = GetSize();
            var size2 = vector.GetSize();

            if (size1 < size2)
            {
                Array.Resize(ref components, size2);
            }

            for (var i = 0; i < size2; i++)
            {
                components[i] += vector.components[i];
            }
        }
Esempio n. 16
0
        static void Main(string[] args)
        {
            double[] a = { 1, 2, 3, 4, 5 };
            Vector   q = new Vector(9);
            Vector   v = new Vector(3, a);
            Vector   b = new Vector(a);
            Vector   y = new Vector(v);

            Console.WriteLine(y.Equals(q));
            Console.WriteLine("Вектор v = ");
            Console.WriteLine(v);
            Console.WriteLine("Вектор b = ");
            Console.WriteLine(b);
            Vector c = Vector.Addition(v, b);

            Console.WriteLine("Addition(v,b) = ");
            Console.WriteLine(c);
            Console.WriteLine("Вектор v = ");
            Console.WriteLine(v);
            Console.WriteLine("Вектор b = ");
            Console.WriteLine(b);
            Vector d = Vector.Subtraction(q, c);

            Console.WriteLine(c);
            Console.WriteLine(d);
            Console.WriteLine(q);
            Console.WriteLine(y);
            Console.WriteLine(b.GetSize());
            double scalar = Vector.ScalarProduct(v, b);

            Console.WriteLine(scalar);
            Console.WriteLine(v);
            Console.WriteLine(c);
            v.Addition(d);
            Console.WriteLine(v);
            Console.WriteLine(v.GetSize());
            Console.WriteLine(v.GetLength());
            Console.WriteLine(v.GetComponentByIndex(3));
            v.SetComponentByIndex(3, 12);
            Console.WriteLine(v);
            v.Reverse();
            Console.WriteLine(v);
            Console.WriteLine(v.GetHashCode());
        }
Esempio n. 17
0
        static void Main()
        {
            double[] a       = { 1.1, 2.1, 4, 7.5 };
            Vector   vector1 = new Vector(a);

            double[] b       = { 3, 4, 5, 6, 7 };
            Vector   vector2 = new Vector(b);

            double[] c       = { 1, 1, 1 };
            Vector   vector3 = new Vector(c);

            Console.WriteLine(new Vector(6));
            Console.WriteLine(new Vector(vector2));
            Console.WriteLine(new Vector(a));
            Console.WriteLine(vector1);
            Console.WriteLine(new Vector(6, b));

            Console.WriteLine("Размерность вектора vector2: {0}", vector2.GetSize());

            vector1.SetElement(1, 10);
            Console.WriteLine("Значение вектора на 2 позиции: {0}", vector1.GetElement(1));

            vector2.Add(vector1);
            Console.WriteLine("Суммирование к вектору vector2 вектора vector1: {0}", vector2);

            vector2.Substract(vector1);
            Console.WriteLine("Вычитание от вектора vector2 вектора vector1: {0}", vector2);

            vector2.MultiplyByScalar(3);
            Console.WriteLine("Умножение вектора vector2 на скаляр: {0}", vector2);

            vector2.Reverse();
            Console.WriteLine("Обращение вектора vector2: {0}", vector2);
            Console.WriteLine("Длина вектора vector2: {0}", vector2.GetLength());
            Console.WriteLine("Сравнение на равенство векторов vector1 и vector2: {0}", vector1.Equals(vector2));
            Console.WriteLine("Хэш код вектора vector1: {0}", vector1.GetHashCode());
            Console.WriteLine(vector1);
            Console.WriteLine(vector2);
            Console.WriteLine("Суммирование вектора vector2 и вектора vector1: {0}", Vector.GetSum(vector1, vector2));
            Console.WriteLine("Вычитание вектора vector1 и вектора vector2: {0}", Vector.GetDifference(vector1, vector2));
            Console.WriteLine("Умножение вектора vector2 и вектора vector1: {0}", Vector.GetScalarMultiplication(vector1, vector2));

            Console.ReadLine();
        }
Esempio n. 18
0
        static void Main(string[] args)
        {
            double[] arrayOfVectors = { 21, 17, 33, 41, 2, 3, 6, 9 };
            int      n = 0;

            for (int i = 0; i < arrayOfVectors.Length; i++)
            {
                n++;
            }

            Vector vector  = new Vector(arrayOfVectors);
            Vector vector1 = new Vector(vector);
            Vector vector2 = new Vector(n);
            Vector vector3 = new Vector(n, arrayOfVectors);

            Console.WriteLine("Vector size=" + vector1.GetSize());

            double[] arrayOfVectors1 = { 21, 17, 33, 41, 2, 3, 6, 9 };
            Vector   vector4         = new Vector(arrayOfVectors1);

            Console.WriteLine("Equals=" + vector1.Equals(vector4));

            Console.WriteLine("Sum of vectors=" + vector1.GetAddition(vector4));
            Console.WriteLine("Difference of vecrotrs=" + vector.GetDifference(vector4));

            double scalar = 3;

            Console.WriteLine("Vector multiplied by scalar=" + vector.GetMultipliedByScalar(scalar));

            Console.WriteLine("Vector rotation=" + vector.GetRotation());
            Console.WriteLine("Vector length=" + vector.GetLength());

            Console.WriteLine(vector.GetComponent(2));
            vector.SetComponent(2, 4);

            Console.WriteLine("Static sum of vectors=" + Vector.GetAdditionVectors(vector1, vector4));
            Console.WriteLine("Static difference of vecrotrs=" + Vector.GetDifferenceVectors(vector1, vector4));
            Console.WriteLine("Scalar multiplied of vectors=" + Vector.GetVectorMultipliedByAnotherVector(vector1, vector4));
            Console.Read();
        }
Esempio n. 19
0
        static void Main(string[] args)
        {
            double[] arrayVectors = { 21, 17, 33, 41, 2, 3, 6, 9 };
            int      n            = 0;

            for (int i = 0; i < arrayVectors.Length; i++)
            {
                n++;
            }

            Vector vector  = new Vector(arrayVectors);
            Vector vector1 = new Vector(vector);
            Vector vector2 = new Vector(n);
            Vector vector3 = new Vector(n, arrayVectors);

            Console.WriteLine("Размер Вектора=" + vector1.GetSize());

            double[] arrayVectors1 = { 21, 17, 33, 41, 2, 3, 6, 9 };
            Vector   vector4       = new Vector(arrayVectors1);

            Console.WriteLine("Equals=" + vector1.Equals(vector4));

            Console.WriteLine("Сумма векторов=" + vector1.GetAddition(vector4));
            Console.WriteLine("Разница векторов=" + vector.GetDifference(vector4));

            double scalar = 3;

            Console.WriteLine("Скалярное умножение векторов=" + vector.GetMultipliedByScalar(scalar));

            Console.WriteLine("Разворот векторов=" + vector.GetRotation());
            Console.WriteLine("Длинна векторов=" + vector.GetLength());

            Console.WriteLine(vector.GetComponent(2));
            vector.SetComponent(2, 4);

            Console.WriteLine("Статическая сумма векторов=" + Vector.GetAdditionVectors(vector1, vector4));
            Console.WriteLine("Статическая разница векторов=" + Vector.GetDifferenceVectors(vector1, vector4));
            Console.WriteLine("Скалярное статическое умножение векторов=" + Vector.GetVectorMultipliedByAnotherVector(vector1, vector4));
            Console.Read();
        }
Esempio n. 20
0
        static void Main(string[] args)
        {
            Vector vector1 = new Vector(3);

            Console.WriteLine("Zero vector: " + vector1);

            double[] coordinates = { 1, 3, 4, 6.5, 3, 9 };
            vector1 = new Vector(coordinates);
            Console.WriteLine("vector1: " + vector1);
            Console.WriteLine($"Dimension = {vector1.GetSize()}");
            Console.WriteLine($"Length = {vector1.GetLength()}");

            Vector vector2 = new Vector(vector1);

            Console.WriteLine("vector2: " + vector2);

            if (vector1.Equals(vector2))
            {
                Console.WriteLine("Vectors are the same.");
            }
            else
            {
                Console.WriteLine("Vectors are not the same.");
            }

            vector2.Revert();
            Console.WriteLine("Reverse vector2: " + vector2);
            vector2.MultiplyByScalar(3);
            Console.WriteLine("Vector2 * 3: " + vector2);
            Console.WriteLine($"Vector2[3] = {vector2.GetCoordinate(3)}");

            if (vector1.Equals(vector2))
            {
                Console.WriteLine("Vectors are the same.");
            }
            else
            {
                Console.WriteLine("Vectors are not the same.");
            }

            Console.WriteLine($"Vector1*Vector2 = {Vector.Multiply(vector1, vector2)}");
            Console.WriteLine();

            Console.WriteLine("Check static and dynamic. Second vector is longer.");
            vector1.MultiplyByScalar(2);
            Console.WriteLine("vector1: " + vector1);

            vector2 = new Vector(vector1.GetSize() + 2, coordinates);
            Console.WriteLine("vector2: " + vector2);
            Console.WriteLine($"Set {vector1.GetSize() + 1}-th coordinate equal to 10.");
            vector2.SetCoordinate(vector1.GetSize() + 1, 10);
            Console.WriteLine("vector2: " + vector2);

            Vector vector3 = new Vector(vector2);

            vector2.Add(vector1);
            Console.WriteLine("Dynamic: vector1 + vector2 = " + vector2);
            Console.WriteLine("Static:  vector1 + vector2 = " + Vector.GetSum(vector3, vector1));

            vector2.MultiplyByScalar(2);
            vector3 = new Vector(vector2);
            Console.WriteLine("vector2: " + vector2);
            Console.WriteLine("vector1: " + vector1);
            vector2.Subtract(vector1);
            Console.WriteLine("Dynamic: vector2 - vector1 = " + vector2);
            Console.WriteLine("Static:  vector2 - vector1 = " + Vector.GetDifference(vector3, vector1));

            Console.WriteLine();
            Console.WriteLine("Check static and dynamic. Second vector is shorter.");

            Console.WriteLine("vector1: " + vector1);
            vector2 = new Vector(vector1.GetSize() - 1, coordinates);
            vector2.MultiplyByScalar(3);
            Console.WriteLine("vector2: " + vector2);

            vector3 = new Vector(vector2);
            vector3.Add(vector1);
            Console.WriteLine("Dynamic: vector1 + vector2 = " + vector3);
            Console.WriteLine("Static:  vector1 + vector2 = " + Vector.GetSum(vector2, vector1));

            vector2.MultiplyByScalar(2);
            vector3 = new Vector(vector2);
            Console.WriteLine("vector2: " + vector2);
            Console.WriteLine("vector1: " + vector1);
            vector2.Subtract(vector1);
            Console.WriteLine("Dynamic: vector2 - vector1 = " + vector2);
            Console.WriteLine("Static:  vector2 - vector1 = " + Vector.GetDifference(vector3, vector1));

            Console.ReadKey();
        }
Esempio n. 21
0
 public Vector(Vector vector)
 {
     components = new double[vector.GetSize()];
     Array.Copy(vector.components, components, components.Length);
 }
Esempio n. 22
0
 public Vector(Vector vector)
 {
     coordinates = new double[vector.GetSize()];
     vector.coordinates.CopyTo(coordinates, 0);
 }
Esempio n. 23
0
        static void Main(string[] args)
        {
            Vector zerowVector = new Vector(3);

            Console.WriteLine("zerowVector = " + zerowVector);
            Console.WriteLine(new string('-', 100));

            double[] array           = { 3, 3.75, 2, 44, -5, 54 };
            Vector   arrayVector     = new Vector(array);
            Vector   copyArrayVector = new Vector(arrayVector);

            Console.WriteLine("arrayVector = " + arrayVector);
            Console.WriteLine("copyArrayVector = " + copyArrayVector);
            Console.WriteLine(new string('-', 100));

            Vector partialArrayVector = new Vector(8, array);

            Console.WriteLine("partialTestVector = " + partialArrayVector);
            Console.WriteLine("Размерность partialTesVector = " + partialArrayVector.GetSize());
            Console.WriteLine(new string('-', 100));

            Vector firstVector  = new Vector(new double[] { 3, 3, 4, 4 });
            Vector secondVector = new Vector(new double[] { 1, 3, 7, 8, 8, 8, 4 });

            Console.WriteLine("Сумма векторов {0} и {1} равна:", firstVector, secondVector);
            firstVector.Sum(secondVector);
            Console.WriteLine(firstVector);
            Console.WriteLine(new string('-', 100));

            Console.WriteLine("Разность векторов {0} и {1} равна:", firstVector, secondVector);
            firstVector.Subtract(secondVector);
            Console.WriteLine(firstVector);
            Console.WriteLine(new string('-', 100));

            double scalar = 3;

            Console.WriteLine("Результат умножения вектора {0} на скаляр {1}: ", firstVector, scalar);
            firstVector.MultiplicationByNumber(scalar);
            Console.WriteLine(firstVector);
            Console.WriteLine(new string('-', 100));

            Console.WriteLine("Вектор обратный вектору {0}:", firstVector);
            firstVector.Turn();
            Console.WriteLine(firstVector);
            Console.WriteLine(new string('-', 100));

            Console.WriteLine("Длина вектора {0} : {1:f2}", firstVector, firstVector.GetLength());
            int componentIndex = 3;

            Console.WriteLine("Компонента вектора {0} по индексу {1} : {2}", firstVector, componentIndex, firstVector.GetComponent(componentIndex));
            double newComponent = 55.6;

            firstVector.SetComponent(componentIndex, newComponent);
            Console.WriteLine("Компонента вектора {0} по индексу {1} : {2}", firstVector, componentIndex, firstVector.GetComponent(componentIndex));
            Console.WriteLine(new string('-', 100));

            if (firstVector.Equals(secondVector))
            {
                Console.WriteLine("Вектор {0} равен вектору {1}", firstVector, secondVector);
            }
            else
            {
                Console.WriteLine("Вектор {0} не равен вектору {1}", firstVector, secondVector);
            }
            Console.WriteLine("hashCode вектора {0}: {1}", firstVector, firstVector.GetHashCode());
            Console.WriteLine("hashCode вектора {0}: {1}", secondVector, secondVector.GetHashCode());
            Console.WriteLine(new string('-', 100));

            Console.WriteLine("Сумма векторов {0} и {1} равна: {2}", firstVector, secondVector, Vector.GetSum(firstVector, secondVector));
            Console.WriteLine("Разность векторов {0} и {1} равна: {2}", Vector.GetSum(firstVector, secondVector), firstVector, Vector.GetResidual(Vector.GetSum(firstVector, secondVector), firstVector));
            Console.WriteLine("Скалярное произведение векторов {0} и {1}: {2}", firstVector, secondVector, Vector.GetScalarMultiplication(firstVector, secondVector));
        }