aboutsummaryrefslogtreecommitdiff
path: root/mode_match.m
diff options
context:
space:
mode:
authorMatt Argao <mcargao@email.wm.edu>2013-03-31 22:35:49 -0400
committerMatt Argao <mcargao@email.wm.edu>2013-03-31 22:35:49 -0400
commit4d08c162d5ce4ac8b7eaeb9d985bfef62c886e99 (patch)
tree45733367770ddc4585faa09976b403a858d5d8e5 /mode_match.m
parent2f3d161985ae2e57ed966981e58eb117d3a49c71 (diff)
downloadmode_match-4d08c162d5ce4ac8b7eaeb9d985bfef62c886e99.tar.gz
mode_match-4d08c162d5ce4ac8b7eaeb9d985bfef62c886e99.zip
Added descriptions to each function.v3.0
Diffstat (limited to 'mode_match.m')
-rw-r--r--mode_match.m29
1 files changed, 21 insertions, 8 deletions
diff --git a/mode_match.m b/mode_match.m
index 0a36332..f3f7408 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, lens_width, self_flag )
%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
@@ -7,6 +7,11 @@ 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;
possible_lens_placement = zeros(N,3);
@@ -14,25 +19,33 @@ possible_lens_set = zeros(N,3);
possible_sample_energy = zeros(N,1);
initial_rand_lens_placement=zeros(N,3);
-lens_size = .03; % physical size of the lens
-
for ip = 1:n_perms
f3=lens_permutations(ip,3);
x3=Ltot-f3; % last lense transfer collimated region to focused spot
for is = 1:n_shuffles
possible_lens_set((ip-1)*n_shuffles + is,:) = lens_permutations(ip,:);
- initial_rand_lens_placement_tmp = sort(lens_size+(x3-2*lens_size)*rand(1,2));
+ initial_rand_lens_placement_tmp = sort(lens_width+(x3-2*lens_width)*rand(1,2));
initial_rand_lens_placement((ip-1)*n_shuffles + is,:) = [initial_rand_lens_placement_tmp, x3];
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));
+ fitness_simplified=@(x) fitness(q0, qf, Ltot, x, possible_lens_set(i,:), lambda, self_flag );
+ [ 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, self_flag );
+ [ 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