Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as C# by JuliDR ( 15 years ago )
/*НАХОЖДЕНИЕ L-1,U*/
            for (int i = 0; i < n; i++)
            {
                /*поиск главного элемента. Перемена строк местами
                int pere = U.NumMaxInColumn(i);
                
                //Домножение на P(i,pere)
                U.Exchange(i, pere);
                //L.Exchange(i, pere);
                P.Exchange(i, pere);
                // проверка на вырожденность
                if (Math.Abs(U.matrix[i, i]) <= eps)
                {
                    Write("Метод не может быть применен. Матрица вырожденная");
                    return;
                }

                /*L-1*/
                for (int j = i + 1; j < n; j++)//нахождение остальных строк матрицы L (кроме i строки, которую будем нормальзовать)
                    for (int k = 0; k < i + 1; k++)
                        L.matrix[j, k] -= U.matrix[j, i] / U.matrix[i, i] * L.matrix[i, k];
                for (int j = 0; j < i + 1; j++)
                    L.matrix[i, j] /= U.matrix[i, i]; //находим i строчку матрицы L (псевдо нормировка)

                /*U*/
                for (int j = n - 1; j >= i; j--) // нормировка i строки U
                    U.matrix[i, j] /= U.matrix[i, i];
                for (int j = i + 1; j < n; j++)
                    for (int k = n - 1; k >= i; k--)
                        U.matrix[j, k] -= U.matrix[j, i] * U.matrix[i, k];
            }

 

Revise this Paste

Children: 39149
Your Name: Code Language: