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