Generally, you do not have to mind the (sub)gradients at all. You can skip this page, if you want.NIMBUS method needs (sub)gradients of the objective and nonlinear constraint functions for its internal calculations in local optimization. In a case of differentiable and some basic nondifferentiable functions (like absolute value, min and max) you do not have to worry about calculating them manually: the system will generate them. Only some more complicated nondifferentiable functions may need an explicit specification of (sub)gradients.
NOTE: When using differentiable functions, gradient and subgradient functions are the same.You can either see the (sub)gradient page and check if the functions are right or skip that phase and leave the (sub)gradients to be calculated by the system. This selection can be made from the same page where the objective functions are specified. (Continue with differentiation by the user and Continue with differentiation by the system - buttons).
In our problem the system calculates the gradients as follows:At the beginning those expressions may seem quite confusing, because they are not simplified, but they are still correct.
d(Volume) / d(x1) = (3.141590*(2.0*X1))*X2 d(Volume) / d(x2) = 3.141590*X1^2.0 d(SurfaceArea) / d(x1) = (2.0*3.141590)*(2.0*X1)+(2.0*3.141590)*X2 d(SurfaceArea) / d(x2) = (2.0*3.141590)*X1 d(HeightDiff) / d(x1) = 0.0 d(HeightDiff) / d(x2) = IF(X2-15.0<0.0) THEN (-1.0) ELSE (1.0)
The number of (sub)gradients per function equals to the number of all variables. For example, if you have three objective functions and two variables, the number of (sub)gradient functions will be six. This is due to the fact that every function is derived in regard to every variable.