Mobile robot modeling is a challenging task especially for vehicles with complex nonlinear dynamics. Quadcopter UAVs are agile systems that are often described with a nominal nonlinear model that neglects various complicated dynamic phenomena for the sake of easier analysis and control design. This simplification leads to limiting the vehicle performance. To overcome this issue, an iterative learning approach is presented where a nominal representation of the system dynamics is used in conjunction with flight trials to improve performance. The objective is to learn to aggressively navigate a quadcopter through a course while avoiding obstacles. The performance is assessed by overall navigation time. The trajectory is optimized iteratively by blending an approximate gradient from the simplified nominal model with actual realized flight trajectories. The resulting optimization is a quadratic program, which can be solved efficiently. High fidelity quadcopter simulations with multiple test cases show significantly improved performance through repeated trials.