mp5: correction to terminating condition of myCG
This commit is contained in:
parent
f001099b7a
commit
a3990dceb4
11 changed files with 61 additions and 164 deletions
Binary file not shown.
|
@ -127,6 +127,9 @@ My implementation is in the file \texttt{deblurring.m}. Plots for the original i
|
||||||
from the two conjugate gradient functions over the iteration count can be found respectively in figure \ref{fig:orig},
|
from the two conjugate gradient functions over the iteration count can be found respectively in figure \ref{fig:orig},
|
||||||
\ref{fig:mycg}, \ref{fig:pcg}, and \ref{fig:rvec}.
|
\ref{fig:mycg}, \ref{fig:pcg}, and \ref{fig:rvec}.
|
||||||
|
|
||||||
|
As a terminating condition for the \texttt{myCG} implementation, I chose to check if the residual divided by the 2-norm of
|
||||||
|
$b$ is less than the given tolerance. This mimicks the behaviour of MATLAB's \texttt{pcg} to allow for a better comparison.
|
||||||
|
|
||||||
\begin{figure}[h]
|
\begin{figure}[h]
|
||||||
\begin{subfigure}{0.33\textwidth}
|
\begin{subfigure}{0.33\textwidth}
|
||||||
\centering
|
\centering
|
||||||
|
|
|
@ -26,7 +26,7 @@ bt = A' * b;
|
||||||
IL = ichol(AT, struct('type', 'nofill', 'diagcomp', 0.01));
|
IL = ichol(AT, struct('type', 'nofill', 'diagcomp', 0.01));
|
||||||
|
|
||||||
[x, rvec] = myCG(AT, bt, zeros(size(b)), 200, 1e-6);
|
[x, rvec] = myCG(AT, bt, zeros(size(b)), 200, 1e-6);
|
||||||
[x2, ~, ~, ~, rvec2] = pcg(AT, bt, 1e-6, 200, IL, IL');
|
[x2, flag, ~, ~, rvec2] = pcg(AT, bt, 1e-6, 200, IL, IL');
|
||||||
|
|
||||||
X2 = zeros(250, 250);
|
X2 = zeros(250, 250);
|
||||||
for i = 0:249
|
for i = 0:249
|
||||||
|
|
|
@ -17,7 +17,7 @@ function [x,rvec] = myCG(A, b, x0, max_itr, tol)
|
||||||
delta_old = delta_new;
|
delta_old = delta_new;
|
||||||
rvec(i + 1) = delta_new;
|
rvec(i + 1) = delta_new;
|
||||||
|
|
||||||
if delta_new < tol
|
if delta_new / norm(b) < tol
|
||||||
rvec = rvec(1:i+1);
|
rvec = rvec(1:i+1);
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
|
|
BIN
mp5/img_my-1.png
BIN
mp5/img_my-1.png
Binary file not shown.
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
|
@ -3,12 +3,12 @@
|
||||||
\begin{tikzpicture}
|
\begin{tikzpicture}
|
||||||
|
|
||||||
\begin{axis}[%
|
\begin{axis}[%
|
||||||
width=2.604in,
|
width=1.736in,
|
||||||
height=2.604in,
|
height=1.736in,
|
||||||
at={(0.962in,0.66in)},
|
at={(0.75in,0.653in)},
|
||||||
scale only axis,
|
scale only axis,
|
||||||
point meta min=-0.0128979816802523,
|
point meta min=-0.0235938830592792,
|
||||||
point meta max=0.983438722992887,
|
point meta max=0.99393991750956,
|
||||||
axis on top,
|
axis on top,
|
||||||
xmin=0.5,
|
xmin=0.5,
|
||||||
xmax=250.5,
|
xmax=250.5,
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 53 KiB |
|
@ -3,9 +3,9 @@
|
||||||
\begin{tikzpicture}
|
\begin{tikzpicture}
|
||||||
|
|
||||||
\begin{axis}[%
|
\begin{axis}[%
|
||||||
width=2.604in,
|
width=1.736in,
|
||||||
height=2.604in,
|
height=1.736in,
|
||||||
at={(0.962in,0.66in)},
|
at={(0.75in,0.653in)},
|
||||||
scale only axis,
|
scale only axis,
|
||||||
point meta min=0.0282583971491394,
|
point meta min=0.0282583971491394,
|
||||||
point meta max=0.921555841989536,
|
point meta max=0.921555841989536,
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 53 KiB |
|
@ -3,12 +3,12 @@
|
||||||
\begin{tikzpicture}
|
\begin{tikzpicture}
|
||||||
|
|
||||||
\begin{axis}[%
|
\begin{axis}[%
|
||||||
width=2.604in,
|
width=1.736in,
|
||||||
height=2.604in,
|
height=1.736in,
|
||||||
at={(0.962in,0.66in)},
|
at={(0.75in,0.653in)},
|
||||||
scale only axis,
|
scale only axis,
|
||||||
point meta min=-0.0235938830592846,
|
point meta min=0.0282583971491394,
|
||||||
point meta max=0.993939917509565,
|
point meta max=0.921555841989536,
|
||||||
axis on top,
|
axis on top,
|
||||||
xmin=0.5,
|
xmin=0.5,
|
||||||
xmax=250.5,
|
xmax=250.5,
|
||||||
|
|
192
mp5/res_log.tex
192
mp5/res_log.tex
|
@ -6,14 +6,14 @@
|
||||||
\begin{tikzpicture}
|
\begin{tikzpicture}
|
||||||
|
|
||||||
\begin{axis}[%
|
\begin{axis}[%
|
||||||
width=4.521in,
|
width=6.028in,
|
||||||
height=3.566in,
|
height=4.754in,
|
||||||
at={(0.758in,0.481in)},
|
at={(1.011in,0.642in)},
|
||||||
scale only axis,
|
scale only axis,
|
||||||
xmin=0,
|
xmin=0,
|
||||||
xmax=160,
|
xmax=50,
|
||||||
ymode=log,
|
ymode=log,
|
||||||
ymin=1e-10,
|
ymin=1e-07,
|
||||||
ymax=1,
|
ymax=1,
|
||||||
yminorticks=true,
|
yminorticks=true,
|
||||||
axis background/.style={fill=white},
|
axis background/.style={fill=white},
|
||||||
|
@ -24,40 +24,40 @@ title={Residual norms over iteration (y is log)}
|
||||||
table[row sep=crcr]{%
|
table[row sep=crcr]{%
|
||||||
1 1\\
|
1 1\\
|
||||||
2 0.557596535615506\\
|
2 0.557596535615506\\
|
||||||
3 0.0776565625508994\\
|
3 0.0776565625508993\\
|
||||||
4 0.0198777323861488\\
|
4 0.0198777323861488\\
|
||||||
5 0.0079699888022587\\
|
5 0.00796998880225869\\
|
||||||
6 0.00379999756962288\\
|
6 0.00379999756962287\\
|
||||||
7 0.00203749487265271\\
|
7 0.0020374948726527\\
|
||||||
8 0.00117378505868276\\
|
8 0.00117378505868276\\
|
||||||
9 0.000679072640424651\\
|
9 0.000679072640424649\\
|
||||||
10 0.000460205525227465\\
|
10 0.000460205525227464\\
|
||||||
11 0.000299176988582771\\
|
11 0.000299176988582771\\
|
||||||
12 0.000208705837325249\\
|
12 0.000208705837325249\\
|
||||||
13 0.000154155368421639\\
|
13 0.000154155368421638\\
|
||||||
14 0.000112123271112138\\
|
14 0.000112123271112138\\
|
||||||
15 8.51723029158507e-05\\
|
15 8.51723029158506e-05\\
|
||||||
16 6.84145894011082e-05\\
|
16 6.84145894011081e-05\\
|
||||||
17 5.22773173463894e-05\\
|
17 5.22773173463893e-05\\
|
||||||
18 4.19658990284637e-05\\
|
18 4.19658990284636e-05\\
|
||||||
19 3.35813556680048e-05\\
|
19 3.35813556680048e-05\\
|
||||||
20 2.69909819855067e-05\\
|
20 2.69909819855066e-05\\
|
||||||
21 2.16953761012216e-05\\
|
21 2.16953761012216e-05\\
|
||||||
22 1.75366202909715e-05\\
|
22 1.75366202909715e-05\\
|
||||||
23 1.58613744370523e-05\\
|
23 1.58613744370523e-05\\
|
||||||
24 1.07527796769547e-05\\
|
24 1.07527796769547e-05\\
|
||||||
25 1.21386374874815e-05\\
|
25 1.21386374874815e-05\\
|
||||||
26 1.0281869987924e-05\\
|
26 1.02818699879239e-05\\
|
||||||
27 8.94827138078528e-06\\
|
27 8.94827138078525e-06\\
|
||||||
28 7.32098660262364e-06\\
|
28 7.32098660262362e-06\\
|
||||||
29 6.29855369167728e-06\\
|
29 6.29855369167726e-06\\
|
||||||
30 5.75608316894849e-06\\
|
30 5.75608316894847e-06\\
|
||||||
31 5.01303204699424e-06\\
|
31 5.01303204699423e-06\\
|
||||||
32 4.32711144148809e-06\\
|
32 4.32711144148808e-06\\
|
||||||
33 3.75161010629662e-06\\
|
33 3.75161010629661e-06\\
|
||||||
34 3.13429056757288e-06\\
|
34 3.13429056757287e-06\\
|
||||||
35 2.97535388105767e-06\\
|
35 2.97535388105766e-06\\
|
||||||
36 2.59579082920429e-06\\
|
36 2.59579082920428e-06\\
|
||||||
37 2.35613630297938e-06\\
|
37 2.35613630297938e-06\\
|
||||||
38 2.13570046200869e-06\\
|
38 2.13570046200869e-06\\
|
||||||
39 1.91918226507556e-06\\
|
39 1.91918226507556e-06\\
|
||||||
|
@ -65,115 +65,9 @@ title={Residual norms over iteration (y is log)}
|
||||||
41 1.60497187780807e-06\\
|
41 1.60497187780807e-06\\
|
||||||
42 1.50673230165654e-06\\
|
42 1.50673230165654e-06\\
|
||||||
43 1.29912483256279e-06\\
|
43 1.29912483256279e-06\\
|
||||||
44 1.18346887626956e-06\\
|
44 1.18346887626955e-06\\
|
||||||
45 1.20647020748118e-06\\
|
45 1.20647020748118e-06\\
|
||||||
46 9.32512402536184e-07\\
|
46 9.3251240253618e-07\\
|
||||||
47 1.04433975171041e-06\\
|
|
||||||
48 7.81977076368343e-07\\
|
|
||||||
49 7.06367946061841e-07\\
|
|
||||||
50 6.44485405918065e-07\\
|
|
||||||
51 5.85991971721864e-07\\
|
|
||||||
52 5.19890971305921e-07\\
|
|
||||||
53 4.77565688325085e-07\\
|
|
||||||
54 4.45837257417216e-07\\
|
|
||||||
55 4.52354751810169e-07\\
|
|
||||||
56 4.29038013881607e-07\\
|
|
||||||
57 4.1992973890364e-07\\
|
|
||||||
58 3.83172910236925e-07\\
|
|
||||||
59 3.69121286102558e-07\\
|
|
||||||
60 3.71629459514197e-07\\
|
|
||||||
61 3.46046785121528e-07\\
|
|
||||||
62 3.27576103337777e-07\\
|
|
||||||
63 3.15320978192872e-07\\
|
|
||||||
64 2.96758711344721e-07\\
|
|
||||||
65 2.96817636331728e-07\\
|
|
||||||
66 2.71124713000926e-07\\
|
|
||||||
67 2.6290901313501e-07\\
|
|
||||||
68 2.43462036182129e-07\\
|
|
||||||
69 2.28404291071362e-07\\
|
|
||||||
70 2.24415864473542e-07\\
|
|
||||||
71 2.28468445317066e-07\\
|
|
||||||
72 2.16184931431008e-07\\
|
|
||||||
73 2.03658004162589e-07\\
|
|
||||||
74 1.83416377348944e-07\\
|
|
||||||
75 1.77025922497327e-07\\
|
|
||||||
76 1.70006600401104e-07\\
|
|
||||||
77 1.63491825605372e-07\\
|
|
||||||
78 1.57088823572822e-07\\
|
|
||||||
79 1.62321574880195e-07\\
|
|
||||||
80 1.55517018193352e-07\\
|
|
||||||
81 1.44132341985947e-07\\
|
|
||||||
82 1.33984748126281e-07\\
|
|
||||||
83 1.2519682821657e-07\\
|
|
||||||
84 1.21215390780982e-07\\
|
|
||||||
85 1.15338855777103e-07\\
|
|
||||||
86 1.08276150400166e-07\\
|
|
||||||
87 1.0480512415693e-07\\
|
|
||||||
88 1.01804326380995e-07\\
|
|
||||||
89 1.00101662634653e-07\\
|
|
||||||
90 9.48101967192299e-08\\
|
|
||||||
91 8.8924065689681e-08\\
|
|
||||||
92 8.8198911570793e-08\\
|
|
||||||
93 8.26647202805877e-08\\
|
|
||||||
94 7.78552030683553e-08\\
|
|
||||||
95 8.16807953528378e-08\\
|
|
||||||
96 7.66807903210005e-08\\
|
|
||||||
97 7.25436978662762e-08\\
|
|
||||||
98 6.71702595720641e-08\\
|
|
||||||
99 7.01343166575373e-08\\
|
|
||||||
100 6.80449977565033e-08\\
|
|
||||||
101 6.68192875014314e-08\\
|
|
||||||
102 6.22828481503882e-08\\
|
|
||||||
103 6.14945471895139e-08\\
|
|
||||||
104 6.70743224722515e-08\\
|
|
||||||
105 6.88753801346864e-08\\
|
|
||||||
106 6.74234915968034e-08\\
|
|
||||||
107 6.3875299735169e-08\\
|
|
||||||
108 6.10832293660889e-08\\
|
|
||||||
109 5.60972305769167e-08\\
|
|
||||||
110 5.08646226784856e-08\\
|
|
||||||
111 4.9561687694454e-08\\
|
|
||||||
112 4.46580704300798e-08\\
|
|
||||||
113 4.26878173046204e-08\\
|
|
||||||
114 4.10291136047614e-08\\
|
|
||||||
115 3.78768817391897e-08\\
|
|
||||||
116 3.73532345146491e-08\\
|
|
||||||
117 3.51670172399507e-08\\
|
|
||||||
118 3.22365221922065e-08\\
|
|
||||||
119 3.09141086362976e-08\\
|
|
||||||
120 3.02505083958211e-08\\
|
|
||||||
121 2.87114562212435e-08\\
|
|
||||||
122 2.66853094500274e-08\\
|
|
||||||
123 2.6004937830953e-08\\
|
|
||||||
124 2.5128996812777e-08\\
|
|
||||||
125 2.3900587385536e-08\\
|
|
||||||
126 2.2409516154494e-08\\
|
|
||||||
127 2.01607767874174e-08\\
|
|
||||||
128 1.92165407176116e-08\\
|
|
||||||
129 1.82690090540455e-08\\
|
|
||||||
130 1.78770817200396e-08\\
|
|
||||||
131 1.90428945268579e-08\\
|
|
||||||
132 1.79884322125703e-08\\
|
|
||||||
133 1.63052075399289e-08\\
|
|
||||||
134 1.64180505448727e-08\\
|
|
||||||
135 1.53303006209212e-08\\
|
|
||||||
136 1.4871760637339e-08\\
|
|
||||||
137 1.49330577072074e-08\\
|
|
||||||
138 1.41966980752516e-08\\
|
|
||||||
139 1.34094869141848e-08\\
|
|
||||||
140 1.38131070735712e-08\\
|
|
||||||
141 1.32790829181307e-08\\
|
|
||||||
142 1.29281208590769e-08\\
|
|
||||||
143 1.15621456920523e-08\\
|
|
||||||
144 1.12246784883697e-08\\
|
|
||||||
145 1.09924839400482e-08\\
|
|
||||||
146 1.05286801140992e-08\\
|
|
||||||
147 9.87772386372883e-09\\
|
|
||||||
148 9.8725860305187e-09\\
|
|
||||||
149 9.86619410929918e-09\\
|
|
||||||
150 9.8729284798242e-09\\
|
|
||||||
151 8.57478280643735e-09\\
|
|
||||||
152 7.71779322745324e-09\\
|
|
||||||
};
|
};
|
||||||
\addplot [color=mycolor2, forget plot]
|
\addplot [color=mycolor2, forget plot]
|
||||||
table[row sep=crcr]{%
|
table[row sep=crcr]{%
|
||||||
|
@ -185,24 +79,24 @@ title={Residual norms over iteration (y is log)}
|
||||||
6 6.2599388664747e-05\\
|
6 6.2599388664747e-05\\
|
||||||
7 3.67776811885644e-05\\
|
7 3.67776811885644e-05\\
|
||||||
8 2.26985377046381e-05\\
|
8 2.26985377046381e-05\\
|
||||||
9 2.75130507463433e-05\\
|
9 2.75130507463434e-05\\
|
||||||
10 1.74951186586757e-05\\
|
10 1.74951186586756e-05\\
|
||||||
11 2.49605697423791e-05\\
|
11 2.49605697423791e-05\\
|
||||||
12 1.12366572676273e-05\\
|
12 1.12366572676273e-05\\
|
||||||
13 1.54813768580115e-05\\
|
13 1.54813768580115e-05\\
|
||||||
14 1.23158281548519e-05\\
|
14 1.23158281548519e-05\\
|
||||||
15 8.3580459050464e-06\\
|
15 8.35804590504644e-06\\
|
||||||
16 1.06813390449761e-05\\
|
16 1.06813390449761e-05\\
|
||||||
17 4.65224806020401e-06\\
|
17 4.65224806020403e-06\\
|
||||||
18 4.34451840639607e-06\\
|
18 4.34451840639611e-06\\
|
||||||
19 1.9597444994322e-06\\
|
19 1.95974449943222e-06\\
|
||||||
20 1.88311897094725e-06\\
|
20 1.88311897094728e-06\\
|
||||||
21 1.76128803348424e-06\\
|
21 1.76128803348428e-06\\
|
||||||
22 1.27524022549895e-06\\
|
22 1.275240225499e-06\\
|
||||||
23 1.36310372428712e-06\\
|
23 1.36310372428718e-06\\
|
||||||
24 1.03510657531695e-06\\
|
24 1.03510657531701e-06\\
|
||||||
25 1.00121067351792e-06\\
|
25 1.00121067351798e-06\\
|
||||||
26 9.55653227050214e-07\\
|
26 9.55653227048963e-07\\
|
||||||
};
|
};
|
||||||
\end{axis}
|
\end{axis}
|
||||||
\end{tikzpicture}%
|
\end{tikzpicture}%
|
Reference in a new issue