Энергия и энергетика сегодня

Алгоритм гаусса

Назначение: Решить относительно Х.

Входные параметры: 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.

Back to Top