Security-constrained economic dispatch using dual quadratic programming