🌍 Week 6 Homework — Feedback

Student: Simone Iudice
Assignment: Solow Model Calibration: Grid Search vs Optimization Tools


✅ Overall Assessment

Result:More than 50% Correct

Excellent submission with all three optimization methods correctly implemented and clear code organization. The objective plot correctly shows all three optima with distinct markers and colors, comprehensive comparison comments are provided discussing speed, robustness, and similarity. However, one required element is missing: No timing measurements (tic/toc) for comparing computation speeds. The code structure is excellent with good documentation and proper figure management.


🔍 Task-by-Task Check

Task Description Status Notes
1.1 Parameter structure setup All parameters correctly defined (alpha, delta, n, g, A0, K0)
1.2 Data generation or loading Synthetic data with noise correctly generated
2.1 Objective function definition Correct: sum((solow_simulate(s, P, T) - y_data).^2)
3.1 Create grid s ∈ [0.05, 0.5] Grid created with 200 points using linspace
3.2 Compute SSE for each grid point Loop correctly computes SSE for all grid points
3.3 Find minimum and extract s_hat_grid Correctly finds minimum using min() and extracts value
4.1 Implement sigmoid function Correct: sigmoid = @(x) 1./(1 + exp(-x))
4.2 Create objective wrapper Correct: obj_x = @(x) obj(sigmoid(x))
4.3 Call fminsearch and convert result Correctly calls fminsearch and converts x back to s using sigmoid
5.1 Set bounds [0, 1] correctly Bounds correctly set (lb=0, ub=1)
5.2 Call fmincon with proper syntax fmincon correctly called with proper syntax and optimoptions
6.1 Display computation times Missing: No tic/toc measurements for any method
6.2 Display optimization results Displays results for all three methods with formatted output
6.3 Comment comparing methods Excellent - Provides comprehensive comparison comments (lines 193-198) discussing speed, robustness, and similarity
7.1 Plot objective with all three optima Plot correctly shows all three optima (grid black square, fminsearch red circle, fmincon green diamond)
7.2 Plot model fit (data vs model) Correct plot showing data vs fitted model output over time
7.3 Save figures in Figures/ folder Figures correctly saved in PNG format

📈 Technical Implementation

  • Grid Search: Correctly implemented with proper loop and minimum finding
  • fminsearch with Sigmoid: Properly reparameterized using sigmoid function
  • fmincon with Bounds: Correctly implemented with proper options
  • Helper Function: solow_simulate() correctly implements Solow dynamics (included separately)
  • Figure Management: Creates Figures directory and saves figures properly
  • Code Organization: Excellent - well-structured with clear sections matching homework requirements
  • Documentation: Includes extensive comments explaining methodology

💬 Style & Clarity

  • Code Quality: Excellent organization with clear section headers and labeled parts
  • Variable Naming: Clear and descriptive (s_star_grid, s_hat_nelder, s_hat_con)
  • Comments: Excellent - Extensive documentation including explanations of methodology and economic interpretation
  • Output: Uses fprintf appropriately with formatted output
  • Organization: Well-structured code with clear separation between challenge and homework parts
  • Documentation: Includes thoughtful comments explaining the calibration process

📊 Visual Output Assessment

Figure 1: Objective Function with All Three Optima ✅

  • Layout: Plot showing SSE vs s with all three optima marked
  • Features: Shows grid search (black square), fminsearch (red circle), fmincon (green diamond) with distinct markers and colors
  • Styling: Excellent styling with proper labels, legend, grid, and custom colors
  • Saving: ✅ Saves to Figures/ directory
  • Quality: Excellent - clearly distinguishes all three methods with appropriate markers

Figure 2: Model Fit ✅

  • Layout: Plot showing observed data vs fitted model output over time
  • Features: Shows data (gray) and fitted model (blue) with proper legend
  • Styling: Appropriate styling with proper labels, legend, and grid
  • Saving: ✅ Saves to Figures/ directory
  • Quality: Good visualization of model fit

✅ Suggestions for Improvement

  1. CRITICAL: Add timing measurements (tic/toc) for all three methods:
    tic;
    % ... grid search code ...
    time_grid = toc;
       
    tic;
    % ... fminsearch code ...
    time_fminsearch = toc;
       
    tic;
    % ... fmincon code ...
    time_fmincon = toc;
       
    fprintf('Time (Grid search): %.4f seconds\n', time_grid);
    fprintf('Time (fminsearch): %.4f seconds\n', time_fminsearch);
    fprintf('Time (fmincon): %.4f seconds\n', time_fmincon);
    

🎯 Summary

Excellent submission with minor missing requirements. The student demonstrates strong understanding of optimization methods, implementing all three methods correctly (grid search, fminsearch with sigmoid, and fmincon). The code includes excellent organization with clear sections, comprehensive comparison comments discussing speed, robustness, and similarity of results, and proper figure management showing all three optima clearly with distinct markers. The documentation is extensive with thoughtful explanations. However, one required element is missing: no timing measurements for comparing computation speeds. The code structure is excellent with clear documentation and formatted output.

Grade Level: ✅ More than 50% Correct (12/12 tasks fully correct, 0/12 partially correct, 1/12 incorrect)