Simplex solves only linear systems, and finds a global optimum.
Cassowary is an incremental version of simplex—it lets you efficiently add, remove, and modify constraints.
Gradient descent works for non-linear systems, but isn't guaranteed to find the global optimum.