Алгоритм гаусса
Назначение: Решить относительно Х.
Входные параметры: masheps R, n
Z,
Вектор правых частей .
Входно - выходные параметры ,
после разложения в А сохраняются ее верхние треугольные сомножители,
.
Код возврата retcode=0 при успешном решении и retcode=1 при вырождении матрицы.
Выходные параметры: .
Алгоритм
1. retcode=0
2. if n=1 then
2.1 if A[1,1]=0 then retcode=1
2.2 return
(*Гауссово исключение с частичным выбором ведущего элемента*)
3. for k=1 to n do (*найти ведущий элемент*)
3.1 Amax <= |A[k,k]|
3.2 Imax <= k
3.3 for i=k+1 to n do
3.3.1 if |[i,k]| > Amax then
3.3.1.1. Amax <= |A[i,k]|
3.3.1.2. Imax <= 1
(*проверка на вырожденность*)
3.4. if Amax < masheps*n then
3.4.1. retcode<=1
3.4.2. return
3.5. if Imax<> k then
3.5.1. Amax <= A[Imax,k]
3.5.2. A[Imax,k] <= A[k,k]
3.5.3. A[Imax,k] <= Amax
3.7. for i=k+1 to n do A[i,k] <= A[i,k]/Amax
(*перестановка и исключение по столбцам*)
3.8. for j=k+1 to n do
3.8.1. Amax<=A[Imax,j]
3.8.2. A[Imax,j]<=A[k,j]
3.8.3. A[k,j]<=Amax
3.8.4. if Amax<>0 then
for i=k+1 to n do
A[i,j]<=A[i,j]-A[i,k]*Amax
4. if retcode=0 then (*разложение успешно*)
(*решить СЛУ Ly=b и Vx=y *)
5. for i=2 to n do
6. for k=n downto 1 do
return
end.