2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Не могу понять, в чем подвох? Матлаб
Сообщение01.02.2012, 14:49 
программа выдает разные ответы при одинаковых исходных данных. ddRight и TddRight должны совпадать, и непонятно совершенно почему в итоге они разные.

Текст программы:

%сравнение
g = 1; %\gamma
d01 = sqrt(g/4); %dipole moments, |F = 0, n = 0> <- |F0 = 1> - populated level
d10 = d01;
d00 = sqrt(g/4);
d01m = sqrt(g/4);
d1m0 = d01m;

lr = 1.06; %radius of atomic cloud

%number of atoms
nat = 5;
%number of neighbours
neighbour=4;

%frequency detuning
oma = 10^6*g;
deltaP = -30:0.05:30;
nsp = length(deltaP);

%atoms coordinates
phi=rand(nat,1);
theta=rand(nat,1);
r=lr*betarnd(2,1,nat,1);

x = r.*cos(2*pi*phi).*sin(2*pi*theta);
y = r.*sin(2*pi*phi).*sin(2*pi*theta);
z = r.*cos(2*pi*theta);

clear('phi','r');

xx = x*ones(1,nat);
yy = y*ones(1,nat);
zz = z*ones(1,nat);

%distance between atoms
rr = sqrt((xx - xx').^2 + (yy - yy').^2 + (zz - zz').^2) + eye(nat);
%disp(rr)


%clear('kr','rr');












disp(z);

%Matrix of interaction operator (photon has left polarization)
ddRight = zeros(nat*3^(nat-1),1);

for s = 1:nat
ddRight(1+(s-1)*3^(nat-1)) = -i*d10.*exp(i*z(s));
end;
disp(ddRight);

%searching of neighbours (это тот цикл, после которого все плохо)

rr1 = rr + 2*lr*eye(nat);
rr0=zeros(nat,nat); rrI=zeros(nat,nat);
for i=1:nat
[C,I] = min(rr1);drrI=I;rrI(:,i)=(drrI)';
for t=1:nat rr0(I(t), t)=2*lr; end;
rr1=rr1+rr0;end
disp(rrI);

rrI(:,(neighbour+1):nat)=[];
disp(rrI);
disp(rr);
%clear('kr','rr');


%z не меняется
disp(z);

%а ddRight меняется:

TddRight = zeros(nat*3^( neighbour),1);

for s = 1:nat
TddRight(1+(s-1)*3^( neighbour )) = -i*d10.*exp(i*z(s));
end;

disp(TddRight);

 
 
 
 Re: Не могу понять, в чем подвох? Матлаб
Сообщение01.02.2012, 18:07 
Разобралась - тут в цикле нельзя цикл пускать по "i". Смысл как мнимой единицы потеряется.

Стирать тему не буду - мало ли кому поможет.

 
 
 [ Сообщений: 2 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group