diff options
-rw-r--r-- | abcd.m | 6 | ||||
-rw-r--r-- | solution_visualization.m | 6 |
2 files changed, 8 insertions, 4 deletions
@@ -39,6 +39,12 @@ function radius =q2radius(q, lambda) radius=(1./real(1./q)); endfunction +function [waste,radius] =q2wr(q, lambda) + waste=sqrt (-lambda./pi./imag(1./q)); + radius=(1./real(1./q)); +endfunction + + function q=waste_r2q(waste,R,lambda) q=1./(1./R-1i.*lambda./pi./(waste.^2)); endfunction diff --git a/solution_visualization.m b/solution_visualization.m index 68b7a55..f5d69d4 100644 --- a/solution_visualization.m +++ b/solution_visualization.m @@ -5,15 +5,13 @@ q0=waste_r2q(w0,r0,lambda); x=linspace(x0,xf,1000); % we will calculate beam profile between x0 and xf printf('======== Forward propagation ======\n') q_forward=gbeam_propagation(x,q0,x0,optics); -w_forward=q2waste(q_forward, lambda); -r_forward=q2radius(q_forward,lambda); +[w_forward,r_forward]=q2wr(q_forward, lambda); printf('======== Backward propagation =====\n') q_backward0=waste_r2q(wf,rf,lambda); q_backward=gbeam_propagation(x,q_backward0,xf,optics); -w_backward=q2waste(q_backward, lambda); -r_backward=q2radius(q_backward,lambda); +[w_backward,r_backward]=q2wr(q_backward, lambda); printf('========= Plotting ================\n') plot (x,w_forward, '1;forward propagation;', x, w_backward, '2;backward propagation;', ... |