wiki:PolynomialExpansion

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

--

A = {{X0, X1}, {X1, X2}}, b = {b0, b1}

A0 A1

Step 1: r = b - Ax

r[0] = b0

r[1] = b1

Step 2: alpha = (r[i]*r[i]) / (p[i]*A[i][j]*p[j])

p[i]*(A[i][j]*p[j]) = X0*b02 + 2*X1*b0*b1 + X2*b12

alpha = (b02+b12) / ((b12)*X2+2*(b1*b0*X1)+(b02)*X0)

Step 3: r[i] = r - alpha * A[i][j] * p[j]

r[0] = (-b1*(-X1*b02 + X0*b0*b1 - X2*b0*b1 + X1*b12)) / (X0*b02 + 2*X1*b0*b1 + X2*b12)

r[1] = (b0*(-X1*b02 + X0*b0*b1 - X2*b0*b1 + X1*b12)) / (X0*b02 + 2*X1*b0*b1 + X2*b12)

Step 4: x[i] = x + alpha*p[i]

x[0] = (b0*(b02 + b12)) / (X0*b02 + 2*X1*b0*b1 + X2*b12)

x[1] = (b1*(b02 + b12)) / (X0*b02 + 2*X1*b0*b1 + X2*b12)

Step 5: beta = rsnew / rsold = (rk[i]*rk[i]) / (r[i]*r[i])

rsnew = ((b02 + b12)*(-X1*b02 + X0*b0*b1 - X2*b0*b1 + X1*b12)2) / (X0*b02 + 2*X1*b0*b1 + X2*b12)2

beta = (X1*b02 - X0*b0*b1 + X2*b0*b1 - X1*b12)2 / (X0*b02 + 2*X1*b0*b1 + X2*b12)2

Step 6: p[i] = rk[i] +beta * p

p[0] = (-1)*((X1*b0 + X2*b1)*(b02 + b12)*(-X1*b02 + X0*b0*b1 - X2*b0*b1 + X1*b12)) / (X0*b02 + 2*X1*b0*b1 + X2*b12)2

p[1] = ((X0*b0 + X1*b1)*(b02 + b12)*(-X1*b02 + X0*b0*b1 - X2*b0*b1 + X1*b12)) / (X0*b02 + 2*X1*b0*b1 + X2*b12)2

Step 7: alpha = (r[i]*r[i]) / (p[i]*A[i][j]*p[j])

p[i]*(A[i][j]*p[j]) = ((-X12 + X0*X2)*(b02 + b12)2*(-X1*b02 + X0*b0*b1 - X2*b0*b1 + X1*b12)2) / (X0*b02 + 2*X1*b0*b1 + X2*b12)3

alpha = (X0*b02 + 2*X1*b0*b1 + X2*b12) / ((-X12 + X0*X2) (b02 + b12))

Step 8: r[i] = r - alpha * A[i][j] * p[j]

r[0] = 0

r[1] = 0

Step 9: x[i] = x + alpha*p[i]

x[0] = (X2*b0 - X1*b1) / (X0*X2 - X12)

x[1] = (-X1*b0 + X0*b1) / (X0*X2 - X12)

assertion:

bncg[0] = A[0][0]*X[0] + A[0][1]*X[1] = X0*(X2*b0 - X1*b1) / (X0*X2 - X12) + X1*(-X1*b0 + X0*b1) / (X0*X2 - X12) = b0*(X0*X2-X12) / (X0*X2-X12) = b0

bncg[1] = A[1][0]*X[0] + A[1][1]*X[1] = X1*(X2*b0 - X1*b1) / (X0*X2 - X12) + X2*(-X1*b0 + X0*b1) / (X0*X2 - X12) = b1*(X0*X2-X12) / (X0*X2-X12) = b1

b[0] = b0

b[1] = b1

END

Attachments (4)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.