On plot divisions and possibly numerical resolution
显示 更早的评论
clear
C1 = linspace(0,1000,1000);
C2 = 49.28;
k1 = 0.5;
k2 = 5;
n1 = 0;
n2 = 0;
nm = 0;
D = -1;
O = 1;
gam = 0.01;
alph = 0;
for ii=1:length(C1)
w = linspace(-10,10,5500);
k1eff = k1.*(1+C2);
TA = w./(k1eff./2);
TB = w./(gam./2);
Y1 = (-2.*1i.*sqrt(C1(ii)))./(sqrt(gam).*((1+C2).*(1-1i.*TA).*(1-1i.*TB)+C1(ii)));
Y2 = (-2.*sqrt(C1(ii).*C2))./(sqrt(gam).*((1+C2).*(1-1i.*TA).*(1-1i.*TB)+C1(ii)));
Y3 = (2.*(1+C2).*(1-1i.*TA))./(sqrt(gam).*((1+C2).*(1-1i.*TA).*(1-1i.*TB)+C1(ii)));
AY1 = abs(Y1).^2;
AY2 = abs(Y2).^2;
AY3 = abs(Y3).^2;
Sbb = 2*pi.*(AY1.*(n1 + 0.5) + AY2.*(n2 + 0.5) + AY3.*(nm + 0.5));
A = trapz(w,Sbb);
AA(ii)=A
%{
figure(1)
plot(TB,Sbb)
%ylim([0,30])
set(gca,'FontSize',13)
xlabel('\theta_B')
ylabel('S_{bb}')
drawnow limitrate
%ylim([0,5])
%}
end
figure(1)
plot(C1,AA)
set(gca,'FontSize',13)
xlabel('C_2')
ylabel('n_{b} + 1/2')
title('\Gamma_m = 0.01, \kappa_1 = 0.5, \kappa_2 = 5,\Delta = -1, \Omega_m = 1, C_2 = 49.28, n_1 = 0, n_2 = 0, n_m = 0, \alpha = 0')
%xlim([0,100])
Upon compiling the code above, a plot with a tiny peak at about Y=19.73 will be displayed. If one would use the Data Cursor and trace along the plot, it can be seen that the Y values do not change accordingly as X increases. This is clearly not true, since you can tell from the Workspace of my AA array that it's increasing (albeit slowly). Does anyone know what the issue is? Is it a numerical resolution issue with Matlab?
Thank you in advance.
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Graphics Performance 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!