#c #scilab
#c #scilab
Вопрос:
Я сделал следующий алгоритм:
c=3e8;//m/s
h=6.6e-34;//J*s
lambda=200e-9;//m
E=h*c/lambda;//J
k0=(2*E)/(h*c);//m^-1
l=10;
n=1.33;
rd=20*10^-6;
r=1*10^-9:200:10*rd;//m
for i=1:length(r)
if r(i)<=rd then
Ep(i)=(E*(n^2-1)) (E*l*(l 1)/(k0^2*r(i).^2));//J
elseif r>rd then
Ep(i)=(E*(n^2-1)) (E*l*(l 1)/(k0^2*r(i).^2));
end
end
clf
plot2d(r,Ep,style=1);
Я должен получить кривую, и на данный момент моя программа вычисляет только значение.
Комментарии:
1. Нам нужно немного больше контекста относительно того, в чем вопрос, и что это за кривая и так далее? Может быть, какой-то другой код, если это уместно.
2. single —
rd
это единственное значениеr
, которое, в свою очередь, заставит ваш цикл for выполнять только 1 итерацию и, таким образом, приведет к одному значению.3. ну, как вы можете видеть, у меня есть следующие константы: h (plank const), c (скорость света), лямбда (длина волны), l (момент импульса и n (индекс); Мое уравнение: Ep = E * (n ^ 2-1) (El * (l 1))/k0^2 *^r2; где E = hc / лямбда (и представляет энергию падения), k0=2* E / h * c (и представляет волновое число);
4. У меня есть 2 интересующих случая:
5. 1 — это то, что происходит, когда r> rd (и первая часть моей оценки должна быть 0) и 2, когда r<= rd; извините, я забыл вам сказать: r — радиус частицы, и это моя переменная; и rd — радиус предела; если вы знаете физику, этоэто своего рода проблема с барьером потенциала;
Ответ №1:
c=3.000D 08;
h=6.600D-34;
lambda=0.0000002;
E=h*c/lambda;
k0=(2*E)/(h*c);
l=10;
n=1.33;
rd=0.00002;
r=1.000D-09:0.000002:10*rd;
for i=1:length(r)
if r(i)<=rd then
Ep(i)=(E*(n^2-1)) (E*l*(l 1)/(k0^2*r(i).^2));
elseif r>rd then
Ep(i)=(E*(n^2-1)) (E*l*(l 1)/(k0^2*r(i).^2));
end
end
plot(log(r),log(Ep'));
Это график: