Clear Filters
Clear Filters

Plot dispersion curves using Bloch theorem

11 views (last 30 days)
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?

Accepted Answer

Alan Stevens
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 Comments
Jungyun Lim
Jungyun Lim on 8 Dec 2022
Thank you so much!
Do you happen to know why fimplicit does not result the same way?
Alan Stevens
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])

Sign in to comment.

More Answers (0)

Categories

Find more on MATLAB in Help Center and File Exchange

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!