Вычислительные методы линейной алгебры. Горбаченко В.И - 51 стр.

UptoLike

51
мер спай-графика ("портрет" матрицы) такой матрицы приведен на рис. 1.4.
Для примера возьмем область размером 22
n
=
узловых точек. Размерность
матрицы в этом случае равна
(
)
2
2 400n −= . Вектор правой части возьмем со-
стоящим из единиц:
>> n=22;
>> A=delsq(numgrid('S',n));
>> b=ones(length(A),1);
Попытаемся решить СЛАУ, задав все параметры функции pcg по умолча-
нию
>> [x,flag,relres,iter,resvec]=pcg(A,b);
За 20 итераций, задаваемых по умолчанию, получить решение не удалось:
>> flag
flag =
1
>> relres
relres =
0.0057
>> iter
iter =
20
Решим ту же СЛАУ, задав допустимую погрешность вычислений
tol=
6
10
, а предельное число итераций равным 400
>> [x,flag,relres,iter,resvec]=pcg(A,b,1e-6,400);
Решении достигается за 32 итерации:
>> flag
flag =
0
>> iter
iter =
32
>> relres
relres =
4.6868e-007
При исследовании итерационных алгоритмов большой интерес пред-
ставляет зависимость относительной нормы невязки от номера итерации.
График такой зависимости легко получить, применив возвращаемый пара-
метр
resvec функции pcg
>> semilogy(0:iter,resvec/norm(b));
>> grid
>> xlabel('Номер итерации')
>> ylabel('Относительная норма невязки')
мер спай-графика ("портрет" матрицы) такой матрицы приведен на рис. 1.4.
Для примера возьмем область размером n = 22 узловых точек. Размерность

матрицы в этом случае равна ( n − 2 ) = 400 . Вектор правой части возьмем со-
                                    2



стоящим из единиц:
>> n=22;
>> A=delsq(numgrid('S',n));
>> b=ones(length(A),1);
Попытаемся решить СЛАУ, задав все параметры функции pcg по умолча-
нию
>> [x,flag,relres,iter,resvec]=pcg(A,b);
За 20 итераций, задаваемых по умолчанию, получить решение не удалось:
>> flag
flag =
     1
>> relres
relres =
    0.0057
>> iter
iter =
    20
     Решим ту же СЛАУ, задав допустимую погрешность вычислений
tol=10−6 , а предельное число итераций равным 400
>> [x,flag,relres,iter,resvec]=pcg(A,b,1e-6,400);
Решении достигается за 32 итерации:
>> flag
flag =
     0
>> iter
iter =
    32
>> relres
relres =
  4.6868e-007

     При исследовании итерационных алгоритмов большой интерес пред-
ставляет зависимость относительной нормы невязки от номера итерации.
График такой зависимости легко получить, применив возвращаемый пара-
метр resvec функции pcg
>>   semilogy(0:iter,resvec/norm(b));
>>   grid
>>   xlabel('Номер итерации')
>>   ylabel('Относительная норма невязки')

                                                                           51