[Ipopt] Off-diagonal elements in hessian are being doubled
Sean C McDuffee
scmcduff at blueskystudios.com
Thu Nov 15 11:47:31 EST 2012
My hessian is filling out the following matrix:
300 0 0 0 -300 0 0 0 0 0 0
0 100 0 0 0 -100 0 0 0 0 0
0 0 100 0 0 0 -100 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
-300 0 0 0 600 0 0 0 -300 0 0
0 -100 0 0 0 200 0 0 0 -100 0
0 0 -100 0 0 0 200 0 0 0 -100
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 -300 0 0 0 300 0 0
0 0 0 0 0 -100 0 0 0 100 0
0 0 0 0 0 0 -100 0 0 0 100
but the derivative checker is outputting:
* obj_hess[ 0, 4] = -6.0000000000000000e+02 v ~
-2.9999999924257281e+02 [ 1.000e+00]
* obj_hess[ 1, 5] = -2.0000000000000003e+02 v ~
-1.0000000000000000e+02 [ 1.000e+00]
* obj_hess[ 2, 6] = -2.0000000000000003e+02 v ~
-1.0000000000000000e+02 [ 1.000e+00]
* obj_hess[ 4, 0] = -6.0000000000000000e+02 v ~
-2.9999999924257281e+02 [ 1.000e+00]
* obj_hess[ 4, 8] = -6.0000000000000000e+02 v ~
-2.9999999924257281e+02 [ 1.000e+00]
* obj_hess[ 5, 1] = -2.0000000000000003e+02 v ~
-1.0000000000000000e+02 [ 1.000e+00]
* obj_hess[ 5, 9] = -2.0000000000000003e+02 v ~
-1.0000000000000000e+02 [ 1.000e+00]
* obj_hess[ 6, 2] = -2.0000000000000003e+02 v ~
-1.0000000000000000e+02 [ 1.000e+00]
* obj_hess[ 6, 10] = -2.0000000000000003e+02 v ~
-1.0000000000000000e+02 [ 1.000e+00]
* obj_hess[ 8, 4] = -6.0000000000000000e+02 v ~
-2.9999999810570444e+02 [ 1.000e+00]
* obj_hess[ 9, 5] = -2.0000000000000003e+02 v ~
-1.0000000000000000e+02 [ 1.000e+00]
* obj_hess[ 10, 6] = -2.0000000000000003e+02 v ~
-1.0000000000000000e+02 [ 1.000e+00]
I've checked my setup and the values array and it conforms to the above,
correct matrix. Can anybody help?
Thanks,
Sean
More information about the Ipopt
mailing list