예제 #1
0
 public Wektor.Macierz Przemnoz(Macierz inp)
 {
     if (this.lkolumn != inp.lwierszy)
     {
         Console.WriteLine("Invalid input");
         return(default(Wektor.Macierz));
     }
     Wektor[] scratch = new Wektor[this.lwierszy];
     for (int i = 0; i < this.lwierszy; i++)
     {
         float[] nowy_wiersz = new float[this.lkolumn];
         for (int k = 0; k < this.lkolumn; k++)
         {
             for (int j = 0; j < inp.lwierszy; j++)
             {
                 nowy_wiersz[k] += (this.ZwrocWiersz(i)).ZwrocReprezentacje(j + 1) * (inp.ZwrocWiersz(j)).ZwrocReprezentacje(k + 1);
             }
         }
         Wektor pom = new Wektor(nowy_wiersz);
         scratch[i] = pom;
     }
     Wektor.Macierz temp = new Wektor.Macierz(scratch);
     return(temp);
 }
예제 #2
0
        static void Main(string[] args)
        {
            Wektor testowy = new Wektor(new float[2] {
                1, 3
            });
            Wektor testowy2 = new Wektor(new float[4] {
                1, 3, 5, 6
            });

            testowy.DodajWektor(testowy2);
            testowy.Pomnoz(5);
            Console.WriteLine(testowy.ZwrocReprezentacje(4));
            Console.WriteLine(testowy.Pomnoz(testowy2));
            Console.WriteLine("Drukuję kolejne współrzędne wektora testowego");
            for (int i = 1; i <= testowy.SprawdzWymiar(); i++)
            {
                Console.WriteLine(testowy.ZwrocReprezentacje(i));
            }
            Wektor skladowa1 = new Wektor(new float[3] {
                9, 8, 0
            });
            Wektor skladowa2 = new Wektor(new float[3] {
                9, 8, 1
            });
            Wektor skladowa3 = new Wektor(new float[3] {
                1, 1, 1
            });
            Wektor skladowa4 = new Wektor(new float[3] {
                4, 3, 2
            });

            Wektor[] macierz_comp = new Wektor[3] {
                skladowa1, skladowa2, skladowa3
            };
            Wektor.Macierz matrix        = new Wektor.Macierz(macierz_comp);
            Wektor         mnozenie_wekt = matrix.Przemnoz(skladowa4);

            Console.WriteLine("Drukuję kolejne współrzędne z wymnożenia macierzy przez wektor");
            for (int i = 1; i <= mnozenie_wekt.SprawdzWymiar(); i++)
            {
                Console.WriteLine(mnozenie_wekt.ZwrocReprezentacje(i));
            }
            Wektor pom1 = new Wektor(new float[3] {
                2, 1, 3
            });
            Wektor pom2 = new Wektor(new float[3] {
                -1, 4, 0
            });

            Wektor[] asda = new Wektor[2] {
                pom1, pom2
            };
            Wektor.Macierz pierwsza = new Wektor.Macierz(asda);
            Wektor         temp1    = new Wektor(new float[3] {
                1, 3, 2
            });
            Wektor temp2 = new Wektor(new float[3] {
                -2, 0, 1
            });
            Wektor temp3 = new Wektor(new float[3] {
                5, -3, 2
            });

            Wektor[] dada = new Wektor[3] {
                temp1, temp2, temp3
            };
            Wektor.Macierz druga   = new Wektor.Macierz(dada);
            Wektor.Macierz trzecia = pierwsza.Przemnoz(druga);
            Console.WriteLine("Wypisywanie elementów macierzy pierw x drug");
            for (int i = 0; i < trzecia.ZwrocWymiar(); i++)
            {
                Console.WriteLine("Wypisuję wiersz {0}:", i + 1);
                for (int k = 0; k < (trzecia.ZwrocWiersz(i)).SprawdzWymiar(); k++)
                {
                    Console.WriteLine(trzecia.ZwrocWiersz(i).ZwrocReprezentacje(k + 1));
                }
            }
        }