[Ipopt] Off-diagonal elements in hessian are being doubled
Sean C McDuffee
scmcduff at blueskystudios.com
Thu Nov 15 12:44:23 EST 2012
der der der - thanks
On 11/15/2012 12:11 PM, Johannes Huber wrote:
> Since the Hessian is always symmetric, you only need to specify the lower or upper triangular matrix for Ipopt. Otherwise it is added up resulting in doubles matrix entries.
> I guess, you specified the full matrix instead of only one triangular of it.
> Best,
> Hannes
> ________________________________________
> From: ipopt-bounces at list.coin-or.org [ipopt-bounces at list.coin-or.org] on behalf of Sean C McDuffee [scmcduff at blueskystudios.com]
> Sent: Thursday, November 15, 2012 5:47 PM
> To: ipopt at list.coin-or.org
> Subject: [Ipopt] Off-diagonal elements in hessian are being doubled
>
> 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
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
More information about the Ipopt
mailing list