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

UptoLike

52
>> legend('Метод CG')
Рис. 2.1. Зависимость относительной нормы невязки от номера итерации для метода
сопряженных градиентов
Результат представлен на рис.2.1. Так как относительная норма невязки
при нулевом начальном приближении меняется от 1 до заданного малого
значения в критерии останова итераций, используем логарифмический мас-
штаб графика по оси ординат (функция
semilogy). Параметр resvec
представляет собой вектор евклидовых норм невязок на каждой итерации.
Для получения относительных норм невязок было произведено нормирова-
ние этого вектора:
resvec/norm(b).
Исследуем
влияние предобусловливателей на итерационный процесс.
Произведем неполную факторизацию Холецкого с нулевым порогом разре-
женности и с порогом разреженности, равным
3
10
>> R=cholinc(A,'0');
>> R1=cholinc(A,1e-3);
Постройте самостоятельно и сравните спай-графики матриц R и R1.
Теперь решим нашу систему без использования предобусловливателя и с ис-
пользованием предобусловлителей
R и R1. Построим графики изменения
относительных норм невязок для этих трех вариантов решения
>> [x,flag1,relres1,iter1,resvec1]=pcg(A,b,1e-6,400);
>> [x2,flag2,relres2,iter2,resvec2]=pcg(A,b,1e-6,400,R',R);
>> [x1,flag1,relres1,iter1,resvec1]=pcg(A,b,1e-6,400);
>> [x3,flag3,relres3,iter3,resvec3]=pcg(A,b,1e-6,400,R1',R1);
>> semilogy(0:iter1,resvec1/norm(b),..
0:iter2,resvec2/norm(b),'-o',0:iter3,resvec3/norm(b),'-*');
>> grid
>> xlabel('Номер итерации')
>> ylabel('Относительная норма невязки')
>> legend('Метод CG')




    Рис. 2.1. Зависимость относительной нормы невязки от номера итерации для метода
                             сопряженных градиентов


    Результат представлен на рис.2.1. Так как относительная норма невязки
при нулевом начальном приближении меняется от 1 до заданного малого
значения в критерии останова итераций, используем логарифмический мас-
штаб графика по оси ординат (функция semilogy). Параметр resvec
представляет собой вектор евклидовых норм невязок на каждой итерации.
Для получения относительных норм невязок было произведено нормирова-
ние этого вектора: resvec/norm(b).
    Исследуем влияние предобусловливателей на итерационный процесс.
Произведем неполную факторизацию Холецкого с нулевым порогом разре-
женности и с порогом разреженности, равным 10−3
>> R=cholinc(A,'0');
>> R1=cholinc(A,1e-3);

Постройте самостоятельно и сравните спай-графики матриц R и R1.
Теперь решим нашу систему без использования предобусловливателя и с ис-
пользованием предобусловлителей R и R1. Построим графики изменения
относительных норм невязок для этих трех вариантов решения
>> [x,flag1,relres1,iter1,resvec1]=pcg(A,b,1e-6,400);
>> [x2,flag2,relres2,iter2,resvec2]=pcg(A,b,1e-6,400,R',R);
>> [x1,flag1,relres1,iter1,resvec1]=pcg(A,b,1e-6,400);
>> [x3,flag3,relres3,iter3,resvec3]=pcg(A,b,1e-6,400,R1',R1);
>> semilogy(0:iter1,resvec1/norm(b),..
0:iter2,resvec2/norm(b),'-o',0:iter3,resvec3/norm(b),'-*');
>> grid
>> xlabel('Номер итерации')
>> ylabel('Относительная норма невязки')

                                                                                 52