Пример #1
0
        public Matrice Inversa()
        {
            int     n = a.GetLength(0);
            Matrice C = new Matrice(n, n);

            if (n != a.GetLength(1))
            {
                Console.WriteLine("Doar matricile patratice pot avea inversa");
                return(C);
            }
            CalculDeterminant();
            if (determinant != 0)
            {
                for (int i = 0; i < n; i++)
                {
                    for (int j = 0; j < n; j++)
                    {
                        Matrice A = new Matrice(n - 1, n - 1);
                        for (int k = 0; k < n - 1; k++)
                        {
                            for (int l = 0; l < n - 1; l++)
                            {
                                if (k >= i && l >= j)
                                {
                                    A.a[l, k] = a[k + 1, l + 1];
                                }
                                else if (k >= i && l < j)
                                {
                                    A.a[l, k] = a[k + 1, l];
                                }
                                else if (k < 1 && l >= j)
                                {
                                    A.a[l, k] = a[k, l + 1];
                                }
                                else
                                {
                                    A.a[l, k] = a[k, l];
                                }
                            }
                        }
                        A.Afisare();
                        A.CalculDeterminant();
                        C.a[i, j] = (int)Math.Pow(-1, i + j) * A.determinant;
                        Console.WriteLine(C.a[i, j]);
                    }
                }
                for (int i = 0; i < n; i++)
                {
                    for (int j = 0; j < n; j++)
                    {
                        C.a[i, j] *= 1f / determinant;
                    }
                }
            }
            return(C);
        }
Пример #2
0
        static void Main(string[] args)
        {
            Matrice A = new Matrice(3, 3);
            Matrice B = new Matrice(3, 3);

            A.Afisare();
            B.Afisare();
            Matrice C = new Matrice(3, 3);

            C = A.Adunare(B);
            C.Afisare();
            C = A.Scadere(B);
            C.Afisare();
            C = A.Inmultire(B);
            C.Afisare();
            C = A.Putere(2);
            C.Afisare();
            C = B.Inversa();
            C.Afisare();
            Console.ReadKey();
        }