Beispiel #1
0
 public void RemoveVector(Vector vector)
 {
     if (GetSize() > vector.GetSize())
     {
         Array.Resize(ref vector.vector, GetSize());
     }
     else
     {
         Array.Resize(ref this.vector, vector.GetSize());
     }
     for (int i = 0; i < this.vector.Length; i++)
     {
         this.vector[i] = this.vector[i] - vector.vector[i];
     }
 }
Beispiel #2
0
        public static Vector RemovingVectors(Vector vc1, Vector vc2)
        {
            int lengthNew = vc2.GetSize();

            if (vc1.GetSize() > vc2.GetSize())
            {
                lengthNew = vc1.GetSize();
            }

            Vector vc = new Vector(vc1);

            vc.RemoveVector(vc2);

            return(vc);
        }
Beispiel #3
0
        public static Vector AdditionVectors(Vector vc1, Vector vc2)
        {
            int lengthNew = vc2.GetSize();

            if (vc1.GetSize() > vc2.GetSize())
            {
                lengthNew = vc1.GetSize();
            }

            Vector vc = new Vector(vc1);

            vc.AddVector(vc2);

            return(vc);
        }
Beispiel #4
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 (components[i] != vector.components[i])
                {
                    return(false);
                }
            }
            return(true);
        }
Beispiel #5
0
        public override bool Equals(object obj)
        {
            if (obj == this)
            {
                return(true);
            }
            if (obj == null || obj.GetType() != this.GetType())
            {
                return(false);
            }
            Vector vc = (Vector)obj;


            bool equalComponent = true;

            if (vc.GetSize() == GetSize())
            {
                for (int i = 0; i < vc.vector.Length; i++)
                {
                    if (vc.GetComponentByIndex(i) != GetComponentByIndex(i))
                    {
                        equalComponent = false;
                    }
                }
            }

            return(equalComponent);
        }
Beispiel #6
0
        public void Subtract(Vector vector)
        {
            if (ReferenceEquals(vector, null))
            {
                throw new NullReferenceException("Vector must be not null");
            }

            if (vector.components.Length > components.Length)
            {
                Array.Resize(ref components, vector.GetSize());
            }

            for (int i = 0; i < vector.GetSize(); i++)
            {
                components[i] -= vector.components[i];
            }
        }
Beispiel #7
0
        public static double ScalarComposition(Vector vc1, Vector vc2)
        {
            int lengthMin = vc2.GetSize();

            if (vc1.GetSize() < vc2.GetSize())
            {
                lengthMin = vc1.GetSize();
            }

            double sum = 0;

            for (int i = 0; i < lengthMin; i++)
            {
                sum = sum + vc1.vector[i] * vc2.vector[i];
            }

            return(sum);
        }
Beispiel #8
0
        public Vector(Vector vector)
        {
            if (ReferenceEquals(vector, null))
            {
                throw new NullReferenceException("Vector must be not null");
            }

            components = new double[vector.GetSize()];
            vector.components.CopyTo(components, 0);
        }
Beispiel #9
0
        public static double ScalarProduct(Vector vectorA, Vector vectorB)
        {
            double result  = 0;
            double minSize = Math.Min(vectorA.GetSize(), vectorB.GetSize());

            for (int i = 0; i < minSize; i++)
            {
                result += vectorA._components[i] * vectorB._components[i];
            }
            return(result);
        }
Beispiel #10
0
        public static double GetScalarMultiplication(Vector vector1, Vector vector2)
        {
            int    minArraysLength = Math.Min(vector1.GetSize(), vector2.GetSize());
            double scalar          = 0;

            for (int i = 0; i < minArraysLength; i++)
            {
                scalar += vector1.components[i] * vector1.components[i];
            }

            return(scalar);
        }
Beispiel #11
0
        public void Subtract(Vector vector)
        {
            var size = Math.Max(vector.GetSize(), GetSize());

            if (_components.Length < vector._components.Length)
            {
                var componentsTemp = new double[size];
                Array.Copy(_components, componentsTemp, _components.Length);
                _components = componentsTemp;
            }

            for (int i = 0; i < vector._components.Length; i++)
            {
                _components[i] -= vector._components[i];
            }
        }
Beispiel #12
0
        public Vector GetDifference(Vector v)
        {
            if (GetSize() < v.GetSize())
            {
                double[] newComponents = new double[v.Components.Length];
                Array.Copy(Components, newComponents, Components.Length);
                Components = newComponents;
            }

            for (int i = 0; i < v.Components.Length; i++)
            {
                Components[i] -= v.Components[i];
            }

            return(this);
        }
Beispiel #13
0
        static void Main(string[] args)
        {
            Vector v1 = new Vector(5);
            Vector v2 = new Vector(v1);
            Vector v3 = new Vector(new double[] { 1, 2, 3, 4, 5, 6, 8 });
            Vector v4 = new Vector(new double[] { 0, 3, 5, 8, 10, 12, 14, 16 });

            Console.WriteLine(v1.ToString());
            Console.WriteLine(v2.ToString());
            Console.WriteLine(v3.ToString());
            Console.WriteLine(v4.ToString());

            Console.WriteLine(v4.GetSum(v3));

            Console.WriteLine(v4.ToString());

            v3.GetDifference(v4);

            Console.WriteLine(v3.GetSize());

            Console.WriteLine(v3.GetTurn());

            Console.WriteLine(v3.GetProductWithScalar(2));

            Console.WriteLine(v3.GetElementByIndex(6));

            Console.WriteLine(v3.Equals(v2));

            v1.SetElementByIndex(0, 7);
            Console.WriteLine(v1.ToString());

            Console.WriteLine(v2.ToString());

            Vector v6 = Vector.GetSum(v1, v3);

            Console.WriteLine(v6.ToString());

            double scalarProduct = Vector.GetScalarProductOfVectors(v1, v6);

            Console.WriteLine(scalarProduct);
        }
Beispiel #14
0
        public static double ScalarProduct(Vector vector1, Vector vector2)
        {
            if (ReferenceEquals(vector1, null))
            {
                throw new NullReferenceException("Vector1 must be not null");
            }

            if (ReferenceEquals(vector2, null))
            {
                throw new NullReferenceException("Vector2 must be not null");
            }

            int    minSize            = Math.Min(vector1.GetSize(), vector2.GetSize());
            double multipliedPairsSum = 0;

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

            return(multipliedPairsSum);
        }
Beispiel #15
0
        static void Main(string[] args)
        {
            double[] array  = new double[] { 1, 2, 3, 4, 5, 6, 7 };
            double[] array1 = new double[] { 6, 9, 11, 13, 15, 17, 19, 20, 2 };

            Vector vector1 = new Vector(5);
            Vector vector2 = new Vector(array1);
            Vector vector3 = new Vector(7, array);
            Vector vector4 = new Vector(vector2);

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

            vector1.AddVector(vector4);
            Console.WriteLine($"Прибавление вектора1 к вектору3 = {vector1.ToString()}");

            vector1.SubtractVector(vector3);
            Console.WriteLine($"Вычитание вектора3 из измененного вектора1 = {vector1.ToString()}");

            vector4.MultiplyByNumber(5);
            Console.WriteLine($"Умножение вектора4 на скаляр 5 = {vector4.ToString()}");

            vector2.Turn();
            Console.WriteLine($"Разворот вектора = {vector2.ToString()}");

            Console.WriteLine($"Модуль измененного вектора3 = {vector3.GetLength()}");

            Console.WriteLine($"Компонент вектора4 под индексом - 3 = {vector4.GetComponent(3)}");

            Console.WriteLine($"Сложение вектора1 и вектора3 = {Vector.Add(vector1, vector3).ToString()}");

            Console.WriteLine($"Вычитание из вектора1 вектора3 = {Vector.Subtract(vector1, vector3).ToString()}");

            Console.WriteLine($"Скалярное произведение вектора3 и вектора4 = {Vector.GetScalarMultiplication(vector3, vector4).ToString()}");

            Console.WriteLine($"Сравнивание вектора4 с вектором2 - {vector4.Equals(vector2)}");

            Console.ReadKey();
        }
Beispiel #16
0
 public Vector(Vector cloneVector)
 {
     components = new double[cloneVector.GetSize()];
     Array.Copy(cloneVector.components, components, cloneVector.components.Length);
 }