Description Usage Arguments Details Value See Also Examples

Provide a check on Kuhn-Karush-Tucker conditions based on quantities already computed. Some of these used only for reporting.

1 2 |

`par` |
A vector of values for the parameters which are supposedly optimal. |

`fn` |
The objective function |

`gr` |
The gradient function |

`hess` |
The Hessian function |

`upper` |
Upper bounds on the parameters |

`lower` |
Lower bounds on the parameters |

`maximize` |
Logical TRUE if function is being maximized. Default FALSE. |

`control` |
A list of controls for the function |

`...` |
The dot arguments needed for evaluating the function and gradient and hessian |

kktchk computes the gradient and Hessian measures for BOTH unconstrained and bounds (and masks) constrained parameters, but the kkt measures are evaluated only for the constrained case.

The output is a list consisting of

`gmax` |
The absolute value of the largest gradient component in magnitude. |

`evratio` |
The ratio of the smallest to largest Hessian eigenvalue. Note that this may be negative. |

`kkt1` |
A logical value that is TRUE if we consider the first (i.e., gradient) KKT condition to be satisfied. WARNING: The decision is dependent on tolerances and scaling that may be inappropriate for some problems. |

`kkt2` |
A logical value that is TRUE if we consider the second (i.e., positive definite Hessian) KKT condition to be satisfied. WARNING: The decision is dependent on tolerances and scaling that may be inappropriate for some problems. |

`hev` |
The calculated hessian eigenvalues, sorted largest to smallest?? |

`ngatend` |
The computed (unconstrained) gradient at the solution parameters. |

`nnatend` |
The computed (unconstrained) hessian at the solution parameters. |

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | ```
cat("Show how kktc works\n")
# require(optimx)
require(optextras)
jones<-function(xx){
x<-xx[1]
y<-xx[2]
ff<-sin(x*x/2 - y*y/4)*cos(2*x-exp(y))
ff<- -ff
}
jonesg <- function(xx) {
x<-xx[1]
y<-xx[2]
gx <- cos(x * x/2 - y * y/4) * ((x + x)/2) * cos(2 * x - exp(y)) -
sin(x * x/2 - y * y/4) * (sin(2 * x - exp(y)) * 2)
gy <- sin(x * x/2 - y * y/4) * (sin(2 * x - exp(y)) * exp(y)) - cos(x *
x/2 - y * y/4) * ((y + y)/4) * cos(2 * x - exp(y))
gg <- - c(gx, gy)
}
ans <- list() # to ensure structure available
# If optimx package available, the following can be run.
# xx<-0.5*c(pi,pi)
# ans <- optimr(xx, jones, jonesg, method="Rvmmin")
# ans
ans$par <- c(3.154083, -3.689620)
kkans <- kktchk(ans$par, jones, jonesg)
kkans
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.