Vous êtes sur la page 1sur 2

clc, clear all,close all;

params

for trian = 1:nTriangl,


% three random points (triangl)
A = [0,0];
B = [5*trian,5*trian*sqrt(3)];
C = [10*trian,0];
nums = [A(1),A(2),B(1),B(2),C(1),C(2)];
p = min(nums);
q = max(nums);
L = sqrt((A(1)-C(1))^2+(A(2)-C(2))^2);
numbox = p + (q - p)*rand(nTriangl,2);
figure(1);plot(numbox(1:nTriangl,1),numbox(1:nTriangl,2),'r*');
hold on;
n = 1;
for i = 1:nTriangl,
dA(i) = sqrt((numbox(i,1) - A(1))^2+(numbox(i,2) - A(2))^2);
dB(i) = sqrt((numbox(i,1) - B(1))^2+(numbox(i,2) - B(2))^2);
dC(i) = sqrt((numbox(i,1) - C(1))^2+(numbox(i,2) - C(2))^2);
if (dA(i)<=L) & (dB(i)<=L) & (dC(i)<=L)
P_pos(n,1) = numbox(i,1);
P_pos(n,2) = numbox(i,2);
n = n + 1;
end
end
N = n-1
if N == 0
disp('Out of range...')
return
end

for i = 1:N
dis(i,1) = sqrt((P_pos(i,1)-A(1))^2+(P_pos(i,2)-A(2))^2);
dis(i,2) = sqrt((P_pos(i,1)-B(1))^2+(P_pos(i,2)-B(2))^2);
dis(i,3) = sqrt((P_pos(i,1)-C(1))^2+(P_pos(i,2)-C(2))^2);
end

for i = 1:N
dis_test(i,1) = Dist(dis(i,1),a,L,model);
dis_test(i,2) = Dist(dis(i,2),a,L,model);
dis_test(i,3) = Dist(dis(i,3),a,L,model);
end

for i = 1:N
P_temp = Triangle(A,B,C,dis_test(i,1),dis_test(i,2),dis_test(i,3));
P_cal(i,1) = P_temp(1);
P_cal(i,2) = P_temp(2);
end

for i = 1:N
P_cal_real(i,1) = real(P_cal(i,1));
P_cal_real(i,2) = real(P_cal(i,2));
figure(1), hold on, plot(P_cal_real(i,1),P_cal_real(i,2),'g*');
end

% error calulate
e_sum = 0;
for i = 1:N
e = sqrt((P_cal_real(i,1)-P_pos(i,1))^2+(P_cal_real(i,2)-P_pos(i,2))^2);
e_sum = e_sum + e;
end
er_av = e_sum/N;
er_av_per = er_av/model.L;

er_av_box(trian) = er_av;
er_av_per_box(trian) = er_av_per;
end

x = [1:5:25];
er_av_box(trian) = er_av;
y = er_av_box(trian);
figure(2),plot(x,y,'b*');

Vous aimerez peut-être aussi