wiki:PolynomialExpansion

Version 35 (modified by sili, 10 years ago) ( diff )

--

A = {{a0, a1}, {a1, a2}}, b = {b0, b1}, x0 = {0, 0}

Step 1: r0 = b - Ax0; p0 = r0

r[0] = b0

r[1] = b1

Step 2: alpha0 = <r0, r0> / <p0, Ap0>

<p0, Ap0> = b0*(a0*b0 + a1*b1) + b1*(a1*b0 + a2*b1)

alpha0 = (b02+b12) / b0*(a0*b0 + a1*b1) + b1*(a1*b0 + a2*b1)

Step 3: r1 = r0 - alpha0 * Ap0

r[0] = (-b1*(-a1*b02 + a0*b0*b1 - a2*b0*b1 + a1*b12)) / (a0*b02 + 2*a1*b0*b1 + a2*b12)

r[1] = (b0*(-a1*b02 + a0*b0*b1 - a2*b0*b1 + a1*b12)) / (a0*b02 + 2*a1*b0*b1 + a2*b12)

Step 4: x1 = x0 + alpha*p0

x[0] = (b0*(b02 + b12)) / (a0*b02 + 2*a1*b0*b1 + a2*b12)

x[1] = (b1*(b02 + b12)) / (a0*b02 + 2*a1*b0*b1 + a2*b12)

Step 5: beta = rsnew / rsold = <r1, r1> / <r0, r0>

rsnew = ((b02 + b12)*(-a1*b02 + a0*b0*b1 - a2*b0*b1 + a1*b12)2) / (a0*b02 + 2*a1*b0*b1 + a2*b12)2

beta = (a1*b02 - a0*b0*b1 + a2*b0*b1 - a1*b12)2 / (a0*b02 + 2*a1*b0*b1 + a2*b12)2

Step 6: p1 = r1 +beta * p0

p[0] = (-1)*((a1*b0 + a2*b1)*(b02 + b12)*(-a1*b02 + a0*b0*b1 - a2*b0*b1 + a1*b12)) / (a0*b02 + 2*a1*b0*b1 + a2*b12)2

p[1] = ((a0*b0 + a1*b1)*(b02 + b12)*(-a1*b02 + a0*b0*b1 - a2*b0*b1 + a1*b12)) / (a0*b02 + 2*a1*b0*b1 + a2*b12)2

Step 7: alpha1 = <r1, r1> / <p1, Ap1>

<p1, Ap1> = ((-a12 + a0*a2)*(b02 + b12)2*(-a1*b02 + a0*b0*b1 - a2*b0*b1 + a1*b12)2) / (a0*b02 + 2*a1*b0*b1 + a2*b12)3

alpha1 = (a0*b02 + 2*a1*b0*b1 + a2*b12) / ((-a12 + a0*a2) (b02 + b12))

Step 8: r2 = r1 - alpha1 * Ap1

r[0] = 0

r[1] = 0

Step 9: x2 = x1 + alpha1*p1

x[0] = (a2*b0 - a1*b1) / (a0*a2 - a12)

x[1] = (-a1*b0 + a0*b1) / (a0*a2 - a12)

assertion:

bncg[0] = A[0][0]*x[0] + A[0][1]*x[1] = a0*(a2*b0 - a1*b1) / (a0*a2 - a12) + a1*(-a1*b0 + a0*b1) / (a0*a2 - a12) = b0*(a0*a2 - a12) / (a0*a2 - a12) = b0

bncg[1] = A[1][0]*x[0] + A[1][1]*x[1] = a1*(a2*b0 - a1*b1) / (a0*a2 - a12) + a2*(-a1*b0 + a0*b1) / (a0*a2 - a12) = b1*(a0*a2 - a12) / (a0*a2 - a12) = b1

b[0] = b0

b[1] = b1

assert(bncg[i] == b[i])

END

Attachments (4)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.