2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Не могу понять, в чем подвох? Матлаб
Сообщение01.02.2012, 14:49 


01/02/12
2
программа выдает разные ответы при одинаковых исходных данных. 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 


01/02/12
2
Разобралась - тут в цикле нельзя цикл пускать по "i". Смысл как мнимой единицы потеряется.

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group