aboutsummaryrefslogtreecommitdiff
path: root/mode_match.m
diff options
context:
space:
mode:
Diffstat (limited to 'mode_match.m')
-rw-r--r--mode_match.m22
1 files changed, 18 insertions, 4 deletions
diff --git a/mode_match.m b/mode_match.m
index 0a36332..3eed53f 100644
--- a/mode_match.m
+++ b/mode_match.m
@@ -1,4 +1,4 @@
-function [ possible_lens_placement, possible_lens_set, possible_sample_energy] = mode_match( q0, qf, Ltot, lambda, lens_permutations )
+function [ final_possible_lens_placement, initial_possible_lens_placement, possible_lens_set, possible_sample_energy] = mode_match( q0, qf, Ltot, lambda, lens_permutations )
%Shuffles lenses into random positions and stores possible solutions
% Shuffles over entire lens permutation array for n_shuffles times.
% Afterwards, solutions are sorted by Energy and truncated to n_truncate
@@ -6,6 +6,10 @@ function [ possible_lens_placement, possible_lens_set, possible_sample_energy] =
n_perms = size(lens_permutations,1);
n_shuffles=20; %number of random placements of lenses
+initial_MaxFunEvals = 1e8;
+initial_MaxIter = 10;
+final_MaxFunEvals = 1e8;
+final_MaxIter = 100;
%Initialize sample arrays
N = n_perms * n_shuffles;
@@ -27,12 +31,22 @@ for ip = 1:n_perms
end
end
+
+
+
parfor i = 1:N
-
fitness_simplified=@(x) fitness(q0, qf, Ltot, x, possible_lens_set(i,:), lambda );
- [x_sol, energy]=fminsearch(fitness_simplified, initial_rand_lens_placement(i,:), optimset('TolFun',1e-5,'MaxFunEvals',1e8,'MaxIter',200));
+ [ x_sol, energy ] = find_min(i, initial_rand_lens_placement, fitness_simplified, initial_MaxFunEvals, initial_MaxIter )
+
+ initial_possible_lens_placement(i,:) =x_sol;
- possible_lens_placement(i,:) =x_sol;
+end
+
+parfor i = 1:N
+ fitness_simplified=@(x) fitness(q0, qf, Ltot, x, possible_lens_set(i,:), lambda );
+ [ x_sol, energy ] = find_min(i, initial_possible_lens_placement, fitness_simplified, final_MaxFunEvals, final_MaxIter )
+
+ final_possible_lens_placement(i,:) =x_sol;
possible_sample_energy(i) = energy;
end