Preconditioning the Steepest Descent Method

  • Thread starter Thread starter Deimantas
  • Start date Start date
  • Tags Tags
    Method
Deimantas
Messages
38
Reaction score
0

Homework Statement





Homework Equations



Pk = A*Xk - F

τk = ((A*Xk - F)*(A*Xk - F))/(A*(A*Xk - F))*(A*Xk - F)

Xk+1 = Xk - τk * (A*Xk - F)


The Attempt at a Solution



We are given a system of equations:


AX=F, where A3x3= (2 1 0.95; 1 2 1; 0.95 1 2) and F= (3.95;4;3.95)τ

(The solution is (1;1;1)τ)

We choose the first X freely: X0 = (0;0;0)τ

Therefore:

(1) AX0-F = -F = (-3.95;-4;-3.95)τ

(2) (A*X0 - F)*(A*X0 - F) = 47.205

(3) A*(A*X0 - F) = (-15.6525;-15.9;-15.6525)τ

(4) (A*(A*Xk - F))*(A*Xk - F) = 187.25475

So τ0 = 0.252090

Therefore our new approximate X is:

(5) X1 = X0 - τ0 * (A*Xk - F) = (0;0;0)τ - 0.252090 * (-3.95;-4;-3.95)τ ≈ (0.995754;1.008359;0.995754)τ

We repeat this process with the new approximation of X, until we reach the desired accuracy.

This is the method of steepest descent without preconditioning. Can anyone show me how each step of this algorithm changes with preconditioning applied? Suppose we use a preconditioner matrix B which is equal to the inverse of A (or any matrix that you think would be the best).

I'd highly appreciate any help. I've made a program to calculate solutions of a system of equations using SDM already, and it works fine, I just don't understand how to apply preconditioning. Hopefully the equations I've written are readable, apologies.
 
Last edited:
Physics news on Phys.org
Deimantas said:

Homework Statement





Homework Equations



Pk = A*Xk - F

τk = ((A*Xk - F)*(A*Xk - F))/(A*(A*Xk - F))*(A*Xk - F)

Xk+1 = Xk - τk * (A*Xk - F)


The Attempt at a Solution



We are given a system of equations:


AX=F, where A3x3= (2 1 0.95; 1 2 1; 0.95 1 2) and F= (3.95;4;3.95)τ

(The solution is (1;1;1)τ)

We choose the first X freely: X0 = (0;0;0)τ

Therefore:

(1) AX0-F = -F = (-3.95;-4;-3.95)τ

(2) (A*X0 - F)*(A*X0 - F) = 47.205

(3) A*(A*X0 - F) = (-15.6525;-15.9;-15.6525)τ

(4) (A*(A*Xk - F))*(A*Xk - F) = 187.25475

So τ0 = 0.252090

Therefore our new approximate X is:

(5) X1 = X0 - τ0 * (A*Xk - F) = (0;0;0)τ - 0.252090 * (-3.95;-4;-3.95)τ ≈ (0.995754;1.008359;0.995754)τ

We repeat this process with the new approximation of X, until we reach the desired accuracy.

This is the method of steepest descent without preconditioning. Can anyone show me how each step of this algorithm changes with preconditioning applied? Suppose we use a preconditioner matrix B which is equal to the inverse of A (or any matrix that you think would be the best).

I'd highly appreciate any help. I've made a program to calculate solutions of a system of equations using SDM already, and it works fine, I just don't understand how to apply preconditioning. Hopefully the equations I've written are readable, apologies.

The topic is a bit "large" to cover in a Forum like this one. An on-line search using keywords "steepest descent + precondioned" (or "preconditioning") yields many, many articles.
 
There are two things I don't understand about this problem. First, when finding the nth root of a number, there should in theory be n solutions. However, the formula produces n+1 roots. Here is how. The first root is simply ##\left(r\right)^{\left(\frac{1}{n}\right)}##. Then you multiply this first root by n additional expressions given by the formula, as you go through k=0,1,...n-1. So you end up with n+1 roots, which cannot be correct. Let me illustrate what I mean. For this...
Back
Top