quasi-Newton method with initial Hessian + preconditioning

4 visualizzazioni (ultimi 30 giorni)
I am heavily dependent on the quasi-Newton method in the minimization of nonlinear energies
f(x)-> min
discretized by the finite element methods. It seems that (default) setting the identity matrix as the initial Hessian in the BFGS step slows down the convergence significantly. Is there any way to provide an own Hessian to start from it?
Besides, is there any option to switch to the preconditioned minimization
f(P*y)-> min ,
where P*y=x and the matrix P is known with an inverse available (there is a cost for the inverse but it might pay off at the end, since the energy to be minimized is complicated). It should lead to some kind of preconditioning. We hope the convergence of y instead of x might be faster with respect to default stopping criteria.
Thank you for your valuable tips. Jan V.

Risposte (1)

Yash
Yash il 22 Nov 2023
Hi Jan V,
For solving nonlinear optimization problems, you can use the 'fminunc' function from the Optimization Toolbox in MATLAB to minimize a given objective function. This function allows you to specify the Hessian matrix or use a quasi-Newton method with different update formulas. You can also use the 'pcg' function to solve linear systems with a preconditioner. To know more about the 'fminunc' and 'pcg' functions, you can refer to there documentations here:
You can also refer to this example to learn how to solve large systems of linear equations using the conjugate gradient and the preconditioned conjugate gradient methods: https://in.mathworks.com/help/parallel-computing/Use-Distributed-Arrays-to-Solve-Systems-of-Linear-Equations-with-Iterative-Methods.html
Hope this helps!

Prodotti


Release

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by