コード例 #1
0
        // Supstitucija unatrag
        public Matrica SupstitucijaUnatrag(Matrica y)
        {
            if (y.brojStupaca > 1)
            {
                throw new Exception("Ulazni parametar supstitucije unatrag mora biti ''okomiti'' vektor (dimenzija nx1)!");
            }
            if (y.brojRedaka != this.brojRedaka)
            {
                throw new Exception("Ulazni vektor supstitucije unatrag nije valjane dimenzije!");
            }

            Matrica vektorX = y.VratiKopiju();

            for (int i = brojRedaka - 1; i >= 0; i--)
            {
                if (Math.Abs(this[i, i]) < Matrica.konstantaUsporedbe)
                {
                    throw new Exception("Postupak zaustavljen u supstituciji unatrag jer je pivot manji od zadane granice!");
                }
                vektorX[i, 0] /= this[i, i];
                for (int j = 0; j < i; j++)
                {
                    vektorX[j, 0] -= this[j, i] * vektorX[i, 0];
                }
            }
            return(vektorX);
        }
コード例 #2
0
        public Matrica VratiPermutiraniVektor(Matrica originalniVektor, Matrica vektorPermutacije)
        {
            Matrica radniVektor = originalniVektor.VratiKopiju();

            for (int i = 0; i < brojRedaka; i++)
            {
                radniVektor[i, 0] = this[(int)vektorPermutacije[0, i], 0];
            }
            return(radniVektor);
        }
コード例 #3
0
        // Supstitucija unaprijed
        public Matrica SupstitucijaUnaprijed(Matrica b)
        {
            if (b.brojStupaca > 1)
            {
                throw new Exception("Ulazni parametar supstitucije unaprijed mora biti ''okomiti'' vektor (dimenzija nx1)!");
            }
            if (b.brojRedaka != this.brojRedaka)
            {
                throw new Exception("Ulazni vektor supstitucije unaprijed nije valjane dimenzije!");
            }
            Matrica vektorY = b.VratiKopiju();

            for (int i = 0; i < brojRedaka - 1; i++)
            {
                for (int j = i + 1; j < brojRedaka; j++)
                {
                    vektorY[j, 0] -= this[j, i] * vektorY[i, 0];
                }
            }
            return(vektorY);
        }