также возвращает относительную вторую норму
[X.flag.relres] = lsqr(A,X,tol.maxit,Ml.M2.X0) — также возвращает относительную вторую норму вектора остатков rel res=norm(B-A*X)/norm(B). Если флаг flag равен 0, то relres<tol;
[X.flag.relres.iter] = bicg(A,B.tol,maxit,Ml,M2.X0) — также возвращает номер итерации, на которой был вычислен X. Значение iter всегда удовлетворяет условию 0<iter<maxit;
[X.flag.relres,iter,resvec]= lsqr(A.B.tol.maxit.Ml.M2.X0) — также возвращает вектор вторых норм остатков 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 предоставляют следующие данные о сходимости решения:
flag=0 - решение сходится при заданной точности tol и числе итераций не более заданного maxit;
flag=l - число итераций равно заданному maxit, но сходимость не достигнута;
flag=2 - матрица предусловий М плохо обусловлена;
flag=3 - процедура решения остановлена, поскольку две последовательные оценки решения оказались одинаковыми;
fl ag=4 - одна из величин в процессе решения вышла за пределы допустимых величин чисел (разрядной сетки компьютера).
Если значение flag больше нуля, то возвращается не последнее решение, а то решение, которое имеет минимальное значение отношения вторых норм векторов norm(B-A*x)/norm(B).
Пример:
» А=[0 012; 1300; 0101; 1010];
» В=[11; 7; 6; 4];
Введенные в этом примере матрица А и вектор В будут использованы и в других примерах данного раздела. В примере процесс итераций сходится на пятом шаге с относительным остатком (отношением вторых норм векторов невязки и свободных членов) 1.9 10-
13
.
Пример:
» lsqr(A,B.1e-6.5)
Isqr converged at iteration 5 to a solution
with relative residual
1.9e-013
ans =
1.0000
2.0000
3.0000
4.0000
Содержание Назад Вперед