Effacer les filtres
Effacer les filtres

Plot dispersion curves using Bloch theorem

11 vues (au cours des 30 derniers jours)
Jungyun Lim
Jungyun Lim le 8 Déc 2022
Commenté : Alan Stevens le 8 Déc 2022
Hi,
I am trying to reproduce below dispersion curves. (dashed lines, not red)
Dispersion relation equation is as follow with mr = 0.125 and omegar=1
I used fimplicit function to plot this, but it seems it only gives me similar graph for the real portion as below.(with code)
m=0.125;
r=1;
syms x y
f=2*(1-cos(x))-(y)^2*(1+(m)/(1-((y)^2/(r)^2)))
fimplicit(f,[-2 2 0 2])
Any wisdom to plot this?

Réponse acceptée

Alan Stevens
Alan Stevens le 8 Déc 2022
Like this?
OmegaR = 1;
mR = 0.125;
Omega = 0:0.01:2.5;
mu = acos(1 - Omega.^2.*(1+mR./(1-Omega.^2/OmegaR^2))/2);
plot(imag(mu),Omega,'k--',real(mu),Omega,'k--')
  2 commentaires
Jungyun Lim
Jungyun Lim le 8 Déc 2022
Thank you so much!
Do you happen to know why fimplicit does not result the same way?
Alan Stevens
Alan Stevens le 8 Déc 2022
fimplicit only deals with real numbers. Compare the folowing for example
fimplicit(@(x,y) x.^2+y.^2-1, [-1,1])
with
fimplicit(@(x,y) x.^2+y.^2+1, [-1,1])

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Produits


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by