Preconditioning the Steepest Descent Method

  • Thread starter Thread starter Deimantas
  • Start date Start date
  • Tags Tags
    Method
Click For Summary
SUMMARY

The discussion focuses on the application of preconditioning in the Steepest Descent Method (SDM) for solving linear systems represented by the equation AX=F, where A is a 3x3 matrix and F is a vector. The user successfully implements the SDM without preconditioning and seeks guidance on how to incorporate a preconditioner matrix B, ideally the inverse of A, to enhance convergence. Key calculations and iterations are provided, demonstrating the process of updating the solution vector X. The user expresses a need for clarity on how preconditioning alters each step of the algorithm.

PREREQUISITES
  • Understanding of linear algebra concepts, particularly matrix operations.
  • Familiarity with the Steepest Descent Method (SDM) for solving linear systems.
  • Knowledge of preconditioning techniques in numerical analysis.
  • Experience with programming solutions for numerical methods, preferably in a language like Python or MATLAB.
NEXT STEPS
  • Research the mathematical foundations of preconditioning in iterative methods.
  • Learn about different types of preconditioners and their impact on convergence rates.
  • Explore the implementation of preconditioning in the Steepest Descent Method using matrix B.
  • Examine case studies or examples where preconditioning significantly improves solution accuracy and speed.
USEFUL FOR

Students and professionals in numerical analysis, computational mathematics, and engineering who are interested in optimizing iterative methods for solving linear systems, particularly those using the Steepest Descent 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.
 

Similar threads

Replies
2
Views
4K