% % Written by: % -- % John L. Weatherwax 2006-12-31 % % email: wax@alum.mit.edu % % Please send comments and especially bug reports to the % above email address. % %----- close all; clc; clear; D = 10; G = 400; Dstar = 0.5; Gstar = 5; C = 0.002; min_deltaS = -0.05; max_deltaS = +0.05; % Plot deltaPi_worst as a function of lambda by griding lambda: % n_pts = 100; lambda_min = -300; lambda_max = 0; lambdas = linspace( lambda_min+0.1*abs(lambda_min), lambda_max, n_pts ); dPi_worst = zeros(1,n_pts); for ii = 1:length(lambdas) dPi_worst(ii) = deltaPi_vs_lambda(lambdas(ii), D,G,Dstar,Gstar,C,min_deltaS,max_deltaS); end % Get a very coarse initial guess at the location of the maximum: % [mv,mi] = max(dPi_worst); lambda_initial_guess = lambdas(mi); % Use an optimization routine to compute this value (not just a grid search): % min_opts = optimset('fminunc'); min_opts = optimset(min_opts, 'LargeScale', 'off' ); lambda_opt = fminunc( @(x) -deltaPi_vs_lambda(x, D,G,Dstar,Gstar,C,min_deltaS,max_deltaS), lambda_initial_guess, min_opts ); plot( lambdas, dPi_worst, '-' ); xlabel('lambda'); ylabel('delta Pi (worst)'); axis( [lambda_min,lambda_max, min(dPi_worst), max(dPi_worst)+10*abs(max(dPi_worst))] ); addpath('~/Matlab/'); vline(lambda_opt); text( -150, -5, ['optimal lambda=',num2str(lambda_opt)] ); saveas( gcf, '../../WriteUp/Graphics/Chapter43/optimization_for_lambda', 'epsc' ); % Plot the unhedged and hedged dPi in both cases: % deltaSs = linspace( min_deltaS, max_deltaS, 500 ); dPi_UH = deltaSs * D + 0.5 * ( deltaSs.^2 ) * G; dPi_H = deltaSs * ( D + lambda_opt * Dstar ) + 0.5 * ( deltaSs.^2 ) * ( G + lambda_opt * Gstar ); figure; h_uh = plot( deltaSs*100, dPi_UH, '-r' ); hold on; h_h = plot( deltaSs*100, dPi_H, '-g' ); xlabel('delta S (percent)'); ylabel('delta Pi'); legend( [h_uh,h_h], {'dP unhedged', 'dP hedged'}, 'location', 'northwest' ); saveas( gcf, '../../WriteUp/Graphics/Chapter43/deltaS_vs_dPi', 'epsc' );