1 function Hessian = lin_evol_opt_fd_Hessian(model, model_data, mu,h)
2 %
function U_der = lin_evol_opt_fd_Hessian(model, model_data, mu,h)
4 %
function calculating the second derivative solution via PDE and finite difference
5 % procedure
for the parameter mu.
7 % Markus Dihlmann 20.06.2011
13 old_mu = get_mu(model);
15 model = set_mu(model, mu);
17 compute_derivative_old = model.compute_derivative_info;
19 model.compute_derivative_info =1;
22 sim_data = detailed_simulation(model, model_data);
24 U_der_fix=sim_data.U_der;
25 Hessian = cell(length(sim_data.U_der),length(sim_data.U_der));
30 for j = 1:length(sim_data.U_der)
31 for i=1:length(sim_data.U_der)
32 %is mu+h inside mu_range?
33 if (mu(i)+h>=model.mu_ranges{i}(1))&&(mu(i)+h<=model.mu_ranges{i}(2))
35 model = set_mu(model,mu);
36 sim_data = detailed_simulation(model, model_data);
38 model = set_mu(model,mu);
40 Hessian(j,i) = {(sim_data.U_der{j}-U_der_fix{j})./h};
43 model = set_mu(model,mu);
44 sim_data = detailed_simulation(model, model_data);
46 model = set_mu(model,mu);
48 Hessian(j,i) = {(-sim_data.U_der{j}+U_der_fix{j})./h};
53 model = set_mu(model, old_mu);
54 model.compute_derivative_info = compute_derivative_old;