Why is there a jagged line when I plot this function?

Hi guys,
I am trying to plot an implicit function and am getting strange results. I understand the smooth part of the function, but not the jagged part. Why is the jagged part there at all? Also, what can I do to eliminate it?
Here's the code:
f1=(@(x,y) (5.*y.^(1./2) -3)./(2.5.*y.^(1./2)+2.5.*x.^(1./2)-3)-y);
fimplicit(f1,[0 4 0 4],'black')

回答(2 个)

It's because fimplicit is using too few evaluation points, resulting in too coarse an interpolation (by default it uses 151). You can override this using the 'MeshDensity' argument:
f1=(@(x,y) (5.*y.^(1./2) -3)./(2.5.*y.^(1./2)+2.5.*x.^(1./2)-3)-y);
fimplicit(f1,[0 4 0 4],'black', 'MeshDensity', 5000)

6 个评论

Thanks for your response tmarske. So how can I eliminate that part of the plot completely? I don't want it to be smooth or jagged, I want to try to get rid of it entirely.
What would you expect the result to look like? There are two lower-branch solutions for each x, and at some point they become equal and cross; what would you discard?
I expected it to look like it does in the attachment done here in Desmos. Why does it look different here compared to Matlab?
Ah, what is happening is that your function has a discontinuity in it, and what fimplicit is detecting is not a zero but rather a sign change.
Thanks for that! I see what you mean. So is there anyway I can get rid of that part of the plot completely? I tried limiting the range, but that gets rid of the part I want as well.
If you have the symbolic toolbox, you can solve f1 for x in term of y to get a single x for each y. you can then linspace() for y and put those through the equation to derive x, and then plot(x,y)

请先登录,再进行评论。

I do have the symbolic toolbox. I'm trying to do what you said but still having some trouble as I'm new to matlab. I think I'm on the right track, but it's coming up with an error message.
Here is what I have so far:
syms x y
eqn=(5.*y.^(1/2) -3)./(2.5.*x.^(1./2)+2.5.*y.^(1/2)-3)==y;
S=solve(eqn, x);
y=linspace(0,100);
plot(S,y)

类别

帮助中心File Exchange 中查找有关 Mathematics 的更多信息

产品

版本

R2018b

提问:

2020-3-16

评论:

2020-3-19

Community Treasure Hunt

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

Start Hunting!

Translated by