In design we perform an analysis and then we often “tweak” a design parameter and repeat the analysis to see if the design performance improves. In optimization we compute gradients of the cost and constraint functions to guide us through the design space and ultimately arrive at a design that satisfies the Karush-Kuhn Tucker optimality criteria*. In identification and inverse analyses we perform a simulation of an observed physical system and then tweak unknown model parameters and repeat the simulation in the hopes of making our simulated response better match the physical data and hence improve our system model. And finally in reliability studies, we use optimization techniques to determine the most probable point of failure. All of these tasks involve analysis and sensitivity analysis.