plotting Intensity function which consists of an exponential sum

hello,
Im trying to plot the followin function in matlab:
where k=10,d=1,A=1,0.1,0.01, epsilon is a random number between [0,1], the summation n is from 1 to 20 and theta goes from [-pi/2,pi/2]
I've written this code:
% param defenition %
L=100; N=20; d=1; k=10; Ar=1;
A=0.1;
theta=linspace(-pi/2,pi/2,200);
phase=(d+A*epsilon)*sin(theta);
epsilon=rand(0,1);
function psi = Psi(x)
psi=1;
for n=1:N
psi=psi+(exp(i*k*phase).^n);
end
end
I=([abs(psi)].^2);
fplot(I,[-pi/2,pi/2])
but when I try to run it, I get nothing printed in the figure. what did I do wrong?
Thank you very much for your time and attention.

3 件のコメント

Sriram Tadavarty
Sriram Tadavarty 2020 年 3 月 25 日
Remove function declaration and corresponding end, then replace fplot with plot(I)
Elinor Ginzburg
Elinor Ginzburg 2020 年 3 月 26 日
thank you for your reply, but it still doesn't work. perhaps you have another idea? now it looks like this:
%% Question 03 %%
% param defenition %
L=100; N=20; d=1; k=10; Ar=1;
A=0.1;
theta=linspace(-pi/2,pi/2,200);
epsilon=rand(0,1);
phase=(d+A*epsilon)*sin(theta);
psi=1;
for n=1:N
psi=psi+(exp(i*k*phase).^n);
end
I=((abs(psi)).^2);
plot(I)
Sriram Tadavarty
Sriram Tadavarty 2020 年 3 月 26 日
rand(0,1) returns empty vector. So instead provide rand(1,1)

サインインしてコメントする。

回答 (1 件)

Birdman
Birdman 2020 年 3 月 26 日

0 投票

Try this:
L=100; N=20; d=1; k=10; Ar=1;
A=0.1;
theta=linspace(-pi/2,pi/2,200);
epsilon=rand;
phase=(d+A*epsilon)*sin(theta);
psi=1;
for n=1:N
psi=psi+(exp(1i*k*phase).^n);
end
I=((abs(psi)).^2);
plot(I)

2 件のコメント

Elinor Ginzburg
Elinor Ginzburg 2020 年 3 月 26 日
it worked! thank you so much! I had no idea I need to use rand instead of rand(0,1). how can you keep track between all the changes in different versions? thanks once again!
Birdman
Birdman 2020 年 3 月 26 日
I pay attention to details :) you are welcome.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeMATLAB についてさらに検索

製品

リリース

R2019b

質問済み:

2020 年 3 月 25 日

コメント済み:

2020 年 3 月 26 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by