# Plot dispersion curves using Bloch theorem

32 views (last 30 days)
Jungyun Lim on 8 Dec 2022
Commented: Alan Stevens on 8 Dec 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?

Alan Stevens on 8 Dec 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 CommentsShowHide 1 older comment
Alan Stevens on 8 Dec 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])

### Categories

Find more on Error Functions in Help Center and File Exchange

R2019b

### Community Treasure Hunt

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

Start Hunting!