From 9b439298d08db5ea519408a9ae3f60d8d9029cb6 Mon Sep 17 00:00:00 2001 From: Timothy Nunn Date: Fri, 11 Apr 2025 09:08:22 +0000 Subject: [PATCH] Correct BFGS update --- docs/source/vmcon.rst | 2 +- src/pyvmcon/vmcon.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/vmcon.rst b/docs/source/vmcon.rst index 4e42571..1267aa1 100644 --- a/docs/source/vmcon.rst +++ b/docs/source/vmcon.rst @@ -164,7 +164,7 @@ The definition of :math:`\vec{\eta}` ensures :math:`\mathbf{B}` remains positive We can then perform the BFGS update: .. math:: - \mathbf{B_{NEW}} = \mathbf{B} - \frac{\mathbf{B}\vec{\xi}\vec{\xi}^T\mathbf{B}}{\vec{\xi}^T\mathbf{B}\vec{\xi}} + \frac{ \vec{\eta} \vec{\eta}^T}{\vec{\xi}^T\vec{\eta}} + \mathbf{B_{NEW}} = \mathbf{B} - \frac{\mathbf{B}\vec{\xi}\vec{\xi}^T\mathbf{B}^T}{\vec{\xi}^T\mathbf{B}\vec{\xi}} + \frac{ \vec{\eta} \vec{\eta}^T}{\vec{\xi}^T\vec{\eta}} The VMCON Algorithm diff --git a/src/pyvmcon/vmcon.py b/src/pyvmcon/vmcon.py index 08b3492..46a60a7 100644 --- a/src/pyvmcon/vmcon.py +++ b/src/pyvmcon/vmcon.py @@ -544,7 +544,7 @@ def calculate_new_B( # eqn 8 B_ksi = B @ ksi - B += (gamma @ gamma.T) / (ksi.T @ gamma) - ((B_ksi @ ksi.T @ B) / (ksi.T @ B_ksi)) + B += (gamma @ gamma.T) / (ksi.T @ gamma) - ((B_ksi @ ksi.T @ B.T) / (ksi.T @ B_ksi)) return B