static void Main(string[] args)
        {
            //Reader.CacheAdd("2 4 2 = 4 2 2 = 2 2 -1 = 1 0 1"); //skriptovy priklad
            //Reader.CacheAdd("-5 4 1 / -7 6 1 / 4 -4 -2 / 1 2 1");
            Reader.CacheAdd("0 0 0.33333333 0 0 0 / 0.5 0 0.3333333 0 0 0 / 0.5 0 0 0 0 0.5 / 0 0 0 0 0 0.5 / 0 1 0.3333333 0.5 0 0 / 0 0 0 0.5 1 0 / 1 0 1 0 1 0 ");
            int N = 6;

            A = new double[N, N];
            for (int i = 0; i < N*N; i++)
                A[i % N, i / N] = Reader.ReadDouble();

            double[] pom = new double[N];
            for (int i = 0; i < N; i++)
                pom[i] = Reader.ReadDouble();

            Vektor x = new Vektor(pom);
            Vektor xprev = x;
            Vektor y;

            Console.Write("{0} : (", 0); x.Vypis(); Console.Write(") -"); Console.WriteLine();

            for (int i = 0; i < 20; i++)
            {
                y = Pocitej.NasobeniMaticeVektorem(A, x);
                x = y.Clone();
                Pocitej.JednotkovaVelikost(x);

                Console.Write("{0} : (", i+1);
                x.Vypis();
                Console.Write(") {0}", String.Format("{0:0.###}", Pocitej.SkalarniSoucin(xprev, y)));
                Console.WriteLine();

                xprev = x;
            }
        }
        static void Main(string[] args)
        {
            Reader.CacheAdd("2 4 2 = 4 2 2 = 2 2 -1 = 1 0 1"); //skriptovy priklad
            //Reader.CacheAdd("-5 4 1 / -7 6 1 / 4 -4 -2 / 1 2 1");

            A = new int[3, 3];
            for (int i = 0; i < 9; i++)
                A[i % 3, i / 3] = Reader.ReadInt();

            double[] pom = new double[3];
            for (int i = 0; i < 3; i++)
                pom[i] = Reader.ReadInt();

            Vektor x = new Vektor(pom);
            Vektor xprev = x;
            Vektor y;

            Console.Write("{0} : (", 0); x.Vypis(); Console.Write(") -"); Console.WriteLine();

            for (int i = 0; i < 20; i++)
            {
                y = Pocitej.NasobeniMaticeVektorem(A, x);
                x = y.Clone();
                Pocitej.JednotkovaVelikost(x);

                Console.Write("{0} : (", i + 1);
                x.Vypis();
                Console.Write(") {0}", String.Format("{0:0.###}", Pocitej.SkalarniSoucin(xprev, y)));
                Console.WriteLine();

                xprev = x;
            }
        }
예제 #3
0
 public void Pricti(Vektor x)
 {
     for (int i = 0; i < pole.Length; i++)
     {
         pole[i] += x.pole[i];
     }
 }
예제 #4
0
 public void Odecti(Vektor x)
 {
     for (int i = 0; i < pole.Length; i++)
     {
         pole[i] -= x.pole[i];
     }
 }
        public static Vektor OdectiVektory(Vektor x, Vektor y)
        {
            for (int i = 0; i < x.pole.Length; i++)
                x.pole[i] -= y.pole[i];

            return x;
        }
 public static void JednotkovaVelikost(Vektor x)
 {
     double velikost = x.pole.Max();//.AbsolutValue();
     for (int i = 0; i < x.pole.Length; i++)
     {
         x.pole[i] = (x.pole[i] / velikost);
     }
 }
 public static double SkalarniSoucin(Vektor x, Vektor y)
 {
     double suma = 0;
     for (int i = 0; i < x.pole.Length; i++)
     {
         suma += x.pole[i] * y.pole[i];
     }
     return suma;
 }
예제 #8
0
        public static Vektor OdectiVektory(Vektor x, Vektor y)
        {
            for (int i = 0; i < x.pole.Length; i++)
            {
                x.pole[i] -= y.pole[i];
            }

            return(x);
        }
예제 #9
0
        public static void JednotkovaVelikost(Vektor x)
        {
            double velikost = x.AbsolutValue();

            for (int i = 0; i < x.pole.Length; i++)
            {
                x.pole[i] = (x.pole[i] / velikost);
            }
        }
예제 #10
0
        public static double SkalarniSoucin(Vektor x, Vektor y)
        {
            double suma = 0;

            for (int i = 0; i < x.pole.Length; i++)
            {
                suma += x.pole[i] * y.pole[i];
            }
            return(suma);
        }
        public static Vektor NasobeniMaticeVektorem(int[,] A, Vektor x)
        {
            Vektor y = new Vektor(new double[3] { 0, 0, 0 });

            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    y.pole[i] += A[j, i] * x.pole[j];
                }
            }

            return y;
        }
예제 #12
0
        public static Vektor NasobeniMaticeVektorem(double[,] A, Vektor x)
        {
            Vektor y = new Vektor(new double[x.pole.Length]);

            for (int i = 0; i < x.pole.Length; i++)
            {
                for (int j = 0; j < x.pole.Length; j++)
                {
                    y.pole[i] += A[j, i] * x.pole[j];
                }
            }

            return(y);
        }
        public static Vektor NasobeniMaticeVektorem(double[,] A, Vektor x)
        {
            Vektor y = new Vektor(new double[x.pole.Length]);

            for (int i = 0; i < x.pole.Length; i++)
            {
                for (int j = 0; j < x.pole.Length; j++)
                {
                    y.pole[i] += A[j, i] * x.pole[j];
                }
            }

            return y;
        }
예제 #14
0
        public static Vektor NasobeniMaticeVektorem(int[,] A, Vektor x)
        {
            Vektor y = new Vektor(new double[3] {
                0, 0, 0
            });

            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    y.pole[i] += A[j, i] * x.pole[j];
                }
            }

            return(y);
        }
예제 #15
0
        static void Main(string[] args)
        {
            //Reader.CacheAdd("2 4 2 = 4 2 2 = 2 2 -1 = 1 0 1"); //skriptovy priklad
            //Reader.CacheAdd("-5 4 1 / -7 6 1 / 4 -4 -2 / 1 2 1");
            Reader.CacheAdd("0 0 0.33333333 0 0 0 / 0.5 0 0.3333333 0 0 0 / 0.5 0 0 0 0 0.5 / 0 0 0 0 0 0.5 / 0 1 0.3333333 0.5 0 0 / 0 0 0 0.5 1 0 / 1 0 1 0 1 0 ");
            int N = 6;

            A = new double[N, N];
            for (int i = 0; i < N * N; i++)
            {
                A[i % N, i / N] = Reader.ReadDouble();
            }

            double[] pom = new double[N];
            for (int i = 0; i < N; i++)
            {
                pom[i] = Reader.ReadDouble();
            }

            Vektor x     = new Vektor(pom);
            Vektor xprev = x;
            Vektor y;

            Console.Write("{0} : (", 0); x.Vypis(); Console.Write(") -"); Console.WriteLine();

            for (int i = 0; i < 20; i++)
            {
                y = Pocitej.NasobeniMaticeVektorem(A, x);
                x = y.Clone();
                Pocitej.JednotkovaVelikost(x);

                Console.Write("{0} : (", i + 1);
                x.Vypis();
                Console.Write(") {0}", String.Format("{0:0.###}", Pocitej.SkalarniSoucin(xprev, y)));
                Console.WriteLine();

                xprev = x;
            }
        }
예제 #16
0
        static void Main(string[] args)
        {
            Reader.CacheAdd("2 4 2 = 4 2 2 = 2 2 -1 = 1 0 1"); //skriptovy priklad
            //Reader.CacheAdd("-5 4 1 / -7 6 1 / 4 -4 -2 / 1 2 1");

            A = new int[3, 3];
            for (int i = 0; i < 9; i++)
            {
                A[i % 3, i / 3] = Reader.ReadInt();
            }

            double[] pom = new double[3];
            for (int i = 0; i < 3; i++)
            {
                pom[i] = Reader.ReadInt();
            }

            Vektor x     = new Vektor(pom);
            Vektor xprev = x;
            Vektor y;

            Console.Write("{0} : (", 0); x.Vypis(); Console.Write(") -"); Console.WriteLine();

            for (int i = 0; i < 20; i++)
            {
                y = Pocitej.NasobeniMaticeVektorem(A, x);
                x = y.Clone();
                Pocitej.JednotkovaVelikost(x);

                Console.Write("{0} : (", i + 1);
                x.Vypis();
                Console.Write(") {0}", String.Format("{0:0.###}", Pocitej.SkalarniSoucin(xprev, y)));
                Console.WriteLine();

                xprev = x;
            }
        }
예제 #17
0
        public Vektor Clone()
        {
            Vektor vratit = new Vektor((double[])this.pole.Clone());

            return(vratit);
        }
 public Vektor Clone()
 {
     Vektor vratit = new Vektor((double[])this.pole.Clone());
     return vratit;
 }
 public void Odecti(Vektor x)
 {
     for (int i = 0; i < pole.Length; i++)
     {
         pole[i] -= x.pole[i];
     }
 }
 public void Pricti(Vektor x)
 {
     for (int i = 0; i < pole.Length; i++)
     {
         pole[i] += x.pole[i];
     }
 }