Plot implicit function with log scale
Show older comments
Hello, I want to plot implicit function (33.9*k*M*x*y)/(k*M*sqrt(67.8*y)+33.9)-1.715369 = 0 with this constants.
N=1.715369;
M=4444.444444;
k=10^4;
I want to plot this implicit function at (x= 10^-15~10^-9) with log scale (both x and y)
Any help would be appreciated! Thanks.
1 Comment
Bjorn Gustavsson
on 1 Sep 2022
Why can't you use fimplicit and then change to log-scale afterwards:
set(gca,'XScale','log','YScale','log')
HTH
Answers (1)
Walter Roberson
on 1 Sep 2022
Edited: Walter Roberson
on 1 Sep 2022
In order to fimplicit this, you need to have an idea of what the y range is. It turns out that there are two solutions for each x, and they vary by roughly 10^40, making it difficult to plot unless you already have an idea of what you are looking for.
The solution with a smaller range is effectively constant over that range of x values.
syms k M x y
eqn = (33.9*k*M*x*y)./(k*M*sqrt(67.8*y)+33.9)-1.715369
N_val = sym(1.715369);
M_val = sym(4444.444444);
k_val = sym(10^4);
eqnn = subs(eqn, {M, k}, {M_val, k_val})
ysol = solve(eqnn, y)
vpa(expand(ysol), 10)
x_vec = logspace(-15, -9, 200);
y = double(subs(ysol, x, x_vec)).';
loglog(x_vec, y, '-b');
2 Comments
Bjorn Gustavsson
on 1 Sep 2022
Since the OP gave us values for both M and N, one of the M's in the equation might be a typo.
Bo Hoon Han
on 2 Sep 2022
Categories
Find more on Mathematics in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



