0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 function lstruct = sugr_perturb_Lines_2D(x0,d,lines,resolution,sigma, rigorous)
0024
0025
0026 global plot_option
0027 global print_option
0028
0029
0030
0031 [N,~] = size(lines);
0032 c = 1;
0033
0034 if plot_option > 0
0035 van_1 = x0/norm(x0);
0036 van_1(3)=van_1(3)*c;
0037
0038 xlim([-2.1,2.1]);
0039 ylim([-2,2.7])
0040 if abs(van_1(3)) > sqrt(1/2)*d* norm(van_1(1:2))
0041 van_1_e=van_1(1:2)/van_1(3);
0042 plot(van_1_e(1),van_1_e(2),'or')
0043 end
0044 end
0045
0046
0047
0048 lstruct.h = zeros(N,3);
0049 lstruct.Crr = zeros(N,2,2);
0050 lstruct.type = 2 * ones(N,1);
0051
0052 ii = 0;
0053
0054 Delta_x=d/resolution;
0055 sigma=sigma*Delta_x;
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065 for n = 1:N
0066
0067
0068
0069
0070 z0 = lines(n,1)+1i*lines(n,2);
0071
0072
0073 phi_0 = lines(n,3);
0074
0075
0076 lengthl= lines(n,4);
0077
0078 N_points = round(lengthl);
0079
0080
0081 sigma_k = sigma/sqrt(N_points);
0082
0083
0084 z0_n = z0 + (randn(1)+1i*randn(1)) * sigma_k;
0085
0086
0087 sigma_phi= sigma/sqrt(N_points^3/12)/Delta_x;
0088
0089
0090 phi_n = phi_0 + randn(1)*sigma_phi;
0091
0092
0093 dz_n = lengthl/2*exp(1i*phi_n)/resolution*d;
0094
0095 zs_0 = z0_n - dz_n;
0096 ze_0 = z0_n + dz_n;
0097
0098
0099 xs = real(zs_0) ;
0100 ys = imag(zs_0) ;
0101 xe = real(ze_0) ;
0102 ye = imag(ze_0) ;
0103
0104 ii=ii+1;
0105 Line = sugr_Line_2D((xs+xe)/2,(ys+ye)/2,phi_n-pi/2,sigma_phi,sigma_k);
0106 lstruct.h(ii,:) = Line.h';
0107 lstruct.Crr(ii,:,:) = Line.Crr;
0108 end;
0109
0110
0111 nii=ii;
0112
0113
0114
0115 if print_option > 0
0116 Omega_d = 0;
0117 Omega_p = 0;
0118 for j=1:nii
0119 l = sugr_select_Line_2D(lstruct,j);
0120 Clhh = sugr_get_CovM_homogeneous_Vector(l);
0121 var_c = van_1' * Clhh * van_1;
0122 c = l.h' * van_1;
0123 Omega_d = Omega_d + c^2;
0124 Omega_p = Omega_p + c^2 / var_c;
0125 end;
0126
0127
0128
0129 end
0130
0131 if plot_option > 0
0132 for j=1:nii
0133 l = sugr_select_Line_2D(lstruct,j);
0134 sugr_plot_Line_2D(l,'-w','-k',2,100,[0,0]);
0135 end
0136 axis equal
0137 end
0138
0139
0140
0141
0142
0143
0144
0145
0146