Connection between CG 5.2 and PCG 5struther/Courses/OLD/Sp2013/... · In[229]:= CG52@8A_, b_
Transcript of Connection between CG 5.2 and PCG 5struther/Courses/OLD/Sp2013/... · In[229]:= CG52@8A_, b_
Connection between
CG 5.2 and PCG 5.3
5.2
In[229]:= CG52@8A_, b_<, x0_D := ModuleB8r, p, x, Α, Β, k, MaxIter = Length@x0D<,r = p = x = 0 * Table@x0, 8MaxIter + 1<D;Α = Β = Table@0, 8MaxIter + 1<D;xP1T = x0;
rP1T = A.xP1T - b;
pP1T = -rP1T;DoB
ΑPkT =
rPkT.rPkTpPkT.A.pPkT
;
xPk + 1T = xPkT + ΑPkT pPkT;rPk + 1T = rPkT + ΑPkT A.pPkT;
ΒPk + 1T =
rPk + 1T.rPk + 1TrPkT.rPkT
;
pPk + 1T = -rPk + 1T + ΒPk + 1T pPkT,8k, 1, MaxIter<
F;8x, p, r, Α, Β<
F
CG53@8A_, b_, M_<, x0_D := ModuleB8r, p, x, y, Α, Β, k, MaxIter = Length@x0D<,r = p = x = y = 0 * Table@x0, 8MaxIter + 1<D;Α = Β = Table@0, 8MaxIter + 1<D;xP1T = x0;
rP1T = A.xP1T - b;
yP1T = LinearSolve@M, rP1TD;pP1T = -yP1T;DoB
ΑPkT =
rPkT.rPkTpPkT.A.pPkT
;
xPk + 1T = xPkT + ΑPkT pPkT;rPk + 1T = rPkT + ΑPkT A.pPkT;yPk + 1T = LinearSolve@M, rPk + 1TD;
ΒPk + 1T =
rPk + 1T.yPk + 1TrPkT.yPkT
;
pPk + 1T = -yPk + 1T + ΒPk + 1T pPkT,8k, 1, MaxIter<
F;8x, p, r, y, Α, Β<
F
2 PreconditionedCG.nb
In[297]:= n = 10;
8ANonSym, PreCondC< = RandomReal@8-1, 1<, 82, n, n<D;A = ANonSym.Transpose@ANonSymD;b = RandomReal@8-1, 1<, nD;M = [email protected];CInv = Inverse@PreCondCD;AHat = [email protected];bHat = [email protected];8x53, p53, r53, y53, Α53, Β53< = CG53@8A, b, M<, PreCondC.x0D;8x52, p52, r52, Α52, Β52< = CG52@8AHat, bHat<, x0D;GraphicsRow@8MatrixPlot@x53D, MatrixPlot@x52D<DListPlot@Map@Norm, r53DD
Out[307]=
1 2 3 4 5 6 7 8 9 10
1
2
4
6
8
10
11
1 2 3 4 5 6 7 8 9 10
1
2
4
6
8
10
11
1 2 3 4 5 6 7 8 9 10
1
2
4
6
8
10
11
1 2 3 4 5 6 7 8 9 10
1
2
4
6
8
10
11
Out[308]=
2 4 6 8 10
6.45
6.50
6.55
6.60
6.65
PreconditionedCG.nb 3
In[310]:= ListPlot@Map@Norm, r52DD
Out[310]=
2 4 6 8 10
1
2
3
4
5
4 PreconditionedCG.nb