Иллюстрированный самоучитель по Matlab


Двунаправленный метод сопряженных градиентов - часть 2


  • [X.flag.relres] = bicg(A,X,tol .maxit.Ml,M2.X0) — также возвращает относительную вторую норму вектора остатков relres=nQnr)(B-A*X)/norm(B). Если флаг flag равен 0, то rel res<tol;

  • [X, flag, rel res, iter] = bicgCA.B.tol,maxit,Ml,M2.XO) — также возвращает номер итерации, на которой был вычислен X. Значение iter всегда удовлетворяет условию 0<iter<maxit;

  • [X.flag.relres.iter.resvec] = bicgCA.B.tol,maxit,Ml,M2.XO) — также возвращает вектор вторых норм остатков resvec для каждой итерации начиная с res-vec(l)=norm(B-A*X0). Если флаг flag равен 0, то resvec имеет длину iter+1 и resvec(end)<tol*norm(B). Возможны значения flag, равные 0, 1, 2, 3 и 4. Эти значения предоставляют следующие данные о сходимости решения:

    •  flag=0 - решение сходится при заданной точности tol и числе итераций не более заданного maxit;

    • flag=l - число итераций равно заданному maxit, но сходимость не достигнута;

    • f l ag=2 - матрица предусловий М плохо обусловлена;

    • fl ag=3 - процедура решения остановлена, поскольку две последовательные оценки решения оказались одинаковыми;

    • fl ag=4 - одна из величин в процессе решения вышла за пределы допустимых величин чисел (разрядной сетки компьютера).

    Пример:

     

    » bicg(A.B)

    BICG converged at iteration 4 

    to a solution with relative residual 

    2.3e-015

    ans= 

    1.0000 

    2.0000 

    3.0000 

    4.0000


    • [X.flag] = bicg(A,X.tol ,maxit.Ml,M2,X0) — возвращает решение Х и флаг flag, описывающий сходимость метода.

     




    Начало  Назад  Вперед