| Version 57 (modified by , 10 years ago) ( diff ) |
|---|
A = {{a0, a1}, {a1, a2}}, b = {b0, b1}, x0 = {0, 0}
Step 1: r0 = b - Ax0; p0 = r0 (No expansion)
r[0] = b0
r[1] = b1
Step 2: alpha0 = <r0, r0> / <p0, Ap0> (No expansion)
<p0, Ap0> = b0(a0b0 + a1b1) + b1(a1b0 + a2b1)
alpha0 = (b02+b12) / (b0(a0b0 + a1b1) + b1(a1b0 + a2b1))
Step 3: r1 = r0 - alpha0*Ap0 (No expansion)
r[0] = (b0(b0(a0b0 + a1b1) + b1(a1b0 + a2b1)) - (b02+b12)(a0b0+a1b1)) / (b0(a0b0 + a1b1) + b1(a1b0 + a2b1))
r[1] = (b1(b0(a0b0 + a1b1) + b1(a1b0 + a2b1)) - (b02+b12)(a1b0+a2b1)) / (b0(a0b0 + a1b1) + b1(a1b0 + a2b1))
Step 4: x1 = x0 + alpha0*p0 (No expansion)
x[0] = (b0(b02 + b12)) / (b0(a0b0 + a1b1) + b1(a1b0 + a2b1))
x[1] = (b1(b02 + b12)) / (b0(a0b0 + a1b1) + b1(a1b0 + a2b1))
Step 5: beta = rsnew / rsold = <r1, r1> / <r0, r0> (No expansion)
rsnew = ((b0(b0(a0b0 + a1b1) + b1(a1b0 + a2b1)) - (b02+b12)(a0b0+a1b1))2 + (b1(b0(a0b0 + a1b1) + b1(a1b0 + a2b1)) - (b02+b12)(a1b0+a2b1))2) / (b0(a0b0 + a1b1) + b1(a1b0 + a2b1))2
beta = ((b0(b0(a0b0 + a1b1) + b1(a1b0 + a2b1)) - (b02+b12)(a0b0+a1b1))2 + (b1(b0(a0b0 + a1b1) + b1(a1b0 + a2b1)) - (b02+b12)(a1b0+a2b1))2) / (b02+b12)(b0(a0b0 + a1b1) + b1(a1b0 + a2b1))2
Step 6: p1 = r1 +beta*p0 (No expansion)
p[0] = ((b02+b12)(b0(a0b0 + a1b1) + b1(a1b0 + a2b1))(b0(b0(a0b0 + a1b1) + b1(a1b0 + a2b1)) - (b02+b12)(a0b0+a1b1)) + b0((b0(b0(a0b0 + a1b1) + b1(a1b0 + a2b1)) - (b02+b12)(a0b0+a1b1))2 + (b1(b0(a0b0 + a1b1) + b1(a1b0 + a2b1) - (b02+b12)(a1b0+a2b1))2)) / (b02+b12)(b0(a0b0 + a1b1) + b1(a1b0 + a2b1))2
p[1] = ((b02+b12)(b0(a0b0 + a1b1) + b1(a1b0 + a2b1))(b1(b0(a0b0 + a1b1) + b1(a1b0 + a2b1)) - (b02+b12)(a1b0+a2b1)) + b1((b0(b0(a0b0 + a1b1) + b1(a1b0 + a2b1)) - (b02+b12)(a0b0+a1b1))2 + (b1(b0(a0b0 + a1b1) + b1(a1b0 + a2b1) - (b02+b12)(a1b0+a2b1))2)) / (b02+b12)(b0(a0b0 + a1b1) + b1(a1b0 + a2b1))2
Step 7: alpha1 = <r1, r1> / <p1, Ap1> (No expansion)
alpha1 = ((b0(b0(a0b0 + a1b1) + b1(a1b0 + a2b1)) - (b02+b12)(a0b0+a1b1))2 + (b1(b0(a0b0 + a1b1) + b1(a1b0 + a2b1)) - (b02+b12)(a1b0+a2b1))2) / (p[0](a0p[0]+a1p[1]) + p[1](a1p[0]+a2p[1]))(b0(a0b0 + a1b1) + b1(a1b0 + a2b1))2
Step 8: r2 = r1 - alpha1*Ap1 (Need to expand for cancellation)
r[0] = (b0(b0(a0b0 + a1b1) + b1(a1b0 + a2b1)) - (b02+b12)(a0b0+a1b1)) / (b0(a0b0 + a1b1) + b1(a1b0 + a2b1)) - (a0p[0]+a1p[1])((b0(b0(a0b0 + a1b1) + b1(a1b0 + a2b1)) - (b02+b12)(a0b0+a1b1))2 + (b1(b0(a0b0 + a1b1) + b1(a1b0 + a2b1)) - (b02+b12)(a1b0+a2b1))2) / (p[0](a0p[0]+a1p[1]) + p[1](a1p[0]+a2p[1]))(b0(a0b0 + a1b1) + b1(a1b0 + a2b1))2 = 0
r[1] = (b1(b0(a0b0 + a1b1) + b1(a1b0 + a2b1)) - (b02+b12)(a1b0+a2b1)) / (b0(a0b0 + a1b1) + b1(a1b0 + a2b1)) - (a1p[0]+a2p[1])((b0(b0(a0b0 + a1b1) + b1(a1b0 + a2b1)) - (b02+b12)(a0b0+a1b1))2 + (b1(b0(a0b0 + a1b1) + b1(a1b0 + a2b1)) - (b02+b12)(a1b0+a2b1))2) / (p[0](a0p[0]+a1p[1]) + p[1](a1p[0]+a2p[1]))(b0(a0b0 + a1b1) + b1(a1b0 + a2b1))2 = 0
Step 9: x2 = x1 + alpha1*p1
x[0] = (a2b0 - a1b1) / (a0a2 - a12)
x[1] = (-a1b0 + a0b1) / (a0a2 - a12)
assertion: (Need to expand for cancellation)
bncg[0] = A[0][0]*x[0] + A[0][1]*x[1] = a0(a2b0 - a1b1) / (a0a2 - a12) + a1(-a1b0 + a0b1) / (a0a2 - a12) = b0(a0a2 - a12) / (a0a2 - a12) = b0
bncg[1] = A[1][0]*x[0] + A[1][1]*x[1] = a1(a2b0 - a1b1) / (a0a2 - a12) + a2(-a1b0 + a0b1) / (a0a2 - a12) = b1(a0a2 - a12) / (a0a2 - a12) = b1
b[0] = b0
b[1] = b1
assert(bncg[i] == b[i])
END
Attachments (4)
-
2x2caseWithoutLoop.cvl
(3.1 KB
) - added by 10 years ago.
CG 2x2 case without loop
-
2x2caseSteps.pdf
(212.0 KB
) - added by 10 years ago.
cg2x2_ intermediateResult
-
2x2caseSimplified.pdf
(113.8 KB
) - added by 10 years ago.
Simplified steps of 2x2 case
- 2x2caseSimplifiedUpdate.pdf (106.8 KB ) - added by 10 years ago.
Download all attachments as: .zip
